var add_item_id = 0;
var add_item_num = 0;
var add_item_var = 0;
var is_in_cart = false;

/* common function */
function toggleBlock(id, link, animate, t_class, animate_param, opened_text, closed_text){
	if(!animate_param){
		animate_param = 'height';
	}
	
	var el = typeof(id) == 'object' ? id : $('#' + id);
	
	var res = 1;
	if(t_class){
		$(link).parent().toggleClass(t_class);
	}
	if($(el).css('display') == 'none'){

		if(animate){
			if(animate_param == 'height')
				$(el).animate({'height': 'show'}, 'fast');
			else
				$(el).animate({'width': 'show'}, 'fast');
		}else
			$(el).show();
		
		if(opened_text && link){
			link.innerHTML = opened_text;
		}
			
	}else{
		if(animate){
			if(animate_param == 'height')
				$(el).animate({'height': 'hide'}, 'fast');
			else
				$(el).animate({'width': 'hide'}, 'fast');
		}else
			$(el).hide();
			
		if(closed_text && link){
			link.innerHTML = closed_text;
		}
	}
	if(link)
		link.blur();
	return false;
}


function switchTabs(cnt, lnk){
	lnk.blur();	
	if(!$(lnk).hasClass('selected')){
		$(lnk).addClass('selected');
		$('a', $(lnk).parent().parent().siblings()).removeClass('selected');
		$('#' + cnt).removeClass('hidden').siblings().addClass('hidden');
	}	
}

function switchHeaderTab(cnt, lnk){
	lnk.blur();	
	var par = $(lnk).parent().parent();
	if(!$(par).hasClass('sel')){
		$(par).addClass('sel');
		$(par).siblings('.sel').removeClass('sel');
		$('#' + cnt).show().siblings().hide();
		$('#cart_stat').hide();
	}	
}

/* Simple Ajax */
function ajaxLoadContent(url, content_id, params){
	$('#' + content_id).html('<div class="ajax_loader"><img src="/img/ajax-loader.gif"/></div>');
	$.get(url, params, 
		function(response){
			onAjaxContentLoaded(response, content_id);
		}
	);
}

function onAjaxContentLoaded(text, content_id){
	$('#' + content_id).html(text);
}

/* dealers functions */
function changeDealersRegion(url, sel, product){
	sel.blur();
	params = {'region': sel.value, 'update_list': 1}
	if(product){
		params.product = product;
	}
	//ajaxLoadContent(url, 'dealers', params);
	$('#dealers').html('<div class="ajax_loader"><img src="/img/ajax-loader.gif"/></div>');
	$.getJSON(url, params, onDealersLoaded);
}

function onDealersLoaded(resp){
	$('#dealers').html(resp.content);
	$('#dealers_num').html(resp.dealers_num);
}

function goToDealers(){
	var val = $('#dealer_region_id').attr('value');
	if(val){
		location.href='/dealers/?region=' + val;
	}
}

$(document).ready(
	function(){
		var cpt = $('div.field_capture');
		for(var i=0; i<cpt.length; i++){
			$(cpt[i]).click(
				function(){
					var fld = $(this).next();
					$(fld).focus();
					$(this).fadeOut('fast');
				}
			);
			var fld = $(cpt[i]).next();
			$(fld).blur(
				function(){
					if(this.value == ''){
						var cpt = $(this).prev();
						$(cpt).fadeIn('fast');
					}
				}
			).focus(
				function(){
					var cpt = $(this).prev();
					$(cpt).fadeOut('fast');
				}
			);
		}
		
	}
);

function scrollPhotos(dir){
	
	var container = document.getElementById('scroll_photos_container');
	var content = document.getElementById('scroll_photos_content');
	var cnt_width = container.offsetWidth;
	var photos_width = content.offsetWidth;
	var cur_pos = content.offsetLeft;
	var new_pos = null;
	
	if(dir == 0){
		if(cur_pos < 0){			
			new_pos = cur_pos+cnt_width;
			if(new_pos > 0)
				new_pos = 0;
		}
	}else{
		var t_p = photos_width+cur_pos-cnt_width;
		if(t_p > 0){			
			new_pos = cur_pos-cnt_width;
		}
	}
	
	if(new_pos != null)
		$(content).animate({'left': new_pos + 'px'});
	
}

$(document).ready(
	function(){
		$('.product_card_container').mouseover(
			function(){
				$(this).addClass('c_hover');
			}
		).mouseout(
			function(){
				$(this).removeClass('c_hover');
			}
		);
	}
);

function highlightSection(folder, brand){
	$('div.item_' + folder + '_' + brand).addClass('cc_hover');
}


function outSection(folder, brand){
	$('div.item_' + folder + '_' + brand).removeClass('cc_hover');
}

function fillSelect(data, form_name, select_name, selected_item){
	
	var options = $('option', data);
	var sel = $('select[@name="' + select_name + '"]', document.forms[form_name]);
	sel = sel[0];
	$('option', sel).remove();
	
	
	for(var i=0; i<options.length; i++){
		sel.options[i] = new Option($('name', options[i]).text(), $('value', options[i]).text());
		if(selected_item == $('value', options[i]).text()){
			$(sel.options[i]).attr('selected', true);
		}
	}
		
}

/* popups */
function showPopup(id, link, show_no_reg){
	if(show_no_reg)
		$('#without_registration').show();
	else
		$('#without_registration').hide();
	hideAllPopups();
	if(link)
		link.blur();
	showSandBox();
	var t = ($(window).width()-$('#' + id).width())/2;
	$('#' + id).show();//animate({height: 'show'}, 200);
	$('#' + id).css({'left': t});
	$('#' + id).css({'top': $(document).scrollTop() + 50});
	//$(document).scrollTop(0);
}

function hidePopup(id){
	hideSandBox();
	var t = document.getElementById(id);
	if(t){
		t.style.display = 'none';
	}
}

function hideAllPopups(){
	hideSandBox();
	$('div.login_popup').hide();
}

function showSandBox(){
	var s = document.getElementById('sandbox');
	if(!s){
		s = document.createElement('div');
		s.setAttribute('id', 'sandbox');
		$(s).click(function(){hideAllPopups();});
		document.body.appendChild(s);
	}
	s.style.height = $(document).height() + 'px';
	$(s).show();
}

function hideSandBox(){
	var s = document.getElementById('sandbox');
	if(s){
		s.style.display = 'none';
	}
}

/* login */
function doLogin(link, form_name){
	var sch = false;
	if(!form_name){
		form_name = 'login_form';
		sch = true;
	}
	link.blur();
	var email = document.forms[form_name].elements['login'];
	var password = document.forms[form_name].elements['password'];
	var remember = document.forms[form_name].elements['remember'];
	var ok = sch ? simpleFormCheck(form_name) : true;
	if(ok){
		var s_data = {'login': email.value, 'password': password.value, '_save': 1}
		if(remember.checked){
			s_data.remember=1;
		}
		s_data.add_item_id = add_item_id;
		s_data.add_item_num = add_item_num;
		s_data.add_item_var = add_item_var;
		$.post('/login/', s_data, onLoginDone);
	}
}

function onLoginDone(text){	
	if(text != ''){
		document.getElementById('login_errors').style.display = 'block';
		document.getElementById('login_errors').innerHTML = text;
	}else{
		window.location.reload();
	}
}

function clearLoginForm(){
	var form_name = 'login_form';
	document.getElementById('login_errors').style.display = 'none';
	document.getElementById('login_errors').innerHTML = '';
	for(var i=0; i<document.forms[form_name].elements.length; i++){
		if(document.forms[form_name].elements[i].className != 'but' && document.forms[form_name].elements[i].className != 'chb'){
			document.forms[form_name].elements[i].value = '';
			$(document.forms[form_name].elements[i]).removeClass('error');
		}
	}
}

/* registration */
function doRegister(link, auto, no_reload){
	if(link)
		link.blur();
	var ok = false;
	if(auto){
		ok = true;		
	}else{
		var email = document.forms['registration_form'].elements['login'];
		var password = document.forms['registration_form'].elements['password'];
		var password_r = document.forms['registration_form'].elements['password_repeat'];
		var promo = document.forms['registration_form'].elements['promo_code'];
		var cpt = document.forms['registration_form'].elements['captcha_word'];
		var ok = simpleFormCheck('registration_form');
	}
	if(ok){
		var p = new Object();
		if(auto)
			p = {'auto': 1}
		else
			p = {'_save': 1, 'login': email.value, 'password': password.value, 'password_repeat': password_r.value, 'captcha_word': cpt.value, 'promo_code': (promo ? promo.value : 0)}

		p.add_item_id = add_item_id;
		p.add_item_num = add_item_num;
		p.add_item_var = add_item_var;
		$.post('/registration/', p, function(rsp){onRegisterDone(rsp, no_reload)});
	}
}

function onRegisterDone(text, no_reload){
	//alert($('errors', text).text());
	if($('errors', text).text() != ''){
		document.getElementById('registration_errors').style.display = 'block';
		document.getElementById('registration_errors').innerHTML = $('errors', text).text();
	}else{
		if(!no_reload){
			window.location.reload();
		}else{
			$('#login_linkslogin_links').html($('userlinks', text).text());
			addToCart(add_item_id, null, add_item_var, add_item_num);
		}
	}
}

/* common form functions */
function onFieldFocus(el){
	$(el).removeClass('error');
}

function simpleFormCheck(form_name){
	var isok = true;
	for(var i=0; i<document.forms[form_name].elements.length; i++){
		if(document.forms[form_name].elements[i].value == '' && document.forms[form_name].elements[i].getAttribute('req') != 0){
			document.forms[form_name].elements[i].className = document.forms[form_name].elements[i].className == '' ? 'error' : document.forms[form_name].elements[i].className + ' error';
			isok = false;
		}
	}
	return isok;
}

function changeIntValue(val, inp, allow_zero){
	var inp = document.getElementById(inp);
	if(inp.value == '')
		inp.value = 0;
	if(inp && inp.value != '' && !isNaN(parseInt(inp.value))){
		var new_val = parseInt(inp.value) + val;
		if(new_val > (allow_zero ? -1 : 0)){
			inp.value = new_val;
			if(is_in_cart){
				onCartItemNumChange(inp);
			}
		}
	}
}

function switchOrderTab(el, val){
	el.blur();
	$(el).addClass('cur').siblings().removeClass('cur');
	$('#extra_forms > div').hide();
	$('#form_' + val).show();
	if(val == 'registered'){
		$('#main_order_form').hide();
	}else{
		$('#main_order_form').show();
		if(val == 'no_reg'){
			$('#form_field_p_name').hide();
			$('#form_field_surname').hide();
		}else{
			$('#form_field_p_name').show();
			$('#form_field_surname').show();
		}
	}
	$('input[@name="order_type"]').attr('value', val);
}

function showAjaxLoader(txt){
	if(!txt){
		txt = 'Подождите, пожалуйста...';
	}
	$('#ajax_loader').text(txt).show();
}


function stretchMenu(cnt_id){
	
	var container = document.getElementById(cnt_id);
	var e_width = 0;
	var items = $('span', container);
	var t;
	var items_num = 0;
	
	/* calculate width */
	for(var i=0; i<items.length; i++){
		e_width += items[i].offsetWidth;
		items_num++;
	}
	
	if(items_num){
		var padding = (container.offsetWidth-e_width-((items_num-1)*2)-232)/(items_num*2);
		$('a', container).css('padding-left', padding+'px').css('padding-right', padding+'px');
	}
	
	
}

$(document).ready(
	function(){
		stretchMenu('menu');
	}
);

function switchMenu(bid, link){
	link.blur();
	if(!$(link).hasClass('cur')){
		var el = document.getElementById(bid);
		$(el).siblings().hide();
		$(el).fadeIn();
		$(link).addClass('cur').siblings().removeClass('cur');
	}
}

function switchAd(num, el){
	el.blur();
	$(el).parent().siblings().addClass('hidden');
	$('#mb' + num).removeClass('hidden');
	$(el).addClass('cur');
	$(el).siblings().removeClass('cur');
}

function scrollItems(bid, dir, lnk){
	
	lnk.blur();
	
	var content = document.getElementById('scroll_content_' + bid);
	if(content){

		var t_container = $(content).parent();
		var container = t_container[0];
		var cnt_width = container.offsetWidth;
		var photos_width = content.offsetWidth;
		var cur_pos = content.offsetLeft;
		var new_pos = null;
		
		cnt_width = 672;
		
		if(dir == 0){
			if(cur_pos < 0){			
				new_pos = cur_pos+cnt_width;
				if(new_pos > 0)
					new_pos = 0;
			}
		}else{
			if(photos_width + cur_pos - cnt_width > 0){			
				new_pos = cur_pos-cnt_width;
			}
		}		
		
		if(new_pos != null){
			if(new_pos == 0)
				$('#scroll_control_left_' + bid + ' img').attr({'src': '/img/scroll_left_inactive.gif'});
			else
				$('#scroll_control_left_' + bid + ' img').attr({'src': '/img/scroll_left.gif'});
				
			if(new_pos+photos_width <= cnt_width)
				$('#scroll_control_right_' + bid + ' img').attr({'src': '/img/scroll_right_inactive.gif'});
			else
				$('#scroll_control_right_' + bid + ' img').attr({'src': '/img/scroll_right.gif'});
				
			$(content).animate({'left': new_pos + 'px'});
		}
		
	}
	
}

function showSpecialProducts(sid, cnt_id, link){
	link.blur();
	var par = $(link);
	if(document.getElementById(sid).style.display != 'block'){
		//$(par).siblings('.act').addClass('lnk');
		$(par).siblings('.act').removeClass('act');
		$(par).addClass('act');
		//$(par).removeClass('lnk');
		$('#' + sid).show().siblings().hide();
	}
	
	/* check small switcher */
	var is_small = $(link).parent().hasClass('s_btn') || sid == 'top_sections_popular';
	if(is_small){
		var b = $('#small_switcher > div.s_btn');
		if(sid == 'top_sections_popular'){
			$(b[1]).removeClass('cur_btn');
			$(b[0]).addClass('cur_btn');
		}else{
			$(b[0]).removeClass('cur_btn');
			$(b[1]).addClass('cur_btn');
		}
	}
	
}

/* product card */
$(document).ready(
	function(){
		/*
		$('div.product_card_container').mouseover(
			function(){
				$('.product_card.c_popup', this).show();
				$('.sh_top', this).fadeIn();
				$('.sh_bot', this).fadeIn();
				$('.shadow_c', this).fadeIn();
			}
		).mouseout(
			function(){
				
					$('.sh_top', this).fadeOut();
					$('.sh_bot', this).fadeOut();
					$('.shadow_c', this).fadeOut();
					$('.product_card.c_popup', this).hide();				

			}
		);
		
		$('div.product_card_container').hover(
			function(){
				if(!document.getElementById('add_popup')){
					var pop = $('.product_card.c_popup', this);
					if(!$(pop[0]).hasClass('ready')){
						var cnt = '<table class="sh_top"><tr><td class="l"></td><td></td></tr></table>';
						cnt += '<table class="shadow_cnt"><tr><td class="l"></td><td class="r">';
						cnt += $('#main_' + $(pop[0]).attr('id')).html();
						cnt += $(pop[0]).html();
						cnt += '</td></tr></table>';
						cnt += '<table class="sh_bot"><tr><td class="l"></td><td></td></tr></table>';
						$(pop[0]).html(cnt);
						$(pop[0]).addClass('ready');
					}
					$(pop[0]).fadeIn('fast');
				}
			},
			function(){		
				if(!document.getElementById('add_popup')){		
					$('.product_card.c_popup', this).fadeOut('fast');				
				}
			}
		);
		*/
		
		$('div.product_card_container').mouseover(
			function(){				
				
				var pid = $(this).attr('id').substr(5);
				var pop_t = $('#' + pid);
				if(pop_t.length)
					var pop = pop_t[0];				
				else
					var pop = false;
				
				if(pop && !document.getElementById('add_popup') && $(pop).css('display') != 'block'){
					
					$('div.product_card.c_popup:visible').hide();
					
					if(!$(pop).hasClass('ready')){
						
						var cnt = '<table class="sh_top"><tr><td class="l"></td><td>&nbsp;</td></tr></table>';
						cnt += '<table class="shadow_cnt"><tr><td class="l"></td><td class="r">';
						cnt += $('div.product_card', this).html();
						cnt += $(pop).html();
						cnt += '</td></tr></table>';
						cnt += '<table class="sh_bot"><tr><td class="l"></td><td>&nbsp;</td></tr></table>';
						
						$(pop).html(cnt);
						$(pop).addClass('ready');
						$(pop).appendTo(document.body);
						
					}
					
					var pos = $(this).offset();
					$(pop).css({'left': pos.left-($(pop).hasClass('scr') ? 10 : 10), 'top': pos.top-12});
					$(pop).fadeIn('fast');
				}
			}
		);
		
		$('div.product_card.c_popup').hover(
			function(){},
			function(){		
				if(!document.getElementById('add_popup')){		
					$(this).hide();//fadeOut('fast');				
				}
			}
		);
		
	}
);

var ms_menu_opened = '';
function showMyServMenu(mid, lnk){	
	var pos = $(lnk).position();
	$('#' + mid).css({'left': pos.left-9, 'top': pos.top-6, 'display': 'block'});
	setTimeout(function(){ms_menu_opened = mid}, 100);
}

$(document).click(
	function(){
		if(ms_menu_opened){
			$('#' + ms_menu_opened).hide();
			ms_menu_opened = '';
		}
	}
);

function switchContacts(target, lnk){
	lnk.blur();
	if(!$(lnk).hasClass('cur')){
		$('#contacts_' + target).siblings().hide();
		$('#contacts_' + target).show();
		$(lnk).addClass('cur').siblings().removeClass('cur');
	}
}

function generateForumLink(text_field, code_field, link){	
	var cd = '[url="' + link + '"]' + $('textarea[@name="' + text_field + '"]').val() + '[/url]';
	$('textarea[@name="' + code_field + '"]').val(cd);
}
