
// Detect browser specifics
var IE=null, NS4=null, NS5=null, KO=null, OP=null;
var navN=navigator.appName;

var fieldd;
var req;
var val;
var actiond;
var itemd;

function createAjaxObj(){
	var httprequest=false
	if (window.XMLHttpRequest){ // if Mozilla, Safari etc
		httprequest=new XMLHttpRequest();
		if (httprequest.overrideMimeType)
			httprequest.overrideMimeType('text/xml');
	}
	else if (window.ActiveXObject){ // if IE
		try {
			httprequest=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e){
			try{
				httprequest=new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e){ alert("Error!"); }
		}
	}
	return httprequest;
}


var ajaxpack=new Object();
ajaxpack.basedomain="http://"+window.location.hostname;
ajaxpack.ajaxobj=createAjaxObj();
ajaxpack.filetype="txt";
ajaxpack.addrandomnumber=0; //Set to 1 or 0. See documentation.

ajaxpack.postAjaxRequest=function(url, parameters, callbackfunc, filetype){
	ajaxpack.ajaxobj=createAjaxObj() //recreate ajax object to defeat cache problem in IE
	if (this.ajaxobj){
		this.filetype=filetype;
		this.ajaxobj.onreadystatechange = callbackfunc;
		this.ajaxobj.open('POST', url, true);
		this.ajaxobj.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		this.ajaxobj.setRequestHeader("Content-length", parameters.length);
		this.ajaxobj.setRequestHeader("Connection", "close");
		this.ajaxobj.send(parameters);
	}
}

function processGetPostValid(){
	var myajax=ajaxpack.ajaxobj;
	var myfiletype=ajaxpack.filetype;
	if (myajax.readyState == 4){ //if request of file completed
		if (myajax.status==200 || window.location.href.indexOf("http")==-1){ //if request was successful or running script locally
			if (myfiletype=="xml")
			{
				var vperiod = new Array();
				var f = document.forms.CalcDeposit;

				response  = myajax.responseXML.documentElement;
				for(var c=0; c<response.childNodes.length; c++)
				{
					if(response.childNodes[c].tagName == 'result')
					{
						//alert(myajax.responseText);
						var result = response.getElementsByTagName('result')[0].firstChild.data;
						if(result)
						{
							var type = f.calc_type.options[f.calc_type.selectedIndex];
							var type_txt = type.innerHTML;
							if(type_txt != '')
							{
								document.getElementById("calc_type_res").style.display = "";
								document.getElementById("calc_type_txt").innerHTML = type_txt;
							}
							document.getElementById("tr_sum_result").style.display = "";
							document.getElementById("sum_result").innerHTML = result;
						}
					}
					else if(response.childNodes[c].tagName == 'dynamic_3rdmon_percent')
					{
						//alert(myajax.responseText);
						var dynamic_3rdmon_percent = response.getElementsByTagName('dynamic_3rdmon_percent')[0].firstChild.data;
						if(dynamic_3rdmon_percent)
						{
  						var txt_dynamic_3rdmon_percent = response.getElementsByTagName('txt_dynamic_3rdmon_percent')[0].firstChild.data;
							document.getElementById("txt_3rdmon_percent").innerHTML = txt_dynamic_3rdmon_percent;
							document.getElementById("3rdmon_percent").innerHTML = dynamic_3rdmon_percent;
							document.getElementById("tr_3rdmon_percent").style.display = "";
						}
					}
					else if(response.childNodes[c].tagName == 'result3')
					{
						var result3 = response.getElementsByTagName('result3')[0].firstChild.data;
						if(result3)
						{
							document.getElementById("tr_sum_result3").style.display = "";
							document.getElementById("sum_result3").innerHTML = result3;
						}
					}
					else if(response.childNodes[c].tagName == 'resulttext')
					{
						var result_txt = response.getElementsByTagName('resulttext')[0].firstChild.data;
						if(result_txt)
							document.getElementById("text_sum_result").innerHTML = result_txt;
					}
					else if(response.childNodes[c].tagName == 'resulttext3')
					{
						var result_txt3 = response.getElementsByTagName('resulttext3')[0].firstChild.data;
						if(result_txt3)
							document.getElementById("text_sum_result3").innerHTML = result_txt3;
					}
					else if(response.childNodes[c].tagName == 'resultmon')
					{
						var resultmon = response.getElementsByTagName('resultmon')[0].firstChild.data;
						if(resultmon)
						{
							document.getElementById("tr_sum_resultmon").style.display = "";
							document.getElementById("sum_resultmon").innerHTML = resultmon;
						}
					}
					else if(response.childNodes[c].tagName == 'resultmontext')
					{
						var resultmontext = response.getElementsByTagName('resultmontext')[0].firstChild.data;
						if(resultmontext)
						{
							document.getElementById("text_sum_resultmon").innerHTML = resultmontext;
						}
					}
					else if(response.childNodes[c].tagName == 'datecanceltext')
					{
						var date_cancel_txt = response.getElementsByTagName('datecanceltext')[0].firstChild.data;
						if(date_cancel_txt)
						{
							document.getElementById("text_date_cancel").innerHTML = date_cancel_txt;
						}
					}
					else if(response.childNodes[c].tagName == 'datecancel')
					{
						var date_cancel = response.getElementsByTagName('datecancel')[0].firstChild.data;
						if(date_cancel)
						{
							document.getElementById("tr_date_cancel").style.display = "";
							document.getElementById("date_cancel").innerHTML = date_cancel;
						}
					}
					else if(response.childNodes[c].tagName == 'datecanceltext3')
					{
						var date_cancel_txt3 = response.getElementsByTagName('datecanceltext3')[0].firstChild.data;
						if(date_cancel_txt3)
						{
							document.getElementById("text_date_cancel3").innerHTML = date_cancel_txt3;
						}
					}
					else if(response.childNodes[c].tagName == 'datecancel3')
					{
						var date_cancel3 = response.getElementsByTagName('datecancel3')[0].firstChild.data;
						if(date_cancel3)
						{
							document.getElementById("tr_date_cancel3").style.display = "";
							document.getElementById("date_cancel3").innerHTML = date_cancel3;
						}
					}
					else if(response.childNodes[c].tagName == 'period')
					{
						//alert(myajax.responseText);
						vperiod = response.getElementsByTagName('period');
					}
					else if(response.childNodes[c].tagName == 'pereodich')
					{
						parsePereodich(response.getElementsByTagName('pereodich')[0].firstChild.data);
					}
					else if(response.childNodes[c].tagName == 'procstavka')
					{
						var proc_stavka = response.getElementsByTagName('procstavka')[0].firstChild.data;
						if(proc_stavka)
						{
							document.getElementById("tr_procstavka").style.display = "";
							document.getElementById("procstavka_res").innerHTML = proc_stavka;
						}
					}
					else if(response.childNodes[c].tagName == 'procstavkatext')
					{
						var proc_stavka_txt = response.getElementsByTagName('procstavkatext')[0].firstChild.data;
						if(proc_stavka_txt)
						{
							document.getElementById("text_procstavka").innerHTML = proc_stavka_txt;
						}
					}
					else if(response.childNodes[c].tagName == 'first_mon_percent')
					{
						var first_mon_percent = response.getElementsByTagName('first_mon_percent')[0].firstChild.data;
						if(first_mon_percent)
						{
							document.getElementById("tr_first_mon_percent").style.display = "";
							document.getElementById("first_mon_percent").innerHTML = first_mon_percent;
						}
					}
					else if(response.childNodes[c].tagName == 'txt_first_mon_percent')
					{
						var txt_first_mon_percent = response.getElementsByTagName('txt_first_mon_percent')[0].firstChild.data;
						if(txt_first_mon_percent)
						{
							document.getElementById("txt_first_mon_percent").innerHTML = txt_first_mon_percent;
						}
					}
					else if(response.childNodes[c].tagName == 'percent_growth')
					{
						var percent_growth = response.getElementsByTagName('percent_growth')[0].firstChild.data;
						if(percent_growth)
						{
							document.getElementById("tr_percent_growth").style.display = "";
							document.getElementById("percent_growth_res").innerHTML = percent_growth;
						}
					}
					else if(response.childNodes[c].tagName == 'txt_percent_growth')
					{
						var txt_percent_growth = response.getElementsByTagName('txt_percent_growth')[0].firstChild.data;
						if(txt_percent_growth)
						{
							document.getElementById("txt_percent_growth").innerHTML = txt_percent_growth;
						}
					}
					else if(response.childNodes[c].tagName == 'friday_table')
					{
						var friday_table = response.getElementsByTagName('friday_table')[0];
                        var results_table = '<table cellpadding="1" cellspacing="0" width="350" style="border-collapse:collapse;">';
                        var rows = friday_table.getElementsByTagName('tr');
                        for(i=0;i<rows.length;i++){
                            results_table += '<tr>';
                            var columns = rows[i].getElementsByTagName('td');
                            for(y=0;y<columns.length;y++){
                                if(i == 0 || i == 24 || i == 37) results_table += '<td width="25%" valign="top" align="center" style="font-weight:bold;border: 1px solid #000000;">';
                                else results_table += '<td width="25%" valign="middle" align="center" style="border: 1px solid #000000;">';
                                if(columns[y].firstChild == null) results_table += '</td>';
                                else results_table += columns[y].firstChild.data + '</td>';
                            }
                            results_table += "</tr>";
                        }
                        results_table += "</table>";
						if(friday_table)
						{
							document.getElementById("table_res").innerHTML = results_table;
                            document.getElementById("table_res").style.display = "";
						}
					}
					else if(response.childNodes[c].tagName == 'product_terms_link')
					{
						var product_terms_link = response.getElementsByTagName('product_terms_link')[0].firstChild.data;
                        var product_terms_link_lbl = response.getElementsByTagName('txt_product_terms_link')[0].firstChild.data;
						if(product_terms_link && product_terms_link_lbl)
						{
							document.getElementById("tr_terms_link").style.display = "";
							document.getElementById("product_terms").innerHTML = '<a href="'+product_terms_link+'">'+product_terms_link_lbl+'</a>';
						}
					}
					else if(response.childNodes[c].tagName == 'order_service_link')
					{
						var order_service_link = response.getElementsByTagName('order_service_link')[0].firstChild.data;
                        var order_service_link_lbl = response.getElementsByTagName('txt_order_service_link')[0].firstChild.data;
						if(order_service_link && order_service_link_lbl)
						{
							document.getElementById("tr_order_link").style.display = "";
							document.getElementById("order_service").innerHTML = '<a href="'+order_service_link+'">'+order_service_link_lbl+'</a>';
						}
					}
					else if(response.childNodes[c].tagName == 'warning')
					{
						var depo_warning = response.getElementsByTagName('warning')[0].firstChild.data;
						if(depo_warning)
						{
							document.getElementById("depo_warning").style.display = "";
							document.getElementById("warning_txt").innerHTML = depo_warning;
						}
					}
					else if(response.childNodes[c].tagName == 'error')
					{
						var cal_error = response.getElementsByTagName('error')[0].firstChild.data;
						if(cal_error)
						{
							document.getElementById("all_error").style.display = "";
							document.getElementById("txt_error").innerHTML = cal_error;
						}
					}
				}
			}

			if(vperiod.length > 0)
				parsePeriod(vperiod);
		}
	}
}


function parsePereodich(ev)
{
	if(ev>0)
	{
		document.getElementById("tr_pereodich").style.display = "";
	}
	else
		document.getElementById("tr_pereodich").style.display = "none";
}


function parsePeriod(vperiod)
{
	var f = document.forms.CalcDeposit;
	var f_p = f.period;
	f.period.selectedIndex = 0;
	var per_length = f.period.length;
	if (!NS4) for (i=per_length-1; i>=0; i--) f.period.remove(i);
	else      for (i=per_length-1; i>=0; i--) f.period.options[i] = null;
	for(var i=0; i<vperiod.length; i++)
	{
		o = document.createElement("option");
		o.setAttribute("value", vperiod[i].getAttribute('name'));
		var valText = document.createTextNode(vperiod[i].firstChild.data);
		o.appendChild(valText);
		f_p.appendChild(o);
		//var j=0;
		//f.period.options[j] = new Option(vperiod[i].getAttribute('name'), vperiod[i].firstChild.data);
		//j++;
	}
	f.period.disabled = 0;
}


function init_cal()
{
	ItemCalc('per');
}


function clear_cal()
{
	document.getElementById("calc_type_res").style.display = "none";
	document.getElementById("calc_type_txt").innerHTML = null;
	document.getElementById("tr_sum_result").style.display = "none";
	document.getElementById("sum_result").innerHTML = null;
	document.getElementById("tr_3rdmon_percent").style.display = "none";
  document.getElementById("txt_3rdmon_percent").innerHTML = null;
  document.getElementById("3rdmon_percent").innerHTML = null;
  document.getElementById("text_sum_result").innerHTML = null;
	document.getElementById("tr_sum_result3").style.display = "none";
	document.getElementById("sum_result3").innerHTML = null;
	document.getElementById("text_sum_result3").innerHTML = null;
	document.getElementById("tr_sum_resultmon").style.display = "none";
	document.getElementById("sum_resultmon").innerHTML = null;
	document.getElementById("text_sum_resultmon").innerHTML = null;
	document.getElementById("text_date_cancel").innerHTML = null;
	document.getElementById("tr_date_cancel").style.display = "none";
	document.getElementById("date_cancel").innerHTML = null;
	document.getElementById("text_date_cancel3").innerHTML = null;
	document.getElementById("tr_date_cancel3").style.display = "none";
	document.getElementById("date_cancel3").innerHTML = null;
	document.getElementById("all_error").style.display = "none";
	document.getElementById("txt_error").innerHTML = null;
	document.getElementById("tr_procstavka").style.display = "none";
	document.getElementById("text_procstavka").innerHTML = null;
	document.getElementById("procstavka_res").innerHTML = null;
	document.getElementById("tr_first_mon_percent").style.display = "none";
	document.getElementById("txt_first_mon_percent").innerHTML = null;
	document.getElementById("first_mon_percent").innerHTML = null;
	document.getElementById("tr_percent_growth").style.display = "none";
	document.getElementById("txt_percent_growth").innerHTML = null;
	document.getElementById("percent_growth_res").innerHTML = null;
  document.getElementById("table_res").style.display = "none";
	document.getElementById("tr_terms_link").style.display = "none";
	document.getElementById("product_terms").innerHTML = null;
	document.getElementById("tr_order_link").style.display = "none";
	document.getElementById("order_service").innerHTML = null;
	document.getElementById("depo_warning").style.display = "none";
	document.getElementById("warning_txt").innerHTML = null;
}


function ch_perd()
{
	document.getElementById("tr_sum_result").style.display = "none";
	document.getElementById("sum_result").innerHTML = null;
	document.getElementById("tr_3rdmon_percent").style.display = "none";
  document.getElementById("txt_3rdmon_percent").innerHTML = null;
  document.getElementById("3rdmon_percent").innerHTML = null;
	document.getElementById("text_sum_result").innerHTML = null;
	document.getElementById("tr_sum_result3").style.display = "none";
	document.getElementById("sum_result3").innerHTML = null;
	document.getElementById("text_sum_result3").innerHTML = null;
	document.getElementById("tr_sum_resultmon").style.display = "none";
	document.getElementById("sum_resultmon").innerHTML = null;
	document.getElementById("text_sum_resultmon").innerHTML = null;
	document.getElementById("text_date_cancel").innerHTML = null;
	document.getElementById("tr_date_cancel").style.display = "none";
	document.getElementById("date_cancel").innerHTML = null;
	document.getElementById("text_date_cancel3").innerHTML = null;
	document.getElementById("tr_date_cancel3").style.display = "none";
	document.getElementById("date_cancel3").innerHTML = null;
	document.getElementById("all_error").style.display = "none";
	document.getElementById("txt_error").innerHTML = null;
	document.getElementById("tr_procstavka").style.display = "none";
	document.getElementById("text_procstavka").innerHTML = null;
	document.getElementById("procstavka_res").innerHTML = null;
	document.getElementById("tr_first_mon_percent").style.display = "none";
	document.getElementById("txt_first_mon_percent").innerHTML = null;
	document.getElementById("first_mon_percent").innerHTML = null;
	document.getElementById("tr_percent_growth").style.display = "none";
	document.getElementById("txt_percent_growth").innerHTML = null;
	document.getElementById("percent_growth_res").innerHTML = null;
  document.getElementById("table_res").style.display = "none";
	document.getElementById("tr_terms_link").style.display = "none";
	document.getElementById("product_terms").innerHTML = null;
	document.getElementById("tr_order_link").style.display = "none";
	document.getElementById("order_service").innerHTML = null;
	document.getElementById("depo_warning").style.display = "none";
	document.getElementById("warning_txt").innerHTML = null;

	/*var f = document.forms.CalcDeposit;
	var field = f.calc_type.options[f.calc_type.selectedIndex].value;
	if(field == 'capital')
	{
		var perd = f.period.options[f.period.selectedIndex].value;
		if(perd == 12 || perd == 18)
		{
			parsePereodich(1);
		}
		else
			parsePereodich();
	}*/
}


function ItemCalc(action)
{
	document.getElementById("load_txt").innerHTML = "<img src='/img/clock1.gif' border=0 align='absmiddle'> Loading! ";
	document.getElementById("load_txt").style.color = "red";
	document.body.style.cursor = "wait";

	actiond = action;
	var f = document.forms.CalcDeposit;

	clear_cal();

	if(action == 'calc')
	{

		var currency = f.currency.options[f.currency.selectedIndex].value;
		var vh_date = f.date.value;
		var perd = f.period.options[f.period.selectedIndex].value;
		var field = f.calc_type.options[f.calc_type.selectedIndex].value;
		var val = f.amount.value;
		var pereodich = f.pereodich.value;
		if(val == '' || !val.match(/[0-9\.,]+/g) || !perd.match(/[0-9]{1,2}/g))
		{
			alert("Введите сумму вклада!\nEnter deposit ammount!");
			f.amount.focus();
		}
//		else if(field == 'future' && (pereodich == '' || !pereodich.match(/^[0-9]+$/)))
//		{
//			alert("Введите периодичность начислений процентов!\nEnter deposit ammount!");
//			f.pereodich.focus();
//		}
		else if(!vh_date.match(/\d\d\.\d\d.\d\d\d\d/g))
		{
			alert("Не верный формат даты! (dd.mm.yyyy)");
			f.date.focus();
		}
		else
			ajaxpack.postAjaxRequest('/tool/calculators.php', 'action=' + action + '&field=' + field + '&val=' + val + '&vh_date=' + vh_date + '&perd=' + perd + '&curr=' + currency + '&pereodich=' + pereodich, processGetPostValid, "xml");
	}
	else if(action == 'per')
	{
		f.period.disabled = 1;
		var val = f.calc_type.options[f.calc_type.selectedIndex].value;
		ajaxpack.postAjaxRequest('/tool/calculators.php', 'action=' + action + '&val=' + val, processGetPostValid, "xml");
	}

	document.getElementById("load_txt").innerHTML = null;
	document.getElementById("load_txt").style.display = "none";
	document.body.style.cursor = "default";
}

