$(document).ready(storeInit);
$(window).bind('resize', onStoreResize);

function storeInit(){
    onStoreResize();

    initForm();

    initStoreCollectionsLinks();
    //initStoreMetallFilter();
    initStoreSort();
    initStoreOutput();
    initStoreFilter();
    initStoreCabinet();
    initStoreAdditionalOptions();
    initStorePagination();
    initOrderPagination();
    initStoreGoods();
    initStoreImageBigBlock();

    initCounters();
    $('.text-image-big-block img').bind('load', function(){ resizeTextImageBlock(); });

    if( $('.store .product-details .right-column .order-info .additional ul').length > 0 ){
        $('.store .product-details .right-column .order-info .additional ul li').each(function(){
            if( $(this).index() % 4 == 0 ){
                $(this).addClass('f');
            }
        });
        $('.store .product-details .right-column .order-info .additional ul:eq(0)').height((function(){
            var height = 0;
            $('.store .product-details .right-column .order-info .additional ul:eq(0) li').each(function(){
                if( $(this).index() % 4 == 0 ){
                    height = height + $(this).height();
                }
            });
            return height + 23;
        })()); 
    }
	
	initSliderResize();
}

function initSliderResize(){
	if($(".store .text-image-big-list").length > 0){
		$(window).load(function(){
			hgt = $(".store .text-image-big-list").find('img:first').height();
			$(".store .text-image-big-list").css('height', hgt);
		})
		$(window).resize(function(){
			hgt = $(".store .text-image-big-list").find('img:first').height();
			$(".store .text-image-big-list").css('height', hgt);
		})
	}
}

function onStoreResize(){
    if($(this).width() < 1200){
        $('#header.store').addClass('w1000');
        $('.product-details>div').addClass('w1000');
        goodsReWrap(4);
    }else if($(this).width() > 1200){
        if($('#header.store').hasClass('w1000')){
            $('#header.store').removeClass('w1000');
        }
        if($('.product-details>div').hasClass('w1000')){
            $('.product-details>div').removeClass('w1000');
        }
        goodsReWrap(5);
        $('.goods .goods-row').css({'padding-left': 0});
    }
    var w = 0;
    $('.goods .goods-row:first-child .good').each(function(){
        w += $(this).width();
    });
    $('.goods .goods-row').css({'padding-left': ($('.goods .goods-row:first-child').width()-w)/2 - 7*($('.goods .goods-row:first-child .good').length-1)});
}

if (typeof console == "undefined" || typeof console.log == "undefined") var console = { log: function() {} }; 

var textImageControlIndex, textImageControlLength, imageBigControlInterval, textImageBlockWidth;
function initStoreImageBigBlock(){
	if ($('.text-image-big-list ul li').length > 1) {
        textImageControlIndex = 0;
        textImageControlLength = $('.text-image-big-control li').length;
        imageBigControlInterval = setInterval(storeSlideImageBigBlock, 5000);
		$('.store .text-image-big-list').hover(
            function(){
                clearInterval(imageBigControlInterval);
			},
            function(){
                imageBigControlInterval = setInterval(storeSlideImageBigBlock, 5000);
			}
        );
    }
}

function storeSlideImageBigBlock(){
	textImageControlIndex++;
	
	if(textImageControlIndex == textImageControlLength){
		$('.text-image-big-list ul').append($('.text-image-big-list ul li:eq(0)').clone()).width($('.text-image-big-list ul').width() + $('.text-image-big-list ul li:eq(0)').width());
	}else if(textImageControlIndex == textImageControlLength  + 1){
		$('.text-image-big-list ul').css('margin-left', '0px');
		$('.text-image-big-list li:last-child').remove();
		$('.text-image-big-list ul').width($('.text-image-big-list ul').width() - $('.text-image-big-list ul li:eq(0)').width());
		$('.text-image-big-control li:eq(0)').addClass('c');
		textImageControlIndex = 1;
	}
	
    textImageBlockWidth = $('.text-image-big-list li').width();
	
	//console.log('i='+textImageControlIndex+' , w='+textImageBlockWidth+' , l='+textImageControlLength);
    
	$('.text-image-big-control li').removeClass('c');
	$('.text-image-big-control li:eq('+((textImageControlIndex==textImageControlLength)?0:textImageControlIndex)+')').addClass('c');
    
   $('.text-image-big-list ul').fadeOut('normal', function(){
   		$('.text-image-big-list ul').css('margin-left', '-'+(textImageControlIndex*textImageBlockWidth)+'px');
   		$('.text-image-big-list ul').fadeIn();
   });
    
    //$('.text-image-big-list ul').stop().animate({marginLeft: '-'+(textImageControlIndex*textImageBlockWidth)+'px'}, {duration: 0, easing: 'linear'});
    
    
    
     
    
    //$('.text-image-big-list ul').stop().animate({marginLeft: '-'+(textImageControlIndex*textImageBlockWidth)+'px'}, {duration: 600, easing: 'linear'});
	
}

function goodsReWrap(count){
    if($('.goods .good').length > 0){
        $('.goods .good').unwrap();
        var goods = $('.goods .good');
        while( goods.length > 0 ){
            $(goods.splice(0, count)).wrapAll('<div class="goods-row"></div>');
        }
    }
}

/* Init form: hides default input value onfocus and onblur returns default value */
var emailReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/;

function initForm(){
    $('form.form input:text, form.form input:password, form.form textarea').each(function(){
        if($(this).hasClass('password')){
            $(this).after('<input type="password" name="' + $(this).attr('name') + '" id="' + $(this).attr('id') + '" class="password" style="display: none;"/>');
            $(this).attr('name', $(this).attr('name') + '_orig').attr('id', $(this).attr('id') + '_orig');
        }
        $(this).bind('focus', function(){
            if(typeof($(this).attr('rel')) == "undefined" || $(this).attr('rel') == $(this).val()){
                $(this).attr('rel', $(this).val());
                $(this).val('').addClass('focus');
                if($(this).hasClass('required')){
                    $(this).removeClass('required').addClass('required-done');
                }
                if($(this).hasClass('password')){
                    $(this).next().val('').show().bind('blur', function(){
                        if( $(this).val().length == 0 ){
                            $(this).hide().prev().show();
                        }
                    }).trigger('focus');
                    $(this).hide();
                }
            }
        }).bind('blur', function(){
            if($(this).val().length == 0){
                if($(this).hasClass('required-done')){
                    $(this).removeClass('required-done').addClass('required');
                }
                $(this).val($(this).attr('rel')).removeClass('focus');
            }
        });
    });

    $("#callback-form")
        .bind ('submit', function () {
		        $('[title="Это поле должно быть заполнено"]').remove();
			$('[title="Это поле должно быть заполнено корректно"]').remove();
			var error = false;

			$("#callback_name_div").removeClass("text-form-error");
			$("#callback-name").focus();
			if ($('#callback-name').val() == "")
			{
				$("#callback_name_div").addClass("text-form-error");
				$("#callback_name_div").prepend('<i title="Это поле должно быть заполнено"></i>');
	
				error = true;
			}

			$("#callback_phone_div").removeClass("text-form-error");
			$("#callback-phone").focus();
			if ($('#callback-phone').val() == "" || $('#callback-phone').val().match(/[^0-9\-\(\)\s\+]+/ig))
			{
				$("#callback_phone_div").addClass("text-form-error");
				$("#callback_phone_div").prepend('<i title="Это поле должно быть заполнено корректно"></i>');
	
				error = true;
			}

			$("#callback_message_div").removeClass("text-form-error");
			$("#callback-message").focus();
			if ($('#callback-message').val() == "")
			{
				$("#callback_message_div").addClass("text-form-error");
				$("#callback_message_div").prepend('<i title="Это поле должно быть заполнено"></i>');
	
				error = true;
			}
			$("#callback-message").blur();

			if (error) return false;
		})

    $("#login-form")
        .bind ('submit', function () {
		        $('[title="Это поле должно быть заполнено"]').remove();
			$('[title="Это поле должно быть заполнено корректно"]').remove();
			var error = false;

			$("#login_email_div").removeClass("text-form-error");
			$("#login_email").focus();
			if ($('#login_email').val() == "" || !emailReg.test($('#login_email').val()))
			{
				$("#login_email_div").addClass("text-form-error");
				$("#login_email_div").prepend('<i title="Это поле должно быть заполнено корректно"></i>');
	
				error = true;
			}

			$("#login_pass_div").removeClass("text-form-error");
			$("#login_pass").focus();
			if ($('#login_pass').val() == "")
			{
				$("#login_pass_div").addClass("text-form-error");
				$("#login_pass_div").prepend('<i title="Это поле должно быть заполнено"></i>');
	
				error = true;
			}
			$("#login_pass").blur();

			if (error) return false;
		})

    $("#login-form-auth")
        .bind ('submit', function () {
		        $('[title="Это поле должно быть заполнено"]').remove();
			$('[title="Это поле должно быть заполнено корректно"]').remove();
			var error = false;

			$("#login_email_auth_div").removeClass("text-form-error");
			$("#login_email_auth").focus();

			if ($('#login_email_auth').val() == "" || !emailReg.test($('#login_email_auth').val()))
			{
				$("#login_email_auth_div").addClass("text-form-error");
				$("#login_email_auth_div").prepend('<i title="Это поле должно быть заполнено корректно"></i>');
	
				error = true;
			}

			$("#login_pass_auth_div").removeClass("text-form-error");
			$("#login_pass_auth").focus();
			if ($('#login_pass_auth').val() == "")
			{
				$("#login_pass_auth_div").addClass("text-form-error");
				$("#login_pass_auth_div").prepend('<i title="Это поле должно быть заполнено"></i>');
	
				error = true;
			}
			$("#login_pass_auth").blur();

			if (error) return false;
		})

    $("#forget-pass-form")
        .bind ('submit', function () {
		        $('[title="Это поле должно быть заполнено корректно"]').remove();
			var error = false;

			$("#forget_pass_email_div").removeClass("text-form-error");
			$("#forget_pass_email").focus();
			if ($('#forget_pass_email').val() == "" || !emailReg.test($('#forget_pass_email').val()))
			{
				$("#forget_pass_email_div").addClass("text-form-error");
				$("#forget_pass_email_div").prepend('<i title="Это поле должно быть заполнено корректно"></i>');
	
				error = true;
			}
			$("#forget_pass_email").blur();

			if (error) return false;
		})

    $("#reg-form")
        .bind ('submit', function () {
		        $('[title="Это поле должно быть заполнено"]').remove();
			$('[title="Это поле должно быть заполнено корректно"]').remove();
			var error = false;

			$("#reg_name_div").removeClass("text-form-error");
			$("#reg_name").focus();
			if ($('#reg_name').val() == "")
			{
				$("#reg_name_div").addClass("text-form-error");
				$("#reg_name_div").prepend('<i title="Это поле должно быть заполнено"></i>');
	
				error = true;
			}

			$("#reg_fam_div").removeClass("text-form-error");
			$("#reg_fam").focus();
			if ($('#reg_fam').val() == "")
			{
				$("#reg_fam_div").addClass("text-form-error");
				$("#reg_fam_div").prepend('<i title="Это поле должно быть заполнено"></i>');
	
				error = true;
			}

			$("#reg_mail_div").removeClass("text-form-error");
			$("#reg_mail").focus();
			if ($('#reg_mail').val() == "" || !emailReg.test($('#reg_mail').val()))
			{
				$("#reg_mail_div").addClass("text-form-error");
				$("#reg_mail_div").prepend('<i title="Это поле должно быть заполнено корректно"></i>');
	
				error = true;
			}

			$("#reg_mail2_div").removeClass("text-form-error");
			$("#reg_mail2").focus();
			if ($('#reg_mail2').val() != $("#reg_mail").val())
			{
				$("#reg_mail2_div").addClass("text-form-error");
				$("#reg_mail2_div").prepend('<i title="Значение этого поля не совпадает со значением предыдущего поля"></i>');
	
				error = true;
			}

			$("#reg_pass1_div").removeClass("text-form-error");
			$("#reg_pass1").focus();
			if ($('#reg_pass1').val() == "" || $('#reg_pass1').val().length < 6)
			{
				$("#reg_pass1_div").addClass("text-form-error");
				$("#reg_pass1_div").prepend('<i title="Это поле должно быть заполнено 6 символами"></i>');
	
				error = true;
			}

			$("#reg_pass2_div").removeClass("text-form-error");
			$("#reg_pass2").focus();
			if ($('#reg_pass2').val() != $("#reg_pass1").val())
			{
				$("#reg_pass2_div").addClass("text-form-error");
				$("#reg_pass2_div").prepend('<i title="Значение этого поля не совпадает со значением предыдущего поля"></i>');
	
				error = true;
			}
			$("#reg_pass2").blur();

			if (error) return false;
		})

    $("#reg-form-auth")
        .bind ('submit', function () {
		        $('[title="Это поле должно быть заполнено"]').remove();
			$('[title="Это поле должно быть заполнено корректно"]').remove();
			var error = false;

			$("#reg_name_auth_div").removeClass("text-form-error");
			$("#reg_name_auth").focus();
			if ($('#reg_name_auth').val() == "")
			{
				$("#reg_name_auth_div").addClass("text-form-error");
				$("#reg_name_auth_div").prepend('<i title="Это поле должно быть заполнено"></i>');
	
				error = true;
			}

			$("#reg_fam_auth_div").removeClass("text-form-error");
			$("#reg_fam_auth").focus();
			if ($('#reg_fam_auth').val() == "")
			{
				$("#reg_fam_auth_div").addClass("text-form-error");
				$("#reg_fam_auth_div").prepend('<i title="Это поле должно быть заполнено"></i>');
	
				error = true;
			}

			$("#reg_mail_auth_div").removeClass("text-form-error");
			$("#reg_mail_auth").focus();
			if ($('#reg_mail_auth').val() == "" || !emailReg.test($('#reg_mail_auth').val()))
			{
				$("#reg_mail_auth_div").addClass("text-form-error");
				$("#reg_mail_auth_div").prepend('<i title="Это поле должно быть заполнено корректно"></i>');
	
				error = true;
			}

			$("#reg_mail2_auth_div").removeClass("text-form-error");
			$("#reg_mail2_auth").focus();
			if ($('#reg_mail2_auth').val() != $("#reg_mail_auth").val())
			{
				$("#reg_mail2_auth_div").addClass("text-form-error");
				$("#reg_mail2_auth_div").prepend('<i title="Значение этого поля не совпадает со значением предыдущего поля"></i>');
	
				error = true;
			}

			$("#reg_pass1_auth_div").removeClass("text-form-error");
			$("#reg_pass1_auth").focus();
			if ($('#reg_pass1_auth').val() == "" || $('#reg_pass1_auth').val().length < 6)
			{
				$("#reg_pass1_auth_div").addClass("text-form-error");
				$("#reg_pass1_auth_div").prepend('<i title="Это поле должно быть заполнено 6 символами"></i>');
	
				error = true;
			}

			$("#reg_pass2_auth_div").removeClass("text-form-error");
			$("#reg_pass2_auth").focus();
			if ($('#reg_pass2_auth').val() != $("#reg_pass1_auth").val())
			{
				$("#reg_pass2_auth_div").addClass("text-form-error");
				$("#reg_pass2_auth_div").prepend('<i title="Значение этого поля не совпадает со значением предыдущего поля"></i>');
	
				error = true;
			}
			$("#reg_pass2_auth").blur();

			if (error) return false;

			if ($("#reg_city_auth").val() == "Город")
				$("#reg_city_auth").val("");

			if ($("#reg_adress_auth").val() == "Адрес")
				$("#reg_adress_auth").val("");

			if ($("#reg_phone_auth").val() == "Контактный телефон")
				$("#reg_phone_auth").val("");


			if ($("#reg_comment_auth").val() == "Комментарий")
				$("#reg_comment_auth").val("");
		})

    $("#update-form")
        .bind ('submit', function () {
		        $('[title="Это поле должно быть заполнено"]').remove();
			$('[title="Это поле должно быть заполнено корректно"]').remove();
			var error = false;

			$("#update_name_div").removeClass("text-form-error");
			if ($('#update_name').val() == "")
			{
				$("#update_name_div").addClass("text-form-error");
				$("#update_name_div").prepend('<i title="Это поле должно быть заполнено"></i>');
	
				error = true;
			}

			$("#update_fam_div").removeClass("text-form-error");
			if ($('#update_fam').val() == "")
			{
				$("#update_fam_div").addClass("text-form-error");
				$("#update_fam_div").prepend('<i title="Это поле должно быть заполнено"></i>');
	
				error = true;
			}

			$("#update_mail_div").removeClass("text-form-error");
			if ($('#update_mail').val() == "" || !emailReg.test($('#update_mail').val()))
			{
				$("#update_mail_div").addClass("text-form-error");
				$("#update_mail_div").prepend('<i title="Это поле должно быть заполнено корректно"></i>');
	
				error = true;
			}

			$("#update_pass1_div").removeClass("text-form-error");
			if ($('#update_pass1').val() != "" && $('#update_pass1').val().length < 6)
			{
				$("#update_pass1_div").addClass("text-form-error");
				$("#update_pass1_div").prepend('<i title="Это поле должно быть заполнено 6 символами"></i>');
	
				error = true;
			}

			$("#update_pass2_div").removeClass("text-form-error");
			if ($('#update_pass2').val() != $("#update_pass1").val())
			{
				$("#update_pass2_div").addClass("text-form-error");
				$("#update_pass2_div").prepend('<i title="Значение этого поля не совпадает со значением предыдущего поля"></i>');
	
				error = true;
			}

			if (error) return false;
		})

    $("#order-form")
        .bind ('submit', function() {
			if (checkOrderForm(false)) 
			{
				window.location.href = window.location.pathname + "#order-form-anchor";
				$(".user-info-wrapper").find(".edit").removeClass("hidden"); 
				$(".user-info-wrapper").find(".view").addClass("hidden");

				return false;
			}
		})
}

function checkOrderForm(send)
{
	$('[title="Это поле должно быть заполнено"]').remove();
	$('[title="Это поле должно быть заполнено корректно"]').remove();
	var error = false;
        
	$("#order_name_div").removeClass("text-form-error");
	if ($('#order_name').val() == "")
	{
		$("#order_name_div").addClass("text-form-error");
		$("#order_name_div").prepend('<i title="Это поле должно быть заполнено"></i>');
	
		error = true;
	}

	$("#order_fam_div").removeClass("text-form-error");
	if ($('#order_fam').val() == "")
	{
		$("#order_fam_div").addClass("text-form-error");
		$("#order_fam_div").prepend('<i title="Это поле должно быть заполнено"></i>');
	
		error = true;
	}

	$("#order_city_div").removeClass("text-form-error");
	if ($('#order_city').val() == "")
	{
		$("#order_city_div").addClass("text-form-error");
		$("#order_city_div").prepend('<i title="Это поле должно быть заполнено"></i>');
	
		error = true;
	}

	$("#order_address_div").removeClass("text-form-error");
	if ($('#order_address').val() == "")
	{
		$("#order_address_div").addClass("text-form-error");
		$("#order_address_div").prepend('<i title="Это поле должно быть заполнено"></i>');
	
		error = true;
	}

	$("#order_phone_div").removeClass("text-form-error");
	if ($('#order_phone').val() == "")
	{
		$("#order_phone_div").addClass("text-form-error");
		$("#order_phone_div").prepend('<i title="Это поле должно быть заполнено"></i>');
	
		error = true;
	}

	$("#order_mail_div").removeClass("text-form-error");
	if ($('#order_mail').val() == "" || !emailReg.test($('#order_mail').val()))
	{
		$("#order_mail_div").addClass("text-form-error");
		$("#order_mail_div").prepend('<i title="Это поле должно быть заполнено корректно"></i>');
	
		error = true;
	}

        $("#order_pass1_div").removeClass("text-form-error");
	$("#order_pass2_div").removeClass("text-form-error");
	if (($('#order-pass1').val() != "" || $('#order-pass2').val() != "") && $('#order-pass1').val() != $('#order-pass2').val())
	{
		$("#order_pass1_div").addClass("text-form-error");
		$("#order_pass2_div").addClass("text-form-error");
		$("#order_pass1_div").prepend('<i title="Это поле должно быть заполнено корректно"></i>');
		$("#order_pass2_div").prepend('<i title="Это поле должно быть заполнено корректно"></i>');
        
		error = true;
	}

	if (send)
	{
		if (error)
		{
			window.location.href = window.location.pathname + "#order-form-anchor";
			$(".user-info-wrapper").find(".edit").removeClass("hidden"); 
			$(".user-info-wrapper").find(".view").addClass("hidden");

			return false;
		}
		
		$("#order-edit-btn").replaceWith('<img src="/img/ajax-loader.gif" id="order-edit-img">');

		$.post("http://shop.nikawatches.ru/confirm/edit.php", { 
				su_email_reg: $('#order_mail').val(), 
				su_pass1: $('#order-pass1').val() ,
				su_pass2: $('#order-pass2').val() , 
				su_pers_sex: $('#order_pol').val() == 409 ? 0 : 1, // 0 - 409, 1 - 410
				su_pers_phone: $('#order_phone').val(),
				su_pers_adress: $('#order_address').val(),
				su_pers_addition: $('#order_comment').val(),
				user_f_4: $('#order_city').val(),
				user_f_1: $('#order_name').val(),
				user_f_2: $('#order_fam').val(),
				su_update_form: 1
			},
			function(data) {
				$("#order-edit-img").remove();
				overlayRegisterEditOk();
			});
	}
	else
	{
		return error;
	}
}
/* Catalog: Show login form & hide register form */
function loginFormShow(el){
    $(el).addClass("current");
    $(el).prev().removeClass('current');
    $(".register.form").slideUp(700, function(){
        $(".login.form").slideDown(700);
    });
}
/* Catalog: Show register form & hide login form */
function registerFormShow(el){
    $(el).addClass("current");
    $(el).next().removeClass('current');
    $(".login.form").slideUp(700, function(){
        $(".register.form").slideDown(700);
    });
}

/* Store: show collection preview */
function initStoreCollectionsLinks(){
    $('.store .collections ul li a').bind('mouseenter', function(e){
        $('.preview', $(this).parent()).show();
    }).bind('mouseleave', function(e){
        $('.preview', $(this).parent()).hide();
    }).bind('mousemove', function(e){
        var el = $('.preview', $(this).parent());
        var ulCount = $('ul', $(this).parent().parent().parent()).length;
        var curIndex = $(this).parent().parent().index();
        el.css({
            "top": e.pageY - el.height() - 5 + "px", 
            "left": ( (curIndex != (ulCount - 1)) ? (e.pageX - $(el).width()/2) : (e.pageX - $(el).width()*1.5)) + "px"
        });
    });
}

function initStoreMetallFilter(){
    $('.store .metal-filter a').bind('click', function(e){
        if( $(this).hasClass('cur') ){
            $(this).removeClass('cur');
            $('.search-filter').addClass('hidden');
        }else{
            $('a', $(this).parent()).removeClass('cur');
            $(this).addClass('cur');
        }
    });
}

function initStoreSort(){
    $('.store .filter .sort a').bind('click', function(){
        var el = $(this).next();
        if(el.hasClass('asc')){
            el.removeClass('asc').addClass('desc');
        }else{
            el.removeClass('desc').addClass('asc');
        }
    });
}

function initStoreOutput(){
    $('.store .filter .output a').bind('click', function(e){
        $('a', $(this).parent()).removeClass('cur');
        $(this).addClass('cur');
    });
}

function initStoreFilter(){
    /*$('.store .search-filter a').bind('click', function(e){
        $('a', $(this).parent()).removeClass('cur');
        $(this).addClass('cur');
    });*/
    if( $('.store .search-filter .slider').length > 0 ){
        var fromPrice = parseInt($('.store .search-filter .from-price').val()),
            toPrice = parseInt($('.store .search-filter .to-price').val());
        $('.store .search-filter .slider').slider({ 
            range: true, 
            min: parseInt($('.store .search-filter .slider-controlls .min').attr('val')), 
            max: parseInt($('.store .search-filter .slider-controlls .max').attr('val')),
            values: [(fromPrice < toPrice) ? fromPrice : toPrice, (fromPrice < toPrice) ? toPrice : fromPrice],
            step: 1000,
            slide: function( event, ui ){
                $('.store .search-filter .from-price').val((ui.values[0] < ui.values[1]) ? ui.values[0] : ui.values[1]);
                $('.store .search-filter .to-price').val((ui.values[0] < ui.values[1]) ? ui.values[1] : ui.values[0]);
            },
            change: function (event, ui){
                var get = (window.location.search == "" ? "?" : window.location.search);
                if (get != "?")
                {
                    get = get.replace(/[?&]?p_f_1_price2_lo=[0-9]+/gi, "");
                    get = get.replace(/[?&]?p_f_1_price2_hi=[0-9]+/gi, "");
                    get = get + "&";
                }
                window.location.href = window.location.pathname + get + "p_f_1_price2_lo=" + ui.values[0] + "&p_f_1_price2_hi=" + ui.values[1];
            }
        });
        var handles = $('.store .search-filter .slider a');
        $(handles[0]).addClass('left-handle');
        $(handles[1]).addClass('right-handle');
        $('.store .search-filter .from-price').val($('.store .search-filter .slider').slider("values", 0));
        $('.store .search-filter .to-price').val($('.store .search-filter .slider').slider("values", 1));
        $('.store .search-filter .from-price, .store .search-filter .to-price').bind("change", function(){
            $('.store .search-filter .slider').slider("values", 0, $('.store .search-filter .from-price').val());
            $('.store .search-filter .slider').slider("values", 1, $('.store .search-filter .to-price').val());
        }).bind("keyup", function(){
            if($(this).val().search(/[^0-9]/) > -1){
                $(this).val($(this).val().replace(/[^0-9]/gi, ''));
            }
        });
    }
}

function initStoreCabinet(){
    if( $('.store.cabinet a.collapse').length > 0 ){
        $('.store.cabinet tr.collapsed img').each(function(){
            var width = $(this).width()/3, height = $(this).height()/3;
            //$(this).width(width).height(height);
			$(this).css({width: width, height: 'auto'});
        });
        $('.store.cabinet a.collapse').bind('click', function(){
            $(this).parent().parent().toggleClass('collapsed');
            if(!$(this).parent().parent().hasClass('collapsed')){
                $(this).html('Свернуть <span></span>');
                var image = $('img', $(this).parent().parent());
                //image.width(image.width()*3).height(image.height()*3);
				image.css({width: image.width()*3, height: 'auto'});
            }else{
                $(this).html('Описание <span></span>');
                var image = $('img', $(this).parent().parent());
                //image.width(image.width()/3).height(image.height()/3);
				image.css({width: image.width()/3, height: 'auto'});
            }
            resizeBg();
        });
        resizeBg();
    }
}

function initCounters(){
    if( $('.counter').length > 0 ){
        $('.counter div').bind('click', function(){
            var input = $(this).parent().find('input');
            if( input.length > 0 ){
                if( $(this).hasClass('up') ){
                    input.val( parseInt(input.val()) + 1 );
                }else if( $(this).hasClass('down') && parseInt(input.val()) > 0 ){
                    input.val( parseInt(input.val()) - 1 );
                }
            }
            priceReCount.apply($(this).parent().parent().parent());
            //sumReCount();
        });
        $('.counter input').bind('keyup', function(){
            if($(this).val().search(/[^0-9]/) > -1){
                $(this).val($(this).val().replace(/[^0-9]/gi, ''));
            }
            priceReCount.apply($(this).parent().parent().parent());
            //sumReCount();
        }).each(function(){
            priceReCount.apply($(this).parent().parent().parent());
        });
    }
}
function priceReCount(){ 
    var price = $('div.price', this); 
    var count = parseInt(($($('input', this)[0]).val() != '' ) ? $($('input', this)[0]).val() : 0); 
    if( $('span', price).length > 0){ 
        $('span', price).each( function(){ 
            if( $(this).attr('p') ){ 
                var p = parseInt( $(this).attr('p') ); 
            }else{ 
                var p = parseInt($(this).text().replace(/[^0-9]/g, '')); 
                $(this).attr('p', p); 
            } 
            var sum = priceFormat(p*count); 
            $(this).html(sum + "&nbsp;<i>Р</i>"); 
        }); 
        sumReCount(); 
    } 
} 
function sumReCount(){
    var price = 0;
    $('td div.price').each(function(){
        var priceElement = ( $('span.new', this).length > 0 ) ? $('span.new', this) : $(this);
        var counterElement = $(this).parent().parent().find('input');
        price += parseInt(priceElement.text().replace(/[^0-9]/g, '')); // * parseInt(counterElement.val());
    });
    $('div.summ span.result').html( priceFormat(price) );
}
function priceFormat(c){
    c = c + '';
    var result = '';
    if( c.length <= 3 ) return c;
    for( var i = (c.length - 1); i >= 0; i-- ){
        var digit = c.substr(i, 1), ic = (c.length - i);
        if( ic % 3 == 0 && ic != 0 && ic != c.length){
            result = '&nbsp;' + digit + result;
        }else{
            result = digit + result;
        }
    }

    return result;
}

function productRemove(e){
    e = e || window.event; 
    var current = (e.target) ? e.target : event.srcElement;
    $.ajax({
	cache: false,
	url: $(current).parent().attr("rel")
    });

    $(current).parent().parent().parent().remove();
    if( $('.counter').length > 0 ){
	sumReCount();
	$('#basket-count').html(parseInt($('#basket-count').text().replace(/[^0-9]/g, '')) - 1);
    }
    else
    {
	$('#basket-form').html('<div class="text"><br><br><p style="text-align:center">В корзине нет товаров!</p></div>');
	$('.basket-info').html('Корзина пуста');
    }
    onResize();
}

function sumFavReCount(){
    var price = 0;
    $('.table-wrapper.favorite span.current').each(function(){
        price += parseInt($(this).text().replace(/[^0-9]/g, ''));
    });

    $('div.summ.favorite span.result').html( priceFormat(price) );
}

function productRemoveFav(e){
    e = e || window.event; 
    var current = (e.target) ? e.target : event.srcElement;
    $.ajax({
	cache: false,
	url: $(current).parent().attr("rel")
    });

    $(current).parent().parent().parent().remove();
    if( $('.description').length > 0 ){
	sumFavReCount();
    }
    else
    {
	$('.store-title-2.favorite').remove();
	$('.table-wrapper.favorite').remove();
	$('.summ.favorite').remove();
    }

    onResize();
}

function initStoreAdditionalOptions(){
    if( $('.store .product-details .additional').length > 0 ){
        $('.store .product-details .additional ul li').bind('click', function(){
	    if ($(this).parent().parent().hasClass("grav"))
	    {
		// гравировка
		var param = $(this).children("a").first().attr("rel");
		param = param.split("|");
		
		var id = parseInt(param[0]);
		var price = parseInt(param[1]);
		var fav = parseInt(param[2]);
		var order = parseInt(param[3]);

		if (price > 0)
		{
			$("#grav_price").html(priceFormat(price));
			$("#grav_price_div").removeClass("hidden");
			
			if (order == 1)
			{
				$("#grav_order").attr("name", "pl_plugin_order[12_" + id + "]");
				$("#grav_out").show();
				$("#grav_in").hide();	
			}       
			else
			{
				$("#grav_out").hide();
				$("#grav_in").show();					
			}

			if (fav == 1)
			{
			        $("#grav_fav_link").text("В избранном");
				$("#grav_fav_link").attr("href", "/person/");
			}
			else
			{
				$("#grav_fav_link").text("В избранное");
				$("#grav_fav_link").attr("href", "/catalog/fav.php?id=" + id + "&grav=1");

				if ($("#grav_fav_link").attr("rel") != "auth")
				{
					$("#grav_fav_link").attr("rel", $(this).children("a").first().attr("rel"));
				}
			}
		}
		else
		{
			$("#grav_price_div").addClass("hidden");
		}
	    }
	
            $(this).siblings().removeClass('cur');
            $(this).addClass('cur');
        });
    }
}

function overlayClose(e){
    $('#overlays>*').hide();
    state = false;
}

function overlayBgShow(){
    $('#overlay-bg').show().css({
        top: $('#container .pad').offset().top + $('#nav-logo').height() + $('#header').height(),
        left: $('#container .pad').offset().left
        }).width($('#container .pad').width()).height($('#container .pad').height() - $('#nav-logo').height() - $('#header').height());
}

function overlayBgHide(){
    $('#overlay-bg').hide();
}

var state = false;
function overlayAllSites(e){
    if($('#all-sites').length > 0){
        
        if(!state){
        
        	if (!e) e = window.event.target;
	        $('#all-sites').show().css({
	            left: $(window).width()/2 - $('#all-sites').width()/2,
	            top: $(e).offset().top - $('#all-sites').height() - 25
	            });
	        if($('#all-sites').prev().length > 0 && $('#all-sites').prev()[0].tagName == "css3-container"){ $('#all-sites').prev().css({ top: $('#all-sites').offset().top, left: $('#all-sites').offset().left }).show(); }
        state = !state;
        } else {
        	$(".close a").trigger('click');
        }
        
    }
}

function overlayAuth(){
    overlayBgShow();
    $('#overlays #auth').show().css({
        left: $(window).width()/2 - $('#overlays #auth').width()/2,
        top: $(window).height()/2 - $('#overlays #auth').height()/2 + $(window).scrollTop()
        });
}

function overlayRegistration(){
    overlayBgShow();
    $('#overlays #registration').show().css({
        left: $(window).width()/2 - $('#overlays #registration').width()/2,
        top: $(window).height()/2 - $('#overlays #registration').height()/2 + $(window).scrollTop()
        });
}
function overlayRegisterOk(){
    overlayBgShow();
    $('#overlays #register-ok').show().css({
        top: $(window).height()/2 - $('#overlays #register-ok').height()/2 + $(window).scrollTop()
        });
}
function overlayRegisterEditOk(){
    overlayBgShow();
    $('#overlays #register-edit-ok').show().css({
        top: $(window).height()/2 - $('#overlays #register-edit-ok').height()/2 + $(window).scrollTop()
        });
}

function overlayForgetPassword(){
    overlayBgShow();
    $('#overlays #forget-password').show().css({
        left: $(window).width()/2 - $('#overlays #forget-password').width()/2,
        top: $(window).height()/2 - $('#overlays #forget-password').height()/2 + $(window).scrollTop()
        });
}
function overlayForgetPasswordOk(){
    overlayBgShow();
    $('#overlays #forget-password-ok').show().css({
        top: $(window).height()/2 - $('#overlays #forget-password-ok').height()/2 + $(window).scrollTop()
        });
}

function overlayCallback(){
    if ($('#overlays #callback').length)
    {
	overlayBgShow();
	$('[title="Это поле должно быть заполнено"]').remove();
	$('[title="Это поле должно быть заполнено корректно"]').remove();
	$("#callback_name_div").removeClass("text-form-error");
	$("#callback_phone_div").removeClass("text-form-error");
	$("#callback_message_div").removeClass("text-form-error");

	$("#callback_name").blur();
	$("#callback_phone").blur();
	$("#callback_message").blur();

        $('#overlays #callback').show().css({
            left: $(window).width()/2 - $('#overlays #callback').width()/2,
            top: $(window).height()/2 - $('#overlays #callback').height()/2 + $(window).scrollTop()
        });
    }
    else
    {
	overlayCallBackOk();
    }
}

function overlayCallBackOk(){
    overlayBgShow();
    $('#overlays #callback-ok').show().css({
        top: $(window).height()/2 - $('#overlays #callback-ok').height()/2 + $(window).scrollTop()
        });
}

function overlayContact(){
    if ($('#overlays #contact').length)
    {
	overlayBgShow();
	$('[title="Это поле должно быть заполнено"]').remove();
	$('[title="Это поле должно быть заполнено корректно"]').remove();
	$("#contact_name_div").removeClass("text-form-error");
	$("#contact_phone_div").removeClass("text-form-error");
	$("#contact_mail_div").removeClass("text-form-error");
	$("#contact_message_div").removeClass("text-form-error");

	$("#contact_name").blur();
	$("#contact_phone").blur();
	$("#contact_mail").blur();
	$("#contact_site").blur();
	$("#contact_message").blur();

        $('#overlays #contact').show().css({
            left: $(window).width()/2 - $('#overlays #contact').width()/2,
            top: $(window).height()/2 - $('#overlays #contact').height()/2 + $(window).scrollTop()
        });
    }
    else
    {
	overlayCallBackOk();
    }
}

function overlayContactOk(){
    overlayBgShow();
    $('#overlays #contact-ok').show().css({
        top: $(window).height()/2 - $('#overlays #contact-ok').height()/2 + $(window).scrollTop()
        });
}

function overlayLoginOk(){
    overlayBgShow();
    $('#overlays #login-ok').show().css({
        top: $(window).height()/2 - $('#overlays #login-ok').height()/2 + $(window).scrollTop()
        });
}

function storeFilterShow(show, hide){
    $('.search-filter, #filter-'+show).removeClass('hidden');
    $('#filter-'+hide).addClass('hidden');
}

function initStorePagination() {
	if ($('#store-pagination-button').length) {
		$('#store-pagination-button').click(loadNextStorePage);
	}
}

function loadNextStorePageHelper() {
	var html = $('#ajax-loader-helper > #ajax-container > .goods').first().html();
	var pager = $('#ajax-loader-helper > #ajax-container > #store-pagination-button').html();
	$('#ajax-loader-helper').html('');

	$('.goods').first().html($('.goods').first().html() + html);
	if (pager)
		$('#store-pagination-button').html(pager);
	else
		$('#store-pagination-button').remove();
		
	$('#store-pagination-button').click(loadNextStorePage);

	onStoreResize();
}
function loadNextStorePage() {
	var url = $('#store-pagination-button a').first().attr("href");

	$(this).unbind('click', loadNextStorePage);
	$('#store-pagination-button').html('<img src="/img/ajax-loader.gif">');
	$('#ajax-loader-helper').load(url + ' #ajax-container', loadNextStorePageHelper);
	
	return false;
}

function initOrderPagination() {
	if ($('#order-pagination-button').length) {
		$('#order-pagination-button').click(loadNextOrderPage);
	}
}

function loadNextOrderPageHelper() {
	var html = $('#ajax-loader-helper > #ajax-container .history tbody').html();
	var pager = $('#ajax-loader-helper > #ajax-container > #order-pagination-button').html();
	$('#ajax-loader-helper').html('');

	$('.history tbody').first().html($('.history tbody').first().html() + html);
	if (pager)
		$('#order-pagination-button').html(pager);
	else
		$('#order-pagination-button').remove();
		
	$('#order-pagination-button').click(loadNextOrderPage);

	initStoreCabinet();
	onResize();
}
function loadNextOrderPage() {
	var url = $('#order-pagination-button a').first().attr("href");

	$(this).unbind('click', loadNextOrderPage);
	$('#order-pagination-button').html('<img src="/img/ajax-loader.gif">');
	$('#ajax-loader-helper').load(url + ' #ajax-container', loadNextOrderPageHelper);

	return false;
}

function initStoreGoods(){
    $('.good .controlls .favorites a').click(function(e){
        var messages = {
            add: 'В избранное',
            remove: 'В избранном'
        }
        if( $(this).text() == messages.add ){
	    if ($(this).attr("rel") == "auth")
	    {
		overlayAuth();
		return false;
	    }

            $(this).text(messages.remove);
            $(this).parent().parent().parent().addClass('fav');
	    
	    $.ajax({
		cache: false,
		url: $(this).attr("href")
    	    });

	    $(this).attr('href', '/person/');

	    return false;
        }
	
	return true;
    });

    $('.product-details .favorites a').click(function(e){
        var messages = {
            add: 'В избранное',
            remove: 'В избранном'
        }
        if( $(this).text() == messages.add ){
	    if ($(this).attr("rel") == "auth")
	    {
		overlayAuth();
		return false;
	    }
	
            $(this).text(messages.remove);
	    
	    $.ajax({
		cache: false,
		url: $(this).attr("href")
    	    });

	    var param = $(this).attr("rel");
	    var ar = param.split("|");

	    $('.product-details a[rel="' + param + '"]').attr("rel", ar[0] + "|" + ar[1] + "|1|" +ar[3]);

	    $(this).attr('href', '/person/');

	    return false;
        }
	
	return true;
    });

    $('.good .controlls .cart a').click(function(e){
        var messages = {
            add: 'В корзину',
            remove: 'В корзине'
        }
        if( $(this).text() == messages.add ){
            $(this).text(messages.remove);
            $(this).parent().parent().parent().addClass('incart');
	    // дергаем через аякс сервер
	    $.ajax({
		cache: false,
		url: $(this).attr("href")
    	    });

	    $(this).attr('href', '/basket/');

	    if ($('#basket-count').length)
	        $('#basket-count').html(parseInt($('#basket-count').text().replace(/[^0-9]/g, '')) + 1);
	    else
		$('.basket-info').html('В <a href="/basket/">корзине</a>: <span id="basket-count">1</span>');

	    return false;
        }

        return true;
    });

    $('.favorite .price button').click(function(e){
        var messages = {
            add: 'В корзину',
            remove: 'В корзине'
        }

        if( $(this).text() == messages.add ){
            $(this).html('<img src="/img/ico-add2cart.png" alt="" width="12" height="16">' + messages.remove);
	    
	    // дергаем через аякс сервер
	    $.post($(this).parent().attr("action"), $(this).parent().serialize());

	    if ($('#basket-count').length)
	        $('#basket-count').html(parseInt($('#basket-count').text().replace(/[^0-9]/g, '')) + 1);
	    else
		$('.basket-info').html('В <a href="/basket/">корзине</a>: <span id="basket-count">1</span>');
        }
        else
	{
	    window.location.href = "/basket/";
	}

        return false;
    });

}

