var large_socket_price = 12.50;
var small_socket_price = 8.34;
// 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 ralnum = document.getElementById('RAL_CODE_Field').value;
	var areacost =  area * document.getElementById('pms').value;
	switch ( ralnum ){
		case "0": areacost =  area * (document.getElementById('pms').value - 48); break;
		case "CLEAR": areacost =  area * (document.getElementById('pms').value - 48); break;
		case "OPAQUE": areacost =  area * (document.getElementById('pms').value - 24); break;
		case "MIRROR": areacost =  area * (document.getElementById('pms').value - 60); break;
		default: 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 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));

	document.getElementById("mirror").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('Edge_Finish_field').value = 'Polished 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 fix = document.getElementById('Fixings_Field').value;
	var fixcost = 0;
	if (fix == "Screws") {
		fixcost = (document.getElementById('screwsc').value * document.getElementById('Number_of_Holes_Field').value);
	}

	if (fix == "Clear Silicone") {
		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 socketcost = 0;
	socketcost = ( small_socket_price * document.getElementById('Single_Sockets_Field').value );
	socketcost += ( large_socket_price * document.getElementById('Double_Sockets_Field').value );

	var splashcost = edgingcost + areacost;

	// MINIMUM PRICE EXCLUDING VAT
	if (splashcost < 24.00){
		splashcost = 24.00;
	}

	var vat_rate = document.getElementById('vat_rate').value*1;
	var fincost = splashcost + holecost + fixcost  + socketcost;
	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); 
		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
	} 

function changemirror() {
	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 = 'square.png';
		//document.getElementById('coloursplash').innerHTML = '<div style="float:left;background:#000000;width:100px;height:100px;" hspace=5 vspace=5 align="left"></div>';
		document.getElementById("mirror").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));
			var str = 'square.png';
			var newStr = str.substring(0, str.length-4);
			document.getElementById('Shape_Field').value = newStr;
	}
	changevals();
}

function validatewidth() {
	minwidth = 140;
	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 width for a custom splashback 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 width for a custom splashback 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;
		}
		calcarea();
		changemirror();
	}
}

function validateheight() {
	minheight = 80;
	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 height for a custom splashback 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 height for a custom splashback 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;
		}
		calcarea();
		changemirror();
	}
}

function checktough() {
	var unit = document.getElementById('unit').value;
	var wid = document.getElementById('Width_field').value;
	var hei = document.getElementById('Height_field').value;
	
	if ( ( wid * unit ) * 10 > ( hei  * unit ) ) {
		alert('The width/height ratio for splashbacks cannot be greater than 10 to 1\nPlease re-enter these values.');
		document.getElementById('Width_field').value = ( wid * unit ) * 10;
	}
	if ( ( hei * unit ) * 10 > ( wid * unit ) ) {
		alert('The width/height ratio for splashbacks cannot be greater than 10 to 1\nPlease re-enter these values.');
		document.getElementById('Height_field').value = ( hei * unit ) * 10;
	}
}

function validatemate() {
	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
	validatewidth();
	validateheight();
	calcarea();
	//checktough();
}

function ralchange() {
	var ralnum = document.getElementById('RAL_CODE_Field').value;
	var fix = document.getElementById('Fixings_Field').value;

	switch ( ralnum ){
		case "CLEAR":
			CodeName = "CLEAR";
			if ( fix == "Clear Silicone" ) {
			document.getElementById('Fixings_Field').value = "Screws";
			document.getElementById('Number_of_Holes_Field').disabled = false;
			document.getElementById('Number_of_Holes_Field').value = 4;
			}
			break;
		case "OPAQUE":
			CodeName = "OPAQUE";
			if ( fix == "Clear Silicone" ) {
			document.getElementById('Fixings_Field').value = "Screws";
			document.getElementById('Number_of_Holes_Field').disabled = false;
			document.getElementById('Number_of_Holes_Field').value = 4;
			}
			break;
		default:
			CodeName = 'RAL'+ ralnum;
			break;
	}
	changemirror();
	return CodeName;
}

function changefixing() {
	var fix = document.getElementById('Fixings_Field').value;
	var ralnum = document.getElementById('RAL_CODE_Field').value;

	if ( fix == "Clear Silicone") {
		if ( ralnum == "CLEAR" || ralnum == "OPAQUE" ) {
			document.getElementById('Fixings_Field').value = "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>Information</b></td></tr><tr><td align=left width=50px>&nbsp;</td><td align=left>You cannot use Clear Silicone with CLEAR or OPAQUE finish as you will see the Clear Silicone through the glass splashback.</td></tr></table>";
		} else {
			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>Clear Silicone</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 Splashback 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 splashback.</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>";
	}
	calcarea();
	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=ralchange;

