//	---------------------------------------------------
// 	$Id: currcalc2.js,v 1.10 2002/07/29 18:39:45 soglesby Exp $
// 	$Source: /bbsrc/web/calc/currency/RCS/currcalc2.js,v $
//	currcalc2.js - JavaScript for currency calculators 
//	---------------------------------------------------

var eurovals = new Object();
eurovals['FRF'] = 6.559;
eurovals['ATS'] = 13.76030;
eurovals['PTE'] = 200.48200;
eurovals['ESP'] = 166.38600;
eurovals['BEF'] = 40.33990;
eurovals['NLG'] = 2.20371;
eurovals['FIM'] = 5.94573;
eurovals['DEM'] = 1.95583;
eurovals['IEP'] = 0.78756;
eurovals['ITL'] = 1936.27000;
eurovals['LUF'] = 40.33990;
eurovals['GRD'] = 340.75;


//onresize = function() { window.location.reload(); }

if (navigator.appVersion.charAt(0) < 4) {
	window.location = "http://www.bloomberg.com/help/browserupgr.html";
}

function ignoreError() {
	return true;
}

function calculate() {
     var select1 = document.currcalc.from_tkc;
     var select2 = document.currcalc.to_tkc;
     var select1_text = select1[select1.selectedIndex].value;
     var select2_text = select2[select2.selectedIndex].value;
     var fromval;
     var toval;
	 
	 //these error messages are hidden values in the templates
	 //they get translated into foreign languages
	 var errmsg1 = document.currcalc.translation1.value;
	 var errmsg2 = document.currcalc.translation2.value;
	 var errmsg3 = document.currcalc.translation3.value;
	 

	 //calculate the fixed Euro value
	 if (select1_text.match(/\(EUR\)/) != null)
     { 
		 var result = select2_text.match(/(FRF|ATS|PTE|ESP|BEF|NLG|FIM|DEM|IEP|ITL|LUF|GRD)/);
		 if (result != null)
         {
			fromval = 1;
			toval = eurovals[result[0]];
		 }
     }
	 
	  //calculate the fixed Euro value
     if (select2_text.match(/\(EUR\)/) != null)
     {
	 	var result = select1_text.match(/(FRF|ATS|PTE|ESP|BEF|NLG|FIM|DEM|IEP|ITL|LUF|GRD)/);
	 	if (result != null)
	 	{
			toval = 1;
			fromval = eurovals[result[0]];
		}
     }
     
     if (fromval == null && toval == null)			
     {
 	 	 fromval = price[select1[select1.selectedIndex].value];
     	 toval = price[select2[select2.selectedIndex].value];
		 
     }
	 
	 if (fromval == "" || isNaN(fromval) || toval == "" || isNaN(toval)) {
		alert(errmsg1);
		return false;
     }
     var amount = document.currcalc.amount.value;
	 if ((amount == "") || isNaN(amount) || (amount == 0) || (amount < 1)){ 
	 	alert(errmsg2);
		document.currcalc.amount.focus();
		return false;
	}
     var pattern = /,/g;
     amount = amount.replace(pattern, "");

     if ((navigator.appName.indexOf("Netscape") != -1)&& (parseInt(navigator.appVersion) == 4)) {
			paintNSCP(fromval, toval, amount);
     } 
	 else if ((navigator.appName.indexOf("Microsoft") != -1) || 
	 		  (parseInt(navigator.appVersion) >= 5)){
			paintDOM(fromval, toval, amount);
    } 
	else {
		alert(errmsg3);
     }
}

function paintNSCP(fromval, toval, amount) {
     var totval = amount * toval / fromval;
     var select1 = document.currcalc.from_tkc;
     var select2 = document.currcalc.to_tkc;
	 var translate = document.currcalc.translation.value;
	 
     document.layers['conversion'].document.write('<br><br><NOBR><SPAN CLASS="erate">' + translate + ' ' + amount + " " + select1.options[select1.selectedIndex].text + " = " + toCurrency(totval) + " "  + select2.options[select2.selectedIndex].text + '</SPAN></NOBR>');
     //document.layers['conversion'].document.write('<br><br><NOBR><SPAN CLASS="erate">' + "at a rate of " + toCurrency(toval / fromval) + ' ' + select2.options[select2.selectedIndex].text + '</SPAN></NOBR>');
     document.layers['conversion'].document.close();
}

function paintDOM(fromval, toval, amount) {
     var totval = amount * toval / fromval;
     var select1 = document.currcalc.from_tkc;
     var select2 = document.currcalc.to_tkc;
	 var translate = document.currcalc.translation.value;
	 
	//var rate = " @ " + toCurrency(toval / fromval) + '  ' + select2.options[select2.selectedIndex].text;
	 var value = translate + "  " + amount + " " + select1.options[select1.selectedIndex].text + " = " + toCurrency(totval) + " " + select2.options[select2.selectedIndex].text;
	 
	 	 
     if (document.createTextNode){
	 	if(document.getElementById("conversion_ie").hasChildNodes()){
			oText = document.getElementById("conversion_ie").firstChild;
			if (oText.nodeType == 3)
				oText.nodeValue = value;
			else return false;
		}
		else{
		 	var results=document.createTextNode(value);
			document.getElementById("conversion_ie").appendChild(results);
			
		}
	  }
}

function round(num) {
	var x = num * 10000;
	return (Math.round(x) / 10000);
}

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);
	return (returnval);
}


