$(document).ready(function(){

	$('#all-functions').bind('click', function() {
		var checkedFlag = $('#all-functions').attr('checked') || false;
		$('#all-functions').parent().parent().find('input:checkbox').attr('checked', checkedFlag);
	});

    /*catalog*/
    $('#catalog-filters > ul > li > fieldset.with-summary-but > p > label').bind('click', function() {
        catalogFiltersCheckboxSwitcher( this );
    } );
    $('#catalog-filters > ul > li > fieldset.with-text-fields > p:first-child > label').bind('click', function() {
        catalogFiltersTextSwitcher( this );
    } );

    $('#content p span.info-wrapper').click(function() {
		$('#content p .info-holder').hide();
		$('#content p .smart-icon-close').remove();
        popUpInfoShow($(this).parent().find('.info-holder'), 'left', 'top');
    });

    $('#extraFunction p span.info-wrapper').click(function() {
		var colAlign = $(this).parent().attr('class');
		colAlign = ( colAlign == 'in-left' ) ? 'left' : 'right';
		$('#extraFunction p .info-holder').hide();
		$('#extraFunction p .smart-icon-close').remove();
        popUpInfoShow($(this).parent().find('.info-holder'), colAlign , 'bottom' );
    });

	$('#cart-form p span.info-wrapper').click(function() {
		$('#cart-form p .info-holder').hide();
		$('#cart-form p .smart-icon-close').remove();
		popUpInfoShow($(this).parent().find('.info-holder'), 'right' , 'top' );
	});

	$('p span.info-holder .smart-icon-close').live('click', function() {
		$(this).parent().hide();
		$(this).remove();
	});

    $('#catalog-filters > ul > li > fieldset > p > input:text').bind('keyup', function() {
        this.value = this.value.replace(/[^0-9\.,]/g, '');
    }).bind('blur change', function() {
        if ($.trim(this.value) != '') {
            this.value = parseInt(this.value);
        }
    });

    $('#catalog-type-bar a').bind('click', function() { 
        $('#catalog-type-bar > a').removeClass('cur');
        $(this).addClass('cur');
        $('#search-form').attr( 'action','/catalog/search/type/'+$(this).attr('id') );
        $('#search-form').submit();
        return false;
    });
    
    $('#pages-navigation ul li a').live('click', function() {
        $('#page-number').val( $(this).text() );
        $('#search-form').submit();
        return false;
    });
    
    $('#pages-navigation p span a').live('click', function() {
        $('#page-number').val( $(this).attr('target') );
        $('#search-form').submit();
        return false;
    });

    $('.but-container a, .but-container3 a').bind( 'click', function(){
		$('input[name=fast-filter]').val('');
        catalogFormSubmit(1, $('#order').val() );
        location.href = '#catalog-anchor';
        $('#catalog-menu div.cur a').removeClass('cur');
        $('#catalog-filters h2').remove();
        return false;
    } );

    $('#catalog-order-by-bar a').click( function(){
        catalogFormSubmit(1,""+$(this).attr('id')+"");
        return false;
    } );
    
    $('#btn-show-filter').click( function(){
        toggleFilterBar();
    } );

    /*cart*/
    $('#cart > table > tbody > tr > td.address > span, #cart > table > tbody > tr > td.address > i').bind('click', function() {
        editAddressInTheCart( this )
    } );

    /*good*/
    $('#good-gallery').goodGallery();
    $('div.info p.option input').bind('change',function(){
        changeGoodPrice(this);
    });
    
    /*gallery*/
    $("#gallery-preview-carousel img").animate({
        opacity: .5
    },1);
    $("#gallery-preview-carousel ul li a img").eq(4).addClass('cur').animate({
        opacity: 1
    },1);
	
	$('.hidden-link').css('display','none');

	// buyBar
	if ( $('#goods-info div.buyBar').size() > 0 ) {
		var buyBar_hash = window.location.hash;
		if ( buyBar_hash == '#buyBar' ) {
			showBuyBar();
		}
	}

	$('#goodsEditform div.edit-form-bonus span.button-description').toggle(function() {
		$(this).parent().parent().find('.mceEditor').show();
	}, function() {
		$(this).parent().parent().find('.mceEditor').hide();
	});

});

/*main page*/
function showCatalogSubMenu ( oThis ) {
    $( oThis ).parent().parent().find('div:visible').slideUp(300);
    
    if ( $( oThis ).hasClass('cur') ) {
        $( oThis ).removeClass('cur');
    } else {
        $( oThis ).parent().parent().find('a').removeClass('cur');
        $( oThis ).next().slideDown(300);
        $( oThis ).addClass('cur');
    }
}

/*catalog*/
function catalogFiltersCheckboxSwitcher ( oThis ) {

	if ( $(oThis).attr('for') == 'all-functions' ) {
		return;
	}

    if ( $(oThis).parent().is(':first-child') ) { 
        if ( $(oThis).parent().children('input:checkbox').attr('checked') == true ) {
            $(oThis).parent().parent().find('input:checkbox:not(:first)').attr('checked','').removeAttr('disabled');
        } else {
            $(oThis).parent().parent().find('input:checkbox:not(:first)').attr('checked',true).attr('disabled','disabled');
        }
    } else { 
        if ( $(oThis).prev().attr('disabled') == true && $(oThis).parent().parent().find('p:first-child > input:checkbox').attr('checked') ) {
            $(oThis).parent().parent().find('p > input:checkbox').attr('checked','').removeAttr('disabled');
        }

        if ( $(oThis).parent().parent().find('input:checkbox:checked').length == $(oThis).parent().parent().find('input:checkbox').length - 2 && $(oThis).prev().attr('checked') == false ) {
            $(oThis).parent().parent().find('p:first-child > input:checkbox').attr('checked','true');
            $(oThis).parent().parent().find('input:checkbox:not(:first)').attr('checked',true).attr('disabled','disabled');
        }
    }
}

function catalogFiltersTextSwitcher ( oThis ) {
    if ( $(oThis).prev().attr('checked') == true ) {
        $(oThis).parent().parent().find('input:not(:first)').removeAttr('disabled');	
    } else {
        $(oThis).parent().parent().find('input:not(:first):lt(4)').attr('disabled','disabled');
    }
}

function popUpInfoShow ( holder, gDirection , vDirection ) {
	gDirection = gDirection || 'left';
	vDirection = vDirection || 'top';

	// var bottomOffset = $(holder).height() * 1 + 1 * 10 ;
	var offset = { top: 0, left: 0, right: 0, bottom: 0 };

	// $( holder ).css('top', offset.top +'px');
	$(holder).css(gDirection, offset[gDirection] +'px').css(vDirection, offset[vDirection] +'px');
    $(holder).animate({
        opacity: "show"
    }, 150);
	$(holder).append('<span title="Закрыть" class="smart-icon-close"></span>');
}

/*function popUpInfoHide ( oThis ) {
    $( oThis ).find("em").animate({
        opacity: "hide",
        top: "-29"
    }, "fast");
}*/


function showExtraOptions (speed) { 
	var speed = speed || 500;
    $('#catalog-filters > ul.extra-options > li > fieldset').slideDown(speed);
    $('#catalog-filters > ul.extra-options > li > div').css( 'border-bottom', '1px solid #dadada' );
}

function catalogFormSubmit( pageNumber, order ) {
	$('#catalog-order-by-bar > a').removeClass('cur');
    if (order) {
        $('#'+order).addClass('cur');
	}
    if ( pageNumber ) {
        $('#page-number').val( pageNumber );
    }
    if ( order ) {
        $('#order').val( order );
    }
    $('#search-form').submit();
    return false;
}

function toggleFilterBar() {
    $('#filtersWrapper').slideToggle();
}

/*goods*/
function changeInfoCategory( oThis, num ) {
    $('#category a').removeClass('cur');
    $( oThis ).addClass('cur');
    
    $('div.info').css('display','none');
    $('div.info').eq( num ).css('display','block');	
}

function showBuyBar() {
    $('#category a').removeClass('cur');
    
    $('#goods-info div.info').css('display','none');
    $('#goods-info div.info').eq(4).css('display','block');
    location.href = '#buyBar'
}

function changeGoodPrice( oThis ) {
    oPrice = $('div.info p.price em.price');
    oOptionPrice = $( oThis ).prev().children('em');
    
    if ( $( oThis ).attr('checked') == true ) {
        oPrice.text( parseInt(oPrice.text()) + parseInt(oOptionPrice.text()) );
    } else {
        oPrice.text( parseInt(oPrice.text()) - parseInt(oOptionPrice.text()) );
    }
}

$.fn.goodGallery = function() {
    var interval = 10000;
    var cur = -1;
    var refsWrap = null;
    var refs = null;
    var imgs = null;
    
    function btnClick() {
        refs.bind( 'click', function() {
            clearTimeout(timer);

            if ( !$(this).hasClass('cur') ) {
                if( cur > $(this).text()-1 ) {
                    imgs.not(':eq('+cur+')').not(':eq('+($(this).text()-1)+')').fadeOut(1);
                    $(imgs.get($(this).text()-1)).fadeIn(600);
                    $(imgs.get(cur)).fadeOut(600);
                } else {
                    imgs.not(':eq('+cur+')').fadeOut(1);
                    $(imgs.get($(this).text()-1)).fadeIn(600);
                }
		
                cur = $(this).text()-1;
                refs.removeClass();
                $(this).addClass('cur');
            }
            return false;
        });
    }
    
    function slideShow() { 
        cur++;
        refs.removeClass();

        if ( cur >= refs.length ) {
            cur = 0;
            imgs.not(':first').not(':last').fadeOut(1);
            imgs.last().fadeOut(600);
        } else {
            $(imgs.get(cur)).fadeIn(600);
        }

        $(refs.get(cur)).addClass('cur');

        timer = setTimeout(function() {
            slideShow();
        }, interval);
    }
    
    function init() {
        refsWrap = $('#good-pics-btns-bar');
        refs = $('#good-pics-btns-bar a');
        imgs = $('#good-full-view div img');

        if ( refs.length > 1 ) {
            btnClick();
            slideShow();
        } else {
            $(refsWrap).css('display','none');
            $(imgs).fadeIn(600);
        }
    }
    
    init();
};

function addToCart() {
    if ( !$('#customer-name').val() ) {
        alert('Введите, пожалуйста, ваше имя.');
        return false;
    }
	
    if ( !$('#customer-phone').val() ) {
        alert('Введите, пожалуйста, ваш телефон.');
        return false;
    }
	
    if ( !$('#customer-dig').val() ) {
        alert('Введите, пожалуйста, результат арифметической операции в поле "Защита от спама".');
        return false;
    }
	
    $('#cart-form').submit();

    return false;
}

/*cart*/
function editAddressInTheCart( oThis ) {
    if ( !$(oThis).parent().children('i').hasClass('active') ) {
        $( oThis ).parent().children('i').addClass('active');
        var textarea = $("<textarea rows='2'>"+($( oThis ).parent().children('span').text() == 'Введите, пожалуста, адрес доставки' ? '': $( oThis ).parent().children('span').text())+"</textarea>").appendTo( $( oThis ).parent() ).focus().get(0);
        $(textarea).bind('blur', function() {
            closeAdressTextarea( this )
        } );
        $( oThis ).parent().children('span').replaceWith('');
    }
}

function closeAdressTextarea ( oThis ) { 
    $( oThis ).parent().children('i').removeClass('active').unbind('click',false);
    var span = $("<span>"+($( oThis ).parent().children('textarea').val() == '' ? 'Введите, пожалуста, адрес доставки' : $( oThis ).parent().children('textarea').val())+"</span>").appendTo( $( oThis ).parent() ).get(0);
    $(span).bind('click', function() {
        editAddressInTheCart( this )
    } );
    $( oThis ).parent().children('textarea').replaceWith('');
    
    setTimeout("$('#cart td.address > i').bind('click', function() { editAddressInTheCart( this ) } )",500);
    
    var url = $('#cart td.address').attr('link');
    var address = $(span).text();
    
    $.post(url, {
        address: address
    });
}
