
// usage: log('inside coolFunc', this, arguments);
// paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/
window.log = function(){
  log.history = log.history || [];   // store logs to an array for reference
  log.history.push(arguments);
  arguments.callee = arguments.callee.caller;  
  if(this.console) console.log( Array.prototype.slice.call(arguments) );
};
// make it safe to use console.log always
(function(b){function c(){}for(var d="assert,count,debug,dir,dirxml,error,exception,group,groupCollapsed,groupEnd,info,log,markTimeline,profile,profileEnd,time,timeEnd,trace,warn".split(","),a;a=d.pop();)b[a]=b[a]||c})(window.console=window.console||{});


// place any jQuery/helper plugins in here, instead of separate, slower script files.

//scroll the message box to the top offset of browser's scrool bar
$(window).scroll(function()
{
  $('#message_box').animate({top:$(window).scrollTop()+"px" },{queue: false, duration: 350});
});

//when the close button at right corner of the message box is clicked
$('#message_box').click(function()
{
  //the messagebox gets scrool down with top property and gets hidden with zero opacity
  $('#message_box').animate({ top:"+=15px",opacity:0 }, "slow");
});
$('#close_message').click(function()
{
  //the messagebox gets scrool down with top property and gets hidden with zero opacity
  $('#message_box').animate({ top:"+=15px",opacity:0 }, "slow");
});


 $(document).ready(function(){
        $('#togglecontrol').click(function(){
            $('#toggle').toggle();
        });
        
        
        
        
        
	setTimeout(function(){
	    
		$("#message-green").slideUp('slow', function() {$(this).height(0);});
	    
	    
	},3000)
        
    });
    
    
// login slider at top

$(document).ready(function() {
	
	// Expand Panel
	$("#open").click(function(){
		$("div#panel").slideDown("slow");
	
	});	
	
	// Collapse Panel
	$("#close").click(function(){
		$("div#panel").slideUp("slow");	
	});		
	
	// Switch buttons from "Log In | Register" to "Close Panel" on click
	$("#toggle a").click(function () {
		$("#toggle a").toggle();
	});		
		
});


// sign up form stuff
/**/

$(document).ready(function(){
    $(".formContainer input[type=text]").focus(function(){ 
        /* $(this).parent().find(".error").css("display", "none"); */
       $(this).parent().find(".info").css("display", "block");
    }).blur(function(){
        $(this).parent().find(".info").css("display", "none");
    });
    
    
    
});
/**/



/*

	show credit card type when user finishes on sign up page
	
	
*/
$(document).ready(function () {
    var CardIssuers = new function() {
        var issuerInput = $("#cardIssuer");
 
        function cardIssuer(name, pattern, logo) {
            this.Name = name;
            this.Logo = logo;
            this.Pattern = pattern;
        };
         
        var issuers = new Array (
                new cardIssuer("amex", /^3[47][0-9]{13}$/, $(".amexLogo")),
                new cardIssuer("visa", /^4[0-9]{12}(?:[0-9]{3})?$/, $(".visaLogo")),
                new cardIssuer("mastercard", /^5[1-5][0-9]{14}$/, $(".mastercardLogo")),
                new cardIssuer("discover", /^6(?:011|5[0-9]{2})[0-9]{12}$/, $(".discoverLogo"))
            );
 
        function resetIssuer() {
            issuerInput.attr("disabled", "disabled");
            issuerInput.val("");
 
            for (issuer in issuers) {
                issuers[issuer].Logo.css({opacity: 0.25});
            }
        };
 
        function validateLuhnChecksum(cardNumber) {
            var sum = 0;
            var mul = 1;
 
            for (var x = cardNumber.length; x > 0 ; x--) {
                var tproduct = parseInt(cardNumber.charAt(x - 1), 10) * mul;
                if (tproduct >= 10)
                    sum += (tproduct % 10) + 1;
                else
                    sum += tproduct;
                 
                if (mul == 1)
                    mul++;
                else
                    mul--;
            }
     
            return ((sum % 10) == 0);
        }
 
        var ValidateNumber = function(cardNumber) {
                resetIssuer();
 
                if (!validateLuhnChecksum(cardNumber))
                    return false;
 
                for (issuer in issuers) {
                    if (issuers[issuer].Pattern.test(cardNumber)) {
                        issuers[issuer].Logo.css({opacity: 1.0});
                        issuerInput.val(issuers[issuer].Name);
                        return true;
                    }
                }
 
                return false;
            };
 
        resetIssuer();
        return { ValidateNumber : ValidateNumber };
    }
 
    $("#ccNumber").bind("change keyup", function() {
            CardIssuers.ValidateNumber($(this).val());     
        });
});






$(document).ready(function(){
	$("#signupform").validate(({
	   rules: {
	     // simple rule, converted to {required:true}
	     
//		pass1: "required",
//		pass2: {
//		  required: true,
//		  equalTo: "#pass1"
//		},	     

	     // compound rule
	     email: {
	       required: true,
	       email: true
	     },
	     phone_number: {
	     	required: true,
	     	minlength: 10     	
	     },
	     street: {
	     	required: true,
	     	minlength:3	     	
	     },
	     city: {
	     	required: true,
	     	minlength:3	 ,
	     	accept: "[a-zA-Z]+"
    		     	
	     },
	     zip_code: {
	     	required: true,
	     	minlength:5,
	     	maxlength:5
	     }
	   },
	   messages:{
	   	city: {
	   		accept: "Use charecters only!"
	   	},
	   	ccCvv:{
	   		required: true,	   		
	   		minlength:3,
	   		maxlength:4
	   	}
	   	
	   	
	   	
	   	
	   }
	}))
});


/*

	add a mask to certain parts of signup page
	
*/
$(document).ready(function(){
   $("#phone_number").mask("(999) 999-9999");
   $("#zip_code").mask("99999");   
   
   
   

   
});

/*

	mask/unmask the password field
	
*/
$(document).ready(function(){
	 // $('#pass1').showPassword();
	  $('#pass1').showPassword('.checker', { text: 'un-hide your password', name: 'showmypass' });
		
});


 
 
 // image preview tooltip
$(document).ready(function(){
	imagePreview();
});





$(document).ready(function(){
    $('img.lazy').jail();
});



$(function() {
    var button = $('#loginButton');
    var box = $('#loginBox');
    var form = $('#loginForm');
    button.removeAttr('href');
    button.mouseup(function(login) {
        box.toggle();
        button.toggleClass('active');
    });
    form.mouseup(function() { 
        return false;
    });
    $(this).mouseup(function(login) {
        if(!($(login.target).parent('#loginButton').length > 0)) {
            button.removeClass('active');
            box.hide();
        }
    });
});

$(function() {
    var button = $('#cartButton');
    var box = $('#cartBox');
    var form = $('#cartForm');
    button.removeAttr('href');
    button.mouseup(function(cart) {
        box.toggle();
        button.toggleClass('active');
    });
    form.mouseup(function() { 
        return false;
    });
    $(this).mouseup(function(cart) {
        if(!($(cart.target).parent('#cartButton').length > 0)) {
            button.removeClass('active');
            box.hide();
        }
    });
});

$('#slideshow-div').rsfSlideshow({
    controls: {
        playPause: {auto: true},    //    auto-generate a play/pause control
        previousSlide: {auto: true},    //    auto-generate a "previous slide" control
        nextSlide: {auto: true},    //    auto-generate a "next slide" control
        index: {auto: true}    //    auto-generate a numbered index control
    }
});	


$(window).load(function() {    

        var theWindow        = $(window),
            $bg              = $("#bg"),
            aspectRatio      = $bg.width() / $bg.height();

        function resizeBg() {

                if ( (theWindow.width() / theWindow.height()) < aspectRatio ) {
                    $bg
                        .removeClass()
                        .addClass('bgheight');
                } else {
                    $bg
                        .removeClass()
                        .addClass('bgwidth');
                }

        }

        theWindow.resize(function() {
                resizeBg();
        }).trigger("resize");

});


