// UI
$(document).ready(function() {
    // inactive url
	$('a.inactive').livequery('click', function() {
		return false;
	});

    // colorbox
    $(".colorbox").colorbox({
        maxWidth: '100%'
    });

    // Placeholder
    $('input[placeholder]').livequery(function() {
        $(this).placeholder();
    });
    $('input').livequery('focusin', function() {
        $(this).addClass('focusin');
    });
    $('input').livequery('focusout', function() {
        $(this).removeClass('focusin');
    });

    $("form.validate").livequery(function() {
        $(this).bValidator({
            errorMessageAttr: 'invalid',
            validateActionsAttr: 'validate',
            position: {x: 'right', y: 'top'},
            singleError: true,
            onBeforeValidate: function(element, action) {
                if(!!("placeholder" in document.createElement( "input" ))){ return true; }

                if(element.hasClass('focusin')){
                    element.attr('focusin', 'focusin');
                }
                element.trigger('focus');
            },
            onAfterValidate: function(element, action) {
                if(!!("placeholder" in document.createElement( "input" ))){ return true; }

                if(element.attr('focusin') == 'focusin'){
                    element.trigger('focus');
                }else{
                    element.trigger('blur');
                }
                element.attr('focusin', '');
            }
        });
    });

    $('label[for]:not([generated])').livequery('mouseenter mouseleave', function(e){
        if(e.type == 'mouseenter'){
            $('[id="'+$(this).attr('for')+'"]').css('background', '#FDFDE2');
        }else{
            $('[id="'+$(this).attr('for')+'"]').css('background', '');
        }
    });
});


// Monel Gourmet JavaScript Document

/* Menu behavior */
$(document).ready(function() {
	$('a.expand').livequery('click', function() {
        if($(this).hasClass('inactive')) {
        	return false;
        }

        $(this).removeClass('expand').addClass('expanded').parent('li').find('ul').addClass('expanded');
        return false;
    });
    $('a.expanded').livequery('click', function() {
    	if($(this).hasClass('inactive')) {
        	return false;
        }

        $(this).removeClass('expanded').addClass('expand').parent('li').find('ul').removeClass('expanded');
        return false;
    });

    $('h3.contract').livequery('click', function() {
        $(this).removeClass('contract').addClass('contracted').next('div').addClass('contracted');
        return false;
    });
    $('h3.contracted').livequery('click', function() {
        $(this).removeClass('contracted').addClass('contract').next('div').removeClass('contracted');
        return false;
    });

    /* reset the form properly */
    $('input[type=reset]').livequery('click', function() {
        $(':radio, :checkbox', $(this).parents('form')).each(function(i, e) {
            $(e).removeAttr('checked');
        });

        $(this).parents('form').submit();
    })

    /* auto submit after choosing category */
    $('form.refine-results :radio').livequery('change', function() {
        $(this).parents('form').submit();
    });

    /* remove filter */
    $('a.remove-filter').livequery('click', function() {
        $(':radio, :checkbox', $(this).parents('h4').next('div')).each(function(i, e) {
            $(e).removeAttr('checked');
        });
        $('input[type="text"]', $(this).parents('h4').next('div')).attr('value', '');

        if( $(this).hasClass('pricerange') ) {
        	var lower = parseInt( $('div.pricerange').attr('default_pricerange_lower') );
        	var upper = parseInt( $('div.pricerange').attr('default_pricerange_upper') );
        	$('input[name="pricerange_lower"]').attr( 'value', '' );
        	$('input[name="pricerange_upper"]').attr( 'value', '' );
        	$('span#pricerange').html("$" + lower + " - $" + upper);
        	$( "#slider-range" ).slider( 'option', 'values', [ lower, upper ] );
        }

        $(this).parents('form').submit();

        return false;
    });

    /* Price Range Slider */

	$( "#slider-range" ).slider({
		range: true,
		step: 1,
		min: parseInt( $( "#slider-range" ).attr('min') ),
		max: parseInt( $( "#slider-range" ).attr('max') ) + 1,
		values: [ parseInt( $( 'input[name="pricerange_lower"]' ).val() ), parseInt( $( 'input[name="pricerange_upper"]' ).val() ) ],
		slide: function( event, ui ) {
			$( '#pricerange' ).html( "$" + ui.values[ 0 ] + " - $" + ui.values[ 1 ] );
			$( 'input[name="pricerange_lower"]' ).val( ui.values[ 0 ] );
			$( 'input[name="pricerange_upper"]' ).val( ui.values[ 1 ] );
			if( $('h4.pricerange a.remove-filter').hasClass('hidden') ){
				$('h4.pricerange a.remove-filter').removeClass('hidden')
			}
		}
	});
    $( "pricerange" ).html( "$" + $( "#slider-range" ).slider( "values", 0 ) + " - $" + $( "#slider-range" ).slider( "values", 1 ) );

    /* ajaxform catalog */
    $('form.refine-results.ajax').ajaxForm({
    	//data: $.deparam.fragment($('form[name="search"]').serialize()),
    	beforeSubmit: function(arr, $form, options) {
    		$('.loader').removeClass('hidden');
    	},
    	success: function(data) {
    		$('.loader').addClass('hidden');
    		$('#ajax-content-wrapper').replaceWith($('#ajax-content-wrapper', data));
    		$('form.refine-results.ajax').trigger('update-options');
    	},
    	error: function(jqXHR, textStatus, errorThrown) {
    		$('.loader').addClass('hidden');
    		$('<div/>').addClass('message').addClass('error').text('An error occured while obtaining the result. Please try with different filter.').insertAfter('#cat-header');
    	},
    	contentType: 'html'
    }).livequery('update-options', function(){
    	if( !$('div.update-options.hidden').length ) {
    		return false;
    	}
    	var form = $(this);

    	// UPDATE OPTIONS
		$('div.divisions li').addClass('not-available').find('label').addClass('not-available');
		$('div.update-options.hidden input[name="divisions"]').each(function(i, e) {
			$('form input[name="divisions"][value="'+$(e).val()+'"]').parents('label').removeClass('not-available').parents('li').removeClass('not-available');
		});
		if( $('form div.divisions input:checked').length ){
			$('form div.divisions').prev('h4').find('a.remove-filter').removeClass('hidden');
		} else if( !$('form div.divisions').prev('h4').find('a.remove-filter').hasClass('hidden') ) {
			$('form div.divisions').prev('h4').find('a.remove-filter').addClass('hidden');
		}

		if( $('div.update-options.hidden input[name="products_new"]').length ){
			$('form input[name="new"]').parent().removeClass('not-available');
		} else {
			$('form input[name="new"]').parent().addClass('not-available');
		}
		if( $('div.update-options.hidden input[name="new"]').length ){
			$('form input[name="new"]').attr('checked', 'checked');
		}

		var groups = ["brands", "koshers", "miscs"];
		for ( i in groups ) {
			var group = groups[i];
			$('div.'+group+' label.n-a').remove();
			$('form input[name="'+group+'"]:not(:checked)').parent().addClass('not-available');
			$('div.update-options.hidden input[name="'+group+'"]').each(function(i, e) {
				$('form input[name="'+group+'"][value="'+$(e).val()+'"]').parent().removeClass('not-available');
			});
			if( !$('form div.'+group+' label:not(.not-available)').length ){
				$('<label/>').addClass('n-a').html('N/A').appendTo('form div.'+group+'');
			}
			if( $('form div.'+group+' input:checked').length || $('form div.'+group+' input[type="text"]').val() ){
				$('form div.'+group+'').prev('h4').find('a.remove-filter').removeClass('hidden');
			} else if( !$('form div.'+group+'').prev('h4').find('a.remove-filter').hasClass('hidden') ) {
				$('form div.'+group+'').prev('h4').find('a.remove-filter').addClass('hidden');
			}
		}

		var pricerange_lower = parseInt( $('div.update-options.hidden input[name="pricerange_lower"]').val() );
		var pricerange_upper = parseInt( $('div.update-options.hidden input[name="pricerange_upper"]').val() );
		if( ( pricerange_lower || ( pricerange_lower == 0 ) ) && pricerange_upper ) {
			$( "#slider-range" ).slider( 'option', 'values', [ pricerange_lower, pricerange_upper ] );
			$( 'span#pricerange' ).html( "$" + pricerange_lower + " - $" + pricerange_upper );
		}

		if( $('input[name="pricerange_lower"], input[name="pricerange_upper"]').val() ) {
			$('h4.pricerange a.remove-filter').removeClass('hidden');
		} else {
			$('h4.pricerange a.remove-filter').addClass('hidden');
		}

    }).trigger('update-options');

    /* ajaxform catalog pages */
    $('#catalog .pagination a.page').livequery('click', function() {
    	$('.loader').removeClass('hidden');

    	//filters = $.deparam.fragment($('form[name="search"]').serialize());
		page = $.query.load($(this).attr('href')).keys;
		//search = $.deparam.fragment($('form:eq(0)').serialize());
		//$.extend({}, search, page, filters)

		$('.loader').removeClass('hidden');

    	$('form.refine-results.ajax').ajaxSubmit({
    		data: { 'page' : page.page },
        	success: function(data) {
        		$('.loader').addClass('hidden');
        		$('#ajax-content-wrapper').html($('#ajax-content-wrapper', $(data)).html());
        	}
        });

    	/*$.ajax({
    		url: $(this).attr('href'),
    		//url: document.location.pathname,
    		//data: $.extend({}, page, filters),
    		success: function(data) {
    			$('.loader').addClass('hidden');
        		$('#ajax-content-wrapper').html($('#ajax-content-wrapper', $(data)).html());
    		}
    	});*/

    	return false;
    });
})

/* Lightbox */
function lightbox() {
    $("#user-link a.header-button").click(function() {
        $("#lightbox").fadeIn() ;
    });
    $("#lightbox .close").click(function() {
        $("#lightbox").fadeOut() ;
    })
}
