
var remainingArray=new Array();
var nom=1;
var currentIndex=0;
var totalCharToCut = 17000;
var indexOfIMG = 0;
var indexOfBR = 0;
var interlinkingArray = new Array();

function TrimStartEnd(stringToret, strTorem ) {
	if (stringToret[stringToret.length -1] == strTorem)
	{
			stringToret =	stringToret.substring(0, stringToret.length - 1)
	}
			
	if (stringToret[0] == strTorem)
	{
			stringToret =	stringToret.substring(1, stringToret.length)
	}
	
	return stringToret;
}

function CUTHTML(htmltoCheck,startIndex, stackArray)
{
	var arrayGot = leftstack(stackArray);	
	var htmlLeft = htmltoCheck.substring(0, startIndex+1);
	var htmlRight = htmltoCheck.substring(startIndex+1, htmltoCheck.length);
	
	htmlLeft += arrayGot[0];
	htmlRight = arrayGot[1]+htmlRight;
	
	remainingArray[remainingArray.length] = htmlLeft;
	
	return htmlRight;
}
function RemoveFromStack(stackArray)
{
	/*var newArray = new Array();
	for(var i = 0; i < stackArray.length -1; i++)
		newArray[i] = stackArray[i];
	stackArray = newArray;
	*/
	if (stackArray.length > 0)
	{
	stackArray.length = stackArray.length-1;
	}
	return stackArray;
}

function leftstack(stackArray)
{
	var backstringtosend = "";
	var frontstringtosend = "";
	
	for(var i=stackArray.length-1;i>=0;i--)
	{
		var stackELement = stackArray[i];
		var elementToAdd = "";
		for(var j = 1; j < stackELement.length; j++)
		{
			
			if(!(stackELement.substr(j,1) == " " || stackELement.substr(j,1) == ">"))
				elementToAdd += stackELement.substr(j,1);
			else
			{
				if(stackELement.substr(j,1) == ">" || elementToAdd.length > 0)
					break;
			}
			
		}
		elementToAdd = "</"+elementToAdd+">";
		frontstringtosend = stackELement+frontstringtosend;
		
		backstringtosend+=elementToAdd;
		
	}
	return [backstringtosend, frontstringtosend];
}                 



function PutInStack(htmltoCheck,startOfLessSign, startIndex, stackArray)
{
	
	var stringtoinsert = htmltoCheck.substring(startOfLessSign, startIndex+1);
	
	
	if(stringtoinsert.indexOf("/") == 1 && !(stringtoinsert.toLowerCase().indexOf("input") > -1 || stringtoinsert.toLowerCase().indexOf("br") > -1 || stringtoinsert.toLowerCase().indexOf("img") > -1))
		stackArray = RemoveFromStack(stackArray);
	else
	{
		if( !(stringtoinsert.toLowerCase().indexOf("input") > -1 || stringtoinsert.toLowerCase().indexOf("br") > -1 || stringtoinsert.toLowerCase().indexOf("img") > -1))
		{
			var newHTMLToCheck = ChangeString(htmltoCheck, startOfLessSign, startIndex, stringtoinsert);
			stackArray[stackArray.length] = stringtoinsert;
			return [newHTMLToCheck,stackArray];
		}

	}
	return [htmltoCheck, stackArray];
}
function ChangeString(htmltoCheck, startOfLessSign, startIndex, stringtoinsert)
{
	var stringtocheck = stringtoinsert.toLowerCase();
	if(stringtocheck.indexOf("a ") > -1 && stringtocheck.indexOf("name") > -1 )
	{
		var nameIndex = stringtocheck.indexOf("name=");
		nameIndex += 5;
		var isQuot = stringtocheck.indexOf("\"", nameIndex) == (nameIndex+1)?1:0;
		
		var nextIndex = stringtocheck.indexOf(isQuot?"\"":" ", nameIndex);
		if(nextIndex == -1)
			nextIndex = stringtocheck.length -1;
		
		//var newStringtoInsert = stringtoinsert.substring(0, stringtoinsert.length-1)+" onclick=\"return oninterlinking(this);\""+">";
		
		//var newhtmltoCheck = htmltoCheck.replace(stringtoinsert, newStringtoInsert);
		interlinkingArray[interlinkingArray.length] = TrimStartEnd(stringtoinsert.substring(nameIndex, nextIndex),  "\"") +":"+ remainingArray.length;
	}
	if(stringtocheck.indexOf("a ") > -1 && stringtocheck.indexOf("#") > -1 )
	{
		var newStringtoInsert = stringtoinsert.substring(0, stringtoinsert.length-1)+" onclick=\"return oninterlinking(this);\""+">";
		//alert(newStringtoInsert);
		var newhtmltoCheck = htmltoCheck.replace(stringtoinsert, newStringtoInsert);
		return newhtmltoCheck;
	}
	return htmltoCheck;
}

function oninterlinking(objectOfInterlinking)
{
	
	var hrefLink = objectOfInterlinking.href;
	var cuthrefLink = hrefLink.substring(hrefLink.indexOf("#")+1, hrefLink.length);
	
	var foundPage = FindInInterlinkingArray(cuthrefLink);
	if(foundPage != null)
	{
		PagesToShow(foundPage[1]);
		var arrayofname = document.getElementsByName(foundPage[0]);
		
		if(arrayofname.length > 0)
		{
			arrayofname[0].focus();
			arrayofname[0].scrollIntoView(true);
		}
		
	}
	return true;
}
function FindInInterlinkingArray(cuthrefLink)
{
	for(var i = 0; i < interlinkingArray.length; i++)
	{
		if(interlinkingArray[i].indexOf(cuthrefLink+":") > -1)
		{
			var nameofHref = interlinkingArray[i].substring(0,interlinkingArray[i].indexOf(":"));
			//var arrayofname = document.getElementsByName(nameofHref);
			//alert(arrayofname.length);
			return [nameofHref, interlinkingArray[i].substring(interlinkingArray[i].indexOf(":")+1, interlinkingArray[i].length)];
		}
	}
	return null;
}
function MakePages()
{
	var strToMake = "<table border=\"0\" cellspacing=\"5\"><tr><td> Pages: </td>";
    if(remainingArray.length>1){
	for(var i = 0; i < remainingArray.length; i++)
	{
		strToMake+="<td><a href=\"#\" onclick=\"return PagesToShow("+i+");\" class=\"textverdanalinkblue\">"+(i+1)+"</a></td>";
	}
	strToMake += "</tr></table>";
	document.getElementById("pagesShowing").innerHTML = strToMake;
	document.getElementById("pagesShowing1").innerHTML = strToMake;
	}
}
function createstring()
{
	var divToCheck = document.getElementById("hiddenHTML");
	var texttoCheck =  divToCheck.innerText;
	var htmltoCheck =  divToCheck.innerHTML;
	makeHTMLArrayManual(htmltoCheck);
	
	MakePages();
	ShowDiv();
	document.getElementById("hiddenHTML").innerHTML = "";
}
function IncreaseInVirtualLen(htmltoCheck,startOfLessSign, startIndex)
{
	var stringtoinsert = htmltoCheck.substring(startOfLessSign, startIndex+1);
	var toaddmore = 0;
	
	if(stringtoinsert.indexOf("/") != 1 && (stringtoinsert.toLowerCase().indexOf("br") > -1 || stringtoinsert.toLowerCase().indexOf("img") > -1))
	{
		if(stringtoinsert.toLowerCase().indexOf("img") > -1)
		{
			var thisImage = document.getElementsByTagName("IMG")[indexOfIMG++];
			var imageHeight = parseInt(thisImage.height);
			var imageWidth = parseInt(thisImage.width);
			if(!isNaN(imageHeight) && !isNaN(imageWidth))
			{
				toaddmore = parseInt(imageHeight*imageWidth/15);
			}
		}
		else 
		{
			if(stringtoinsert.toLowerCase().indexOf("br") > -1)
			{
				toaddmore = 80;
			}
		}

	}
	return toaddmore;
}
function Checktheremaininglink(htmltoCheck)
{
	var startIndex=0;
	endIndex = 0;
	var startOfLessSign = 0;
	var charToLookFor = "<";
	var virtualLength = 0;
	var isTagStarted=false;
	
	for(var i  = 0; i < htmltoCheck.length; i++)
	{
		if(isTagStarted)
			charToLookFor = ">";
		else
			charToLookFor = "<";
		if(htmltoCheck.substr(startIndex, 1) == charToLookFor)
		{
			isTagStarted = !isTagStarted;
			if(isTagStarted)
				startOfLessSign = startIndex;
			else
			{
				var stringtoinsert = htmltoCheck.substring(startOfLessSign, startIndex+1);
				htmltoCheck = ChangeString(htmltoCheck,startOfLessSign, startIndex, stringtoinsert);
			}
		}
		startIndex++;
	}
	return htmltoCheck;
}
function makeHTMLArray(htmltoCheck)
{var gonein = false;
	if(htmltoCheck.length <= totalCharToCut)
	{
		htmltoCheck = Checktheremaininglink(htmltoCheck);
		remainingArray[remainingArray.length] = htmltoCheck;
		return;
	}
	var stackArray = new Array();	
	var startIndex=0;
	endIndex = 0;
	var startOfLessSign = 0;
	var charToLookFor = "<";
	var virtualLength = 0;
	var isTagStarted=false;
	
	for(var i  = 0; i < htmltoCheck.length; i++)
	{
		if(isTagStarted)
			charToLookFor = ">";
		else
			charToLookFor = "<";
		if(htmltoCheck.substr(startIndex, 1) == charToLookFor)
		{
			isTagStarted = !isTagStarted;
			if(isTagStarted)
				startOfLessSign = startIndex;
			else
			{
				var gotresult = PutInStack(htmltoCheck,startOfLessSign, startIndex, stackArray);
				stackArray = gotresult[1];
				htmltoCheck = gotresult[0];
				virtualLength += IncreaseInVirtualLen(htmltoCheck,startOfLessSign, startIndex);
			}
		}
		if(!isTagStarted){
			virtualLength++;}
		
		if(virtualLength > totalCharToCut && htmltoCheck.substr(startIndex+1, 1) == "<")
		{
			var strRemainingHTML = CUTHTML(htmltoCheck,startIndex, stackArray);
			makeHTMLArray(strRemainingHTML);
			gonein = true;
			return;
		}
		startIndex++;
	}
	if(!gonein)
	{
		htmltoCheck = Checktheremaininglink(htmltoCheck);
		remainingArray[remainingArray.length] = htmltoCheck;
		return;
	}
}

function makeHTMLArrayManual(xhtmltoCheck)
{

var arrayofHTMLs = xhtmltoCheck.split("####PAGES####");

	var stackArray = new Array();	
	for(var x = 0; x < arrayofHTMLs.length; x++)
	{
		var startIndex=0;
		endIndex = 0;
		var startOfLessSign = 0;
		var charToLookFor = "<";
		var virtualLength = 0;
		var isTagStarted=false;
		var htmltoCheck = arrayofHTMLs[x];
		for(var i  = 0; i < htmltoCheck.length; i++)
		{
			if(isTagStarted)
				charToLookFor = ">";
			else
				charToLookFor = "<";
			if(htmltoCheck.substr(startIndex, 1) == charToLookFor)
			{
				isTagStarted = !isTagStarted;
				if(isTagStarted)
					startOfLessSign = startIndex;
				else
				{
					var gotresult = PutInStack(htmltoCheck,startOfLessSign, startIndex, stackArray);
					stackArray = gotresult[1];
					htmltoCheck = gotresult[0];
					virtualLength += IncreaseInVirtualLen(htmltoCheck,startOfLessSign, startIndex);
				}
			}
			if(!isTagStarted){
				virtualLength++;}
			startIndex++;
		}
		CUTHTML(htmltoCheck,startIndex, stackArray);
	
	}
	/*if(!gonein)
	{
		htmltoCheck = Checktheremaininglink(htmltoCheck);
		remainingArray[remainingArray.length] = htmltoCheck;
		return;
	}*/
}

function prevString()
{
	var currentButton = event.srcElement;
	if(currentButton.disabled)
		return;
	--currentIndex;
	ShowDiv();
	return false;
}
function PagesToShow(index)
{
	currentIndex = index;
	ShowDiv();
}
function ShowDiv()
{
	var showDiv = document.getElementById("AlltheHTML12345");
	//if(remainingArray.length>1){
	showDiv.innerHTML = remainingArray[currentIndex];
	if(remainingArray.length>1){
		currentIndex++;
    var count=currentIndex;
	var testthisone = document.getElementById("testthisone12345");
	var testthisone1 = document.getElementById("testthisone1234");
	
	testthisone.innerHTML = "Page "+ count;
	testthisone1.innerHTML = "Page "+ count;	
	
	//var testthisone1 = document.getElementById("testthisone123456");

	//testthisone1.innerText = "Page "+ count;
	}	
	//showDiv.focus();
	//EnableDisable();
	//}
}
function nextString()
{
	var currentButton = event.srcElement;
	if(currentButton.disabled)
		return;
	++currentIndex;
	ShowDiv();
	return false;
}
function EnableDisable()
{
	if(remainingArray.length-1 <= currentIndex)
		nextButton.disabled = true;
	else
		nextButton.disabled = false;
	if(currentIndex == 0)
		prevButton.disabled = true;
	else
		prevButton.disabled = false;
}

function go(theURL,wh) {
	msgwindow = window.open(theURL,'', wh);
}
