// number format, equivalent php
function number_format (number, decimals, dec_point, thousands_sep) {
    var n = number, prec = decimals;

    var toFixedFix = function (n,prec) {
        var k = Math.pow(10,prec);
        return (Math.round(n*k)/k).toString();
    };
    //alert('here');
    n = !isFinite(+n) ? 0 : +n;
    prec = !isFinite(+prec) ? 0 : Math.abs(prec);
    var sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep;
    var dec = (typeof dec_point === 'undefined') ? '.' : dec_point;

    var s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;

    var abs = toFixedFix(Math.abs(n), prec);
    var _, i;

    if (abs >= 1000) {
        _ = abs.split(/\D/);
        i = _[0].length % 3 || 3;

        _[0] = s.slice(0,i + (n < 0)) +
              _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
        s = _.join(dec);
    } else {
        s = s.replace('.', dec);
    }

    var decPos = s.indexOf(dec);
    if (prec >= 1 && decPos !== -1 && (s.length-decPos-1) < prec) {
        s += new Array(prec-(s.length-decPos-1)).join(0)+'0';
    }
    else if (prec >= 1 && decPos === -1) {
        s += dec+new Array(prec).join(0)+'0';
    }
    return s;
}

function filebrowser_preloader() {
	el=$('filebrowser_preloader').style;
	el.display=(el.display == 'block')?'none':'block';

}



function addSearchEngine($cesta,$title,$desc) {
  if ((typeof window.sidebar == "object") &&
      (typeof window.sidebar.addSearchEngine == "function")) {

    window.sidebar.addSearchEngine(
      $cesta+"/search-ff.src",
      //$cesta+"/articles/search_addon",
      $cesta+"/css/fastest/icons/favicon.ico",
      $title,
      $desc);

  } else
    alert("Váš prohlížeč nepodporuje tuto funkci. Zkuste Mozillu.");

}

// tooltips shop detail table
function detail_table_tooltips(){
window.addEvent('domready', function(){
	var Tips_help = new Tips($$('.detail_table_tip'),{
			showDelay: 400,
			hideDelay: 400,
			className: 'detail_table_tip',
			offsets: {'x': -170, 'y': -30},
			fixed: true
	}); 
});
}

// tooltips
function footer_tooltips(){
window.addEvent('domready', function(){
		var Tips_help = new Tips($$('.tip_win'),{
			showDelay: 400,
			hideDelay: 8500,
			className: 'tip_win',
			offsets: {'x': -149, 'y': -80},
			fixed: true
	}); 
});
}
// skryvani zapomenuteho hesla
function hide_lost_password(){
$('forgot_passwords_form').fade('hide');
$('forgot_password_link').addEvent('click', function(e) {
	new Event(e).stop();
	$('logins_form').fade(0);
	$('forgot_passwords_form').fade(1);
});

$('login_link').addEvent('click', function(e) {
	new Event(e).stop();
	$('forgot_passwords_form').fade(0);
	$('logins_form').fade(1);
});
}

// doporuceni domwin
function doporuceni_win(title){
	domwin.newWindow({
		id			: 'doporuceni_win',
		sizes		: [500,220],
		scrollbars	: false,
		defined_lang: ['cz'],
		languages	: false,
		title		: title,
		ajax_url	: '/doporucenis/',
		closeConfirm: false,
		max_minBtn	: false,
		modal_close	: true
	}); 
}

// minimalni delka search pole
function min_delka_search(id,text,alert_text,lang){
	
	if (($(id).value == text) || ($(id).value.length < 3))
		alert(alert_text);
	else
		window.location.href =  lang + '/sexshop/?search_fulltext=' + id.value;
			
}



function getHighestIndex(){				
		var allElems = document.getElementsByTagName?document.getElementsByTagName("*"): document.all; 
		var maxZIndex = 0;
		for(var i=0;i<allElems.length;i++) {
			var elem = allElems[i];
			var cStyle = null;
			if (elem.currentStyle) {cStyle = elem.currentStyle;
			} else if (document.defaultView && document.defaultView.getComputedStyle){
				cStyle = document.defaultView.getComputedStyle(elem,"");
			}
			var sNum;
			if (cStyle) {
				sNum = Number(cStyle.zIndex);
			} else {
				sNum = Number(elem.style.zIndex);
			}
			if (!isNaN(sNum)) {
				maxZIndex = Math.max(maxZIndex,sNum);
			}
		}
		return maxZIndex;
} 

Element.implement({
	inputLimit: function(){
		if (this.hasClass('float')){
			this.addEvent('keypress',function(e){
				var event = new Event(e); 
				var allow_key = ['1','2','3','4','5','6','7','8','9','0',',','backspace','left','right','tab','f5'];	
				if (allow_key.indexOf(event.key) != -1) 
					return true; 
				else 
					return false;			
			});
		} else if (this.hasClass('integer')){
			this.addEvent('keypress',function(e){
				var event = new Event(e); 
				var allow_key = ['1','2','3','4','5','6','7','8','9','0','backspace','left','right','tab','f5'];	
				if (allow_key.indexOf(event.key) != -1) 
					return true; 
				else 
					return false;			
			});
		}
	},
	
	ajaxLoad: function(url, children){
		var empty_value = '--- Zvolte hodnotu ---'
		this.addEvent('change', function(){
			new Request.JSON({
				url: url + this.value,
				onComplete: (function(json){
					children.each(function(obj){
						$(obj).empty();
						new Element('option', {title:empty_value, value:''}).setHTML(empty_value).inject($(obj));
					});
					child = children[0];
					$each(json, function(value, id){
						new Element('option', {title:value, value:id}).setHTML(value).inject($(child));
					}, this);
				}).bind(this)
			}).send();
		});
	},
	
	getOptionText: function(){
		return this.options[this.selectedIndex].getHTML();
	}
});
String.implement({
	camelCase2: function(){
		return (this.replace(/_\S/g, function(match){
			return match.charAt(1).toUpperCase();
		})).capitalize();
	}
});

function tisk(){
window.print();
return false;
}

function button_preloader(id){
		id.addClass('button_preloader');
		id.setProperty('disabled');
}

function button_preloader_disable(id){
		id.removeClass('button_preloader');
		id.removeProperty('disabled');
}

 function html_entity_decode (string, quote_style) {
        var hash_map = {}, symbol = '', tmp_str = '', entity = '';
        tmp_str = string.toString();
        
        if (false === (hash_map = this.get_html_translation_table('HTML_ENTITIES', quote_style))) {
            return false;
        }
    
        delete(hash_map['&']);
        hash_map['&'] = '&amp;';
    
        for (symbol in hash_map) {
            entity = hash_map[symbol];
            tmp_str = tmp_str.split(entity).join(symbol);
        }
        tmp_str = tmp_str.split('&#039;').join("'");
        
        return tmp_str;
    }


// zmena pisma ve clankach
function init_font_changer(){
	Cookie.get("fontType");
	switchFont(Cookie.get("fontType"));

	if ($('switch_f1'))$('switch_f1').addEvent('click',function(e){new Event(e).stop();switchFont(1);setFontSize(1)})
	if ($('switch_f2'))$('switch_f2').addEvent('click',function(e){new Event(e).stop();switchFont(2);setFontSize(2)})
	if ($('switch_f3'))$('switch_f3').addEvent('click',function(e){new Event(e).stop();switchFont(3);setFontSize(3)})



	function switchFont(typ)
	{
		if (typ==1){
		
		$('obal').getElements('.article_text').removeClass('large_font').addClass('small_font');
		$('obal').getElements('.article_anotace').removeClass('large_font').addClass('small_font');				
		$('obal').getElements('.f1').addClass('active');				
		$('obal').getElements('.f2').removeClass('active');				
		$('obal').getElements('.f3').removeClass('active');				
		}
		
		if (typ==2){
		$('obal').getElements('.article_text').removeClass('small_font').removeClass('large_font');				
		$('obal').getElements('.article_anotace').removeClass('small_font').removeClass('large_font');				
		$('obal').getElements('.f1').removeClass('active');				
		$('obal').getElements('.f2').addClass('active');				
		$('obal').getElements('.f3').removeClass('active');				
		}

		if (typ==3){
		$('obal').getElements('.article_text').removeClass('small_font').addClass('large_font');
		$('obal').getElements('.article_anotace').removeClass('small_font').addClass('large_font');				
		$('obal').getElements('.f1').removeClass('active');				
		$('obal').getElements('.f2').removeClass('active');				
		$('obal').getElements('.f3').addClass('active');				
		}
		

	  }
	function setFontSize(typ){
		Cookie.remove('fontType');
		var myCookie  =  Cookie.set('fontType', typ,{path: '/'});

	}
}


/*
* detail produktu
*/
function detail_product(lang_nakupni_kosik){

	$('product_detail_table_params').getElements('table').each(function(item){
		stripeTable(item);
	});


	function stripeTable(t) {
	   var i, odd = true;
	   for (i=0; i<t.rows.length; i++) {
		  t.rows[i].className += odd ? ' t_odd' : ' t_even';
		  odd = !odd;
		  }
	   }

		
		
		// fotogalerie
		if ( $('karta_produktu').getElement('.shop_detail_img_list')){
			width_inner = $('karta_produktu').getElement('.overflow').getSize().x.toInt();
			width_obal 	= $('karta_produktu').getElement('.shop_detail_img_list_inner').getSize().x.toInt();
			step = $('karta_produktu').getElement('.overflow').getElement('a').getSize().x.toInt();
			$('img_prev').addEvent('mousedown',function(){
				var to_move = $('karta_produktu').getElement('.overflow');
				kam = to_move.getStyle('left').toInt()+step;
				to_move.morph({left: (kam>0)?0:kam,transition: 'bounce:out'});	
			});
			$('img_next').addEvent('mousedown',function(){
				var to_move = $('karta_produktu').getElement('.overflow');
				var rozdil = width_inner - width_obal;
				if (rozdil > 0){
					now_left = to_move.getStyle('left').toInt();
					if(rozdil + now_left - step >= 0){
						kam = now_left-step;
					} else {
						kam = now_left-step - (rozdil + now_left - step) -1;
					}
					to_move.morph({left: kam,transition: 'bounce:out'});
				}	
			});
		}

		// relaod varianty
		if ($('VariantaId'))
			$('VariantaId').addEvent('change',function(e){
				$('product_detail_table_params').getElement('table').fade(0);
				new Request.HTML({
					update: 'product_detail_table_params',
					url: '/nacteni_varianty/' + this.value,
					onComplete: (function(e){
						$('KosikProductId').value = this.value;
					}).bind(this)
				}).send();
			})
			
		// vlozeni do kosiku
		$('action_add_to_basket').addEvent('click', function(e){
			new Event(e).stop();
			domwin.newWindow({
				id			: 'basket_domwin',
				sizes		: [700,820],
				scrollbars	: true,
				languages	: false,
				title		: lang_nakupni_kosik,
				ajax_url	: this.getParent('form').getProperty('action'),
				closeConfirm: false,
				max_minBtn	: false,
				modal_close	: true,
				post_data	: {
					'data[Kosik][method]'		: 'add',
					'data[Kosik][product_id]'	: $('KosikProductId').value,
					'data[Kosik][count]'		: $('KosikProductCount').value
				}
			}); 
		});
}


/*change language*/
function change_language(mena_link){
	if ($('seznam_men'))
		$('seznam_men').getElements('.change_language').addEvent('click',function(e){
			new Event(e).stop();
			window.location = mena_link+this.name
		});
}

