var G_cur_url = '/custom/cur.php';
var G_init = 0;
var G_process = 0;

function  ShowCur(obj) {
	var dv = document.getElementById("currencyDIV");
	dv.style.left = obj.offsetLeft + 6;
	dv.style.top = obj.offsetTop + 16;
	dv.style.visibility = dv.style.visibility == 'hidden' ? 'visible' : 'hidden';
}

function loadXMLDoc(url, warn_obj, fun) {
	if (!url.match(/\?/)) url += '?' ;
	url += '&c=' + Math.random();
	var ret = 1;
	var isIE = false;
	
	/* кроссбраузерное создание XMLHttpRequest */
	var req = false;
	/*@cc_on @*/
	/*@if (@_jscript_version >= 5)
	try {
		req = new ActiveXObject("Msxml2.XMLHTTP");
		isIE = true;
	} catch (e) {
		try {
			req = new ActiveXObject("Microsoft.XMLHTTP");
			isIE = true;
		} catch (e2) {
			req = false;
		}
	}
	@end @*/
	if (!req && typeof XMLHttpRequest != 'undefined') {
		req = new XMLHttpRequest();
	}
	/* XMLHttpRequest создан или undef */
	
	if (req) {
		req.open("GET", url, false); // synchronous!
		req.onreadystatechange = function() {
			// this handler doesn't work in FF
			if (req.readyState == 4) {
				txt = req.responseText;
				if (warn_obj) {
					warn_obj.innerHTML= '';
					warn_obj.style.display = 'none';
				}
				ret = fun(txt);
			} else {
				//warn_obj.style.display = '';
				//warn_obj.innerHTML= wait;
			}	
		}

    req.setRequestHeader('CONTENT-TYPE', 'text/html; codepage=windows-1251;');
    req.send(null);
    if(!isIE){
	    if (req.onreadystatechange == null){
				/*
					workaround for FF synchronous request implementation.
					FF's XMLHTTPRequest doesn't call onreadystatechange
					handler on synchronous requests
				*/	
				if (req.readyState == 4) {
					txt = req.responseText;
					if (warn_obj) {
						warn_obj.innerHTML= '';
						warn_obj.style.display = 'none';
					}
					ret = fun(txt);
				}    	
			}
    }
  }
  
	return ret;
}

function XMLparse(xml) {
	// возвращает DOM-объект загруженного xml.
	var domdoc;
	if(document.implementation && document.implementation.createDocument){
		// for non-IE browsers
		var parser = new DOMParser();
		domdoc = parser.parseFromString(xml,"text/xml");
  }
  else if(window.ActiveXObject){
		// for IE-based browsers
		domdoc = new ActiveXObject('MSXML.DomDocument');
		domdoc.async = false;
		domdoc.loadXML(xml);
  }else{
  	alert ("can't DOM");
  }

  return domdoc;
}

function GetCurProcess() {
	if (G_process) return 0;
	var el_from;
	if (!( el_from = document.getElementById('currency_from'))) return 0;
	var el_to;
	if (!(el_to = document.getElementById('currency_to'))) return 0;
	var from_num;
	if (!(from_num = document.getElementById('currency_num'))) return 0;
	from_num = from_num.value;
	if (!from_num) {
		alert('Поле не заполнено');
		return 0;	
	}
	var from_str = '';
	var to_str = '';
	
	for (var i = 0; i < el_from.length; i++) {
		if (el_from[i].selected == true) from_str = el_from[i].value;
	}

	for (var i = 0; i < el_to.length; i++) {
		if (el_to[i].selected == true) to_str = el_to[i].value;
	}

	if (from_str == to_str) {
		alert('Бессмысленно переводить валюту в ей идентичную :)');
		return 0;	
	}

	from_num = from_num.replace(/\s+/g,'');

	if (!from_num.match(/^\d+\.?\d*$/)) {
		alert('Введите верное число');
		return 0;	
	}

	G_process = 1;
	var wd = document.getElementById('currency_warn');
	var get_str = G_cur_url + '?cur;' + from_num + ';' + from_str + ';' + to_str;
	setTimeout('doGetCurrProcess("'+get_str+'")', 1000);
	wd.innerHTML = 'идет обработка запроса ...';
}

function doGetCurrProcess(get_str) {
	var ret = loadXMLDoc(get_str, false, XMLparse);
	var ret_str = 'Не удалось осуществить операцию попробуйте позже';
	var wd = document.getElementById('currency_warn');

	var error;
	var str = ret.getElementsByTagName('errors')[0];
	for (i=0;i<str.getElementsByTagName('item').length;i++) {
		error += str.getElementsByTagName('item')[i].text;
	}

	if (error) {
		wd.innerHTML = error;
		G_process = 0;
		return 0;
	}

	var from_sum = ret.getElementsByTagName('from_sum')[0].text;
	var to_sum = ret.getElementsByTagName('to_sum')[0].text;
	var from_str = ret.getElementsByTagName('from_str')[0].text;
	var to_str = ret.getElementsByTagName('to_str')[0].text;

	if (from_sum) {
		ret_str = from_sum + ' ' + from_str + ' = ' + to_sum + ' ' + to_str;
	}	

	wd.innerHTML = ret_str;

}

function ParseCurAnswer(txt) {
	return txt;
}

function Init() {
if (G_init) return;
var struct = loadXMLDoc(G_cur_url, false, XMLparse)

var cur_num = document.getElementById('currency_num');
cur_num.onchange = function() {G_process = 0;}
cur_from = document.createElement('select');
cur_from.onchange = function() {G_process = 0;}
cur_to = document.createElement('select');
cur_to.onchange = function() {G_process = 0;}
cur_from.id = 'currency_from';
cur_to.id = 'currency_to';

document.getElementById('from_cur').appendChild(cur_from);
document.getElementById('to_cur').appendChild(cur_to);

var str = struct.getElementsByTagName('currency')[0];
for (i=0;i<str.getElementsByTagName('item').length;i++) {
	var el =str.getElementsByTagName('item')[i];
	var title = el.getElementsByTagName('title')[0].text;
	var name = el.getElementsByTagName('name')[0].text;
	option = document.createElement('option');
	var option2 = option.cloneNode();
	option.appendChild(document.createTextNode(title));
	option2.appendChild(document.createTextNode(title));
	if (name == 'RUB') 	option.selected = true;
	if (name == 'USD') 	option2.selected = true;
	option.value = name;
	option2.value = name;
	cur_from.appendChild(option);
	cur_to.appendChild(option2);
}
G_init = 1;
}