// TarrantIT 2000
var wall=-1;
var wallSeg=0;
var currentWall=0;
function NextSegment(w)
{	
	currentWall=w;
	var tr, td;
	tr=document.getElementById("wallRow"+w);
	var wallLen=document.createElement("input");
	wallLen.setAttribute("id", "wall"+w+"_Seg"+tr.cells.length);
	wallLen.setAttribute("name", "wall"+w+"_Seg"+tr.cells.length);
	wallLen.setAttribute("width", "60");
	wallLen.setAttribute("class", "TxtBox1");
	wallLen.setAttribute("type", "text");
	wallLen.onkeypress = CheckNumeric2;
	td=tr.insertCell(tr.cells.length-1);
	td.appendChild(wallLen);
	wallLen.focus();
}
function NewWall()
{
	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", "Next segment");
	var i =document.createElement("img");
	i.setAttribute("src", "images/arrow.gif");
	i.setAttribute("border", "0");
	i.setAttribute("alt", "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", "Remove segment");
	delSeg.appendChild(i2);
	
	td.appendChild(delSeg);
	divWall.appendChild(t);
			
	NextSegment(wall);
}
function delSegment(w)
{
 	var tr=document.getElementById("wallRow"+w);
	if (tr.cells.length > 2)
	{
		tr.deleteCell(tr.cells.length-2);
	}
}
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")
		{
			reg = new RegExp("^\\d{1,3}00$");// from 100 to 99000
			if (! reg.test(element.value))
			{
				element.style.background="#ff0000";
				alert (element.value +' is not a valid value for wall segment length\nWall segment lengths must be in millimtres by 100\neg 1700, 2200, 900\nEnter valid value or click cross to delete entry');
				element.style.background="#ffffff";
				element.focus();
				element.select();
				return false;
			}
			if (element.value < 400)
			{
				alert ('Length to small\nDo not include short nibs\nin wall list. Select\n300 Nibs etc above');
				element.focus();
				element.select();
				return false;
			}
		}
	}
}
var showMisc = false;
function ToggleMisc()
{
	var ctl=document.getElementById("divMisc");
	if (! showMisc)
	{
		ctl.style.display="block"
		document.getElementById("spnMisc").innerHTML="Hide Miscellaneous";
		document.images["imgMisc"].src = "images/Cancel.gif";	
	}
	else
	{
		// if any values in Misc canot hide it
		var f = document.form1;
		var totMisc=f["txtMiscStretcher"].value + f["txtMiscHalf"].value + f["txtMiscCorner"].value + f["txtMiscThreeQuarter"].value;
		totMisc+=f["txtMiscQuarter"].value + f["txtMiscCornerHalf"].value;
		if (totMisc.length >0)
		{	
			if (confirm("Can not hide Miscelaneaous if values enterred\n\r\n\rClear all input?"))
			{
				ClearMisc();
				ToggleMisc();	
			}
			return;
		}
		else
		{
			ctl.style.display="none"
			document.getElementById("spnMisc").innerHTML="Show Miscellaneous";
			document.images["imgMisc"].src = "images/edit.gif";	
		}		
	}
	showMisc = ! showMisc;
}
function window_onload()
{		
	var boxes = document.getElementsByTagName("input");
	for (var i=0; i< boxes.length; i++)
	{
		if (boxes[i].type=="text")
			boxes[i].onkeypress = CheckNumeric2;
	}	
	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
		
	var Misc =document.getElementById("txtMiscStretcher").value+document.getElementById("txtMiscHalf").value;
		Misc+=document.getElementById("txtMiscThreeQuarter").value+document.getElementById("txtMiscQuarter").value;
		Misc+=document.getElementById("txtMiscCorner").value+document.getElementById("txtMiscCornerHalf").value;
		if (Misc >0)
			ToggleMisc();
		
	if (document.getElementById("pnlResults") != null)
		document.getElementById("pnlResults").focus();
}
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", "100_Series_Quantity_Results");
	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="Estimator_100_Series_results\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;
}
var showSet = false;
function ToggleSet()
{
	if (showSet)
	{
		document.getElementById("tblSet").style.display = "none";
		document.getElementById("spnSet").innerHTML="Show Settings";
		document.images["imgSet"].src = "images/edit.gif";
	}
	else
	{
		document.getElementById("tblSet").style.display = "block";
		document.getElementById("spnSet").innerHTML="Hide Settings";
		document.images["imgSet"].src = "images/Cancel.gif";	
	}
	showSet = ! showSet;
}
function Demo()
{
	if (wall > 0)
	{
		if (! confirm("This action will overwrite current wall entries\n\r\n\rContinue?"))
		return;
	}
	if (showMisc)
	{
		ClearMisc();
		ToggleMisc();
	}
	ClearWalls();
	//alert("Each wall has 1 or more segments\n\rClick blue arrows to enter each segment\n\rClick 'Next Wall' to enter next wall");
	if (! confirm("This demo will randomly generate a job\n\rKeep clicking OK to step through\n\ror Cancel to stop\n\r\n\rEach wall has 1 or more segments\n\rseparated by corners\n\rClick blue arrows to enter each segment\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()*3)+3;
	var exp = "";
	var wc = 1;
	var seg = 0;
	var clr = "lawngreen";
	for (var y=0; y< rndWalls; y++)
	{			
		NewWall();
		rndLength = 900+ Math.ceil(Math.random()*100)*100;
		document.getElementById("wall"+ y+"_Seg2").value = rndLength;
		document.getElementById("wall"+ y+"_Seg2").style.backgroundColor = clr;
		rndSegments = Math.floor(Math.random()*5)+3;
		seg = rndSegments-2; 
		//exp+= "Wall "+ wc++ +" goes "+ rndLength +"\n\r";
		exp+= "Wall "+ wc++ +" has "+ seg +" segments\n\r\n\rIt goes "+ rndLength +"\n\r";
		for (var i=3; i< rndSegments; i++)
		{
			NextSegment(y);
			rndLength = 900+ Math.ceil(Math.random()*100)*100;
			document.getElementById("wall"+ y +"_Seg"+ i).value = rndLength;
			document.getElementById("wall"+ y +"_Seg"+ i).style.backgroundColor = clr;
			exp+= "to a corner, then goes "+ rndLength +"\n\r";
		}
		if (! confirm(exp +"then ends\n\r\n\rClick blue arrow to enter each segment\n\rClick red cross to remove segment\n\rClick 'Next Wall' to enter next wall\n\r\n\rThis demo has "+ rndWalls +" walls\n\r\n\rContinue?"))
			return;
		exp="";	
	}
	if (! showSet)
		ToggleSet();
	if (! confirm("Click 'Show Settings' to edit blocks per cement\n\rblocks per pallette, blocks per m3 loam etc\n\rClick 'Hide Settings' to hide\n\r\n\rContinue?"))
	{
		ToggleSet();	
		return;
	}
	ToggleSet();	
	document.getElementById("txtMiscStretcher").value = Math.floor(Math.random()*40)+10;
	document.getElementById("txtMiscStretcher").style.backgroundColor = clr;
	document.getElementById("txtMiscHalf").value = Math.floor(Math.random()*20)+10; 
	document.getElementById("txtMiscHalf").style.backgroundColor = clr;
	document.getElementById("txtMiscThreeQuarter").value = Math.floor(Math.random()*10)+10; 
	document.getElementById("txtMiscThreeQuarter").style.backgroundColor = clr;
	if (! showMisc)
		ToggleMisc()
	if (! confirm("Click 'Show Miscellaneous' to enter miscellaneous entries\n\r\n\rContinue?"))
		return;
	var rndDoors = Math.floor(Math.random()*4)+2; // 4 to 6 doors
	document.getElementById("ddDoorBond").value = rndDoors;
	document.getElementById("ddDoorBond").style.backgroundColor = clr;
	rndDoors = Math.floor(Math.random()*3)+1;
	document.getElementById("ddDoorCorner").value = rndDoors;
	document.getElementById("ddDoorCorner").style.backgroundColor = clr;
	rndDoors = Math.floor(Math.random()*3)+2;
	document.getElementById("ddDoorEnd").value = rndDoors;
	document.getElementById("ddDoorEnd").style.backgroundColor = clr;
	document.getElementById("ddCourses").style.backgroundColor = clr;
	if (confirm("Select courses, door types and number\n\rSelect dog-leg or door combinations\n\rfor all doors etc\n\rMouse over icons for bond description\n\r\n\rClick 'Calculate Quantitiy' to finish\n\r\n\rCalculate now?"))
	{
	    document.getElementById("hdnIsDemo").value = "true";
		__doPostBack('btnCalc','');
	}
	else
	{
		ClearMisc();
		ToggleMisc();
		ClearWalls();
		NewWall();
		document.getElementById("ddDoorBond").value = 0;
		document.getElementById("ddDoorBond").style.backgroundColor = "white";
		document.getElementById("ddDoorCorner").value = 0;
		document.getElementById("ddDoorCorner").style.backgroundColor = "white";
		document.getElementById("ddDoorEnd").value = 0;
		document.getElementById("ddDoorEnd").style.backgroundColor = "white";
		document.getElementById("ddCourses").style.backgroundColor = "white";
	} 
}
function ClearWalls()
{
	if (document.getElementById("pnlResults") != null)
		document.getElementById("pnlResults").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;
}
function ClearMisc()
{
	document.getElementById("txtMiscStretcher").value = "";
	document.getElementById("txtMiscHalf").value = "";
	document.getElementById("txtMiscThreeQuarter").value = "";
	document.getElementById("txtMiscQuarter").value = "";
	document.getElementById("txtMiscCorner").value = "";
	document.getElementById("txtMiscCornerHalf").value = "";
}
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;
		}
	}
}
function ShowBlock(blockId, event)
{	
	document.images["imgShowType"].src="images/Blocks/"+ blockId +".gif";
}
function HideBlock()
{
	document.images["imgShowType"].src="images/1X1.gif";
}
var aDesc = new Array();
aDesc[0] = "800 mm door frame - Stretchers + halfs each side<br /><img src=\"images/100Bond/DoorBond.gif\">";
aDesc[1] = "800 mm door on corner return - Corner returns + corner return halfs, (or halfs and quarters) to corner side, stretchers + halfs to other side<br /><img src=\"images/100Bond/DoorCorner.gif\">";
aDesc[2] = "800 mm Door on end of wall, buts into passing wall - Jamb blocks or cuts<br /><img src=\"images/100Bond/DoorEnd.gif\">";
aDesc[3] = "800 mm door on corner edge - Stretchers + halfs to corner side - Jamb blocks or cuts to other<br /><img src=\"images/100Bond/DoorEdge.gif\">";
function ShowDesc(i)
{     
    var d = document.getElementById("divDesc"); 
    d.innerHTML = aDesc[i];
    d.style.left = "830px";
}
function HideDesc()
{
    document.getElementById("divDesc").style.left = "-1000px";
}   