// 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;

	document.getElementById('MaxX').value = Math.round(((document.getElementById('max_w').value / 1000) / document.getElementById('unit').value)*100)/100
	document.getElementById('MaxY').value = Math.round(((document.getElementById('max_h').value / 1000) / document.getElementById('unit').value)*100)/100
	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 == 'square'){
		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 == 'round') {
		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));
	}

	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;
	}

	if (shape == 'octagon') {
		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)) ) * ((document.getElementById(ced).value *1));
	}

	if (shape == 'arc') {
		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) /2) + document.getElementById('Width_field').value )* ((document.getElementById(ced).value *1));
	}

	if (shape == 'center') {
		var edgingcost = (((document.getElementById('Width_field').value * document.getElementById('unit').value) + (document.getElementById('Height_field').value * document.getElementById('unit').value)) * 2 ) * ((document.getElementById(ahed).value *1));
	}

	document.getElementById("mirror").width = Math.ceil(((document.getElementById('Width_field').value * document.getElementById('unit').value) * 112.35));
	if (document.getElementById('shape').value == 'center.png'){
		document.getElementById('t_semi_row').style.display = "";
		document.getElementById('b_semi_row').style.display = "";
		document.getElementById('t_semi').style.visibility = "visible";
		document.getElementById("t_semi").height = Math.ceil(((document.getElementById('Width_field').value * document.getElementById('unit').value) * 112.35)/2);
		document.getElementById("t_semi").width = Math.ceil(((document.getElementById('Width_field').value * document.getElementById('unit').value) * 112.35));
		document.getElementById('b_semi').style.visibility = "visible";
		document.getElementById("b_semi").height = Math.ceil(((document.getElementById('Width_field').value * document.getElementById('unit').value) * 112.35)/2);
		document.getElementById("b_semi").width = Math.ceil(((document.getElementById('Width_field').value * document.getElementById('unit').value) * 112.35));
		document.getElementById("mirror").height = Math.ceil(((document.getElementById('Height_field').value * document.getElementById('unit').value) * 112.35)-document.getElementById("t_semi").height-document.getElementById("b_semi").height);
	}
	else {
		document.getElementById('t_semi').style.visibility = "hidden";
		document.getElementById('b_semi').style.visibility = "hidden";
		document.getElementById('t_semi_row').style.display = "none";
		document.getElementById('b_semi_row').style.display = "none";
		document.getElementById("mirror").height = Math.ceil(((document.getElementById('Height_field').value * document.getElementById('unit').value) * 112.35));
	}

	if (whatedge == 0) {
		document.getElementById('Edge_Finish_field').value = 'As Cut';
	}
	if (whatedge == 1) {
		document.getElementById('Edge_Finish_field').value = 'Polished Edge';
	}
	if (whatedge == 2) {
		document.getElementById('Edge_Finish_field').value = 'Bevelled Edge';
	}

	var holecost = 0;

	if (document.getElementById('Number_of_Holes_Field').value > 0 ) {
		holecost = (document.getElementById('Number_of_Holes_Field').value * document.getElementById('holes').value);
	}

	var parasolcost = 0;

	if (document.getElementById('Parasol_Field').value == "YES" ) {
		parasolcost = 8.00;
	}

	var fix = document.getElementById('Fixings_Field').value;
	var fixcost = 0;
	if (fix == "Clips") {
		fixcost = document.getElementById('clipsc').value*1;
	}
	if (fix == "Screws") {
		fixcost = (document.getElementById('screwsc').value * document.getElementById('Number_of_Holes_Field').value);
	}
	if (fix == "Concealed") {
		fixcost = document.getElementById('conc').value*1;
	}
	
	if (fix == "Adhesive") {
		if (area <= 2) {
		fixcost = document.getElementById('adhesivec').value * 1;
		}
		if (area > 2) {
		fixcost = document.getElementById('adhesivec').value * 2;
		}
		if (area > 4) {
		fixcost = document.getElementById('adhesivec').value * 3;
		}
		if (area > 6) {
		fixcost = document.getElementById('adhesivec').value * 4;
		}
		if (area > 8) {
		fixcost = document.getElementById('adhesivec').value * 5;
		}
		if (area > 10) {
		fixcost = document.getElementById('adhesivec').value * 6;
		}
	}

	var safecost = 0;
	if (document.getElementById('Safety_Backing_Field').value == "Yes") {
		safecost = (area * document.getElementById('safetyc').value);
	}

	var topcost = edgingcost + areacost;

	// MINIMUM PRICE EXCLUDING VAT
	if (topcost < 15.00){
		topcost = 15.00;
	}

	var vat_rate = document.getElementById('vat_rate').value*1;
	var fincost = topcost + holecost + fixcost  + safecost + parasolcost;
	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; top 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);
					// These are intentionally swapped to enable rounded ends drawing
					var max_h = doc.getElementsByTagName('max_w').item(0);
					var max_w = doc.getElementsByTagName('max_h').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);
		document.getElementById('MaxX').value = Math.round(((document.getElementById('max_w').value / 1000) / document.getElementById('unit').value)*100)/100
		document.getElementById('MaxY').value = Math.round(((document.getElementById('max_h').value / 1000) / document.getElementById('unit').value)*100)/100
		calcarea(); 
		var edge = document.getElementById('edging').value*1;
		if (edge == 1) {
			document.getElementById('edgeimg').src = "images/par.jpg";
		} else if (edge == 2) {
			document.getElementById('edgeimg').src = "images/bev.jpg";
		} else {
			document.getElementById('edgeimg').src = "images/blank.jpg";
		}
		validatemate();
	} 

function changemirror() {
	changevals();
	if (!IsNumeric(document.getElementById('Width_field').value)) {
		alert("Only numbers or decimal points are allowed in the Width 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 Height field");
		document.getElementById('Height_field').value = ((1000 / 1000) / document.getElementById('unit').value);
	} else {
		document.getElementById('mirror').src = document.getElementById('shape').value;
		if (document.getElementById('shape').value == 'center.png'){
			document.getElementById("mirror").height = Math.ceil(((document.getElementById('Height_field').value * document.getElementById('unit').value) * 112.35)/2);
			document.getElementById('t_semi_row').style.display = "";
			document.getElementById('b_semi_row').style.display = "";
			document.getElementById('t_semi').style.visibility = "visible";
			document.getElementById("t_semi").height = Math.ceil(((document.getElementById('Width_field').value * document.getElementById('unit').value) * 112.35)/2);
			document.getElementById("t_semi").width = Math.ceil(((document.getElementById('Width_field').value * document.getElementById('unit').value) * 112.35));
			document.getElementById('b_semi').style.visibility = "visible";
			document.getElementById("b_semi").height = Math.ceil(((document.getElementById('Width_field').value * document.getElementById('unit').value) * 112.35)/2);
			document.getElementById("b_semi").width = Math.ceil(((document.getElementById('Width_field').value * document.getElementById('unit').value) * 112.35));
		}
		else {
			document.getElementById('t_semi').style.visibility = "hidden";
			document.getElementById('b_semi').style.visibility = "hidden";
			document.getElementById('t_semi_row').style.display = "none";
			document.getElementById('b_semi_row').style.display = "none";
			document.getElementById("mirror").height = Math.ceil(((document.getElementById('Height_field').value * document.getElementById('unit').value) * 112.35));
		}
		document.getElementById("mirror").width = Math.ceil(((document.getElementById('Width_field').value * document.getElementById('unit').value) * 112.35));
		var str = document.getElementById('shape').value;
		var newStr = str.substring(0, str.length-4);
		if (newStr == 'center') {
			document.getElementById('Shape_Field').value = "rounded ends";
		}
		else {
			document.getElementById('Shape_Field').value = newStr;
		}
	}
	var edge = document.getElementById('edging').value*1;
	if (edge == 1) {
		document.getElementById('edgeimg').src = "images/par.jpg";
	} else if (edge == 2) {
		document.getElementById('edgeimg').src = "images/bev.jpg";
	} else {
		document.getElementById('edgeimg').src = "";
	}

	validatemate();
}

function validatewidth() {
	minwidth = 150;
	minbevdia = 330;
	if (!IsNumeric(document.getElementById('Width_field').value)) {
		alert("Only numbers or decimal points are allowed in the Width 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 Height field");
		document.getElementById('Height_field').value = ((1000 / 1000) / document.getElementById('unit').value);
	} else {
		if (Math.round((document.getElementById('Width_field').value * document.getElementById('unit').value)*100)/100 > Math.round((document.getElementById('max_w').value / 1000)*100)/100){
			alert('The maximum X value for a custom top in your chosen thickness is '+Math.round(((document.getElementById('max_w').value / 1000) / document.getElementById('unit').value)*100)/100 );
			document.getElementById('Width_field').value = Math.round(((document.getElementById('max_w').value / 1000) / document.getElementById('unit').value)*100)/100;
		} else if (((document.getElementById('Width_field').value * document.getElementById('unit').value) < minwidth/1000) ){
			alert('The minimum X value for a custom top in your chosen thickness is '+Math.round(((minwidth / 1000) / document.getElementById('unit').value)*100)/100) ;
			document.getElementById('Width_field').value = Math.round(((minwidth/ 1000) / document.getElementById('unit').value)*100)/100;
		}

		var str = document.getElementById('shape').value;
		if (((document.getElementById('Width_field').value * document.getElementById('unit').value) < minbevdia/1000) && (document.getElementById('edging').value == '2') && (str.substring(0, str.length-4) == 'round')){
			alert('The minimum X value for a round/oval bevelled top in your chosen thickness is '+((minbevdia / 1000) / document.getElementById('unit').value) );
			document.getElementById('Width_field').value = ((minbevdia / 1000) / document.getElementById('unit').value);
		
		}
		if (str == 'center.png') {
			if (document.getElementById('Width_field').value*1 > document.getElementById('Height_field').value*1) {
				alert('The Y value needs to be the greater of the two sizes');
				document.getElementById('Height_field').value = document.getElementById('Width_field').value;
			}
		}
	}
}

function validateheight() {
	minheight = 150;
	if (!IsNumeric(document.getElementById('Width_field').value)) {
		alert("Only numbers or decimal points are allowed in the Width 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 Height 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 > Math.round((document.getElementById('max_h').value / 1000)*100)/100 ){
			alert('The maximum Y value for a custom top in your chosen thickness is '+Math.round(((document.getElementById('max_h').value / 1000) / document.getElementById('unit').value)*100)/100 );
			document.getElementById('Height_field').value = Math.round(((document.getElementById('max_h').value / 1000) / document.getElementById('unit').value)*100)/100;
		} else if (((document.getElementById('Height_field').value * document.getElementById('unit').value) < minheight/1000) ){
			alert('The minimum Y value for a custom top in your chosen thickness is '+Math.round(((minheight / 1000) / document.getElementById('unit').value)*100)/100) ;
			document.getElementById('Height_field').value = Math.round(((minheight/ 1000) / document.getElementById('unit').value)*100)/100;
		}
		var str = document.getElementById('shape').value;
		if (((document.getElementById('Height_field').value * document.getElementById('unit').value) < 330/1000 ) && (document.getElementById('edging').value == '2') && (str.substring(0, str.length-4) == 'round')){
			alert('The minimum Y value for a round/oval bevelled top in your chosen thickness is '+((330 / 1000) / document.getElementById('unit').value) );
			document.getElementById('Height_field').value = ((330 / 1000) / document.getElementById('unit').value);
		
		}
		if (str == 'center.png') {
			if (document.getElementById('Width_field').value*1 > document.getElementById('Height_field').value*1) {
				alert('The Y value needs to be the greater of the two sizes');
				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('Safety_Backing_Field').value = "No";
		document.getElementById('Safety_Backing_Field').disabled = true;
		document.getElementById('fix_desc').innerHTML = "<table width:100%;'><tr><td width=50px></td><td><b>Adhesive</b></td></tr><tr><td width=50px><img src='images/stories/adhesive.png' height = 50px /></td><td>This is supplied in a standard projector gun tube.<br />The glue should be applied in thin lines some 40-50mm apart. The Mirror should be supported for 24 hours to allow time for full curing to bonding surface.</td></tr></table>";
	}else if( fix == "Clips") {
		document.getElementById('Number_of_Holes_Field').value = 0;
		document.getElementById('Number_of_Holes_Field').disabled = true;
		document.getElementById('Safety_Backing_Field').disabled = false;
		document.getElementById('fix_desc').innerHTML = "<table style='width:100%;'><tr><td width=50px></td><td><b>Clips</b></td></tr><tr><td width=50px><img src='images/stories/clip.png' height = 50px /></td><td>These come in sets of 4 for either 4mm or 6mm mirrors.<br />They are placed around the edge of the mirror to fix it to the wall.</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('Safety_Backing_Field').disabled = false;
		document.getElementById('fix_desc').innerHTML = "<table style='width:100%;'><tr><td width=50px></td><td><b>Screws</b></td></tr><tr><td width=50px><img src='images/stories/screw.png' height = 50px /></td><td>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 mirror.</td></tr></table>";
	}else if ( fix == "Concealed") {
		document.getElementById('Number_of_Holes_Field').value = 0;
		document.getElementById('Number_of_Holes_Field').disabled = true;
		document.getElementById('Safety_Backing_Field').disabled = false;
		document.getElementById('fix_desc').innerHTML = "<table style='width:100%;'><tr><td width=50px></td><td><b>Concealed Fixings</b></td></tr><tr><td width=50px><img src='images/stories/conceal.png' height = 50px /></td><td>These are brackets bonded to the back of the mirror.<br />They are supplied with wall fixing discs which should be attached following the instructions provided.</td></tr></table>";
	}else {
		document.getElementById('Number_of_Holes_Field').value = 0;
		document.getElementById('Number_of_Holes_Field').disabled = false;
		document.getElementById('Safety_Backing_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>";
	}
	calcarea();

}

function IsNumeric(sText)
{
	if ( sText === "" ) {
		return false
	}
	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;


