function init(){		
	
	fnNS4();
	setGlobalVars();

	seUnit1.onchange = fnValutesEqual;
	seUnit2.onchange = fnValutesEqual;
	fnBindClickEventRadio();
	
	if(img_state()) 
		{
			focusFld("amount");
		} 
		else 
		{
			focusFld("result");
		}
	
	var i = 0, j = aValutes.length;
	for (i; i < j; i++) 
	{
    	aValutes[aValutes[i].vCode] = aValutes[i];
	}	
}

function fnNS4(){
br = new brow();	

if(br.ns4 || br.ns5) document.captureEvents(Event.KEYDOWN);
document.onkeydown=kdown;
}	

function fnBindClickEventRadio(){
var i = 0, j = raType.length;
for(i; i < j; i++)
	{
		raType[i].onclick = convert;
	}
}



function brow(){
	this.ver=navigator.appVersion;
	this.dom=document.getElementById?1:0;
	this.ns5=(this.dom && parseInt(this.ver) >= 5) ?1:0;
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ns4 || this.ns5);
	return this;
}


function setGlobalVars(){
arr_up = new Image(); arr_up.src="/web/images/rba-arrow-big-up-blue.gif";
arr_down = new Image(); arr_down.src="/web/images/rba-arrow-big-down-blue.gif";
sDomVal = "HRK";
foForm = document.f1;
seUnit1 = foForm.unit1;
seUnit2 = foForm.unit2;
txInput1 = foForm.amount;
txInput2 = foForm.result;
raType = foForm.ratesKind;
pNotif = br.dom ? document.getElementById('pMsg') : 0;
}


function fnValutesEqual(){
if(seUnit1.options[seUnit1.selectedIndex].value==sDomVal || seUnit2.options[seUnit2.selectedIndex].value==sDomVal)
	{
		fnDisableRadioButtons(0);
		fnShowHideMsgBox(0);
	}
else 
	{
		fnDisableRadioButtons(1);
		fnShowHideMsgBox(1);
	}
}


function fnDisableRadioButtons(iState){
var i = 0, j = raType.length;
for(i; i < j; i++)
	{
		raType[i].disabled = iState;
	}
foForm.radioDisabled.value=iState;
}


function fnShowHideMsgBox(iState){
if(pNotif)
	{
		pNotif.style.display = (iState ? 'block' : 'none');
	}
}

function focusFld(fname){	
	var iname;
	if(br.ns4) foForm[fname].focus(); 
	else {
		if(fname=="result") iname="amount"; else iname="result";
		foForm[fname].readOnly=0; foForm[iname].readOnly=1;
		foForm[fname].select();
		}
}	

function kdown(e){

if(br.ns4 || br.ns5) key=e.which;
else key=window.event.keyCode;

if(key==13){ convert();return false;}

}

function convert(){
var bTopDown = img_state();

var sValute1 = seUnit1.options[seUnit1.selectedIndex].value;
var sValute2 = seUnit2.options[seUnit2.selectedIndex].value;

var fAmount = 0;


if(sValute1==sValute2)
	{
		return false;
	}
else
	{
		if(sValute1==sDomVal || sValute2==sDomVal)
			{
						
				var sRatesType = raType[0].checked ? 'vPurc' : (raType[1].checked ? 'vMidd' : 'vSell');		
						
				if(bTopDown)
					{					
						var fAmount = calculate(aValutes[sValute1][sRatesType],aValutes[sValute2][sRatesType],txInput1.value);						
					}
				
				else
					{			
						var fAmount = calculate(aValutes[sValute2][sRatesType],aValutes[sValute1][sRatesType],txInput2.value);
					}	
			}
			
			else
			{		
				if(bTopDown)
					{		
						var fPurchase = calculate(aValutes[sValute1].vPurc,1,txInput1.value);
						var fAmount = calculate(1,aValutes[sValute2].vSell,fPurchase);
					}
				
				else
					{			
						var fPurchase = calculate(aValutes[sValute2].vPurc,1,txInput2.value);
						var fAmount = calculate(1,aValutes[sValute1].vSell,fPurchase);
					}		
			}
	
		fnFormatDisplay(bTopDown,txInput1,txInput2,fAmount);	
	}
}


function calculate(fUnit,fConv,fValue){
	var fOutput = 0;
	fValue = 1*removeCommas(fValue);
	fOutput = (fValue * fUnit) / fConv;	
	return fOutput;
}

function fnFormatDisplay(bTopDown,txInput1,txInput2,fAmount){
var txInput = bTopDown ? txInput2 : txInput1;
txInput.value = round(fAmount);
setCommaSeparator(txInput1);
setCommaSeparator(txInput2);
}

function round(number,X) {
// rounds number to X decimal places, defaults to 2
    X = (!X ? 2 : X);
    return Math.round(number*Math.pow(10,X))/Math.pow(10,X);
}



function PostForm(url){
foForm.arrow.value = document.images["arrow"].src;
foForm.action=url;
foForm.submit();		
}


function img_state(){
	var imgsrc = document.images["arrow"].src;
	if(imgsrc.indexOf("down-blue")==-1)
		{
			 return 0;
		}
	else
	{
		return 1;
	}
}

function inverse(){

	var img = document.images["arrow"];
	
	if(img_state()) 
	{
		img.src=arr_up.src;
		focusFld("result");
	}
	else 
	{
		img.src=arr_down.src;
		focusFld("amount");
	}

}

function addCommas( u_value ) {
var ctr;
var decCtr=0;
var decIndex;
var decIncr = 3;
var newstr = u_value;
var strlen = u_value.length;
decIndex = u_value.indexOf('.');
if ( decIndex == -1 ) 
decIndex = strlen; 
for ( ctr = decIndex-1; ctr > 0; ctr-- ) {
decCtr++;
if ( decCtr == 3 ) { 
newstr = newstr.substring(0,ctr) +
"," +
newstr.substring(ctr, strlen );
strlen++;
decCtr = 0; 
}
}
return(newstr);
}


function makeNumValid( p_value ) {
var strchar;
var strctr;
var strlen;
var instr = p_value;
var newstr;
var tempstr;
if( instr.indexOf('.') != instr.lastIndexOf('.') ) 
return(-1); 
newstr = removeCommas( instr );
strlen = newstr.length;
exit = 0;
tempstr = '';
for( strctr=0; strctr <strlen; strctr++) {
strchar = newstr.charAt(strctr);
if( (strchar == '.') || (strchar == '0') || (strchar == '1') || (strchar == '2') 
|| (strchar == '3') || (strchar == '4') || (strchar == '5') || (strchar == '6') 
|| (strchar == '7') || (strchar == '8') || (strchar == '9')) 
tempstr = tempstr + strchar;
}
newstr = tempstr;
if( exit == 1 ) 
return(0);
else 
return(newstr); 
}


function removeCommas( t_value ) {
t_value+="";
var ctr;
var newstr = t_value;
var commapos;
var strlen = t_value.length - 1;
commapos = newstr.indexOf(',');
while ( commapos != -1 ) {
newstr = newstr.substring(0,commapos) +  
newstr.substring(commapos + 1, newstr.length );
commapos = newstr.indexOf(',');
}
return(newstr);
}

function setCommaSeparator(obj) {
if(obj.value.indexOf('NaN')!=-1)
	{
		obj.value = 0;
	}

if ( obj.value == '')
	 obj.value = 0;

obj.value = addCommas(roundFloat (makeNumValid(obj.value))); 

if ( parseFloat(obj.value) <0 )
  obj.value = 0;
}

function roundFloat( s_value ) {
var newval;
s_value = parseFloat(s_value);
newval = (s_value*100)/100;
//newval = (Math.floor(s_value*100))/100;
newval = newval + "";
if ( newval.indexOf('.') == -1 ) 
newval = newval + ".00"; 
return(newval);
}
