		/* 		developed by webous agency 
				http://webous.com/
				author: val petruchek
				e-mail: val@webous.com
				date: 	July 16, 2007					*/

var Cache = new Array();

function SetSelectValue(selectObj, value)
	{
	for(i=0;i<selectObj.length;i++)
		{
		if(selectObj[i].value == value)
			selectObj.selectedIndex = i;
		}
	}

function Calculate (amount, curfrom, curto)
	{
	if (isNaN(amount))
		{
		document.getElementById('result').innerHTML = amount + ' is not a number, sorry.';
		return;
	    }
	amount = FormatFloat(amount);
	if ( (curfrom == curto) || (amount == 0.00))
		{
		document.getElementById('result').innerHTML = amount + ' ' + curfrom + ' = ' + amount + ' ' + curto;
		return;
	    }
	req = curfrom+curto;
	if (Cache[req])
		{
		document.getElementById('result').innerHTML = amount + ' ' + curfrom + ' = ' + FormatFloat(amount*Cache[req]) + ' ' + curto;
		return;
		}
	loadXMLDoc ("ajaxrate.php","amount="+amount+"&req="+req);
	ButtonEnabled(false);
	}

function FormatFloat (s)
	{
	s = Math.round(s*100)/100;
	var z = new String (s);
	k = z.indexOf('.');
	if (k==-1) 
		return (z+'.00');
	else{
		z = z+'00';
		return (z.substr(0,k+3));
		}
	return (z);
	}

function loadXMLDoc(url, data) 
	{
    if (window.XMLHttpRequest) 
		{// branch for native XMLHttpRequest object
        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange;
        req.open("POST", url, true);
  		req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		req.send(data);
		return true;
    	}
	else{
		if (window.ActiveXObject)
			{// branch for IE/Windows ActiveX version
	        req = new ActiveXObject("Microsoft.XMLHTTP");
    	    if (req) 
				{
        	    req.onreadystatechange = processReqChange;
		        req.open("POST", url, true);
		  		req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
				req.send(data);
				return true;
        		}
	    	}
		else{
			return false;
			}
		}	
	}

function processReqChange() 
	{
    // only if req shows "complete"
    if (req.readyState == 4) 
		{
        // only if "OK"
        if (req.status == 200)
			{
			res = req.responseText;
			reply = res.split('||');
			document.getElementById('result').innerHTML = reply[0];
			if (reply[1])//something to cache
				{
				areply = reply[1].split('=');
				if (areply[0] && areply[1])
					Cache[areply[0]] = areply[1];
				}
        	}
		else{
            alert("Communication Error:\n" + req.statusText + "\n\n" + req.responseText);
        	}
		ButtonEnabled(true);
		}
	}

function ButtonEnabled(buttonstatus)
	{
	thebutton = document.getElementById('checkbutton');
	thebutton.value = (buttonstatus) ? "Proceed" : "wait...";
	thebutton.disabled = !buttonstatus;
	}
