

/******************************************
* 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","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","Lebanon","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","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"); 
	var countryCallFromIDs = new Array("2","3","5","7","8","9","11","12","13","14","16","17","18","20","23","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","104","106","108","109","110","114","117","120","121","122","127","128","129","131","133","136","137","138","139","141","142","143","144","145","146","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");
	var countryCallFromZone = new Array("1","5","5","9","9","7","9","2","1","6","3","6","9","1","9","5","7","9","1","8","9","6","1","1","1","1","9","7","4","1","5","1","1","6","1","5","1","5","9","9","6","1","5","6","1","3","1","4","9","6","3","4","1","3","4","1","1","6","6","1","4","7","5","4","4","4","1","2","1","3","6","3","7","7","6","1","1","9","1","5","3","5","4","4","6","1","1","4","1","6","9","9","9","1","1","3","6","4","6","9","4","1","5","3","1","9","8");

	//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","Lebanon","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","104","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","1","6","9","3","6","9","5","1","7","4","9","6","7","5","4","7","9","6","1","4","4","6","4","8","4","9","4","4","7","6","7","4","7","1","9","1","1","4","1","4","9","7","4","7","4","1","4","5","6","1","1","7","4","4","6","1","4","5","1","5","9","9","7","1","7","9","7","6","1","5","6","6","3","3","1","3","1","4","9","6","3","6","4","6","3","6","6","1","3","4","4","4","1","1","6","5","4","4","6","6","4","1","9","4","4","7","5","5","6","5","9","4","4","4","6","1","9","2","7","4","1","3","6","3","7","7","7","6","1","1","9","3","4","4","1","5","4","1","3","4","5","4","4","6","1","1","4","1","6","9","9","9","9","4","7","4","1","1","3","6","6","4","6","4","9","4","1","6","9","4","5","3","1","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");
	var zoneSMS = new Array("0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39","0.39");
	var zoneS4T = new Array("0.25","0.49","0.49","0.49","0.49","0.69","1.19","1.19","1.29");
	var zoneCheckCredit = new Array("FREE","FREE","FREE","FREE","FREE","FREE","FREE","FREE","FREE");
	var zoneAddCredit = new Array("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");
	var zoneCS = new Array("0.25","0.49","0.49","0.49","0.49","0.69","1.19","1.19","1.29");

	//tariff call matrix
	
var zone1 = new Array("0.25","0.49","0.49","0.79","0.49","0.49","1.09","0.29","0.79");
var zone2 = new Array("0.49","0.49","0.49","0.79","0.69","0.49","1.09","0.49","0.89");
var zone3 = new Array("0.49","0.49","0.59","0.79","0.69","0.49","1.09","0.49","0.89");
var zone4 = new Array("0.49","0.49","0.59","0.79","0.69","0.49","1.09","0.49","0.89");
var zone5 = new Array("0.49","0.59","0.69","0.89","0.69","0.69","1.19","0.49","0.99");
var zone6 = new Array("0.69","0.69","0.79","0.99","0.89","0.79","1.29","0.69","1.09");
var zone7 = new Array("1.19","1.19","1.29","1.49","1.39","1.19","1.79","1.19","1.59");
var zone8 = new Array("1.19","1.29","1.29","1.59","1.39","1.29","1.89","1.19","1.59");
var zone9 = new Array("1.29","1.29","1.39","1.59","1.49","1.29","1.89","1.29","1.69");
	
	//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 tariffSMS = zoneSMS[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 tariffRate = eval("zone"+countryFromZone)[countryToZone-1];

	} else {

	var countryFromName = '';
	var countryTo = '';
	var countryToName = '';
	var tariffReceive = '0.00';
	var tariffSMS = '0.00';
	var tariffS4T = '0.00';
	var tariffCheckCredit = '0.00';
	var tariffAddCredit = '0.00';
	var tariffVoicemail = '0.00';
	var tariffCS = '0.00';
	var tariffRate = '0.00';

	}


	if (document.getElementById('countryFromName')) {
	document.getElementById('countryFromName').innerHTML = countryFromName+" ";
	}

	if (document.getElementById('countryToName')) {
	document.getElementById('countryToName').innerHTML = countryToName;
	}

	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;"+tariffSMS+"&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;"+tariffRate+"&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')) {

	
		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]);
		}

		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();
	}

