

/******************************************
* SIM4travel Tariff Calculator Script
******************************************/

	//calling from countries, zones and internal ids
	var countryCallFrom = new Array("Aland Island","Albania","Andorra","Anguilla","Antigua","Argentina","Aruba","Australia","Austria","Azerbaijan","Bahrain","Bangladesh","Barbados","Belgium","Bermuda","Bolivia","Bosnia & Herzegovina","Brazil","British Virgin Islands","Bulgaria","Canada","Cayman Islands","China","Croatia","Cyprus","Czech Republic","Denmark","Dominica","Ecuador","Egypt","Estonia","Faroe Islands","Finland","France","Georgia","Germany","Gibraltar","Greece","Greenland","Grenada","Guadeloupe","Hong Kong","Hungary","Iceland","Indonesia","Ireland","Israel","Italy","Ivory Coast","Jamaica","Japan","Jordan","Kenya","Latvia","Liberia","Lithuania","Luxembourg","Macau","Malaysia","Malta","Mauritius","Mexico","Moldova","Morocco","Mozambique","Namibia","Netherlands","New Zealand","Norway","Oman","Pakistan","Palestine","Paraguay","Peru","Philippines","Poland","Portugal","Puerto Rico","Qatar","Romania","Russia","Saudi Arabia","Serbia","Seychelles","Sierra Leone","Singapore","Slovakia","Slovenia","South Africa","Spain","Sri Lanka","St Kitts & Nevis","St Lucia","St Vincent","Sweden","Switzerland","Syria","Taiwan","Tanzania","Thailand","Trinidad & Tobago","Tunisia","Turkey","Ukraine","United Arab Emirates","United Kingdom","US Virgin Islands","USA","Vietnam"); 
	var countryCallFromIDs = new Array("2","3","5","7","8","9","11","12","13","14","16","17","18","20","23","25","26","28","29","31","37","39","44","48","50","51","53","55","56","57","60","62","64","65","69","70","72","73","74","75","76","82","83","84","85","88","90","91","92","93","94","95","97","103","106","108","109","110","114","117","120","121","122","127","128","129","131","133","136","137","138","139","141","142","143","144","145","146","147","150","151","154","156","157","158","159","160","161","162","163","164","165","166","168","172","173","174","175","177","178","180","181","182","186","187","188","190","191","194");
	var countryCallFromZone = new Array("1","5","5","9","9","7","9","2","12","6","10","6","9","12","9","7","5","7","9","12","8","9","6","1","12","12","12","9","7","11","12","5","12","12","6","12","5","12","5","9","9","6","12","5","6","12","3","12","11","9","6","10","11","12","11","12","12","6","6","12","11","7","5","11","11","11","12","2","1","10","6","3","7","7","6","12","12","9","10","12","5","10","5","11","11","6","12","12","4","12","6","9","9","9","12","1","10","6","11","6","9","11","1","5","10","12","9","8","6");

	//calling to countries, zones and internal ids
	var countryCallTo = new Array("Afghanistan","Aland Island","Albania","Algeria","Andorra","Angola","Anguilla","Antigua","Argentina","Armenia","Aruba","Australia","Austria","Azerbaijan","Bahamas","Bahrain","Bangladesh","Barbados","Belarus","Belgium","Belize","Benin","Bermuda","Bhutan","Bolivia","Bosnia & Herzegovina","Botswana","Brazil","British Virgin Islands","Brunei Darussalam","Bulgaria","Burkina Faso","Burundi","Cambodia","Cameroon","Canada","Cape Verde","Cayman Islands","Central African Republic","Chad","Chile","China","Colombia","Congo","Costa Rica","Croatia","Cuba","Cyprus","Czech Republic","Democratic Republic of Congo","Denmark","Djibouti","Dominica","Ecuador","Egypt","El Salvador","Eritrea","Estonia","Ethiopia","Faroe Islands","Fiji","Finland","France","French Guiana","Gabon","Gambia","Georgia","Germany","Ghana","Gibraltar","Greece","Greenland","Grenada","Guadeloupe","Guatemala","Guernsey ","Guyana","Haiti","Honduras","Hong Kong","Hungary","Iceland","India","Indonesia","Iran","Iraq","Ireland","Israel","Italy","Ivory Coast","Jamaica","Japan","Jordan","Kazakhstan","Kenya","Korea South","Kuwait","Kyrgyzstan","Laos","Latvia","Lesotho","Liberia","Libya","Lithuania","Luxembourg","Macau","Macedonia","Madagascar","Malawi","Malaysia","Maldives","Mali","Malta","Martinique","Mauritania","Mauritius","Mexico","Moldova","Monaco","Mongolia","Montenegro","Montserrat","Morocco","Mozambique","Namibia","Nepal","Netherlands","Netherlands Antilles","New Zealand","Nicaragua","Niger","Norway","Oman","Pakistan","Palestine","Panama","Paraguay","Peru","Philippines","Poland","Portugal","Puerto Rico","Qatar","Reunion","Rodrigues Islands","Romania","Russia","Rwanda","San Marino","Saudi Arabia","Senegal","Serbia","Seychelles","Sierra Leone","Singapore","Slovakia","Slovenia","South Africa","Spain","Sri Lanka","St Kitts & Nevis","St Lucia","St Pierre and Miquelon","St Vincent","Sudan","Suriname","Swaziland","Sweden","Switzerland","Syria","Taiwan","Tajikistan","Tanzania","Thailand","Togo","Trinidad & Tobago","Tunisia","Turkey","Turkmenistan","Turks & Caicos Islands","Uganda","Ukraine","United Arab Emirates","United Kingdom","Uruguay","US Virgin Islands","USA","Uzbekistan","Venezuela","Vietnam","Yemen","Zambia","Zimbabwe"); 
	var countryCallToIDs = new Array("1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","33","34","35","36","37","38","39","40","41","42","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60","61","62","63","64","65","66","67","68","69","70","71","72","73","74","75","76","77","78","79","80","81","82","83","84","198","85","86","87","88","90","91","92","93","94","95","96","97","98","99","101","102","103","105","106","107","108","109","110","111","112","113","114","115","116","117","118","119","120","121","122","123","124","125","126","127","128","129","130","131","132","133","134","135","136","137","138","139","140","141","142","143","144","145","146","147","148","149","150","151","152","153","154","155","156","157","158","159","160","161","162","163","164","165","166","167","168","169","170","171","172","173","174","175","176","177","178","179","180","181","182","183","184","185","186","187","188","189","190","191","192","193","194","195","196","197");
	var countryCallToZone = new Array("6","1","5","4","5","4","9","9","7","6","9","2","12","6","9","10","6","9","5","12","7","4","9","6","7","5","4","7","9","6","12","4","4","6","4","8","4","9","4","4","7","6","7","4","7","1","9","12","12","4","12","4","9","7","11","7","4","12","4","5","6","12","12","7","4","4","6","12","4","5","12","5","9","9","7","1","7","9","7","6","12","5","6","6","3","3","12","3","12","11","9","6","10","6","11","6","3","6","6","12","4","11","4","12","12","6","5","4","4","6","6","4","12","9","4","11","7","5","5","6","5","9","11","11","11","6","12","9","2","7","4","1","10","6","3","7","7","7","6","12","12","9","10","4","4","12","5","4","1","10","4","5","11","11","6","12","12","4","12","6","9","9","9","9","10","7","4","12","1","10","6","6","11","6","4","9","11","1","6","9","4","5","10","12","7","9","8","6","7","6","3","4","4");

	//zone-level tariffs
	var zoneReceive = new Array("FREE","FREE","FREE","FREE","0.29","0.39","0.79","0.89","0.89","0.10","0.15","FREE");
	var zoneS4T = new Array("0.25","0.49","0.49","0.49","0.49","0.69","1.19","1.19","1.29","0.49","0.49","0.25");
	var zoneCheckCredit = new Array("FREE","FREE","FREE","FREE","FREE","FREE","FREE","FREE","FREE","FREE","FREE","FREE");
	var zoneAddCredit = new Array("FREE","FREE","FREE","FREE","FREE","FREE","FREE","FREE","FREE","FREE","FREE","FREE");
	var zoneVoicemail = new Array("0.25","0.49","0.49","0.49","0.49","0.69","1.19","1.19","1.29","0.49","0.49","0.25");
	var zoneCS = new Array("0.25","0.49","0.49","0.49","0.49","0.69","1.19","1.19","1.29","0.49","0.49","0.25");

	//tariff call matrix
	
	var zonecalls1 = new Array("0.25","0.49","0.49","0.79","0.49","0.49","1.09","0.29","0.79","0.49","0.79","0.25");
	var zonecalls2 = new Array("0.49","0.49","0.49","0.79","0.69","0.49","1.09","0.49","0.89","0.49","0.79","0.49");
	var zonecalls3 = new Array("0.49","0.49","0.59","0.79","0.69","0.49","1.09","0.49","0.89","0.59","0.79","0.49");
	var zonecalls4 = new Array("0.49","0.49","0.59","0.79","0.69","0.49","1.09","0.49","0.89","0.59","0.79","0.49");
	var zonecalls5 = new Array("0.49","0.59","0.69","0.89","0.69","0.69","1.19","0.49","0.99","0.69","0.89","0.49");
	var zonecalls6 = new Array("0.69","0.69","0.79","0.99","0.89","0.79","1.29","0.69","1.09","0.79","0.99","0.69");
	var zonecalls7 = new Array("1.19","1.19","1.29","1.49","1.39","1.19","1.79","1.19","1.59","1.29","1.49","1.19");
	var zonecalls8 = new Array("1.19","1.29","1.29","1.59","1.39","1.29","1.89","1.19","1.59","1.29","1.59","1.19");
	var zonecalls9 = new Array("1.29","1.29","1.39","1.59","1.49","1.29","1.89","1.29","1.69","1.39","1.59","1.29");
	var zonecalls10 = new Array("0.49","0.49","0.59","0.79","0.69","0.49","1.09","0.49","0.89","0.59","0.79","0.49");
	var zonecalls11 = new Array("0.49","0.49","0.59","0.79","0.69","0.49","1.09","0.49","0.89","0.59","0.79","0.49");
	var zonecalls12 = new Array("0.25","0.49","0.49","0.79","0.49","0.49","1.09","0.29","0.79","0.49","0.79","0.25");

	//tariff sms matrix
	
	var zonesms1 = new Array("0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39");
	var zonesms2 = new Array("0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39");
	var zonesms3 = new Array("0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39");
	var zonesms4 = new Array("0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39");
	var zonesms5 = new Array("0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39");
	var zonesms6 = new Array("0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39");
	var zonesms7 = new Array("0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39");
	var zonesms8 = new Array("0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39");
	var zonesms9 = new Array("0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39");
	var zonesms10 = new Array("0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39");
	var zonesms11 = new Array("0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39");
	var zonesms12 = new Array("0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.25");
	
	//this is the function that is called when the calculator needs to be updated
	function updateCalculator()
	{

	
	var countryFromArrayID = Number(document.getElementById('country_from_list').value);
	var countryToArrayID = Number(document.getElementById('country_to_list').value);

	if (countryFromArrayID != -1 && countryToArrayID != -1) {
	var countryFromZone = Number(countryCallFromZone[countryFromArrayID]);
	var countryToZone = Number(countryCallToZone[countryToArrayID]);

	var countryFromName = countryCallFrom[countryFromArrayID];
	var countryToName = countryCallTo[countryToArrayID];
	var countryTo = ' to ';
	var tariffReceive = zoneReceive[countryFromZone-1];
	var tariffS4T = zoneS4T[countryFromZone-1];
	var tariffCheckCredit = zoneCheckCredit[countryFromZone-1];
	var tariffAddCredit = zoneAddCredit[countryFromZone-1];
	var tariffVoicemail = zoneVoicemail[countryFromZone-1];
	var tariffCS = zoneCS[countryFromZone-1];
	var tariffCallRate = eval("zonecalls"+countryFromZone)[countryToZone-1];
	var tariffSMSRate = eval("zonesms"+countryFromZone)[countryToZone-1];

	} else {

	var countryFromName = '';
	var countryTo = '';
	var countryToName = '';
	var tariffReceive = '0.00';
	var tariffS4T = '0.00';
	var tariffCheckCredit = '0.00';
	var tariffAddCredit = '0.00';
	var tariffVoicemail = '0.00';
	var tariffCS = '0.00';
	var tariffCallRate = '0.00';
	var tariffSMSRate = '0.00';

	}


	if (document.getElementById('countryFromName')) {
	document.getElementById('countryFromName').innerHTML = countryFromName;
	}

	if (document.getElementById('countryToName')) {
	document.getElementById('countryToName').innerHTML = countryToName;
	}

	if (document.getElementById('countryToFrom') && countryFromName != '' && countryToName != '') {
	document.getElementById('countryToFrom').innerHTML = 'Our rates from '+countryFromName+' to '+countryToName;
	} else if (document.getElementById('countryToFrom')){
	document.getElementById('countryToFrom').innerHTML = 'Please select countries to check rates';
	}

	if (document.getElementById('countryTo')) {
	document.getElementById('countryTo').innerHTML = countryTo;
	}

	if (document.getElementById('tariffReceive')) {
	document.getElementById('tariffReceive').innerHTML = "&pound;"+tariffReceive+"&nbsp;per minute";
	}

	if (document.getElementById('tariffSMS')) {
	document.getElementById('tariffSMS').innerHTML = "&pound;"+tariffSMSRate+"&nbsp;per text";
	}

	if (document.getElementById('tariffS4T')) {
	document.getElementById('tariffS4T').innerHTML = "&pound;"+tariffS4T+"&nbsp;per minute";
	}

	if (document.getElementById('tariffCheckCredit')) {
	document.getElementById('tariffCheckCredit').innerHTML = "&pound;"+tariffCheckCredit+"&nbsp;per text";
	}

	if (document.getElementById('tariffAddCredit')) {
	document.getElementById('tariffAddCredit').innerHTML = "&pound;"+tariffAddCredit+"&nbsp;per minute";
	}

	if (document.getElementById('tariffVoicemail')) {
	document.getElementById('tariffVoicemail').innerHTML = "&pound;"+tariffVoicemail+"&nbsp;per minute";
	}

	if (document.getElementById('tariffCS')) {
	document.getElementById('tariffCS').innerHTML = "&pound;"+tariffCS+"&nbsp;per minute";
	}

	if (document.getElementById('tariffRate')) {
	document.getElementById('tariffRate').innerHTML = "&pound;"+tariffCallRate+"&nbsp;per minute";
	}

	}


	//inialise everything (add dropdowns) and call updateCalculator to show the correct starting values
	//this is only called once on window load

	

	function initCalculator() {	

	if (document.getElementById('tariffcalc')) {

		document.tariffcalc.country_from_list.length = 0;
		addOption(document.tariffcalc.country_from_list, 'Please Select:',-1);
		for (var i=0; i < countryCallFrom.length;++i){
		addOption(document.tariffcalc.country_from_list, countryCallFrom[i],[i]);
		}

		document.tariffcalc.country_to_list.length = 0;
		addOption(document.tariffcalc.country_to_list, 'Please Select:',-1);
		for (var i=0; i < countryCallTo.length;++i){
		addOption(document.tariffcalc.country_to_list, countryCallTo[i],[i]);
		}

		updateCalculator();
		}
	}




	//this function is used to populate the dropdowns from the arrays
	function addOption(selectbox,text,value)
	{
	var optn = document.createElement("OPTION");
	optn.text = text;
	optn.value = value;
	selectbox.options.add(optn);
	}


	//this function is used to automatically select the countries
	function selectCountries(fromCountryID,toCountryID)
	{
	document.getElementById('country_from_list').selectedIndex = fromCountryID+1;
	document.getElementById('country_to_list').selectedIndex = toCountryID+1;
	updateCalculator();
	}

