// TarrantIT 2000
var wall=-1;
var wallSeg=0;
var panel = 0;
var runLen=0;
var wallLen=null;
var currentWall=0;
function NextSegment(w)
{		
	currentWall=w;
	var tr, td;
	tr=document.getElementById("wallRow"+w);
	wallLen=document.createElement("input");
	wallLen.setAttribute("id", "wall"+w+"_Seg"+tr.cells.length);
	currentInput = "wall"+w+"_Seg"+tr.cells.length;
	wallLen.setAttribute("name", "wall"+w+"_Seg"+tr.cells.length);
	wallLen.setAttribute("width", "46");
	wallLen.setAttribute("class", "TxtBox1");
	wallLen.setAttribute("type", "text");
	if ((tr.cells.length-1)%2 != 0)
		wallLen.style.background="lawngreen";
	else
		wallLen.style.background="deepskyblue";
	wallLen.onkeypress = CheckNumeric2;
	td=tr.insertCell(tr.cells.length-1);
	td.appendChild(wallLen);
	wallLen.focus();
	panel++;
}
function NewWall()
{
	if (! CheckForm())
		return;
		
	if (panel%2 == 0 && panel >0)
	{
		alert("Must start and end each wall with a panel (green)\n\rPlease either add a panel or remove an opening");
		return;
	}
	panel=0; // start a wall with a panel
	wall++;
	var tr, t, td;
	var divWall=document.getElementById("divWalls");
	t= document.createElement("table");
	t.setAttribute("id", "wall"+wall);
	tr= t.insertRow(t.rows.length);
	tr.setAttribute("id", "wallRow"+wall);
	tr.setAttribute("name", "wallRow"+wall);
	td=tr.insertCell(tr.cells.length);
	var nextSeg = document.createElement("a");
	nextSeg.setAttribute("href", "javascript:NextSegment("+wall+")");
	nextSeg.setAttribute("title", "Right Cursor key = Next segment");
	var i =document.createElement("img");
	i.setAttribute("src", "images/arrow.gif");
	i.setAttribute("border", "0");
	i.setAttribute("alt", "Right Cursor key = Next segment.");
	nextSeg.appendChild(i);
	td.appendChild(nextSeg);
	td=tr.insertCell(tr.cells.length);
	var delSeg = document.createElement("a");
	delSeg.setAttribute("href", "javascript:delSegment("+wall+")");
	delSeg.setAttribute("title", "Remove segment");
	var i2 =document.createElement("img");
	i2.setAttribute("src", "images/Delete.gif");
	i2.setAttribute("border", "0");
	i2.setAttribute("alt", "Left Cursor key = Remove segment");
	delSeg.appendChild(i2);
	td.appendChild(delSeg);
	divWall.appendChild(t);
	runWall = 0;		
	NextSegment(wall);
}
function delSegment(w)
{ 	
 	var tr=document.getElementById("wallRow"+w);
	if (tr.cells.length > 2)
	{
		tr.deleteCell(tr.cells.length-2);
		panel--;
	}
}
function CheckNumeric2(e)
{	
	if (document.all)
	{
	    var v = event.keyCode;
	    if (event.srcElement.id.indexOf("_") ==0)
	    {
		    if (v==46 && event.srcElement.value.indexOf(".") == -1)
 			    return true;
 	    }
	    if (v > 47 && v < 58)
		    return true;
	    return false;
	}
	else
	{
	    var v = e.which;
	    if (e.target.id.indexOf("_") == 0)
	    {		
		    if (v == 46 && e.target.value.indexOf(".") == -1)
    		    return true;	
 	    }
	    if ((v > 47 && v < 58) || v==0 || v==8)
		    return true;
	    e.preventDefault();
	}
}
function CheckForm()
{
	var ctrlIndex;
	var element;
	var tot="";
	var numCtrls=document.form1.length;
	for (ctrlIndex=0; ctrlIndex<numCtrls; ctrlIndex++)
	{
		element=document.form1[ctrlIndex];
		if (element.type=="text" && element.id.substring(0,4)=="wall")
		{
			if (element.value%200 != 0 || element.value=="")
			{
				var currentColor=element.style.background;
				element.style.background="#ff0000";
				alert (element.value +' is not a valid value for panel or opening length\nPanel and opening lengths must be in millimtres by 200\neg 1800, 2200, 1000\nPlease enter valid value');
				element.style.background=currentColor;
				element.focus();
				element.select();
				return false;
			}
		}
	}
	return true;
}
function window_onload()
{		
	var totWalls=aWall.length;
	if (totWalls >0)
	{
		var s=3; // segment is table cell so startes at 3
		var x=0;
		NewWall(); // theres at least one so kick off first
		document.getElementById("wall"+wall+"_Seg2").value=aWall[0];  // first one
		
		for (var y=1; y < totWalls; y++)
		{
			x=aWall[y];
			if (x!=0)
			{
				NextSegment(wall)
				document.getElementById("wall"+wall+"_Seg"+s).value=x;
				s++;
			}
			else
			{
				NewWall();
				y++;  // is this leagal? incing the itereator
				document.getElementById("wall"+wall+"_Seg2").value=aWall[y];
				s=3;
			}
		}
	}
	else
		NewWall(); // no state to manage so go 1
}
function mailJob_onclick()  // aint the DOM level 2 just the ducks guts  .. and who said ya can only have 1 form in asp.net ?
{
	var d=document.getElementById("divMail");
	var frm=document.createElement("form");
	frm.setAttribute("id", "frmMailResults");
	frm.setAttribute("name", "frmMailResults");
	frm.setAttribute("action", "mailto:");
	frm.setAttribute("method", "GET");
	var but=document.createElement("input");			
	but.setAttribute("type", "submit");
	but.setAttribute("value", "Mail Results");
	var subj=document.createElement("input");			
	subj.setAttribute("name", "subject");
	subj.setAttribute("type", "text");
	subj.setAttribute("value", "StarterBar_Map");
	var txt=document.createElement("textarea");			
	txt.setAttribute("name", "body");
	txt.setAttribute("value", getBody());
	frm.appendChild(but);
	frm.appendChild(subj);
	frm.appendChild(txt);
	d.appendChild(frm);
	frm.submit();
}
function getBody()
{
	var t=0;
	var results;
	results="StarterBat+Map\n";
	if(document.getElementById("lblStretcher")!=null)
		results+="10.01__Stretcher\t\t"+ document.getElementById("lblStretcher").innerHTML;
	if(document.getElementById("lblHalf")!=null)
		results+="\n10.03__Half\t\t"+ document.getElementById("lblHalf").innerHTML;
	if(document.getElementById("lblCorner")!=null)
		results+="\n10.25__Corner\t\t"+ document.getElementById("lblCorner").innerHTML;
	if(document.getElementById("lblThreeQuarter")!=null)
		results+="\n10.02__Threequarter\t\t"+ document.getElementById("lblThreeQuarter").innerHTML;
	if(document.getElementById("lblQuarter")!=null)
		results+="\n10.34__Quarter\t\t"+ document.getElementById("lblQuarter").innerHTML;
	if(document.getElementById("lblCornerHalf") != null)
		results+="\n??.??__Corner_Half\t\t"+ document.getElementById("lblCornerHalf").innerHTML;
	if(document.getElementById("lblJamb") != null)
		results+="\n10.340__Jamb\t\t"+ document.getElementById("lblJamb").innerHTML;
	if(document.getElementById("lblTotal") != null)
		results+="\n\nTotal\t\t"+ document.getElementById("lblTotal").innerHTML;
	results+="\n";
	if(document.getElementById("lblLoam") != null)
		results+="\nLoam\t\t"+ document.getElementById("lblLoam").innerHTML;
	if(document.getElementById("lblCement") != null)
		results+="\nCement\t\t"+ document.getElementById("lblCement").innerHTML;
	if(document.getElementById("lblArea") != null)
		results+="\nArea\t\t"+ document.getElementById("lblArea").innerHTML;
	if(document.getElementById("lblPallettes") != null)
		results+="\nPallettes\t\t"+ document.getElementById("lblPallettes").innerHTML;
	return results;
}
function Demo()
{
	if (wall > 0)
	{
		if (! confirm("StarterMap generates a table\n\rof running measurements for\n\rStarter Bar set out\n\r\n\rThis action will overwrite current entries\n\r\n\rContinue?"))
		return;
	}
	ClearWalls();
	var cent = 600+ Math.ceil(Math.random()*4)*200;
	document.getElementById("ddCenters").value = cent;
	document.getElementById("ddCenters").style.backgroundColor = "lawngreen";
	if (! confirm("This demo will randomly generate a job\n\rKeep clicking OK to step through\n\ror Cancel to stop\n\r\n\rSelect Max Starter centres\n\rThis demo has centres of "+ cent +"mm\n\r\n\r\n\rEach wall has panels and openings\n\r\n\rClick blue arrows to enter each panel ~ opening\n\rClick 'Next Wall' to enter next wall\n\r\n\rContinue?"))
		return;
	var rndLength=0;
	var rndSegments=0;
	var rndWalls = Math.floor(Math.random()*5)+3;
	var exp = "";
	var wc = 1;
	var seg = 0;
	for (var y=0; y< rndWalls; y++)
	{			
		NewWall();
		rndLength = 600+ Math.ceil(Math.random()*12)*200;
		document.getElementById("wall"+ y+"_Seg2").value = rndLength;
		rndSegments = (Math.floor(Math.random()*4))*2 +5;
		seg = rndSegments-2; 
		exp+= "Wall "+ wc++ +" has "+ Math.ceil(seg/2) +" panels\n\rand "+ Math.floor(seg/2) +" openings \n\rPanel 1 = "+ rndLength +"\n\r";
		for (var i=3; i< rndSegments; i++)
		{
			NextSegment(y);
			rndLength = 600+ Math.ceil(Math.random()*12)*200;
			document.getElementById("wall"+ y +"_Seg"+ i).value = rndLength;
			if (i%2 !=0)
				exp+= "next a "+ rndLength +" opening\n\r";
			else
				exp+= "then a "+ rndLength +" panel\n\r";
		}
		if (! confirm(exp +"\n\r\n\rClick blue arrow to enter each panel ~ opening\n\rClick red cross to remove panel ~ opening\n\rClick 'Next Wall' to enter next wall\n\r\n\rThis demo has "+ rndWalls +" walls\n\r\n\rContinue?"))
			return;
		exp="";	
	}
	if (confirm("Click 'Calculate Map' to finish\n\r\n\rCalculate now?"))
		__doPostBack('btnCalc','');
	else
	{
		ClearWalls();
		NewWall();
	} 
}
function ClearWalls()
{
	if (document.getElementById("tblMap") != null)
		document.getElementById("tblMap").style.display="none";
	var elem = document.getElementById("divWalls");
	elem.parentNode.removeChild(elem);
	var newDiv = document.createElement("div");
	newDiv.setAttribute("id", "divWalls");
	document.getElementById("spnAllWalls").appendChild(newDiv);
	wall = -1;
	currentWall=0;
}
document.onkeydown = HandleDown;
function HandleDown(evt)
{
	evt=(evt) ? evt : ((event) ? event : null);
	if(evt)
	{
		//alert(evt.keyCode);
		switch (evt.keyCode)
		{
			case 39:
				NextSegment(currentWall); // right
				break;
			case 37:
				delSegment(currentWall); // left
				break;
			case 40:
				NewWall(); // down
				break;
			case 38:
				if (currentWall > 0)// up
					currentWall--; 
				break;
		}
	}
}
