
function addLoadEvent(func) {
		var oldOnLoad = window.onload;
		if ( typeof oldOnLoad != "function" ) {
			window.onload = func;
			
		} else {
			window.onload  = function() {
				oldOnLoad();
				func();
			};
		}
}

function loadExchangeRate() {
		
	var additionalfields = '';
	var haveerror = false;
	
	if (document.getElementById('sterling_amount') && document.getElementById('sterling_amount').value != '' &&
	document.getElementById('target_amount') && document.getElementById('target_amount').value != ''	){
		// push an error
		document.getElementById('bothset').className = "error doshow"; 
		haveerror = true;
	} else if (document.getElementById('bothset')){
		document.getElementById('bothset').className = "noshow"; 
	}
	
	if (document.getElementById("currency") && (document.getElementById("currency").value == 0)) {
		document.getElementById('nocurrency').className = "error doshow"; 
		haveerror = true;
	} else if (document.getElementById('nocurrency')){
		document.getElementById('nocurrency').className = "noshow"; 
	}
	
	if (haveerror == true) {
		return;
	}
	
	if (document.getElementById('sterling_amount') && document.getElementById('sterling_amount').value != '') {
		additionalfields = "	<sterlingamount>" + document.getElementById('sterling_amount').value + "</sterlingamount>\n"; 
		// alert("sterling");
	}
	if (document.getElementById('target_amount') && document.getElementById('target_amount').value != '') {
		additionalfields = "	<targetamount>" + document.getElementById('target_amount').value + "</targetamount>\n"; 
		// alert("other");
	}
	if (additionalfields != '' && document.getElementById('include_fees_check') && document.getElementById('include_fees_check').checked ) {
		additionalfields += "	<addfees>" + (document.getElementById('target_amount').checked == false)   + "</addfees>\n"; 
		// alert("other");
	}
	
	
	if ( additionalfields != '' ) {
		document.getElementById('calc_select').className = 'noshow';
	}
	
	xmldoc =    "<?xml version='1.0' ?>\n" +
				"<currency>\n" +
				"	<currencynumber>" + document.getElementById('currency').value + "</currencynumber>\n" +
				additionalfields +
				"</currency>\n" +
				"\n";
                // alert(xmldoc);

	ajaxCall( xmldoc );
}

function ajaxCall( xmldoc ) {
	try {
		xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {
			xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
		} catch (E) {
			xmlhttp = false;
		}
	}
          
	if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
		try {
			xmlhttp = new XMLHttpRequest();
		} catch (e) {
			xmlhttp=false;
		}
	}

	if (!xmlhttp && window.createRequest) {
		try {
			xmlhttp = window.createRequest();
		} catch (e) {
			xmlhttp = false;
		}
	}

	xmlhttp.open("POST", "currencyconverter.php",true);

	xmlhttp.onreadystatechange = sink ;

    xmlhttp.setRequestHeader("MessageType", "CALL");
	xmlhttp.setRequestHeader("Content-Type", "text/xml");
	xmlhttp.send(xmldoc);		
}

function sink() {
	if (xmlhttp.readyState == 4 ) {
		//alert(xmlhttp.responseText);
		var newText = xmlhttp.responseText.split("<?");
		newText = "<?"+newText[1];
		//alert(newText);

try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  xmlDoc.async="false";
  xmlDoc.loadXML(newText);
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, etc.
    {
    parser=new DOMParser();
    xmlDoc=parser.parseFromString(newText,"text/xml");
    }
  catch(e) {alert(e.message)}
  }


		
		var ratecontainer 		= xmlDoc.getElementsByTagName("rate")[0];
		var namecontainer 		= xmlDoc.getElementsByTagName("currency")[0];
		var countrycontainer 	= xmlDoc.getElementsByTagName("country")[0];
		//alert(ratecontainer.childNodes[0].nodeValue + " " + namecontainer.childNodes[0].nodeValue)
		document.getElementById('convert').innerHTML = "1 BRITISH POUND STERLING = " + ratecontainer.childNodes[0].nodeValue + " " + namecontainer.childNodes[0].nodeValue;
		if (document.getElementById('rate_calc')) {
			document.getElementById('rate_calc').innerHTML = document.getElementById('convert').innerHTML; 
			document.getElementById('country_name').innerHTML = countrycontainer.childNodes[0].nodeValue;
		}
		
		if (xmlDoc.getElementsByTagName("sterling")[0]) {
			var sterlingvalue = xmlDoc.getElementsByTagName("sterling")[0].childNodes[0].nodeValue;
			var othervalue 	  = xmlDoc.getElementsByTagName("target")[0].childNodes[0].nodeValue;

			if (document.getElementById('include_fees_check').checked == true) {
				document.getElementById('feescost').innerHTML = "UKP 2.25 withdrawal fee included";
				
				
			} else {
				document.getElementById('feescost').innerHTML = 'Not Included';
			}
			
			document.getElementById('sterlingvalue').innerHTML = sterlingvalue + " Pounds Sterling ";
			document.getElementById('othervalue').innerHTML = othervalue + " " + namecontainer.childNodes[0].nodeValue;
			
			document.getElementById('calc_results').className = "doshow";
			tracker.storeExtra("change", namecontainer.childNodes[0].nodeValue);
		} else {
			tracker.storeExtra("currency", namecontainer.childNodes[0].nodeValue);
		}
	}
}

function setCurrencyLoad() {
	if (document.getElementById('currency')) {
		var exchanger = document.getElementById('currency');
		if (exchanger.addEventListener) {
			// Moz version
			exchanger.addEventListener('change', loadExchangeRate , false);
		} else {
			// IE version
			exchanger.attachEvent('onchange', loadExchangeRate );
		}
	}
}
addLoadEvent(setCurrencyLoad);

function setFormAction() {
	if(typeof(document.getElementById('converter'))) {
		// we are converting!
		var conversionform = document.getElementById('converter');
		var conversionbutton = document.getElementById('calculate_button');
//		conversionform.submit = loadExchangeRate;
//		if (typeof(conversionform.submit) == 'function') {
		if (conversionbutton) {
				conversionform.onsubmit = function() {return false;}
			if (conversionbutton.addEventListener) {
				conversionbutton.addEventListener("click", loadExchangeRate , false);
			} else {
				conversionbutton.attachEvent('onclick',loadExchangeRate);
			}
		}
//		}

	}
	
}

addLoadEvent(setFormAction);
function setToggleAction() {
	
	if (typeof(document.getElementById('another_calc'))) {
		var togglebutton = document.getElementById('another_calc');
		if (togglebutton) {
			if (togglebutton.addEventListener) {
				togglebutton.addEventListener('click', toggleCalculator, false);
			} else {
				togglebutton.attachEvent('onclick', toggleCalculator)
			}
		}
	}
}

function toggleCalculator() {
	document.getElementById('calc_results').className = 'noshow';
	document.getElementById('calc_select').className = 'doshow';
	
	document.getElementById('currency').value 		= '0';
	document.getElementById('sterling_amount').value 		= '';
	document.getElementById('target_amount').value 			= '';
	document.getElementById('include_fees_check').checked 	= false;
	
}

addLoadEvent(setToggleAction);

function addNumberCheck() {
	var fieldList = new Array('sterling_amount', 'other_amount');
	
	for (var fieldNumber = 0 ; fieldNumber < fieldList.length ; fieldNumber++ ) {
			
		if(typeof(document.getElementById( fieldList[fieldNumber] ))){
			myField = document.getElementById( fieldList[fieldNumber] );
			alert(myField.value);
			if (myField.addEventListener) {
				myField.addEventListener('keypress', isValidNumber, false);
			} else {
				myField.attachEvent('onkeypress', isValidNumber)
			}
		}
	}
}
//addLoadEvent(addNumberCheck);

function isValidNumber(e, other) {
		var key;
		var keychar;
//		var myfield;
		
		document.getElementById( other ).value = '';
		
		if (window.event) {
			key = window.event.keyCode;
//			myfield = window.event.originalTarget;
		} else if (e) {
			key = e.which;
//			myfield = e.originalTarget;
		} else {
			return true;
		}
		
		keychar = String.fromCharCode(key);
		
		// control keys
		if ((key==null) || (key==0) || (key==8) || (key==9) || (key==13) || (key==27) ) {
			return true;
		// numbers
		} else if ((("0123456789").indexOf(keychar) > -1)) {
			return true;
		} 
		return false;
}
