//require rightjs

_prices_arr = {};
_page_loaded = 0;
_currencies = [];
_currencies[0] = 'руб.';
_currencies[1] = '$';
_currencies[2] = '&euro;';

$(function() {
	PrepareCurrency();
	UpdateCurrency();
	_page_loaded = 1;
});

function ShowCurrencyMenu(element) {
	var el = $('#currency-menu');
	if (el.length == 0){
		el = $('<div/>',{
			id: 'currency-menu',
			style: 'display:none; position:absolute; background: white; border: 1px solid red; position: absolute; z-index: 10000'
		});
		$(document.body).append(el);
		
		el.append($('<p/>', {
			id: 'currency-menu-current',
			style: 'color: red; border-bottom: 1px dotted red'
		}));
		for(i=0;i<_currencies.length;i++) {
			var child = $('<p/>', {
				style: 'cursor:pointer;color:#555',
				html: _currencies[i]
			});
			el.append(child);
			(function(i){
				child.click(function(){
					ChangeCurrency(i);
				});
			})(i);
		}
	}
	$('#currency-menu-current').html(_currencies[$('#currency').val()] + "&nbsp;<img src='/imgs/down-tr.gif'/>");
	el.css({
		top: $(element).offset().top-3,
		left: $(element).offset().left-3
	});
	el.show();
	setTimeout(function(){
		var docClick = function() {
			$('#currency-menu').hide();
			$(document).unbind('click',docClick);
		};
		$(document).click(docClick);
	}, 100);
}

function PrepareCurrency()
{
	$('.money-value').each(function() {
		var pricesStr = $(this).html();
		if(pricesStr != '') {
			_prices_arr[this.id.replace('_val', '')] = pricesStr.split('|', 3);
			$(this).html('');
		}
	});
}

function ChangeCurrency_Callback(response) 
{
	if (response.error != null) 
	{
		//alert(response.error);
		return;
	}
}

function UpdateCurrency() {
	var curr = $('#currency').val();
	// update currency choosers
	//currencyhtml = GetCurrencyChooserHTML();
	$('.currency-chooser').each(function(){
		$(this).html(_currencies[$('#currency').val()]);
	});
	// update money
	for(_my_el in _prices_arr) {
		var element = $("#"+_my_el);
		if(element.length != 0)
			element.html(_prices_arr[_my_el][curr]);
	}
}

// change or update currency
function ChangeCurrency(newCurrency) {
	if(_page_loaded == 0) {
		alert('Пожалуйста, дождитесь загрузки страницы!');
		return;
	}
	
	$('#currency').val(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(/,/, "."));
}

