var add_item_id = 0;

/* common function */
function toggleBlock(id, link, animate, t_class){
	var res = 1;
	if(t_class){
		$(link).parent().toggleClass(t_class);
	}
	if($('#'+id).css('display') == 'none'){
		if(animate)
			$('#'+id).animate({'height': 'show'}, 200);
		else
			$('#'+id).show();
	}else{
		if(animate)
			$('#'+id).animate({'height': 'hide'}, 200);
		else
			$('#'+id).hide();
	}
	if(link)
		link.blur();
	return false;
}

/* popups */
function showPopup(id, link){
	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';
	}
}
			
/* init images actions */
$(document).ready(
	function(){
		/* thumb events */
		var t = $('#thumbs > a');
		if(t.length){
			$(t[0]).children().addClass('active');
			$(t).click(
				function(){
					changeCatalogPhoto(this.href, this.rel, $(this).children());
					return false;
				}
			);
		}
		/* opeing lightbox by clicking on middle size picture */
		$('#big_photo > a').click(
			function(){
				tb_show('', this.href, '');
				return false;
			}
		);
	}
);

function showFirstPhoto(){
	var t = $('#thumbs > a');
	if(t.length)
		$(t[0]).click();
}

function changeCatalogPhoto(src, src2, thumb){
	$('#big_photo > a > img').attr('src', src);
	$('#big_photo > a').attr('href', src2);
	$('#thumbs > a > img.active').removeClass('active');
	if(thumb){
		$(thumb).addClass('active');
	}
}

/* login */
function doLogin(link, frm){
	var sch = false;
	if(!frm){
		frm = 'login_form';
		sch = true;
	}
	link.blur();
	var email = document.forms[frm].elements['login'];
	var password = document.forms[frm].elements['password'];
	var remember = document.forms[frm].elements['remember'];
	var ok = sch ? simpleFormCheck(frm) : true;
	if(ok){
		var s_data = {'login': email.value, 'password': password.value}
		if($(remember).attr('checked')){
			s_data.remember=1;
		}
		s_data.add_item_id = add_item_id;
		$.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){
	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 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}
		p.add_item_id = add_item_id;
		$.post('/registration/', p, onRegisterDone);
	}
}

function onRegisterDone(text){
	if(text != ''){
		document.getElementById('registration_errors').innerHTML = text;
	}else{
		window.location.reload();
	}
}

/* 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].className = document.forms[form_name].elements[i].className == '' ? 'error' : document.forms[form_name].elements[i].className + ' error';
			isok = false;
		}
	}
	return isok;
}

/* WISHLIST */
var item_variant = 0;

function addToWishlist(id, link, vrnt, num){
	add_item_id = id;
	link.blur();
	$('#add_popup').html('<img src="/img/ajax-loader.gif"/>');
	$.get('/wishlist/', {'action': 'add_item', 'id': id, 'item_variant': (vrnt ? vrnt : item_variant), 'num': (num ? num : 1)}, function(response){onAfterAddedToWishlist(response, link);});
}

function onAfterAddedToWishlist(response, link){
	if(response){	
		closeAddPopup();
		showCartAlert();
		$('#right_cart').show();	
		link.setAttribute('href','/wishlist/');
		link.removeAttribute('onclick');
		$('span', link).html('В корзине');
		$(link).addClass('added');
		setWishlistInfo(response);
	}else{
		showPopup('registration_form');
	}
}

function setWishlistInfo(xml, in_list){
	
	var new_cnt = '';
	var lnk = '';
	var items = $('items > item', xml);
	
	var sum = $('totalSum', xml).text();
	var discount = $('discount', xml).text();
	var full_sum = $('fullSum', xml).text();
	
	if(items.length){
		$('#wishlist_price_info').show();
		for(var i=0; i<items.length; i++){
			lnk = '<a href="' + $('url', items[i]).text() + '">';
			new_cnt += '<div class="item_photo">' + lnk + '<img src="' + $('photo', items[i]).text() + '"/></a></div>';
			new_cnt += '<div class="item_info">';
			new_cnt += '<div>' + lnk + $('name', items[i]).text() + '</a></div>';
			new_cnt += '<div>' + $('price', items[i]).text() + ' ' + $('currency', xml).text() + '</div>';
			new_cnt += '</div>';
			new_cnt += '<div class="clearer"></div>';
		}
		
		$('#cur_wishlist_sum').text($('totalSum', xml).text() + ' ' + $('currency', xml).text());
		$('#cur_wishlist_discount').text($('discount', xml).text());
		if($('discount', xml).text() == '0'){
			$('#cur_wishlist_discount').parent().hide();
		}else{
			$('#cur_wishlist_discount').parent().show();
		}
		$('#cur_wishlist_discount_text').text($('nextDiscountText', xml).text());
	
	}else{
		$('#wishlist_price_info').hide();
		new_cnt = 'Нет покупок';
	}
	
	$('#wishlist_short').html(new_cnt);
	
	if(in_list){
		if(!items.length){
			$('#wishlist_order_form').remove();
			$('#wishlist_items_list').html('Список пуст');
			//$('#wishlist_total_sum').remove();
		}else{
			sumChangeHandler.orderSumChanged(sum, full_sum, 0);
			$('#totalSum').html(sum);
			$('#discountValue').text(discount);
			if(discount == '0'){
				$('#discountInfo').hide();
			}
		}
	}
}

function deleteWishlistItem(wishlist, item, variant, link){
	if(confirm('Вы уверены?')){
		$('#wl_item'+item).addClass('loading');
		$.get('/wishlist/', {'action': 'delete_item', 'item': item, 'item_variant': variant, 'wishlist': wishlist}, function(response){onAfterItemDeleted(response, item, variant);});
	}
	link.blur();
}

function onAfterItemDeleted(response, id, variant){	
	$('#wl_item'+id+'_'+variant).remove();
	setWishlistInfo(response, true);
}

function onWLCreateSubmit(form){
	if(form.elements['name'].value.replace(' ','') == ''){
		alert('Введите название списка');
		return false;
	}
	return true;
}

var curMoveItem = 0;
var curMoveVariant = 0;

function showMoveItemPopup(id, variant, link, ev){
	if(link)
		link.blur();
	var e = (window.event) ? window.event : ev;
	if($('div#moveitem_popup').css('display') == 'none' || curMoveItem != id){
		$('div#moveitem_popup').css('display', 'block');
		var l = e.clientX - 60;
		var t = e.clientY + $(document).scrollTop() + 10;
		$('div#moveitem_popup').css('left', l);
		$('div#moveitem_popup').css('top', t);
	}else{
		if(curMoveItem == id)
			$('div#moveitem_popup').css('display', 'none');
	}
	curMoveItem = id;	
	curMoveVariant = variant;	
}

function closeMoveItemPopup(){
	$('div#moveitem_popup').css('display', 'none');
}

function moveItemToList(from_list, to_list){
	if(curMoveItem){
		$('#wl_item'+curMoveItem).addClass('loading');
		closeMoveItemPopup();
		$.get('/wishlist/', {'action': 'move_item', 'id': curMoveItem, 'item_variant': curMoveVariant, 'from': from_list, 'to': to_list}, function(response){onAfterItemMoved(response, curMoveItem, curMoveVariant);});
	}
}

function onAfterItemMoved(response, item, variant){
	$('#wl_item'+item+'_'+variant).remove();
	setWishlistInfo(response, true);
}

function changeDefaultList(sel){
	$.get('/wishlist/', {'action': 'set_default_list', 'id': sel.value}, onAfterListChanged);
}

function onAfterListChanged(response){
	window.location.reload();
}

function showConfigElements(el, link){
	
	$('#'+el).toggle('fast',
		function(){
			var t = $(link).parent();
			var p = t[0];
			if(document.getElementById(el).style.display == 'none'){
				$(p).removeClass('opened');
				$(p).addClass('closed');
			}else{
				$(p).removeClass('closed');
				$(p).addClass('opened');
			}
		}
	);
	link.blur();	
	
}

/* menu functions */
function menuItemHover(el){
	
	if(this.className != 'active')
		$(this).addClass('hover');
	
}

function menuItemOut(el){

	$(this).removeClass('hover');
	
}

function stretchMenu(cnt_id){
	
	var container = document.getElementById(cnt_id);
	var e_width = 0;
	var items = $('table > tbody > tr >td', container);
	var t;
	var items_num = 0;
	
	/* calculate width */
	for(var i=0; i<items.length; i++){
		t = $('a', items[i]);
		e_width += t[0].offsetWidth;
		items_num++;
	}
	
	if(items_num){
		var padding = (container.offsetWidth-e_width-5)/(items_num*2);
		$('table > tbody > tr >td div', container).css('padding', '0 '+padding+'px');
	}
	
	
}

/* init hor menu */
/*
$(document).ready(
	function(){
		stretchMenu('hor_menu');
		// hover effects
		var t = $('table.hor_menu > tbody > tr > td');
		$(t).mouseover(menuItemHover);
		$(t).mouseout(menuItemOut);
	}
);
*/

var menu_types = new Array('catalog_sections', 'brand_list');//, 'lib_links');

/* top banner functions */
var curBan = 1;

function changeBan(dir){
	var cur = document.getElementById('top_ban'+curBan);
	if(cur){
		if(dir == 0)
			curBan--;
		else
			curBan++;
		var toshow = document.getElementById('top_ban'+curBan);
		if(toshow){
			cur.style.display = 'none';
			toshow.style.display = 'block';
		}else{
			if(dir == 0)
				curBan++;
			else
				curBan--;
		}
	}
	checkControls();
}

function checkControls(){
	var t = curBan+1;
	var next = document.getElementById('ban_control_next');
	var prev = document.getElementById('ban_control_prev');
	if(document.getElementById('top_ban'+t))
		next.style.visibility = 'visible';
	else
		next.style.visibility = 'hidden';
	t = curBan-1;
	if(document.getElementById('top_ban'+t))
		prev.style.visibility = 'visible';
	else
		prev.style.visibility = 'hidden';		
}

/* init top news behavior */
$(document).ready(
	function(){
		$('div#top_news > a.news_entry').mouseover(topNewsOver);
	}
);

function topNewsOver(){
	$('div#top_news > a.news_entry.n_opened').removeClass('n_opened');
	$(this).addClass('n_opened');
}

/* news line functions */
function showNextNews(dir){
	
	var cur = $('#cur_news');
	$(cur).removeAttr('id');
	$(cur).hide();
	var new_el = dir == 1 ? $(cur).next() : $(cur).prev();
	if(!new_el.length){
		/* get first or last */
		var t = $('#news_line_items > div');
		new_el = dir == 1 ? t[0] : t[t.length-1];
	}
	$(new_el).fadeIn('fast');
	$(new_el).attr('id', 'cur_news');
	
}

/* product details */
/*
$(document).ready(
	function(){
		$('table#product_menu > tbody > tr > td > div > a').click(
			function(){
				showProductInfo(this.href, this);
				return false;
			}
		);
	}
);
*/

function showProductInfo(url, it){
	$(it).parent().parent().siblings('.active').removeClass('active');
	$(it).parent().parent().addClass('active');
	$(it).blur();
	ajaxLoadContent(url, 'product_detail_info');
}

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

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

/* filter functions */
function showFilter(filter, link){
	link.blur();
	if(!$(link).parent().hasClass('cur')){
		$(link).parent().siblings('.cur').removeClass('cur');
		$(link).parent().addClass('cur');
		$('#filter_contents > div').hide();
		$('#' + filter).fadeIn('fast');
	}	
}

function showSpecialProducts(sid, link){
	link.blur();
	var par = $(link).parent().parent();
	if(!$(par).hasClass('active')){
		$(par).siblings('.active').removeClass('active');
		$(par).addClass('active');
		$('#special_products > div').hide();
		$('#catalog_special' + sid).show();
	}
}

/* some other */

function changeProductVariant(){
	
	var p_var = document.forms['product_variants'].elements['product_variants'].value;
	if(p_var == ''){
		document.getElementById('product_price').innerHTML = base_price;
		//showFirstPhoto();
	}
	
	/*
	DESCRIPTIONS
	$('#product_descriptions div.short_desc').hide();
	$('#product_description_v' + p_var).show();
	
	if(p_var != '' && $('#product_description_v' + p_var).html() == ''){
		$('#product_description_v' + p_var).hide();
		$('#product_description_v').show();
	}
	*/
	
	item_variant = p_var;
	if(item_variant == '')
		item_variant = 0;
		
	for(var i=0; i<product_variants.length; i++){
		if(product_variants[i]['id'] == p_var){
			if(product_variants[i]['pict1'] != ''){
				changeCatalogPhoto(product_variants[i]['pict1'], product_variants[i]['pict2']);
			}else{
				showFirstPhoto();
			}
			document.getElementById('product_price').innerHTML = product_variants[i]['price'];
		}
	}

	$('#tocart').attr('onClick', 'addToWishlist('+product_id+', this); return false;').attr('href', '#').html('<span>в корзину</span>').removeClass('added');
	
}

/* Tooltip */

function showTooltip(id, lnk){
	var offs = $(lnk).offset();
	if(document.getElementById(id)){
		var h = $('#' + id).height();
		var w = $('#' + id).width();
		
		var left = offs.left - 10;
		var top = offs.top - h - 14;
		
		if(top <= 0){
			top = offs.top + $(lnk).height() + 10;
		}
		
		if(left + w <= $(document.width)){
			left = offs_left - w;
		}
		
		$('#' + id).css({'top': top + 'px', 'left': left + 'px'}).show();
	}
}

function hideTooltip(id){
	$('#' + id).hide();
}

/* init tooltip */
$(document).ready(
	function(){
		$('a.tooltip_control').mouseover(
			function(){
				showTooltip($(this).attr('rel'), this);
			}
		).mouseout(
			function(){
				hideTooltip($(this).attr('rel'));
			}
		).click(
			function(){this.blur(); return false;}
		);
	}
);

/* regular orders */
function changeRegularOrderRate(sel, pid){
	//alert((pid ? 'reg_set_'+pid+ ' > ' : '') + '#regular_settings_week');
	var val = sel.value;
	if(sel.value == 'daily'){
		$((pid ? '#reg_set_'+pid+ ' > ' : '') + '.regular_settings_week').hide();
		$((pid ? '#reg_set_'+pid+ ' > ' : '') + '.regular_settings_month').hide();
	}else{
		if(sel.value == 'monthly'){
			$((pid ? '#reg_set_'+pid+ ' > ' : '') + '.regular_settings_week').hide();
			$((pid ? '#reg_set_'+pid+ ' > ' : '') + '.regular_settings_month').show();
		}else{
			$((pid ? '#reg_set_'+pid+ ' > ' : '') + '.regular_settings_week').show();
			$((pid ? '#reg_set_'+pid+ ' > ' : '') + '.regular_settings_month').hide();
		}
	}
}

function saveOrderAsRegular(chb){
	if(chb.checked)
		$('#regular_settings').show();
	else
		$('#regular_settings').hide();
}

function showOrderInfo(oi, lnk){
	toggleBlock(oi, lnk, false);
	$('#'+oi+'_control').toggleClass('chosen');
}

var ms_menu_opened = false;
function showMyServMenu(){	
	var pos = $('#my_serv_link').position();
	$('#my_serv_menu').css({'left': pos.left-11, 'top': pos.top-9, 'display': 'block'});
	setTimeout(function(){ms_menu_opened = true}, 100);
}

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

/* menu funtions */
var menu_types = new Array('catalog_sections', 'brand_list');
function showMenu(bid, lnk){
	lnk.blur();
	bid = '#' + bid;
	if($(bid).css('display') != 'block'){
		/* hide opened */
		for(var i = 0; i < menu_types.length; i++)
			if(bid != '#' + menu_types[i] && $('#' + menu_types[i]).css('display') == 'block'){
				$('#' + menu_types[i]).animate({height: "hide"}, 'fast',
					function(){
						$(this).prev().addClass('inact');
					}
				);
			}
		$(bid).animate({height: "show"}, 'fast');
		if(lnk)
			$(lnk).parent().parent().parent().removeClass('inact');
	}else{
		$(bid).animate({height: "hide"}, 'fast', function(){if(lnk) $(lnk).parent().parent().parent().toggleClass('inact')});
	}
}

function formatIntValue(src){
	src = src.toString();
	var cnt = 1;
	var str = '';
	var lngth = 0;
	var res =  '';
	for(var i=src.length-1; i >= 0; i--){
		str += src.substr(i, 1);
		lngth++;
		if((src.length-i)%3 == 0 && i > 0){
			str += ' ';
			lngth++;
		}
	}	
	var t = '';
	for(var i=lngth-1; i>=0; i--){
		/*
		t = str[i];
		str[i] = 'a';//str[lngth-i-1];
		str[lngth-i-1] = t;
		*/
		res += str.substr(i, 1);
	}
	return res;
}

function showAddPopup(product_id, lnk){
	
	var par = $(lnk);//.parent().parent();
	var pos = $(par).offset();
	
	var d = document.getElementById('add_popup');
	if(d){
		closeAddPopup();
		d = null;
	}
	if(!d){
		d = document.createElement('div');
		$(d).attr('id', 'add_popup');
		//document.body.appendChild(d);	
		var apt = $('#product' + product_id + ' .product_card_container_inner');
		if(apt.length){
			$(d).appendTo(apt);
			$(d).show();
		}else{
			//alert('test');
			document.body.appendChild(d);
			$(d).css({'left': pos.left-45, 'top': pos.top + par[0].offsetHeight - 15}).show();
		}
			
	}	
	$(d).html('<img src="/img/ajax-loader.gif"/>');
	//$(d).css({'left': pos.left-45, 'top': pos.top + par[0].offsetHeight - 15}).show();	
	
	$.get(
		'/catalog/', 
		{'a': 'add_popup', 'id': product_id}, 
		function(rsp){
			$('#add_popup').html(rsp);
		}
	);
	
}

function closeAddPopup(){
	$('#add_popup').detach();
}

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;
		}
	}
}

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();
		}
	}
	if(val == 'no_reg'){
		$('#email_field').show();
	}else{
		$('#email_field').hide();
	}
	$('input[name="order_type"]').attr('value', val);
}

function showCartAlert(){
	
	var a = document.getElementById('cart_alert');
	if(!a){
		cnt = '<div class="alert_content"><div class="alert_close"><a onClick="closeCartAlert(); return false;" href="#"><img src="/img/close_ic.gif"/></a></div>';
		cnt += '<b>Товар добавлен в корзину!</b><div class="clearer"></div><a onClick="closeCartAlert(); return false;" href="#" class="yell_btn"><span>Продолжить покупки</span></a>&nbsp;&nbsp;<a href="/wishlist/" class="yell_btn"><span>Оформить заказ</span></a>';
		cnt += '<div class="clearer"></div></div>';
		a = document.createElement('div');
		a.innerHTML = cnt;
		a.setAttribute('id', 'cart_alert');
		document.body.appendChild(a);
	}
	
	showSandBox();
	var t = $(document).scrollTop() + (($(window).height()-90)/2 - 30);
	var l = ($(window).width()-351)/2;
	a.style.top = t + 'px';
	a.style.left = l + 'px';
	a.style.display = 'block';
	
}

function closeCartAlert(){	
	$('#cart_alert').hide();
	hideSandBox();
}

$(document).ready(
	function(){
		
		var limit = 200;
		$('#scroll_top a').click(
			function(){
				$(window).scrollTop(0);
				$('#scroll_top').hide();
				return false;
			}
		);
		
		if($(window).scrollTop() > limit)	
			$('#scroll_top').show();
			
		$(window).scroll(			
			function(){
				//alert($(window).scrollTop());
				if($(window).scrollTop() < limit)
					$('#scroll_top').hide();
				else
					$('#scroll_top').show();
			}
		);
		
		$('.product_card_container').mouseleave(
			function(){
				setTimeout(closeAddPopup, 0);
			}
		);
		
	}
);

