
var val = new Object();

    
function calculate(bReverse) {
     var select1 = document.curconvert.convertfrom;

     //these error messages are hidden values in the templates
     //they get translated into foreign languages
     var errmsg1 = "An error has occurred with this selection. Please select two currencies and try again.";
     var errmsg2 = "Please enter a valid amount.";

	
	val[0] = rate[select1[select1.selectedIndex].value];
	val[1]=rate['UGX'];
	val[2]=rate['USD'];
	val[3]=rate['AUD'];
	val[4]=rate['CAD'];
	val[5]=rate['EUR'];
	val[6]=rate['INR'];
	val[7]=rate['IEP'];
	val[8]=rate['JMD'];
	val[9]=rate['NGN'];
	val[10]=rate['NZD'];
	val[11]=rate['PKR'];
	val[12]=rate['ZAR'];
	val[13]=rate['GBP'];
	val[14]=rate['TWD'];
	val[15]=rate['PGK'];
/*	 
	if (fromval == null || toval == null)
	{
		document.curconvert.amount2.value="0.00";
		return true;
	}

	 if (fromval == "" || toval == "" || isNaN(fromval) || isNaN(toval)) {
		alert(errmsg1);
		return false;
     }
     */
	switch (bReverse)
	{
	case 0:
		var amount = removecommas(document.curconvert.amount.value);
		break;
	case 1:
		var amount = removecommas(document.curconvert.amountUGX.value); 
		break;
	case 2:
		var amount = removecommas(document.curconvert.amountTWD.value); 
		break;
	case 3:
		var amount = removecommas(document.curconvert.amountAUD.value);
		break;
	case 4:
		var amount = removecommas(document.curconvert.amountCAD.value); 
		break;
	case 5:
		var amount = removecommas(document.curconvert.amountEUR.value);
		break;
	case 6:
		var amount = removecommas(document.curconvert.amountINR.value); 
		break;
	case 7:
		var amount = removecommas(document.curconvert.amountIEP.value);
		break;
	case 8:
		var amount = removecommas(document.curconvert.amountJMD.value); 
		break;
	case 9:
		var amount = removecommas(document.curconvert.amountNGN.value);
		break;
	case 10:
		var amount = removecommas(document.curconvert.amountNZD.value); 
		break;
	case 11:
		var amount = removecommas(document.curconvert.amountPKR.value);
		break;
	case 12:
		var amount = removecommas(document.curconvert.amountZAR.value); 
		break;
	case 13:
		var amount = removecommas(document.curconvert.amountGBP.value);
		break;
	case 14:
		var amount = removecommas(document.curconvert.amountUSD.value); 
		break;
	case 15:
		var amount = removecommas(document.curconvert.amountPGK.value); 
		break;
	}

	if (amount == null)
		return true;
	
	 if (isNaN(amount)){ 
	 	alert(errmsg2);
		//document.curconvert.amount.focus();
		return false;
	}
     var pattern = /,/g;
     amount = amount.replace(pattern, "");

  	showConversion(amount, bReverse);

}

function lastupdate() {
/*     if ((navigator.appName.indexOf("Netscape") != -1)&& (parseInt(navigator.appVersion) == 4)) {
			paintNSCP();
     } 
	 else if ((navigator.appName.indexOf("Microsoft") != -1) || 
	 		  (parseInt(navigator.appVersion) >= 5)){
			paintDOM();
    } 
*/	calculate(2);
}

function paintNSCP() {
     document.layers['lastupdate'].document.write('<NOBR><SPAN CLASS="lastupdate">'+lastupdate );
     document.layers['lastupdate'].document.close();
}

function paintDOM() {
	 var value = lastdate;
	 	 
     if (document.createTextNode){
	 	if(document.getElementById("lastupdate_ie").hasChildNodes()){
			oText = document.getElementById("lastupdate_ie").firstChild;
			if (oText.nodeType == 3)
				oText.nodeValue = value;
			else return false;
		}
		else{
		 	var results=document.createTextNode(value);
			document.getElementById("lastupdate_ie").appendChild(results);
			
		}
	  }
}

function showConversion(amount, bReverse) {
	var totval;

	if (bReverse!=0)
	{
		totval = amount * val['0']/val[bReverse];
		document.curconvert.amount.value=toCurrency(totval);
	}
	if (bReverse!=1)
	{
		totval = amount * val[1]/val[bReverse];
		document.curconvert.amountUGX.value=toCurrency(totval);
	}
	if (bReverse!=2)
	{
		totval = amount * val[2]/val[bReverse];
		document.curconvert.amountTWD.value=toCurrency(totval);
	}
	if (bReverse!=3)
	{	
		totval = amount * val[3]/val[bReverse];
		document.curconvert.amountAUD.value=toCurrency(totval);
	}
	if (bReverse!=4)
	{
		totval = amount * val[4]/val[bReverse];
		document.curconvert.amountCAD.value=toCurrency(totval);
	}
	if (bReverse!=5)
	{
		totval = amount * val[5]/val[bReverse];
		document.curconvert.amountEUR.value=toCurrency(totval);
	}
	if (bReverse!=6)
	{
		totval = amount * val[6]/val[bReverse];
		document.curconvert.amountINR.value=toCurrency(totval);
	}
	if (bReverse!=7)
	{
		totval = amount * val[7]/val[bReverse];
		document.curconvert.amountIEP.value=toCurrency(totval);
	}
	if (bReverse!=8)
	{
		totval = amount * val[8]/val[bReverse];
		document.curconvert.amountJMD.value=toCurrency(totval);
	}
	if (bReverse!=9)
	{
		totval = amount * val[9]/val[bReverse];
		document.curconvert.amountNGN.value=toCurrency(totval);
	}
	if (bReverse!=10)
	{
		totval = amount * val[10]/val[bReverse];
		document.curconvert.amountNZD.value=toCurrency(totval);
	}
	if (bReverse!=11)
	{
		totval = amount * val[11]/val[bReverse];
		document.curconvert.amountPKR.value=toCurrency(totval);
	}
	if (bReverse!=12)
	{
		totval = amount * val[12]/val[bReverse];
		document.curconvert.amountZAR.value=toCurrency(totval);
	}
	if (bReverse!=13)
	{
		totval = amount * val[13]/val[bReverse];
		document.curconvert.amountGBP.value=toCurrency(totval);

	}
	if (bReverse!=14)
	{
		totval = amount * val[14]/val[bReverse];
		document.curconvert.amountUSD.value=toCurrency(totval);
	}
	if (bReverse!=15)
	{
		totval = amount * val[15]/val[bReverse];
		document.curconvert.amountPGK.value=toCurrency(totval);
	}
}

function round(num) {
	var x = num * 100;
	return (Math.round(x) / 100);
}

function removecommas(amount)
{
  var length=amount.length;
  var s=amount.toString();
  var returnval = "";
  for (var i=0;i<=length;i++) {
	if (amount.substr(i, 1)!=',')
		returnval=returnval+amount.substr(i, 1);
	}
  return returnval;
}

function toCurrency(num) {
	num = round(num);
	var currstring = num.toString();
	if (currstring.match(/\./)) {
		var curr = currstring.split('.');
	} else {
		var curr = [currstring, "00"];
	}
	curr[1] += "00";
	curr[2] = "";
	var returnval = "";
	var length = curr[0].length;

	// add 0 to decimal if necessary
	for (var i = 0; i < 2; i++)
		curr[2] += curr[1].substr(i, 1);

	// insert commas for readability
	for (i = length; (i - 3) > 0; i = i - 3) {
		returnval = "," + curr[0].substr(i - 3, 3) + returnval;		
	}
	returnval = curr[0].substr(0, i) + returnval + "." + curr[1].substr(0, 2);
	if (returnval=="0.0000")
		return "";
	return (returnval);
}





