// JavaScript Document
function calcarea() {
	var unt = 'burp';
	var mtag = document.getElementById('unit').value;
	if (mtag == '0.0254' ) {
		 unt = 'Inches';
	}else if (mtag == '0.3048' ) {
		 unt = 'Feet';
	}else if (mtag == '0.001' ) {
		 unt = 'mm';
	}else if (mtag == '0.01' ) {
		 unt = 'cm';
	}else if (mtag == '1' ) {
		 unt = 'm';
	}
	document.getElementById('Units_field').value = unt;
	
	var area = ((document.getElementById('Width_field').value * document.getElementById('unit').value) * (document.getElementById('Height_field').value  * document.getElementById('unit').value)) 
	area = Math.ceil((Math.round(area*1000)/1000)* 100) /100;


	var areacost =  area * document.getElementById('pms').value;
	var whatedge = document.getElementById('edging').value;
	var ed = 'ed_'+(whatedge);
	var ced = 'ced_'+(whatedge);
	var aed = 'aed_'+(whatedge);
	var ahed = 'ahed_'+(whatedge);

	var shap = document.getElementById('shape').value;
	var shape = shap.substring(0, shap.length-4);

	if (shape == 'triangle'){
		var edgingcost = (((document.getElementById('Width_field').value * document.getElementById('unit').value) + (document.getElementById('Height_field').value * document.getElementById('unit').value)) * 2 ) * ((document.getElementById(ed).value *1));
	}

	if (shape == 'quarter') {
		var edgingcost = (((Math.sqrt(.5 * (((document.getElementById('Width_field').value * document.getElementById('unit').value) * (document.getElementById('Width_field').value * document.getElementById('unit').value)) + ((document.getElementById('Height_field').value * document.getElementById('unit').value) * (document.getElementById('Height_field').value * document.getElementById('unit').value))))) * (3.14159265 * 2)) / 2) * ((document.getElementById(ced).value *1));
	}

	document.getElementById("shelf").width = Math.ceil(((document.getElementById('Width_field').value * document.getElementById('unit').value) * 112.35));
	document.getElementById("shelf").height = Math.ceil(((document.getElementById('Height_field').value * document.getElementById('unit').value) * 112.35));

	if (shape == 'half') {
		var edgingcost = (((Math.sqrt(.5 * (((document.getElementById('Width_field').value * document.getElementById('unit').value) * (document.getElementById('Width_field').value * document.getElementById('unit').value)) + ((document.getElementById('Height_field').value * document.getElementById('unit').value) * (document.getElementById('Height_field').value * document.getElementById('unit').value))))) * (3.14159265 * 2)) / 2) * ((document.getElementById(ced).value *1))*2;
		document.getElementById("shelf").width = Math.ceil(((document.getElementById('Width_field').value * document.getElementById('unit').value) * 112.35))*2;
		document.getElementById("shelf").height = Math.ceil(((document.getElementById('Height_field').value * document.getElementById('unit').value) * 112.35));
		areacost =  area * document.getElementById('pms').value *2;
		document.getElementById("Shape_Field").value = "half RADIUS X"
	}

		document.getElementById('Edge_Finish_field').value = 'Polished Edge';

	var bracketcost = 0.00;
	var quant = document.getElementById('Quantity_Brackets_Field').value;
	var bracket = document.getElementById('Bracket_Type_Field').value;
	var idx = bracket.indexOf("__");
	var bracketcost = bracket.substring(idx+2);
	bracketcost = bracketcost * quant;

	var shelfcost = edgingcost + areacost;

	// MINIMUM PRICE EXCLUDING VAT
	if (shelfcost < 15.00){
		shelfcost = 15.00;
	}

	var vat_rate = document.getElementById('vat_rate').value*1;
	var fincost =  shelfcost+ bracketcost;
	var showcost = fincost + (fincost*vat_rate);

	// DISCOUNT CODE
	discount = document.getElementById('discount').value;
	discount = discount / 100;
	saved = showcost*discount;
	showcost = (showcost - saved);
	if (saved != 0) {
		document.getElementById('saved-amount').innerHTML="&nbsp;&nbsp;&nbsp;&nbsp;You Saved &pound;" +saved.toFixed(2);
	} else {
		document.getElementById('saved-amount').innerHTML="";
	}

	fincost = fincost.toFixed(2);
	showcost = showcost.toFixed(2);

	document.getElementById('Item_field').value = fincost;
	if (fincost > 0 ) {
		document.getElementById('info').innerHTML = "&pound;" + showcost ;
	}else {
		document.getElementById('info').innerHTML = "You must choose your size, shape &amp; Glass thickness first.";
	}
}

function changevals()
	{ 
		var req = null; 

		document.getElementById('info').value="Started...";
 
		if (window.XMLHttpRequest)
		{
 			req = new XMLHttpRequest();
			if (req.overrideMimeType) 
			{
				req.overrideMimeType('text/xml');
			}
		} 
		else if (window.ActiveXObject) 
		{
			try {
				req = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e)
			{
				try {
					req = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			}
	        	}


		req.onreadystatechange = function()
		{ 
			document.getElementById('info').value="Wait server...";
			if(req.readyState == 4)
			{
				if(req.status == 200)
				{
					// process a XML document here
					var doc = req.responseXML;
					var pms = doc.getElementsByTagName('pms').item(0);
					var ed_0 = doc.getElementsByTagName('ed_0').item(0);
					var ed_1 = doc.getElementsByTagName('ed_1').item(0);
					var ed_2 = doc.getElementsByTagName('ed_2').item(0);
					var ced_0 = doc.getElementsByTagName('ced_0').item(0);
					var ced_1 = doc.getElementsByTagName('ced_1').item(0);
					var ced_2 = doc.getElementsByTagName('ced_2').item(0);
					var aed_0 = doc.getElementsByTagName('aed_0').item(0);
					var aed_1 = doc.getElementsByTagName('aed_1').item(0);
					var aed_2 = doc.getElementsByTagName('aed_2').item(0);
					var ahed_0 = doc.getElementsByTagName('ahed_0').item(0);
					var ahed_1 = doc.getElementsByTagName('ahed_1').item(0);
					var ahed_2 = doc.getElementsByTagName('ahed_2').item(0);
					var holes = doc.getElementsByTagName('holes').item(0);
					var max_h = doc.getElementsByTagName('max_h').item(0);
					var max_w = doc.getElementsByTagName('max_w').item(0);
					document.getElementById('pms').value= pms.firstChild.data;
					document.getElementById('ed_0').value= ed_0.firstChild.data;
					document.getElementById('ed_1').value= ed_1.firstChild.data;
					document.getElementById('ed_2').value= ed_2.firstChild.data;
					document.getElementById('ced_0').value= ced_0.firstChild.data;
					document.getElementById('ced_1').value= ced_1.firstChild.data;
					document.getElementById('ced_2').value= ced_2.firstChild.data;
					document.getElementById('aed_0').value= aed_0.firstChild.data;
					document.getElementById('aed_1').value= aed_1.firstChild.data;
					document.getElementById('aed_2').value= aed_2.firstChild.data;
					document.getElementById('ahed_0').value= ahed_0.firstChild.data;
					document.getElementById('ahed_1').value= ahed_1.firstChild.data;
					document.getElementById('ahed_2').value= ahed_2.firstChild.data;
					document.getElementById('holes').value= holes.firstChild.data;
					document.getElementById('max_h').value= max_h.firstChild.data;
					document.getElementById('max_w').value= max_w.firstChild.data;
					calcarea();

				}	
				else	
				{
					document.getElementById('info').value="Error: returned status code " + req.status + " " + req.statusText + "xml_data_providor.php?glass_id="+document.getElementById('type');
				}	
				
				
			} 
		}; 
		var type = document.getElementById('type').value;
		var idx = type.indexOf("[");
		var g_id = type.substring(0,idx);
		document.getElementById('Type_field').value = type.substring(idx+1);
		req.open("GET", "xml_data.php?glass_id="+g_id, true); 
		req.send(null); 
	calcarea();
	validatemate();
	} 

function changemirror() {
	if (!IsNumeric(document.getElementById('Width_field').value)) {
		alert("Only numbers or decimal points are allowed in the X field");
		document.getElementById('Width_field').value = ((1000 / 1000) / document.getElementById('unit').value);
	} else 	if (!IsNumeric(document.getElementById('Height_field').value)) {
		alert("Only numbers or decimal points are allowed in the Y field");
		document.getElementById('Height_field').value = ((1000 / 1000) / document.getElementById('unit').value);
	} else {
		document.getElementById("shelf").src = document.getElementById('shape').value;
		width = Math.ceil(((document.getElementById('Width_field').value * document.getElementById('unit').value) * 112.35));
		height = Math.ceil(((document.getElementById('Height_field').value * document.getElementById('unit').value) * 112.35));
		document.getElementById("shelf").style.width = width;
		document.getElementById("shelf").style.height = height;
		var str = document.getElementById('shape').value;
		var newStr = str.substring(0, str.length-4);
		document.getElementById('Shape_Field').value = newStr;
		var str = document.getElementById('clipped').value;
		document.getElementById('Clipped_Field').value = str;
	}
	changevals();
}

function validatewidth() {
	if (!IsNumeric(document.getElementById('Width_field').value)) {
		alert("Only numbers or decimal points are allowed in the X field");
		document.getElementById('Width_field').value = ((1000 / 1000) / document.getElementById('unit').value);
	} else 	if (!IsNumeric(document.getElementById('Height_field').value)) {
		alert("Only numbers or decimal points are allowed in the Y field");
		document.getElementById('Height_field').value = ((1000 / 1000) / document.getElementById('unit').value);
	} else {
		var factor = 1;
		if (document.getElementById('shape').value == "half.png") {
			factor = 2;
		}
		if (Math.round((document.getElementById('Width_field').value *(document.getElementById('unit').value)*100))/100 * factor > (1.4)){
			alert('The maximum X Value for a custom shelf is '+Math.round((1.4 / factor)  / document.getElementById('unit').value * 100) /100);
			document.getElementById('Width_field').value = Math.round((1.4 / factor)  / document.getElementById('unit').value * 100)/ 100;
		}
		if ((document.getElementById('Width_field').value * document.getElementById('unit').value) / factor < (0.125)){
			alert('The minimum X Value for a custom shelf is '+(0.125 * factor) / document.getElementById('unit').value );
			document.getElementById('Width_field').value = ((0.125 * factor) / document.getElementById('unit').value);
		}
		if (document.getElementById('shape').value == "half.png") {
			document.getElementById('Height_field').value = document.getElementById('Width_field').value;
		}
	}
}

function validateheight() {
	if (!IsNumeric(document.getElementById('Width_field').value)) {
		alert("Only numbers or decimal points are allowed in the X field");
		document.getElementById('Width_field').value = ((1000 / 1000) / document.getElementById('unit').value);
	} else if (!IsNumeric(document.getElementById('Height_field').value)) {
		alert("Only numbers or decimal points are allowed in the Y field");
		document.getElementById('Height_field').value = ((1000 / 1000) / document.getElementById('unit').value);
	} else {
		if (Math.round((document.getElementById('Height_field').value * (document.getElementById('unit').value)*100))/100 > 1.4) {
			alert('The maximum Y Value for a custom shelf is '+ Math.round(1.4 / document.getElementById('unit').value * 100) /100 );
			document.getElementById('Height_field').value = Math.round(1.4 / document.getElementById('unit').value * 100) /100;
		}
		if (Math.round(document.getElementById('Height_field').value * document.getElementById('unit').value * 100) /100 < 0.125) {
			alert('The minimum Y Value for a custom shelf is '+ Math.round(0.125 / document.getElementById('unit').value * 100) /100 );
			document.getElementById('Height_field').value = Math.round(0.125 / document.getElementById('unit').value * 100) /100;
		}
		if (document.getElementById('shape').value == "half.png") {
			document.getElementById('Height_field').value = document.getElementById('Width_field').value;
		}
	}
}

function validatemate() {
	validatewidth();
	validateheight();
	calcarea();
}

function changefixing() {
	var fix = document.getElementById('Fixings_Field').value;
	
	if ( fix == "Adhesive") {
		document.getElementById('Number_of_Holes_Field').value = 0;
		document.getElementById('Number_of_Holes_Field').disabled = true;
		document.getElementById('fix_desc').innerHTML = "<table width:100%;'><tr><td align=left width=50px></td><td align=left><b>Adhesive</b></td></tr><tr><td align=left width=50px><img src='images/stories/adhesive.png' height = 50px /></td><td align=left>This is supplied in a standard projector gun tube.<br />The glue should be applied in thin lines some 40-50mm apart. The shelf should be supported for 24 hours to allow time for full curing to bonding surface.</td></tr></table>";
	}else if ( fix == "Screws") {
		document.getElementById('Number_of_Holes_Field').value = 4;
		document.getElementById('Number_of_Holes_Field').disabled = false;
		document.getElementById('fix_desc').innerHTML = "<table style='width:100%;'><tr><td align=left width=50px></td><td align=left><b>Screws</b></td></tr><tr><td align=left width=50px><img src='images/stories/screw.png' height = 50px /></td><td align=left>These are supplied complete with clear plastic sleeve and 15mm flat chrome cap.<br />Please be certain to select the correct number of holes for your shelf.</td></tr></table>";
	}else {
		document.getElementById('Number_of_Holes_Field').disabled = false;
		document.getElementById('fix_desc').innerHTML = "<table style='width:100%;'><tr><td width=50px height=50px>&nbsp;</td><td>&nbsp;</td></tr><tr><td width=50px>&nbsp;</td><td>&nbsp;</td></tr></table>";
	}
	changemirror();
}

function changebrackets() {
	var bracket = document.getElementById('Bracket_Type_Field').value;
	var idx = bracket.indexOf("__");
	var bracketName= bracket.substring(0,idx);

	if ( bracketName == 'None' ) {
		document.getElementById('Quantity_Brackets_Field').value = '0';
		document.getElementById('fix_desc').innerHTML = "<table style='width:100%;'><tr><td width=50px height=50px>&nbsp;</td><td>&nbsp;</td></tr><tr><td width=50px>&nbsp;</td><td>&nbsp;</td></tr></table>";
	}
	else if ( bracketName == 'Small') {
		document.getElementById('fix_desc').innerHTML = "<table width:100%;'><tr><td align=left width=50px></td><td align=left><b>Small Brackets</b></td></tr><tr><td align=left width=50px><img alt='Small Bracket' src='images/small_bracket.png' height = 50px /></td><td align=left>These brackets are sufficient for shelf widths upto Max Projection of 150mm and Max Width between Brackets of 600mm<br /><b>THE MAXIMUM LOAD CAPACITY FOR A PAIR OF THESE BRACKETS IS 10kg.</b></td></tr></table>";
	}
	else if ( bracketName == 'Medium') {
		document.getElementById('fix_desc').innerHTML = "<table style='width:100%;'><tr><td align=left width=50px></td><td align=left><b>Medium Brackets</b></td></tr><tr><td align=left width=50px><img alt='Medium Bracket' src='images/medium_bracket.png' height = 50px /></td><td align=left>These brackets are sufficient for shelf widths upto Max Projection of 200mm and Max Width between Brackets of 700mm<br /><b>THE MAXIMUM LOAD CAPACITY FOR A PAIR OF THESE BRACKETS IS 14kg.</b></td></tr></table>";
	}
	else if ( bracketName == 'Large') {
		document.getElementById('fix_desc').innerHTML = "<table style='width:100%;'><tr><td align=left width=50px></td><td align=left><b>Large Brackets</b></td></tr><tr><td align=left width=50px><img alt='Large Bracket' src='images/large_bracket.png' height = 50px /></td><td align=left>These brackets are sufficient for shelf widths upto Max Projection of 250mm and Max Width between Brackets of 800mm<br /><b>THE MAXIMUM LOAD CAPACITY FOR A PAIR OF THESE BRACKETS IS 20kg.</b></td></tr></table>";
	}
	else {
		document.getElementById('fix_desc').innerHTML = "<table style='width:100%;'><tr><td width=50px height=50px>&nbsp;</td><td>&nbsp;</td></tr><tr><td width=50px>&nbsp;</td><td>&nbsp;</td></tr></table>";
	}

	changemirror();
}

function IsNumeric(sText)
{
	if ( sText === "" ) {
		return true;
	}
	var ValidChars = "0123456789.";
	var IsNumber=true;
	var Char;
 
	for (i = 0; i < sText.length && IsNumber == true; i++) { 
		Char = sText.charAt(i); 
		if (ValidChars.indexOf(Char) == -1) {
			IsNumber = false;
		}
	}
	return IsNumber;
}
window.onload=changemirror;


