// TarrantIT 2000
var win=0;
var gab=0;
var wall=0;
var imgShow;
var totalWalls =0;
var currentWall=0;
var currentWindow=0;
var currentEdit="wall";
function nextWall()
{	
	currentWall=wall;
	currentEdit="wall";
	document.getElementById("tblWalls").style.display = "block";
	var wallLen=document.createElement("input");
	wallLen.setAttribute("id", "wallLen"+wall);
	wallLen.setAttribute("width", "60"); // IE
	wallLen.setAttribute("class", "TxtBox1"); // Fox
	wallLen.setAttribute("type", "text");
	wallLen.setAttribute("name", "wallLen"+wall);
	wallLen.onkeypress = CheckNumeric2;
	var del = document.createElement("a");
	del.setAttribute("href", "javascript:RemoveWall("+wall+");");
	var i =document.createElement("img");
	i.setAttribute("src", "images/Delete.gif");
	i.setAttribute("border", "0");
	i.setAttribute("alt", "Remove this wall");
	del.appendChild(i);
	var tr, td;
	var tblBody= document.getElementById("tblWalls");
	tr=tblBody.insertRow(tblBody.rows.length);
	tr.setAttribute("id", "wallRow"+ wall);
	td=tr.insertCell(tr.cells.length);
	td.appendChild(wallLen);
	td=tr.insertCell(tr.cells.length);
	td.appendChild(del);
	wallLen.focus();		
	wall++;
	totalWalls++;
	document.getElementById("spnWallCount").innerHTML=totalWalls;
	document.getElementById("numWalls").value=wall;
	if (wall>0)
		document.getElementById("btnCalc").disabled=false;
}
function nextWindow()
{	
	currentWindow=win;
	currentEdit="window";
	document.getElementById("tblWindows").style.display = "block";
	var del = document.createElement("a");
	del.setAttribute("href", "javascript:RemoveWin("+win+");");
	var i =document.createElement("img");
	i.setAttribute("src", "images/Delete.gif");
	i.setAttribute("border", "0");
	i.setAttribute("alt", "Remove this window");
	del.appendChild(i);
	var winLen=document.createElement("input");
	winLen.setAttribute("id", "winLen"+win);
	winLen.setAttribute("name", "winLen"+win);
	winLen.setAttribute("width", "60");
	winLen.setAttribute("class", "TxtBox1");
	winLen.setAttribute("type", "text");
	winLen.onkeypress = CheckNumeric2;
	var winHei=document.createElement("input");
	winHei.setAttribute("id", "winHei"+win);
	winHei.setAttribute("name", "winHei"+win);
	winHei.setAttribute("width", "60");
	winHei.setAttribute("class", "TxtBox1");
	winHei.setAttribute("type", "text");
	winHei.onkeypress = CheckNumeric2;
	var winHead=document.createElement("input");
	winHead.setAttribute("id", "winHead"+win);
	winHead.setAttribute("name", "winHead"+win);
	winHead.setAttribute("type", "text");
	winHead.setAttribute("width", "30");
	winHead.setAttribute("class", "TxtBox2");
	winHead.setAttribute("value", "10");
	winHead.onkeypress = CheckNumeric2;
	var winSill=document.createElement("input");
	winSill.setAttribute("type", "checkbox");
	winSill.setAttribute("id", "winSill"+win);
	winSill.setAttribute("name", "winSill"+win);
	var winNum=document.createElement("input");
	winNum.setAttribute("id", "winNum"+win);
	winNum.setAttribute("name", "winNum"+win);
	winNum.setAttribute("type", "text");
	winNum.setAttribute("width", "30");
	winNum.setAttribute("class", "TxtBox2");
	winNum.onkeypress = CheckNumeric2;
	winNum.onchange = CountWindows;
	var tr, td;
	var tblBody= document.getElementById("tblWindows");
	tr=tblBody.insertRow(tblBody.rows.length);
	tr.setAttribute("id", "winRow"+ win);
	td=tr.insertCell(tr.cells.length);
	td.appendChild(winLen);
	td=tr.insertCell(tr.cells.length);
	td.appendChild(winHei);
	td=tr.insertCell(tr.cells.length);
	td.appendChild(winHead);
	td=tr.insertCell(tr.cells.length);
	td.appendChild(winSill);
	td=tr.insertCell(tr.cells.length);
	td.appendChild(winNum);
	td=tr.insertCell(tr.cells.length);
	td.appendChild(del);
	winLen.focus();
	win++;
	document.getElementById("numWins").value=win;
	winSill.checked = document.getElementById("cbHasSills").checked;;
}
function nextGable()
{	
	document.getElementById("tblGables").style.display = "block";
	var del = document.createElement("a");
	del.setAttribute("href", "javascript:RemoveGable("+gab+");");
	del.setAttribute("id", "Remove"+gab);
	var i =document.createElement("img");
	i.setAttribute("src", "images/Delete.gif");
	i.setAttribute("border", "0");
	i.setAttribute("alt", "Remove this gable");
	del.appendChild(i);
	var gabLen=document.createElement("input");
	gabLen.setAttribute("id", "gabLen"+gab);
	gabLen.setAttribute("name", "gabLen"+gab);
	gabLen.setAttribute("width", "60");
	gabLen.setAttribute("class", "TxtBox1");
	gabLen.setAttribute("type", "text");
	gabLen.onkeypress = CheckNumeric2;
	var gabHei=document.createElement("input");
	gabHei.setAttribute("id", "gabHei"+gab);
	gabHei.setAttribute("name", "gabHei"+gab);
	gabHei.setAttribute("width", "60");
	gabHei.setAttribute("class", "TxtBox1");
	gabHei.setAttribute("type", "text");
	gabHei.onkeypress = CheckNumeric2;
	var gabLeft=document.createElement("input");
	gabLeft.setAttribute("id", "gabLeft"+gab);
	gabLeft.setAttribute("name", "gabLeft"+gab);
	gabLeft.setAttribute("type", "text");
	gabLeft.setAttribute("width", "60");
	gabLeft.setAttribute("class", "TxtBox1");
	gabLeft.onkeypress = CheckNumeric2;
	var gabBeams=document.createElement("input");
	gabBeams.setAttribute("id", "gabBeams"+gab);
	gabBeams.setAttribute("name", "gabBeams"+gab);
	gabBeams.setAttribute("type", "text");
	gabBeams.setAttribute("width", "30");
	gabBeams.setAttribute("class", "TxtBox2");
	gabBeams.onkeypress = CheckNumeric2;
	var gabNum=document.createElement("input");
	gabNum.setAttribute("id", "gabNum"+gab);
	gabNum.setAttribute("name", "gabNum"+gab);
	gabNum.setAttribute("type", "text");
	gabNum.setAttribute("width", "30");
	gabNum.setAttribute("class", "TxtBox2");
	gabNum.onkeypress = CheckNumeric2;
	var tr, td;
	var tblBody= document.getElementById("tblGables");
	tr=tblBody.insertRow(tblBody.rows.length);
	tr.setAttribute("id", "gabRow"+ gab);
	td=tr.insertCell(tr.cells.length);
	td.appendChild(gabLen);
	td=tr.insertCell(tr.cells.length);
	td.appendChild(gabLeft);
	td=tr.insertCell(tr.cells.length);
	td.appendChild(gabHei);
	td=tr.insertCell(tr.cells.length);
	td.appendChild(gabBeams);
	td=tr.insertCell(tr.cells.length);
	td.appendChild(gabNum);
	td=tr.insertCell(tr.cells.length);
	td.appendChild(del);
	gabLen.focus();
	gab++;
	document.getElementById("numGables").value=gab;
}
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 numCtrls=document.form1.length;
	var height=0;
	var currentHead=0; 
	var alertHeader=" is not a valid value for ";
	var alertFooter="\nEnter a valid value or click cross to remove entry";
	var millBy200 = " must be in millimetres by 200\neg: 1800, 2000, 2200 etc";
	for (ctrlIndex=0; ctrlIndex<numCtrls; ctrlIndex++)
	{
		element=document.form1[ctrlIndex];
		if (element.type=="text" || element.type=="checkbox")
		{
			var val = element.value == "" ? "NULL" : element.value;
			switch (element.id.substring(0,6))
			{
				case "winLen":
					if (!TestValue(val, "winLen"))
					{
						element.style.background="#ff0000";
						alert(val + alertHeader+' Window Lengths.\nWindow length'+ millBy200 + alertFooter);
						element.style.background="#ffffff";
						element.focus();
						element.select();
						return false;
					}
					break;
				case "winHei":
					if (!TestValue(val, "winHei"))
					{
						element.style.background="#ff0000";
						alert(val + alertHeader+' Window Height.\nWindow height must be in millimetres by 100\neg: 1100, 1200, 1300 etc'+ alertFooter);
						element.style.background="#ffffff";
						element.focus();
						element.select();
						return false;
					}
					height=val;  // to check valid
					break;
				case "winHea":
					if (!TestValue(val, "winHead"))
					{
						element.style.background="#ff0000";
						alert(val + alertHeader+' Window Head.\nWindow head must be in courses\neg: 10, 11, 12 etc'+ alertFooter);
						element.style.background="#ffffff";
						element.focus();
						element.select();
						return false;
					}
					if (val *200 < height)
					{
						element.style.background="#ff0000";
						alert('Head height can not be lower than window height'+ alertFooter);
						element.style.background="#ffffff";
						element.focus();
						element.select();
						return false;
					}
					currentHead = val;
					break;
				case "winSil":
					if (element.checked)
					{
						if (currentHead *200 == height)
						{
							element.style.background="#ff0000";	
							if (! confirm("A window with height of "+ height +"\n\rand head at "+ currentHead +" courses\n\rcan not have a sill\n\r\n\rRemove sill and Continue?"))
								return false;
							element.checked = false;
						}
					}
				break;
				case "winNum":
					if (!TestValue(val, "winNum"))
					{
						element.style.background="#ff0000";
						alert(val + alertHeader+' Number of Windows this size.\nNumber of windows must be a plain number\neg: 1, 2, 3 etc'+ alertFooter);
						element.style.background="#ffffff";
						element.focus();
						element.select();
						return false;
					}
					break;
				case "wallLe":
					if (!TestValue(val, "wall"))
					{
						element.style.background="#ff0000";
						alert(val + alertHeader+' Wall Lengths.\nWall length'+ millBy200 + alertFooter);
						element.style.background="#ffffff";
						element.focus();
						element.select();
						return false;
					}
					break;
				case "gabLen":    
					if (!TestValue(val, "wall"))
					{
						element.style.background="#ff0000";
						alert(val + alertHeader+' Gable Lengths.\nGable length'+ millBy200 + alertFooter);
						element.style.background="#ffffff";
						element.focus();
						element.select();
						return false;
					}
					break;
				case "gabLef":    
					if (!TestValue(val, "wall"))
					{
						element.style.background="#ff0000";
						alert(val + alertHeader+' Gable left length.\nGable left length'+ millBy200 + alertFooter);
						element.style.background="#ffffff";
						element.focus();
						element.select();
						return false;
					}
					break;
				case "gabBea":
					if (!TestValue(val, "gabBe"))
					{
						element.style.background="#ff0000";
						alert(val + alertHeader+' Gable bond beams.\nGable bond beams must be a plain number\neg: 1, 2 etc'+ alertFooter);
						element.style.background="#ffffff";
						element.focus();
						element.select();
						return false;
					}
					break;	
				case "gabHei":
					if (!TestValue(val, "winHei"))
					{
						element.style.background="#ff0000";
						alert(val + alertHeader+' Gable height.\nGable height must be in millimetres\neg: 1040, 1250 etc'+ alertFooter);
						element.style.background="#ffffff";
						element.focus();
						element.select();
						return false;
					}
					break;
				case "gabNum":
					if (!TestValue(val, "winNum"))
					{
						element.style.background="#ff0000";
						alert(val + alertHeader+' Mumber of Gables this size.\nNumber of Gables must be a plain number\neg: 1, 2 etc'+ alertFooter);
						element.style.background="#ffffff";
						element.focus();
						element.select();
						return false;
					}
					break;
			}
		}
	}
	return true;
}
function TestValue(str, type)
{
	if (str=="")
	{
		return false;
	}
	var reg;
	switch (type)
	{
		case "winLen":
			reg = new RegExp("^\\d{1,4}00$");// from 100 to 99000
			break;	
		case "winHei":
			reg = new RegExp("^\\d{1,2}00$");// from 100 to 900
			break;
		case "winHead":
			reg = new RegExp("^\\d{1,2}$");// from 1 to 99
			break;
		case "winNum":
			reg = new RegExp("^\\d{1,2}$");// from 1 to 99
			break;
		case "gabBe":
			reg = new RegExp("^\\d{1}$");// from 1 to 9
			break;	
		case "wall":
			return (str%200 ==0 && str >300 && str < 1000000);
			break;	
	}
	if (reg != null)
		return(reg.test(str));
	else
		return false;
}
function ShowAlert()
{
	alert('Invalid value');
}
function RemoveWin(index)
{
	var dice = document.getElementById("winRow"+index);
	if (dice != null)
	{
		dice.parentNode.removeChild(dice);
		CountWindows();
	}
	currentEdit="window";
}
function RemoveGable(index)
{
	var dice = document.getElementById("gabRow"+index);
	if (dice != null)
		dice.parentNode.removeChild(dice);
}
function RemoveWall(index)
{
	var dice = document.getElementById("wallRow"+index);
	if (dice != null)
	{
		dice.parentNode.removeChild(dice);
		totalWalls--;
		document.getElementById("spnWallCount").innerHTML=totalWalls;
		if (totalWalls==0)
			document.getElementById("btnCalc").disabled=false;
	}
	currentEdit="wall";
}
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
	{
		var f = document.form1;
		var totMisc=f["txtMiscStretcher"].value + f["txtMiscHalf"].value + f["txtMiscKnoc"].value + f["txtMiscLintel"].value;
		totMisc+=f["txtMiscKoLintel"].value + f["txtMiscCornoc"].value + f["txtMiscHH"].value + f["txtMiscHHH"].value + f["txtMiscSill"].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)
	{
		for (var y=0; y<totWalls; y++)
		{
			nextWall();
			document.getElementById("wallLen"+y).value=aWall[y];
		}
		var totalWindows=aWindows.length;
		var n=0;
		if (totalWindows >0)
		{
			for (var c=0; c<totalWindows; c+=5)
			{
				nextWindow();
				document.getElementById("winLen"+n).value=aWindows[c];
				document.getElementById("winHei"+n).value=aWindows[c+1];
				document.getElementById("winHead"+n).value=aWindows[c+2];
				document.getElementById("winSill"+n).checked=aWindows[c+3]=="true";
				document.getElementById("winNum"+n).value=aWindows[c+4];
				n++;
			}
			CountWindows();
		}
		var totalGables=aGables.length;
		if (totalGables >0)
		{
			n=0;
			for (var c=0; c<totalGables; c+=5)
			{
				nextGable();
				document.getElementById("gabLen"+n).value=aGables[c];
				document.getElementById("gabLeft"+n).value=aGables[c+1];
				document.getElementById("gabHei"+n).value=aGables[c+2];
				document.getElementById("gabBeams"+n).value=aGables[c+3];
				document.getElementById("gabNum"+n).value=aGables[c+4];
				n++;
			}
		}
		var Misc =document.getElementById("txtMiscStretcher").value+document.getElementById("txtMiscHalf").value;
		Misc+=document.getElementById("txtMiscKnoc").value+document.getElementById("txtMiscCornoc").value;
		Misc+=document.getElementById("txtMiscLintel").value+document.getElementById("txtMiscKoLintel").value;
		Misc+=document.getElementById("txtMiscHH").value+document.getElementById("txtMiscHHH").value;
		Misc+=document.getElementById("txtMiscSill").value;
		if (Misc >0)
			ToggleMisc();
	}
	else
	{
		document.getElementById("btnCalc").disabled=true;
	}
	if (document.getElementById("pnlResults") != null)
		document.getElementById("pnlResults").focus();
	if (document.getElementById("txtBullCorners").value > 0 ||	document.getElementById("txtBullEnds").value > 0 || document.getElementById("txtSquint").value > 0)
		ToggleBull();
}	
function gabLen_onchange(ctl)
{
	alert(ctl.value);
}
function mailJob_onclick()
{
	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", "200_Series_Quantity_Results");
	var txt=document.createElement("textarea");			
	txt.setAttribute("name", "body");
	txt.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_200_Series_results\nTop\n";
	if(document.getElementById("lblFull")!=null)
		results+="20.01__Stretcher\t\t"+ document.getElementById("lblFull").innerHTML;
	if(document.getElementById("lblHalf")!=null)
		results+="\n20.03__Half\t\t"+ document.getElementById("lblHalf").innerHTML;
	if(document.getElementById("lblKnoc")!=null)
		results+="\n20.20__Knockout\t\t"+document.getElementById("lblKnoc").innerHTML;
	if(document.getElementById("lblLintel")!=null)
		results+="\n20.12__Lintel\t\t"+ document.getElementById("lblLintel").innerHTML;	
	if(document.getElementById("lblKoLint")!=null)
		results+="\n20.28__Knockout-Lintel\t\t"+ document.getElementById("lblKoLint").innerHTML;
	if(document.getElementById("lblCorner")!=null)
		results+="\n20.21__Corner\t\t"+ document.getElementById("lblCorner").innerHTML;
	if(document.getElementById("lblHH")!=null)
		results+="\n20.71__Half_Height\t\t"+ document.getElementById("lblHH").innerHTML;
	if(document.getElementById("lblHHH") != null)
		results+="\n20.73__Half_Height_Half\t\t"+ document.getElementById("lblHHH").innerHTML;
	if(document.getElementById("lblSill") != null)
		results+="\n20.38__Sill\t\t"+ document.getElementById("lblSill").innerHTML;
	if(document.getElementById("lblBullStretcher") != null)
		results+="\n20.713__Bull\t\t"+ document.getElementById("lblBullStretcher").innerHTML;
	if(document.getElementById("lblBullHalf") != null)
		results+="\n20.714__Bull_Half\t\t"+ document.getElementById("lblBullHalf").innerHTML;
	if(document.getElementById("lblSquint") != null)
		results+="\n20.739__Squint\t\t"+ document.getElementById("lblSquint").innerHTML;
	if(document.getElementById("lblTopTotal") != null)
		results+="\nTotal__Top\t\t"+ document.getElementById("lblTopTotal").innerHTML;
	results+="\n\nBase\n";
	if(document.getElementById("lblBaseStretcher")!=null)
		results+="20.01__Stretcher\t\t"+ document.getElementById("lblBaseStretcher").innerHTML;
	if(document.getElementById("lblBaseHalf")!=null)
		results+="\n20.01__Half\t\t"+ document.getElementById("lblBaseHalf").innerHTML;
	if(document.getElementById("lblBaseKo")!=null)
		results+="\n20.20__Knockout\t\t"+document.getElementById("lblBaseKo").innerHTML;
	if(document.getElementById("lblBaseCorner")!=null)
		results+="\n20.21__Corner\t\t"+document.getElementById("lblBaseCorner").innerHTML;
	if(document.getElementById("lblBaseBull")!=null)
		results+="\n20.713__Bull\t\t"+document.getElementById("lblBaseBull").innerHTML;	
	if(document.getElementById("lblBaseBullHalf")!=null)
		results+="\n20.714__Bull_Half\t\t"+document.getElementById("lblBaseBullHalf").innerHTML;
	if(document.getElementById("lblBaseSquint")!=null)
		results+="\n20.739__Bull_Half\t\t"+document.getElementById("lblBaseSquint").innerHTML;
	if(document.getElementById("lblBaseTotal") != null)
		results+="\nTotal__Base\t\t"+ document.getElementById("lblBaseTotal").innerHTML;
	if(document.getElementById("lblTotal") != null)
		results+="\n\nGrand__Total\t\t"+ document.getElementById("lblTotal").innerHTML;
	results+="\n";
	if(document.getElementById("lblConcrete") != null)
		results+="\nCore_Fill\t\t"+ document.getElementById("lblConcrete").innerHTML;
	if(document.getElementById("lblSteel") != null)
		results+="\nHoriz_Steel\t\t"+ document.getElementById("lblSteel").innerHTML;
    if (document.getElementById("lblPallets") != null)
		results+="\nPallets\t\t"+ document.getElementById("lblPallets").innerHTML;
	if(document.getElementById("lblCement") != null)
		results+="\nCement\t\t"+ document.getElementById("lblCement").innerHTML;
	if(document.getElementById("lblLoam") != null)
		results+="\nLoam\t\t"+ document.getElementById("lblLoam").innerHTML;
	if(document.getElementById("lblArea") != null)
		results+="\nArea\t\t"+ document.getElementById("lblArea").innerHTML;
	return results;
}
var showBull = false;
function ToggleBull()
{
	if (showBull)
	{
		document.getElementById("tblBull").style.display = "none";
		document.getElementById("spnBull").innerHTML="Show Bullnose & Squint";
		document.images["imgBull"].src = "images/edit.gif";
	}
	else
	{
		document.getElementById("tblBull").style.display = "block";
		document.getElementById("spnBull").innerHTML="Hide Bullnose & Squint";
		document.images["imgBull"].src = "images/Cancel.gif";
	}
	showBull = ! showBull;
}
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 CbHasHH_onclick(ctrl)
{
	if (ctrl.checked)
		alert("This will add a half height course to the bottom of the walls\r\neffectively  'jacking up' the building 100mm\r\nDo not add this extra 100 mm to opening heights");
}
function Demo()
{
	if (wall > 0 || win >0)
	{
		if (! confirm("This action will overwrite current entries\n\r\n\rContinue?"))
		return;
	}
	if (showMisc)
	{
		ClearMisc();
		ToggleMisc();
	}
	if (document.getElementById("pnlResults") != null)
		document.getElementById("pnlResults").style.display="none";
	ClearWalls();
	ClearWindows();
	ClearGables();
	
	if (! showSet)
		ToggleSet();
	if (! confirm("This Demo will Randomly Generate a Job\n\r\n\rKeep clicking OK to step through or Cancel to stop\n\r\n\rClick 'Show Settings' to edit blocks per bag cement\n\rblocks per pallet, blocks per m3 loam etc\n\r\n\rClick 'Hide Settings' to hide\n\r\n\rContinue?"))
		return;
	ToggleSet();
	var clr = "lawngreen";	
	document.getElementById("txtCourses").style.backgroundColor=clr;
	document.getElementById("ddEnds").value = Math.ceil(Math.random()*2) *2;
	document.getElementById("ddEnds").style.backgroundColor=clr;
	document.getElementById("txtSteelDoors").value = Math.floor(Math.random()*3)+1;
	document.getElementById("txtSteelDoors").style.backgroundColor=clr;
	document.getElementById("txtStarters").value = Math.floor(Math.random()*40)+60;;
	document.getElementById("txtStarters").style.backgroundColor=clr;
	if (! confirm("Enter top courses, base courses, ends\n\rbond beams, doors, starters etc\n\r\n\rDoors are standard 800 X 2000 steel frames\n\r\n\r1 single wall has 2 ends\n\r\n\rA 4 walled box has 0 ends\n\r\n\rCheck 'Silll Beams' for bond beams under sills\n\r\n\rStarters are vertical filled cores\n\r\n\rContinue?"))
		return;
	for (var i=0; i< (4+ Math.ceil(Math.random()*10)); i++)
	{
		nextWall();
		document.getElementById("wallLen"+i).value=2000+ (Math.ceil(Math.random()*100)*200);
		document.getElementById("wallLen"+i).style.background=clr;
	}
	if (! confirm("Click 'Add Wall' to add wall lengths in millimetres by 200\n\r\n\rClick red cross to remove walls\n\r\n\rContinue?"))
		return;
	var wc=0;
	for (var i=0; i< (2+ Math.ceil(Math.random()*4)); i++)
	{
		nextWindow();
		document.getElementById("winLen"+wc).value=600+ (Math.ceil(Math.random()*7)*200);
		document.getElementById("winLen"+wc).style.backgroundColor=clr;
		document.getElementById("winHei"+wc).value=600+ (Math.ceil(Math.random()*7)*100);
		document.getElementById("winHei"+wc).style.backgroundColor=clr;
		document.getElementById("winHead"+wc).value=10;
		document.getElementById("winHead"+wc).style.backgroundColor=clr;
		document.getElementById("winNum"+wc).value=Math.ceil(Math.random()*3); 
		document.getElementById("winNum"+wc).style.backgroundColor=clr;
		wc++;
	}
	CountWindows();
	if (! confirm("Click 'Add Window' to add Windows / Openings\n\r\n\rWidth in millimetres by 200\n\r\n\rHeight in millimetres by 100\n\r\n\rHead height in courses\n\r\n\rNumber windows this size\n\r\n\rClick red cross to remove window\n\r\n\rContinue?"))
		return;
	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("txtMiscKnoc").value = Math.floor(Math.random()*10)+10; 
	document.getElementById("txtMiscKnoc").style.backgroundColor=clr;
	if (! showMisc)
		ToggleMisc()
		
	if (confirm("Click 'Show Miscellaneous' to enter miscellaneous entries\n\r\n\rClick 'Calculate Quantitiy' to finish\n\r\n\rCalculate now?"))
	{
		if (CheckForm())
		{
		    document.getElementById("hdnIsDemo").value = "true";
			__doPostBack('btnCalc','');
		}
	}
	else
	{
		ClearWalls();
		ClearWindows();
		CountWindows();
		ClearMisc();
		ToggleMisc();
		document.getElementById("txtCourses").style.backgroundColor="white";
		document.getElementById("ddEnds").value = 0;
		document.getElementById("ddEnds").style.backgroundColor="white";
		document.getElementById("txtSteelDoors").value = 0;
		document.getElementById("txtSteelDoors").style.backgroundColor="white";
		document.getElementById("txtStarters").value = 0;
		document.getElementById("txtStarters").style.backgroundColor="white";
		document.getElementById("txtMiscStretcher").style.backgroundColor="white";
		document.getElementById("txtMiscHalf").style.backgroundColor="white";
		document.getElementById("txtMiscKnoc").style.backgroundColor="white";
	}
}	
function ClearWalls()
{
	if (wall > 0)
	{
		for (var i=0; i<wall; i++)
		{
			RemoveWall(i);
		}
	}
	wall=0;
	aWall.length=0;
	document.getElementById("numWalls").value=0;
	totalWalls=0;
}
function ClearWindows()
{
	if (win>0)
	{
		for (var i=0; i<win; i++)
		{
			RemoveWin(i);
		}
	}
	win=0;
	aWindows.length=0;
	document.getElementById("numWins").value=0;
	wc=0;
}
function ClearGables()
{
	if (gab>0)
	{
		for (var i=0; i<gab; i++)
		{
			RemoveGable(i);
		}
	}
	gab=0;
	aGables.length=0;
	document.getElementById("numGables").value=0;
}
function ClearMisc()
{
	document.getElementById("txtMiscStretcher").value ="";
	document.getElementById("txtMiscHalf").value ="";
	document.getElementById("txtMiscKnoc").value ="";
	document.getElementById("txtMiscCornoc").value ="";
	document.getElementById("txtMiscLintel").value ="";
	document.getElementById("txtMiscKoLintel").value ="";
	document.getElementById("txtMiscHH").value ="";
	document.getElementById("txtMiscHHH").value ="";
	document.getElementById("txtMiscSill").value ="";
}
function PrintDataEntry()
{
	var winFeatures = "width=850,height=920,status=no,toolbar=no,menubar=no,location=no";
	var w = window.open("Sheets/Est200DataEntry.htm","Estimator200DataEntry",winFeatures);
	w.focus();
}
function CountWindows()
{
	var winTotal =0;
	var winArea = 0;
	var winW = 0;
	var winH = 0;
	var numCtrls=document.form1.length;
	var element;
	for (var i=0; i<numCtrls; i++)
	{
		element=document.form1[i];
		if (element.id.substring(0,6) == "winNum")
		{
			if (! isNaN  (parseInt(element.value)))
				winTotal+= parseInt(element.value);
		}
		if (element.id.substring(0,6) == "winLen")
			winW = parseInt(element.value);
		if (element.id.substring(0,6) == "winHei")
			winH = parseInt(element.value);
		if (element.id.substring(0,6) == "winNum")
		{
			winArea+= winW/1000 * winH/1000 * parseInt(element.value);
		}
	}
	var tip = winTotal +" total windows";
	if (! isNaN(winArea))
		tip+= " Total window area = "+ winArea.toFixed(2) +" m2";
	document.getElementById("spnWinCount").innerHTML = winTotal;
	document.getElementById("spnWinCount").title= tip;
}
function CbHasSills_onclick(ctrl)
{
	var numCtrls=document.from1.length;
	var element;
	for (var i=0; i<numCtrls; i++)
	{
		element=document.form1[i];
		if (element.id.substring(0,6) == "winSil")
		{
			element.checked = ctrl.checked;
		}
	}
}
document.onkeydown = HandleDown;
function HandleDown(evt)
{
	evt=(evt) ? evt : ((event) ? event : null);
	if(evt)
	{
		switch (evt.keyCode)
		{			
			case 40:
				if(currentEdit == "wall")
					nextWall(); // down
				else
					nextWindow();
				break;
			
			case 38:
				if(currentEdit == "wall")
				{
					if (currentWall > -1)
					{
						RemoveWall(currentWall);
						currentWall--;
					}
				}
				else
				{
					if (currentWindow > -1)
					{
						RemoveWin(currentWindow);
						currentWindow--;
					}
				}
				break;
			case 37:
				currentEdit = "wall";
				break;
			case 39:
				currentEdit ="window";
				break;					
		}		
	}
}
function ShowBlock(blockId, event)
{	
	document.images["imgShowType"].src="images/Blocks/"+ blockId +".jpg";
}
function HideBlock()
{
	document.images["imgShowType"].src="images/1X1.gif";
}

