 function getElementsById(sId)
 {
    var outArray = new Array();	
	if(typeof(sId)!='string' || !sId)
	{
		return outArray;
	};
	
	if(document.evaluate)
	{
		var xpathString = "//*[@id='" + sId.toString() + "']"
		var xpathResult = document.evaluate(xpathString, document, null, 0, null);
		while ((outArray[outArray.length] = xpathResult.iterateNext())) { }
		outArray.pop();
	}
	else if(document.all)
	{
		
		for(var i=0,j=document.all[sId].length;i<j;i+=1){
		outArray[i] =  document.all[sId][i];}
		
	}else if(document.getElementsByTagName)
	{
	
		var aEl = document.getElementsByTagName( '*' );	
		for(var i=0,j=aEl.length;i<j;i+=1){
		
			if(aEl[i].id == sId )
			{
				outArray.push(aEl[i]);
			};
		};	
		
	};
	
	return outArray;
 }

function ChangeStyleMouseOver(obj){
	if(obj.className!="RateLineVisible"){
		obj.className="RateLineMouseOver";
	}
}

function ChangeStyleMouseOut(obj){
	if(obj.className!="RateLineVisible"){
		obj.className="RateLine";
	}
}
 
function ChangeStyle(obj,select){
	if(select == "on"){
		if(document.getElementsByName("show")[0].checked){
			obj.className='RateLineInVisible';
		}else{
			obj.className='RateLineVisible';
		}
	}else{
		obj.className='RateLine';
	}
}


function GetSumm(){
	var CurrRate = getElementsById("rate")[1];
	var summ = document.getElementsByName("sum")[0].value;
	var inout = document.getElementsByName("inout")[0].value;
	CurrRate = parseFloat(CurrRate.value);
	summ = parseFloat(summ);
	if(inout=="in") {
		return parseInt(summ);
	}else{
		return parseInt(summ*CurrRate);
	}
}

function changefromto(){
	var from = document.getElementsByName("from")[0];
	var to = document.getElementsByName("to")[0];
	var tmp = from.value;
	var inout = document.getElementsByName("inout")[0];
	from.value = to.value;
	to.value = tmp;
	if(inout.value =="in") {
		inout.value = "out"
	}else{
		inout.value = "in"
	}
	requestprepare();
}

 
function Calc(){
  var rateline	=	getElementsById("rateline");
  var rate		=	getElementsById("rate");
  var give		=	getElementsById("rategive");
  var take		=	getElementsById("ratetake");
  var reserve	=	getElementsById("reserve");
  var sum		=	document.getElementsByName("sum")[0];
  var inout		=	document.getElementsByName("inout")[0];
  var pretz		= 4;
  var sumvalue = (sum.value.replace(',','.')*1).toFixed(pretz);
  
	if(inout.value=="out"){
		for (var i=0; i<rateline.length; i++){
			var ratex = parseFloat(rate[i].value);
			take[i].innerHTML = parseFloat(sumvalue);
			give[i].innerHTML = parseFloat(sumvalue*ratex).toFixed(pretz);
			if(parseFloat(take[i].innerHTML)>=parseFloat(reserve[i].innerHTML)){
				ChangeStyle(rateline[i],"on");
			}else{
				ChangeStyle(rateline[i],"off");
			}
		}
	}else{
		for (var i=0; i<rateline.length; i++){
			var ratex = parseFloat(rate[i].value);
			give[i].innerHTML = parseFloat(sumvalue);
			take[i].innerHTML = parseFloat(sumvalue/ratex).toFixed(pretz);
			if(parseFloat(take[i].innerHTML)>=parseFloat(reserve[i].innerHTML)){
				ChangeStyle(rateline[i],"on");
			}else{
				ChangeStyle(rateline[i],"off");
			}
		}
	}
}


function requestprepare(order,orddir){
var from = document.getElementsByName("from")[0].value;
var to = document.getElementsByName("to")[0].value;
var url = "http://online-obmen.ru/ss.php?from=" + from + "&to=" + to + "&order=" + order + "&orddir=" + orddir;
var ratestable = document.getElementById("ratestable");
	loadXMLDoc(url);
}


var req='';
function loadXMLDoc(url) {
    try{
        req = new XMLHttpRequest();
        req.onreadystatechange = processReqChange;
        req.open("GET", url, true);
        req.send(null);
    }catch(e){
        req = new ActiveXObject("Microsoft.XMLHTTP");
        if (req) {
            req.onreadystatechange = processReqChange;
            req.open("GET", url, true);
            req.send();
        }
    }
}

function processReqChange(){
  document.getElementById("status").innerHTML = stat(req.readyState);
	document.getElementById("ratestable").innerHTML= "Получаем самые свежие курсы... (" + stat(req.readyState) + ")";
  if (req.readyState == 4){
    if (req.status == 200){
		document.getElementById("ratestable").innerHTML=req.responseText;
		Calc();
    }
  }
}

function stat(n)
{
  switch (n) {
    case 0:
      return "не инициализирован";
    break;
      
    case 1: 
      return "загрузка...";
    break;
    
    case 2: 
      return "загружено";
    break;
    
    case 3: 
      return "в процессе...";
    break;
      
    case 4: 
      return "готово";
    break;
    
    default:
      return "неизвестное состояние";  
  }  
}

