function changeCurrency()
{
	var sourceCurrency = $("#from").val();
	var targetCurrency = $("#to").val();
	//	
	if (sourceCurrency != prevsCurr)
		sendRequest(sourceCurrency, targetCurrency, "UT", p_id, ext_partner);
	else	
		updateFormData(sourceCurrency, targetCurrency);
}

function sendRequest(s_curr, t_curr, t_type, partner_id, is_ext_partner)
{
	//
	to_url = app_url + "md-incl/exch-banner/get_courses.asp";	
	//
	$.ajax({
		url	 : to_url,
		type :'GET',
		cache : "false", 
		dataType:"json",
		data: "type=" + t_type + "&from=" + s_curr + "&to=" + t_curr + "&partner_id=" + partner_id + "&is_ext_partner=" + is_ext_partner,
		error: function(data, textStatus, errorThrown){
			alert("Система не имеет достаточно данных для обработки Вашего запроса.\nПопробуйте ввести данные еще раз.");
			//prevsCurr != sourceCurrency ? showError(2, prevsCurr) : showError(1, prevtCurr)
		},
		success: function(data){			
			if (data.ErrorCode == 0)
			{
				reloadForm(data);		
				prevsCurr = s_curr;
				prevtCurr = t_curr;
			}
			else
			{
				alert(data.ErrorDescription);
			}
		}		
	}
	)
}

var rate = 0;
//var sourceMaster = 0;
var prevsCurr = "";
var prevtCurr = "";
var exchData = new Object();
var p_id = 0;
var ext_partner = 0;
var transaction_type = "";
var action = "";
var app_url = "";
	
function initForm(_app_url, s_curr, t_curr, t_type, partner_id, is_ext_partner)
{
	if (!is_ext_partner)
		p_id = partner_id;
	transaction_type = t_type;
	app_url = _app_url;	
	ext_partner = is_ext_partner;
	sendRequest(s_curr, t_curr, t_type, partner_id, ext_partner);
}

function reloadForm(data)
{
	//
	try
	{
		exchData = data.exchData;
		sourceCurrency = data.source_currency;
		targetCurrency = data.target_currency;
		scurrArr = data.source_currency_array;
		tcurrArr = data.target_currency_array;	
		if (typeof(exchData[targetCurrency]) == "undefined")
			targetCurrency = tcurrArr[0].code;	
		//
		changeOptions("from", scurrArr, sourceCurrency);
		changeOptions("to", tcurrArr, targetCurrency);
		//
		$("#reserv").text(exchData[targetCurrency].reserv + " " + targetCurrency);
		$("#exch_rate").text(exchData[targetCurrency].s_UT_rate + " " + sourceCurrency +  " = " + exchData[targetCurrency].t_UT_rate + " " + targetCurrency);
		rate = exchData[targetCurrency].current_rate;
	}
	catch(ex)
	{
		alert(ex.description);
	}
}

function updateFormData(sourceCurrency, targetCurrency)
{
	$("#reserv").text(exchData[targetCurrency].reserv + " " + targetCurrency);
	$("#exch_rate").text(exchData[targetCurrency].s_UT_rate + " " + sourceCurrency +  " = " + exchData[targetCurrency].t_UT_rate + " " + targetCurrency);
	rate = exchData[targetCurrency].current_rate;
}

function changeOptions(_id, oArr, sel_curr)
{
	var options = '';
	options = '';
	options = '<select name="' + _id + '" id="' + _id + '" onchange="changeCurrency();">'
	var q = $("#" + _id).length - 1;
	for (var i = 0; i < oArr.length; i++) {
		options += "<option " + (sel_curr == oArr[i].code ? "selected" : "") + " value=\"" + oArr[i].code + "\">" + unescape(oArr[i].name) + "</option>";		
	}		
	options += '</select>';		
	$("#" + _id).replaceWith(options);
}

function _preSubmit()
{
	try
	{
		if (action == "")
			action = $("#exch_form").attr("action");
		var actn = action + "?type=" + transaction_type + (p_id > 0 ? "&pid=" + p_id : "") + "&from=" + $("#from").val() + "&to=" + $("#to").val();
		$("#exch_form").attr({action:actn});		
		//$("#exch_form").submit();		
		return true;
	}
	catch(ex)
	{
		alert(ex.description);
		return false;		
	}
}
