function initPage()
{
    assignMenuCallbacks();
    readyNewsLetterForm();
}

function readyNewsLetterForm(){
    var newsletter_form = $('#newsletter-form');
    var newsletter_form_input = $('#newsletter-form input[type=text]');
    var newsletter_form_submit = $('#newsletter-form input[type=button]');
    var newsletter_warning = newsletter_form.children('.warning');
    var newsletter_form_initial_val = newsletter_form_input.val();
    newsletter_form_input.focus(function(e){
	    if (newsletter_form_input.val() == newsletter_form_initial_val) {
		newsletter_form_input.val('');
	    }
	});
    newsletter_form_input.blur(function(e){
	    if (!newsletter_form_input.val()) {
		newsletter_form_input.val(newsletter_form_initial_val);
	    }
	});
}

$(document).ready(function() {

    $('#shinybar > ul > li').hover(function(){
	$(this).children('ul').slideDown(100, function() {});
    },function(){
	$(this).children('ul').slideUp(100, function() {});
    });

    // Toggle the cart preview widget
    $("a.cart").click(function(ev) {
        ev.preventDefault();
	    $("cartPreview").toggle();
    });
});

function showNewsLetterResult(message) {
    var container = $("#nl-results");
    container.html(message);
    container.fadeIn('slow');
}
function hideNewsLetterResult() {
    var container = $("#nl-results");
    container.fadeOut('slow')
	}

function newsletter_form_checker(e, form, input, warning) {
    if (!validate_email(form, input.val())) {
	e.preventDefault();
	if (warning.css('display') == 'none') {
	    warning.fadeIn('fast');
	}
	else {
	    warning.fadeOut('fast', function(){
		    $(this).fadeIn('fast');
		});
	};
	return false;
    }
    return true;
}

function validate_email(form,email) {
    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
    var address = email;
    if(reg.test(address) == false) {
	return false;
    } else {
	return true;
    }
}

function assignMenuCallbacks() {
    $('#subheader-root-cats>li').each(function () { 
	    $(this).hover(function () {
		    $(this).addClass('selected');
		    var t = $(this);
		    if (!t.data('sm')) {
			t.data('sm', $('div.sub-menu:first', t));
		    }
		    t.data('sm').show();
		}, function() {
		    $(this).removeClass('selected');
		    var t = $(this);
		    if (t.data('sm')) {
			t.data('sm').hide();
		    }
		});
	});
    assignMenuCallbacks = function () {}
}

// Based Upon DjangoSnippets: http://www.djangosnippets.org/snippets/1488/
function slugify(elem) {
    var vals = [];
    jQuery(elem).each(function (i) {
	    vals[i] = (jQuery(this).val());
	});
    return vals.join(' ').toLowerCase().replace(/\s+/g,'-').replace(/[^a-z0-9\-]/g,'');    
}

if (window.addEventListener)
    window.addEventListener("load", initPage, false);
else if (window.attachEvent)
    window.attachEvent("onload", initPage);

$(function () {
	$('#404search').click(function(){
		if ($('#404search').val().slice(0,2) == '- ' && $('#404search').val().slice(-2) == ' -') {
		    $('#404search').val('');
		}
	    });
    });

function showheader(headerid) {
    if ($('#header-slider').is(':visible')) { 
	if ($('#header-slider-inner').html() == $('#header-'+headerid).html()) {
	    $('#header-slider').slideUp();
	} else {
	    $('#header-slider').slideUp('', function() {
		    $('#header-slider-inner').html($('#header-'+headerid).html());
		    $('#header-slider').slideDown();
		});
	}
    } else {
	$('#header-slider-inner').html($('#header-'+headerid).html());
	$('#header-slider').slideDown();
    }
    return false;
}

function updateCart(data){
  /** Update Cart preview widget **/
    if(!data['items']){
	addItemToCartPreview(data['img'], data['quantity'], data['name'], data['price']);
    } else {
	$('#cartPreview table tbody').html('');
	for ( var i=0; i<data['items'].length; i++){
            addItemToCartPreview(data['items'][i]['img'], data['items'][i]['quantity'],
				 data['items'][i]['name'], data['items'][i]['price']);
	}
    }
    fillBasicCartData(data['hasFreeShipping'], data['remaining'], data['cart_count']);
    if(data['has_discount']){
	$('.cartPreviewDiscountRow').show();
	$('#cartPreviewDiscountAmount').html(data['discount_amount']);
    } else {
	$('.cartPreviewDiscountRow').hide();
    }
    $('#cartPreviewTotal').html(data['cart_total']);
    $('#cartPreviewItems').html(data['cart_count']);
}

function addItemToCartPreview(img, quantity, name, price){
    $('#cartPreview table tbody')
	.append('<tr><td><img src="'+img+'" /></td><td>'+quantity+'x</td><td>'+name+'</td><td>'+price+'</td></tr>');
}

