//require rightjs

_prices_arr = new Object();
_page_loaded = 0;
_currencies = new Array();
_currencies[0] = 'руб.';
_currencies[1] = '$';
_currencies[2] = '&euro;';

document.onReady(function() {
	PrepareCurrency();
	UpdateCurrency();
	_page_loaded = 1;
});

function GetCurrencyChooserHTML() {
	curr = $('currency').value;
	res = '';
	
	for (cc = 0; cc <= 2; cc++) {
		if(cc == curr) res += '<font color="red">';
		res += '<span onclick="ChangeCurrency(' + cc + ')" class="currency-' + cc;
		if(cc == curr) res += ' currency-current';
		else res += ' currency-possible';
		res += '">' + _currencies[cc] + '</span>';
		if(cc == curr) res += '</font>';
		if(cc < 2) res += '&nbsp;';
	}
	
	return res;
}

function PrepareCurrency()
{
	elements = $$('.money-value');
	for(j = 0; j < elements.size(); j++) {
		element = elements[j];
		//if(typeof(element.innerText)!='undefined') {
		//	pricesStr = element.innerText;
		//} else {
		//	pricesStr = element.textContent;
		//}
		pricesStr = element.innerHTML;
		if(pricesStr != '') {
			_prices_arr[element.id.replace('_val', '')]
				= pricesStr.split('|', 3);
			element.innerHTML = '';
		}
	}
}

function ChangeCurrency_Callback(response) 
{
	if (response.error != null) 
	{
		//alert(response.error);
		return;
	}
}

function UpdateCurrency() {
	curr = $('currency').value;
	// update currency choosers
	currencyhtml = GetCurrencyChooserHTML();
	elements = $$('.currency-chooser');
	for(j = 0; j < elements.size(); j++) {
		elements[j].innerHTML = currencyhtml;
	}
	// update money
	for(_my_el in _prices_arr) {
		element = $(_my_el);
		if(element != null)
			element.innerHTML = _prices_arr[_my_el][curr];
	}
}

// change or update currency
function ChangeCurrency(newCurrency) {
	if(_page_loaded == 0) {
		alert('Пожалуйста, дождитесь загрузки страницы!');
		return;
	}
	
	$('currency').value = newCurrency;

	ServiceUtility.SetSessionCurrency(newCurrency, ChangeCurrency_Callback);

	UpdateCurrency();
}

// formats fixedpoint price string ("12300" means 123.00)
function FormatPrice00(priceStr){
	if(priceStr=="0")
		return "0,00";

	var result;
	var fullPart;
	result = ','+priceStr.substring(priceStr.length-2, priceStr.length); 
	fullPart = priceStr.substring(0, priceStr.length-2);

	while (fullPart.length > 3){
		result = '&nbsp;' + fullPart.substring(fullPart.length-3, fullPart.length) + result; 
		fullPart = fullPart.substring(0, fullPart.length-3);
	}
	result = fullPart + result;
	return result;
}

function GetPrice(priceStr){
	return parseFloat((priceStr.replace(/\s*/g, "")).replace(/,/, "."));
}
