
/*

	Copyright (c) Mag Studio			| http://www.magstudio.bg/
	Author Evgeniy Ugryumov aka ZUGA	| evgeniy.ugryumov@magstudio.bg

*/


// Този скрипт теоретически би трябвало да работи с повече от 2 валути :)

Event.observe(window, 'load', function(){
	var ccookie_time	= 14;					// Колко деня да пазим кука.
	var ccookie_name	= 'prefered_currency';
	var currencies		= ['us', 'bg'];			// Първата стойност е дефолтна.
	var currency_sufix	= ['USD', 'BGN'];		// Би било добре и префих да има в зависимост от валута...
	var default_cure	= currencies[0];
	// var currency_rates = се сетва от рнр.
	
	if($('currency_' + default_cure)){
		var prices			= $$('td.pl_price');			// Взимамаме всички поленца от страница които ще конвертираме.
		var prefered		= getPreferedCurrency();
		var selected		= $('currency_' + prefered);
		selected.checked	= true;
		
		if(prefered != default_cure){
			convertCurrency(selected);
		}
		
		Event.observe(document, 'keyup', function(eve){
			if(eve.keyCode == 75 && eve.shiftKey){
				var num = 0;
				
				for(var z = 0; z < currencies.length; z++){
					if($('currency_' + currencies[z]).checked){
						num = (z + 1) < currencies.length ? z + 1 : 0;
					}
				}
				
				$('currency_' + currencies[num]).checked = true;
				convertCurrency($('currency_' + currencies[num]));
			}
		})
		
		if(prices){
			currencies.each(function(cur){
				$('currency_' + cur).observe('focus', convertCurrency);
			})
		}
	}
	
	function getPreferedCurrency(){
		var chikipuki = document.cookie.indexOf(ccookie_name + '=');
		var cookie = document.cookie.substr(chikipuki + (ccookie_name + '=').length, 2);
		return cookie && chikipuki > -1 ? cookie : default_cure;
	}
	
	function setPreferedCurrency(currency){
		var date = new Date();
		date.setTime(date.getTime() + (ccookie_time * 24 * 60 * 60 * 1000));
		var expires = '; expires=' + date.toGMTString();
		document.cookie = ccookie_name + '=' + currency + expires + '; path=/';
	}
	
	function convertCurrency(ele){
		if(Object.isElement(this)){
			ele = this;
		}
		
		for(var num = 0; num < currencies.length; num++){
			var currency = currencies[num];
			
			if(ele.id == 'currency_' + currency){
				setPreferedCurrency(currency);
				break;
			}
		}
		
		for(var z = 0; z < prices.length; z++){
			var price = prices[z];
			
			if(price.original_price == undefined){
				price.original_price = parseFloat(price.innerHTML);
			}
			
			price.innerHTML = roundUp(price.original_price * currency_rates[num], 2, 1) + ' <small>' + currency_sufix[num] + '</small>';
		}
	}
});

function roundUp(number, round, with_zeros){
	
	if(isNaN(parseFloat(number))){
		return parseFloat('0.' + zeros);
	}
	
	var round		= !isNaN(parseInt(round)) ? parseInt(round) : 2;
	var data		= number.toString();
	var rubli		= 0;
	var kopeiki		= 0;
	var sepa		= data.indexOf('.');
	var zeros		= '';
	
	while(zeros.length < round){
		zeros += '0';
	}
	
	if(sepa > 0){
		rubli = data.substr(0, sepa);
	}else if(sepa < 0){
		rubli = data;
	}
	
	if(sepa >= 0 && round > 0){
		kopeiki = data.substr(sepa + 1, round);
		
		if(parseInt(data.substr(sepa + round + 1))){
			kopeiki++;
		}
		
		if(kopeiki >= parseInt('1' + zeros)){
			rubli++;
			kopeiki = 0;
		}
	}
	
	kopeiki = (kopeiki + zeros).substr(0, round);
	
	return with_zeros ? (rubli + '.' + kopeiki) : parseFloat(rubli + '.' + kopeiki);
}
