// JavaScript Document

function addevent(element, thefunction, theevent)
	{
	if (element == window)
		{	
		if(element.addEventListener)
			{
			element.addEventListener(theevent, thefunction, false);
			}
		else if (element.attachEvent)
			{
			element.attachEvent('on'+theevent, thefunction);	
			}
		}
	else 
		{
		element=document.getElementById(element);
		if(element.addEventListener)
			{
			element.addEventListener(theevent, thefunction, false);
			}
		else if (element.attachEvent)
			{
			element.attachEvent('on'+theevent, thefunction);	
			}
		}
	}
	

function start()
{
	  //alert('in onload event');
	  geocoder = new google.maps.Geocoder();
	  var geocoder;
	  
		// Get the HTTP Object
		function getHTTPObject(){
		   if (window.ActiveXObject) return new ActiveXObject("Microsoft.XMLHTTP");
		   else if (window.XMLHttpRequest) return new XMLHttpRequest();
		   else {
			  alert("Your browser does not support AJAX.");
			  return null;
		   }
		}
		
		function ajax(distance, id, quantity) {
				//alert('Distance:'+distance+', Id:'+id+', Quantity:'+quantity);
				httpObject = getHTTPObject();
				if (httpObject != null) {
					httpObject.open("GET", "http://www.robinsonquarry.co.uk/price.php?id="+id+"&quantity="+quantity+"&distance="+distance+"", true); //Mark
					httpObject.send(null); 
					httpObject.onreadystatechange = update_ajax;
				}
		}
		
		function update_ajax(){
			if(httpObject.readyState == 4){
				document.getElementById('ajax').innerHTML = httpObject.responseText;
				document.getElementById('ajax').innerHTML += '<p><input name="submit" type="submit" id="submit-order" value="" /></div></fieldset></form></p>';
				document.getElementById('cost').value = httpObject.responseText;
			}
		}
	
//	  function initialize() {
//		geocoder = new google.maps.Geocoder();
//	  }
	  
		Number.prototype.toRad = function() {  // convert degrees to radians
		  return this * Math.PI / 180; 
		}
		function kmdistance(lat2,lon2,lat1,lon1) {
		
				var R = 6371; // km
				//alert('1');
				var dLat = (lat2-lat1).toRad();
				//alert('2');
				var dLon = (lon2-lon1).toRad();
				//alert('3');
				var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
								Math.cos(lat1.toRad()) * Math.cos(lat2.toRad()) *
								Math.sin(dLon/2) * Math.sin(dLon/2);
				//alert('4');
				var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
				//alert('5');
				var d = R * c;
		
				//alert('distance in km: '+d);
				//alert('distance in miles: '+d*0.621371192);
				var distance_in_miles =  d*0.621371192;
				return distance_in_miles;
		}
		// ends
	
	  function geocode() {
		var address = document.getElementById('postcode').value;
		//alert(address);
		geocoder.geocode({
		  'address': address,
		  'partialmatch': true}, geocodeResult);
	  }
	  if (document.getElementById('geocode')){
		document.getElementById('geocode').onclick= function(){
		geocode();
		}
	  }
	
	  function geocodeResult(results, status) {
		if (status == 'OK' && results.length > 0) {
			var str=String(results[0].geometry.location);
			str=str.slice(1,-1);
			latandlng=str.split(", ");
			var lat2=54.82803;
			var lon2=-6.050383;
			var lat1=Number(latandlng[0]);
			var lat1=lat1.toFixed(6);
	//		alert('lat1: '+lat1);
			var lon1=Number(latandlng[1]);
			var lon1=lon1.toFixed(6);
	//		alert('lon1: '+lon1);
			lat1 = Number(lat1);
			lon1 = Number(lon1);
			var lat2=54.82803;
			var lon2=-6.050383;
			if (lat1 != 54.82803 && lon1 != -6.050383){
			var distance = kmdistance(lat2,lon2,lat1,lon1);
	//		alert('Distance: '+distance);
			var quantity = document.getElementById("quantity").value;
			var id = document.getElementById("id").value;
			ajax(distance, id, quantity);
			}
		} else {
			if (status=='ZERO_RESULTS'){
		  	alert("Please enter a postcode.");
			}
			else{
		  	alert("The following error occurred: " + status);
			}
		}
	  }
	  
	function radiobuttons(radiobuttonid, option)
	{
	if(document.getElementById(radiobuttonid)){
		if(document.getElementById(radiobuttonid).checked)
		{
		document.getElementById('id').value = option;
		}
	  }
	}
radiobuttons('440x215x140mmn_0', 24);
radiobuttons('440x215x140mm_1', 29);
radiobuttons('440x215x100mm_0', 25);
radiobuttons('440x215x100mm_1', 26);
radiobuttons('440x215x100mm_2', 30);
radiobuttons('440x215x100mm_3', 27);
	
function clickradiobuttons (radiobuttonid, option)
{
	if(document.getElementById(radiobuttonid)){
		document.getElementById(radiobuttonid).onclick= function()
		{
		document.getElementById('id').value = option;
		}
	}
}
clickradiobuttons('440x215x140mm_0', 24);
clickradiobuttons('440x215x140mm_1', 29);
clickradiobuttons('440x215x100mm_0', 25);
clickradiobuttons('440x215x100mm_1', 26);
clickradiobuttons('440x215x100mm_2', 30);
clickradiobuttons('440x215x100mm_3', 27);


function clickdeliverybutton (checkboxid, id, option, original)
{
	if(document.getElementById(checkboxid)){
		document.getElementById(checkboxid).onclick= function()
		{
			if (document.getElementById(id).innerHTML == 'Delivery Address'){	
			document.getElementById(id).innerHTML = option;
			}
			else{
			document.getElementById(id).innerHTML = original;
			}
		}
	}
}
clickdeliverybutton ('collect_checkbox', 'legend_address_heading', 'Correspondence Address', 'Delivery Address')

function deliverybutton (checkboxid, id, option, original)
{
	if(document.getElementById(checkboxid)){
			if(document.getElementById(checkboxid).checked){
			document.getElementById(id).innerHTML = option;
			}
			else{
			document.getElementById(id).innerHTML = original;
			}
	  }
}
deliverybutton ('collect_checkbox', 'legend_address_heading', 'Correspondence Address', 'Delivery Address')

	function hide(divid){
	element=document.getElementById(divid);
	element.style.display = 'none';
	}
	
	function show(divid){
	element=document.getElementById(divid);
	element.style.display = 'block';
	}
	
	function hidelist(list){
	for(var value in list)
				{
				entry=list[value];
				hide(entry);
				}
	}
	
	function showlist(list){
	for(var value in list)
				{
				entry=list[value];
				show(entry);
				}
	}
	function toggle(id){
		//IE7 = navigator.appVersion.indexOf("MSIE 7.") == -1 ? false : true;
		document.getElementById(id).onclick= function()
		{
		var towns = document.getElementById('towns');
			if (towns.style.display == 'block'){
			hide('towns');
			}
			else{
			show('towns');
			}
		}
	}
//		if(!IE7){
//			document.getElementById(id).onmouseover= function()
//			{
//				//alert('mouse over');
//				document.body.style.cursor = 'hand';
//			}
//			document.getElementById(id).onmouseout= function()
//			{
//				//alert('mouse over');
//				document.body.style.cursor = 'default';
//			}
//		}
	
/*	function clickmenu(tabid, thismenu, thatmenu)
	{
		document.getElementById(tabid).onclick= function()
		{
			var tab04=document.getElementById('tab04');
			var tab07=document.getElementById('tab07');
			if(tabid=='tab03' && tab04.style.display == 'block')
				{
				hidelist(thismenu);
				hidelist(thatmenu);
				return false;
				}
			else if(tabid=='tab03' && tab04.style.display == 'none')
				{
				showlist(thismenu);
				hidelist(thatmenu);
				return false;	
				}
			else if(tabid=='tab06' && tab07.style.display == 'block')
				{
				hidelist(thismenu);
				hidelist(thatmenu);
				return false;
				}
			else if(tabid=='tab06' && tab07.style.display == 'none')
				{
				showlist(thismenu);
				hidelist(thatmenu);
				return false;	
				}			else{
				return false;
			}
		}
	}
	clickmenu('tab03', ['tab04','tab05'], ['tab07','tab08']);
	clickmenu('tab06', ['tab07','tab08'], ['tab04','tab05']);
*/	
	toggle('delivery');
	if(document.getElementById('delivery2')){
	toggle('delivery2');
	}
	if(document.getElementById('delivery3')){
	toggle('delivery3');
	}
	toggle('close');
}
addevent(window, start, 'load');
