function number_format( number, decimals, dec_point, thousands_sep ) {    // Format a number with grouped thousands
    var i, j, kw, kd, km;

    // input sanitation & defaults
    if( isNaN(decimals = Math.abs(decimals)) ){
        decimals = 2;
    }
    if( dec_point == undefined ){
        dec_point = ",";
    }
    if( thousands_sep == undefined ){
        thousands_sep = ".";
    }

    i = parseInt(number = (+number || 0).toFixed(decimals)) + "";

    if( (j = i.length) > 3 ){
        j = j % 3;
    } else{
        j = 0;
    }

    km = (j ? i.substr(0, j) + thousands_sep : "");
    kw = i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + thousands_sep);
    //kd = (decimals ? dec_point + Math.abs(number - i).toFixed(decimals).slice(2) : "");
    kd = (decimals ? dec_point + Math.abs(number - i).toFixed(decimals).replace(/-/, 0).slice(2) : "");


    return km + kw + kd;
}

$(document).ready(function(){
    $("span.logo").click(function(){window.location='/';})


/***** Carousel *****/
    var carpics=$('#carousel').wrapInner('<div id="carpics" class="hidden"></div>').children('div');
    var carshow=carpics.before('<div id="show"><a href=""></a><span></span></div>').prev();
    var carimgs=carpics.children();
    var carindex=0;
    carimgs.each(function(ind,elem){
        carshow.children('span').append('<b>'+(ind+1)+'</b>');
    }).parent().prev().children('span').children('b').click(function(){
        carindex=$(this).index();
        $(this).addClass('active').siblings().removeClass('active');
        var ind=$(this).index();
        carshow.children('a').attr('href',carimgs.eq(ind).attr('href'))
            .queue(function(){
                if($(this).attr('href')=='#'||$(this).attr('href')=='')
                    $(this).css('cursor','default');
                else
                    $(this).css('cursor','pointer');
                $(this).dequeue();
            })
            .click(function(){if($(this).attr('href')=='#'||$(this).attr('href')==''){return false;}})
            .append('<img style="display:none" src="'+carimgs.eq(ind).children().attr('src')+'" alt="" />').children().last().delay('400').fadeIn(400)
            .siblings('img').fadeOut(400).queue(function(){$(this).remove();$(this).dequeue();});
    }).eq(carindex).click();
    var bs=carshow.find('b');
    window.setInterval(function(){
        carindex++;
        if(carindex>bs.length-1)
            carindex=0;
        bs.eq(carindex).click();
    },8000);


/***** Disable text selection *****/
    $('.ns').attr('unselectable','on').css('MozUserSelect','none').bind('selectstart',function(){return false;});


/***** Sort *****/
    var sort=$('#sort');
    var seasons=sort.find('p.season a');
    var choise=sort.find('ul.choise li');
    seasons.click(function(){
        $(this).addClass('active').siblings().removeClass('active');
        return false;
    });
    choise.click(function(){
        if($(this).hasClass('active')){
            $(this).removeClass('active').children('input');
        }else{
            $(this).addClass('active').children('input');
        }
        return false;
    });
    $('#reset').click(function(){
        seasons.eq(0).addClass('active').siblings().removeClass('active');
        choise.eq(0).addClass('active').children('input');
        choise.not(':eq(0)').removeClass('active').children('input');
    });


/***** Basket *****/
    var container=$('#basket').children('div.catalog'),
        minus=container.find('a.minus'),
        plus=container.find('a.plus');
    minus.click(function(){
        var text=parseInt($(this).next().text(),10);
        if(text!=0){$(this).next().text(text-1);}
        if(text-1<1){$(this).addClass('op');}
        if (text==1 || !$(this).hasClass('op')) checkout_action('minus',$(this).parent().attr('id').substring(5),$(this).parent().attr('rel'));
        
        return false;
    });
    plus.click(function(){
        var text=parseInt($(this).prev().text(),10);
        $(this).prev().text(text+1).prev().removeClass('op');
        checkout_action('plus',$(this).parent().attr('id').substring(5),$(this).parent().attr('rel'));
        return false;
    });


/***** Gallery *****/
    var gall=$('#gall');
    if(gall.length){
        var rel=gall.attr('rel');
        function contentComplete(container, callback){
        	var images = $('img', container);imageNum = images.size();checkNum = 1;
        	images.error(function(){checkNum++;if(checkNum==imageNum)callback();}).load(function(){checkNum++;if(checkNum==imageNum)callback();});
        }
        var mp=gall.parent().before('<div id="mp"><img class="hidden" alt="" src="" href=""><span class="dyndesc"></span></div>').prev();
/***** Thumbs HoverSliding *****/
        var ta=gall.children('ul').get(0),
            pE=false,
            nE=false,
            nextslide=$('#nextslide'),
            prevslide=$('#prevslide'),
            thW;
        contentComplete($('#thumbs'),function(){thW=$('#thumbs').width();if(thW>rel){nextslide.removeClass('disabled');nE=true;}});

    	function cncl(){clearTimeout(interval);}
        function mv(direction,leftval){
            ta.style.left=ta.style.left||'0px';
            var left=ta.style.left.replace('px','');
            if(direction==1){
                if(!pE){prevslide.removeClass('disabled');pE=true;}
                if(leftval-Math.abs(left)<=3){
                    if(nE){nextslide.addClass('disabled');nE=false;}
            	    cncl(); ta.style.left='-'+leftval+'px';
                }else{ta.style.left=left-3+'px'}
                if(ta.style.left.replace('px','')<rel-thW){
                    if(nE){nextslide.addClass('disabled');nE=false;}
                    ta.style.left='-'+(thW-rel)+'px';
                }
            }else{
                if(!nE){nextslide.removeClass('disabled');nE=true;}
                if(Math.abs(left)-leftval<=3){
                    if(pE){prevslide.addClass('disabled');pE=false;}
                	cncl(); ta.style.left=leftval+'px';
                }else{ta.style.left=parseInt(left)+3+'px'}
            }
        }
        nextslide.bind({'mouseenter':function(){interval=setInterval(function(){mv(1,$(ta).width()-$(ta).parent().width())},3);},'mouseleave':function(){clearTimeout(interval);}});
        prevslide.bind({'mouseenter':function(){interval=setInterval(function(){mv(-1,0)},3);},'mouseleave':function(){clearTimeout(interval);}});
        function nextPhoto(url,alt,href){
            $('#mp').find('span').fadeOut(200);
            $('#mp').find('img').fadeOut(200,function(){
                var temp=new Image(),
                    $this=$(this);
                temp.onload=function(){
                    $('#mp').find('span').text(alt);
                    $this.attr('src', url).attr('href',href);
                    $('#mp').animate({'height':temp.height+30},300);
                    $this.add('#mp span').delay(300).fadeIn(200)
                }
                temp.src=url;
            });
        }
        var gallLinks=$(ta).children().last().addClass('last').end().children().click(function(){
            $(this).parent().addClass('isvis').siblings().removeClass('isvis');
            if($(this).attr('rel'))
                document.location.hash='#'+$(this).attr('rel');
            nextPhoto($(this).attr('href'),$(this).children().attr('alt'),$(this).children().attr('rel'));
            return false;
        });
        if(document.location.hash){
            gallLinks.filter('[rel="'+document.location.hash.substring(1)+'"]').click();
        }else{
            gallLinks.eq(0).click();
        } 
    }

/***** Filter *****/  
    
    $("form#sort div.bluebg ul.none.choise li").click(function() {
        if ($(this).find('input').val()==0) {
            $("form#sort div.bluebg ul.none.choise li input:gt(0)").parent().removeClass('active');
        } else {
            $("form#sort div.bluebg ul.none.choise li input:first").parent().removeClass('active');            
        }            
    });
    
    $("form#sort div.bluebg .nice:not(.checkout)").click(function(){
        //Сезон
        var season = $("form#sort div.bluebg p.season a.active").attr('id');
        var type_s = new Array();
        var checks = new Array();
        
        $("form#sort div.bluebg ul.none.choise li.active input").each(function() {
            type_s[type_s.length] = $(this).val();
        }); 
        
        $("form#sort div.bluebg p.checks:not(.special) input:checked").each(function() {
            checks[checks.length]  = $(this).val();            
        });         
        
        
        
        var url_go = (season?season.substring(7):0)+'-'+(type_s.length>0?type_s.join(','):0)+'-'+(checks.length!=0?checks.join(','):0)+'-'+($("form#sort div.bluebg input#size_slider").val()?$("form#sort div.bluebg input#size_slider").val():0)+'-'+($("#sale_c").is(":checked")?1:0)+'-'+($("#new_c").is(":checked")?1:0);
        
        window.location=$("form#sort").attr('action')+'/'+url_go;
    });
    
    $("form#sort div.bluebg .nice.checkout").click(function(){
        $("input[name=user_name],input[name=user_phone],input[name=user_adress]").css({'background':'#FFF','color':'#000'});
        
        var error=0;
        
        if ($("input[name=user_name]").val().length<3) {$("input[name=user_name]").css({'background':'#E39395','color':'#FFF'}); error++;}
        if ($("input[name=user_phone]").val().length<3) {$("input[name=user_phone]").css({'background':'#E39395','color':'#FFF'}); error++;}
        if ($("input[name=user_adress]").val().length<3) {$("input[name=user_adress]").css({'background':'#E39395','color':'#FFF'}); error++;}
        
        if (error==0) {
            $.post('/body/includes/library/checkout.php', $("form#sort").serialize(), function() {
                
                $(".auxiliary span.basket_i").removeClass('green');
                $(".auxiliary span:last").html('Корзина пуста <a href="/help">почему?</a>');
                $("div.catalog.pie").html('<h2 class="pie"><span class="basket_i png"> </span>Избранные товары в корзине</h2><b>Заказ успешно отправлен.</b>');
                $("div.checkout_f,#reset").remove();                
            });    
        }
        
        return false;
    });

/***** Favorites ******/
    $(".descwrapper, li[class^=column-]").live('mouseleave', function() {
        $(".select_size").hide();
    });
    
    $("a[id^=favorites-]").live('click', function(){
        var athis=$(this);
        var ID=$(this).attr('id').substring(10);
        $(".select_size").remove();
        
        $.getJSON('/body/includes/library/favorites.php?id='+ID,function(data) {
            //Размеры              
            if (data.result==2){ 
                athis.after('<div class="select_size">Выберите размер:<br />'+data.size+'</div>');
            }
            else if (data.result==1) {
               athis.css({'color':'#ff0000'}).html('<span class="heart red"> </span>выбрано');
            }
            else athis.css({'color':'#0072BC'}).html('<span class="heart"> </span>выбрать');
            
            //верх
            if (data.basket==0) {
                $(".auxiliary span.basket_i").removeClass('green');
                $(".auxiliary span:last").html('Корзина пуста <a href="/help">почему?</a>');
            }
            else {
                $(".auxiliary span.basket_i").addClass('green');
                $(".auxiliary span:last").html(data.basket+' товаров выбрано. <a href="/checkout">Оформить заказ?</a>');                
            }
        });             
        return false;
    });
    
    $("a[id^=remove-]").live('click', function(){
        var athis=$(this);
        var ID=$(this).attr('id').substring(7);
        
        athis.parent().before('<span class="remove"></span>');
        checkout_action('remove',ID, athis.attr('rel'));
        
        return false;    
    });
    
    $(".faq_list li span").live('click', function(){
        $(this).parent().find('div').slideToggle('fast');
    });            
    
    //Выбераем размер
    $(".select_size b").live('click', function() {
        var ID=$(this).parent().prev().attr('id').substring(10);
        var athis=$(this).parent().prev();
        
        if ($(this).css('color')=='rgb(255, 0, 0)') $(this).css('color','#006699');
        else $(this).css('color','#ff0000');
        
        $.getJSON('/body/includes/library/favorites.php?id='+ID+'&size='+$(this).text(),function(data) {
            if (data.size_s==0) athis.css({'color':'#0072BC'}).html('<span class="heart"> </span>выбрать'); 
            else athis.css({'color':'#ff0000'}).html('<span class="heart red"> </span>выбрано с размером: '+data.size_s);
            
            
            //верх
            if (data.basket==0) {
                $(".auxiliary span.basket_i").removeClass('green');
                $(".auxiliary span:last").html('Корзина пуста <a href="/help">почему?</a>');
            }
            else {
                $(".auxiliary span.basket_i").addClass('green');
                $(".auxiliary span:last").html(data.basket+' товаров выбрано. <a href="/checkout">Оформить заказ?</a>');                
            }
        });
        
        return false;
    });
    
    if ($("#other_good").length!=0) {
        $.get("/body/includes/library/other.php", function(data) {
            $("#other_good").html(data);
        }); 
    }           
});

function checkout_action(action,id,rel) {
    $.getJSON('/body/includes/library/favorites.php?id='+id+'&action='+action+(rel?'&rel='+rel:''),function(data) {
        $("div.bluebg span.total").html(number_format(data.price,0, '', ' ')+' <span class="small">руб</span>');
        if (data.price==0) {
            $("div.checkout_f").hide();
            $("#reset").hide();
        }
        else {
            $("div.checkout_f").show();
            $("#reset").show();
        } 
        
        //верх
        if (data.basket==0) {
            $(".auxiliary span.basket_i").removeClass('green');
            $(".auxiliary span:last").html('Корзина пуста <a href="/help">почему?</a>');
            $("div.catalog.pie").html('<h2 class="pie"><span class="basket_i png"> </span>Избранные товары в корзине</h2>На данный момент корзина пуста, но это легко исправить :)<br><br><br><div align="center"><img src="/images/cry.png" border="0" width="108" height="156"></div>');
        }
        else {
            $(".auxiliary span.basket_i").addClass('green');
            $(".auxiliary span:last").html(data.basket+' товаров выбрано. <a href="/checkout">Оформить заказ?</a>');                
        }
                
    });    
}
