/* Copyright (c) 2008 Kean Loong Tan http://www.gimiti.com/kltan
 * Licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * jFlow
 * Version: 1.2 (July 7, 2008)
 * Requires: jQuery 1.2+
 */
(function(A){A.fn.jFlow=function(K){var B=A.extend({},A.fn.jFlow.defaults,K);var G=Math.floor(Math.random()*11);var I=B.controller;var C=B.slideWrapper;var H=B.selectedWrapper;var J=0;var E=A(I).length;var F=function(M,L){A(B.slides).children().css({overflow:"hidden"});A(B.slides+" iframe").hide().addClass("temp_hide");A(B.slides).animate({marginLeft:"-"+(L*A(B.slides).find(":first-child").width()+"px")},B.duration*(M),B.easing,function(){A(B.slides).children().css({overflow:"auto"});A(".temp_hide").show()})};A(this).find(I).each(function(L){A(this).click(function(){if(A(B.slides).is(":not(:animated)")){A(I).removeClass(H);A(this).addClass(H);var M=Math.abs(J-L);F(M,L);J=L}})});A(B.slides).before('<div id="'+C.substring(1,C.length)+'"></div>').appendTo(C);A(B.slides).find("div").each(function(){A(this).before('<div class="jFlowSlideContainer"></div>').appendTo(A(this).prev())});A(I).eq(J).addClass(H);var D=function(L){A(C).css({position:"relative",width:B.width,height:B.height,overflow:"hidden"});A(B.slides).css({position:"relative",width:A(C).width()*A(I).length+"px",height:A(C).height()+"px",overflow:"hidden"});A(B.slides).children().css({position:"relative",width:A(C).width()+"px",height:A(C).height()+"px","float":"left",overflow:"auto"});A(B.slides).css({marginLeft:"-"+(J*A(B.slides).find(":eq(0)").width()+"px")})};D();A(window).resize(function(){D()});A(B.prev).click(function(){if(A(B.slides).is(":not(:animated)")){var L=1;if(J>0){J--}else{J=E-1;L=J}A(I).removeClass(H);F(L,J);A(I).eq(J).addClass(H)}});A(B.next).click(function(){if(A(B.slides).is(":not(:animated)")){var L=1;if(J<E-1){J++}else{J=0;L=E-1}A(I).removeClass(H);F(L,J);A(I).eq(J).addClass(H)}})};A.fn.jFlow.defaults={controller:".jFlowControl",slideWrapper:"#jFlowSlide",selectedWrapper:"jFlowSelected",easing:"swing",duration:400,width:"100%",prev:".jFlowPrev",next:".jFlowNext"}})(jQuery);

/*
  jQuery MegaMenu Plugin
  Author: GeekTantra
  Author URI: http://www.geektantra.com
*/
var isIE6 = navigator.userAgent.toLowerCase().indexOf('msie 6') != -1;

jQuery.fn.megamenu = function(options) {
  options = jQuery.extend({
                              activate_action: "mouseover",
                              deactivate_action: "mouseleave",
                              show_method: "slideDown",
                              hide_method: "slideUp",
                              justify: "left",
                              enable_js_shadow: true,
                              shadow_size: 3,
                              mm_timeout: 250
                          }, options);
  var $megamenu_object = this;
  if( options.activate_action == "click" ) options.mm_timeout = 0;
  $megamenu_object.children("li").each(function(){
    jQuery(this).addClass("mm-item");
    jQuery(".mm-item").css({ 'float': options.justify });
    
    jQuery(this).find("div:first").addClass("mm-item-content");
    jQuery(this).find("a:first").addClass("mm-item-link");
    var $mm_item_content = jQuery(this).find(".mm-item-content");
    var $mm_item_link = jQuery(this).find(".mm-item-link");
    $mm_item_content.hide();
    
    jQuery(document).bind("click", function(){
      jQuery(".mm-item-content").hide();
      jQuery(".mm-item-link").removeClass("mm-item-link-hover");
    });
    jQuery(this).bind("click", function(e){
      e.stopPropagation();
    });
    $mm_item_content.wrapInner('<div class="mm-content-base"></div>');
    if(options.enable_js_shadow == true) {
      $mm_item_content.append('<div class="mm-js-shadow"></div>');
    }
    var $mm_timer = 0;
    // Activation Method Starts
    jQuery(this).bind(options.activate_action, function(e){
      e.stopPropagation();
      var mm_item_link_obj = jQuery(this).find("a.mm-item-link");
      var mm_item_content_obj = jQuery(this).find("div.mm-item-content");
      clearTimeout($mm_timer);
      $mm_timer = setTimeout(function(){ //Emulate HoverIntent
        mm_item_link_obj.addClass("mm-item-link-hover");
        mm_item_content_obj.css({
          //'top': ($mm_item_link.offset().top + $mm_item_link.outerHeight()) - 1 +"px",
          //'left': ($mm_item_link.offset().left) - 5 + 'px'
			'top': '17px',
			'left': '-40px'
        })
        
        /*if(options.justify == "left"){
          var mm_object_right_end = $megamenu_object.offset().left + $megamenu_object.outerWidth();
                                    // Coordinates of the right end of the megamenu object
          var mm_content_right_end = $mm_item_link.offset().left + $mm_item_content.outerWidth() - 5 ;
                                    // Coordinates of the right end of the megamenu content
          if( mm_content_right_end >= mm_object_right_end ) { // Menu content exceeding the outer box
            mm_item_content_obj.css({
              'left': ($mm_item_link.offset().left - (mm_content_right_end - mm_object_right_end)) - 2 + 'px'
            }); // Limit megamenu inside the outer box
          }
        } else if( options.justify == "right" ) {
          var mm_object_left_end = $megamenu_object.offset().left;
                                    // Coordinates of the left end of the megamenu object
          var mm_content_left_end = $mm_item_link.offset().left - mm_item_content_obj.outerWidth() + 
                                    $mm_item_link.outerWidth() + 5;
                                    // Coordinates of the left end of the megamenu content
          if( mm_content_left_end <= mm_object_left_end ) { // Menu content exceeding the outer box
            mm_item_content_obj.css({
              'left': mm_object_left_end + 2 + 'px'
            }); // Limit megamenu inside the outer box
          } else {
            mm_item_content_obj.css({
              'left': mm_content_left_end + 'px'
            }); // Limit megamenu inside the outer box
          }
        }*/
        if(options.enable_js_shadow == true) {
          mm_item_content_obj.find(".mm-js-shadow").height( mm_item_content_obj.height() );
          mm_item_content_obj.find(".mm-js-shadow").width( mm_item_content_obj.width() );
          mm_item_content_obj.find(".mm-js-shadow").css({
            'top': (options.shadow_size) + (isIE6 ? 2 : 0) + "px",
            'left': (options.shadow_size) + (isIE6 ? 2 : 0) + "px",
            'opacity': 0.5
          });
        }
        switch(options.show_method) {
          case "simple":
                mm_item_content_obj.show();
                break;
          case "slideDown":
                mm_item_content_obj.height("auto");
                mm_item_content_obj.slideDown('fast');
                break;
          case "fadeIn":
                mm_item_content_obj.fadeTo('fast', 1);
                break;
          default:
                mm_item_content_obj.each( options.show_method );
                break;
        }
      }, options.mm_timeout);
    });
    // Activation Method Ends
    // Deactivation Method Starts
    jQuery(this).bind(options.deactivate_action, function(e){
      e.stopPropagation();
      clearTimeout($mm_timer);
      var mm_item_link_obj = jQuery(this).find("a.mm-item-link");
      var mm_item_content_obj = jQuery(this).find("div.mm-item-content");
//      mm_item_content_obj.stop();
      switch(options.hide_method) {
        case "simple":
              mm_item_content_obj.hide();
              mm_item_link_obj.removeClass("mm-item-link-hover");
              break;
        case "slideUp":
              mm_item_content_obj.slideUp( 'fast',  function() {
                mm_item_link_obj.removeClass("mm-item-link-hover");
              });
              break;
        case "fadeOut":
              mm_item_content_obj.fadeOut( 'fast', function() {
                mm_item_link_obj.removeClass("mm-item-link-hover");
              });
              break;
        default:
              mm_item_content_obj.each( options.hide_method );
              mm_item_link_obj.removeClass("mm-item-link-hover");
              break;
      }
      if(mm_item_content_obj.length < 1) mm_item_link_obj.removeClass("mm-item-link-hover");
    });
//    Deactivation Method Ends
  });
  this.find(">li:last").after('<li class="clear-fix"></li>');
  this.show();
};

/*
 * jQuery Tools 1.2.3 - The missing UI library for the Web
 * [validator] * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.
 * http://flowplayer.org/tools
 * File generated: Sat Jun 12 14:27:41 GMT 2010
 */
(function(d){function v(a,b,c){var k=a.offset().top,f=a.offset().left,l=c.position.split(/,?\s+/),g=l[0];l=l[1];k-=b.outerHeight()-c.offset[0];f+=a.outerWidth()+c.offset[1];c=b.outerHeight()+a.outerHeight();if(g=="center")k+=c/2;if(g=="bottom")k+=c;a=a.outerWidth();if(l=="center")f-=(a+b.outerWidth())/2;if(l=="left")f-=a;return{top:k,left:f}}function w(a){function b(){return this.getAttribute("type")==a}b.key="[type="+a+"]";return b}function s(a,b,c){function k(g,e,j){if(!(!c.grouped&&g.length)){var h;
if(j===false||d.isArray(j)){h=i.messages[e.key||e]||i.messages["*"];h=h[c.lang]||i.messages["*"].en;(e=h.match(/\$\d/g))&&d.isArray(j)&&d.each(e,function(n){h=h.replace(this,j[n])})}else h=j[c.lang]||j;g.push(h)}}var f=this,l=b.add(f);a=a.not(":button, :image, :reset, :submit");d.extend(f,{getConf:function(){return c},getForm:function(){return b},getInputs:function(){return a},invalidate:function(g,e){if(!e){var j=[];d.each(g,function(h,n){h=a.filter("[name="+h+"]");if(h.length){h.trigger("OI",[n]);
j.push({input:h,messages:[n]})}});g=j;e=d.Event()}e.type="onFail";l.trigger(e,[g]);e.isDefaultPrevented()||q[c.effect][0].call(f,g,e);return f},reset:function(g){g=g||a;g.removeClass(c.errorClass).each(function(){var e=d(this).data("msg.el");if(e){e.remove();d(this).data("msg.el",null)}}).unbind(c.errorInputEvent||"");return f},destroy:function(){b.unbind(c.formEvent).unbind("reset.V");a.unbind(c.inputEvent||"").unbind("change.V");return f.reset()},checkValidity:function(g,e){g=g||a;g=g.not(":disabled");
if(!g.length)return true;e=e||d.Event();e.type="onBeforeValidate";l.trigger(e,[g]);if(e.isDefaultPrevented())return e.result;var j=[],h=c.errorInputEvent+".v";g.each(function(){var p=[],m=d(this).unbind(h).data("messages",p);d.each(t,function(){var o=this,r=o[0];if(m.filter(r).length){o=o[1].call(f,m,m.val());if(o!==true){e.type="onBeforeFail";l.trigger(e,[m,r]);if(e.isDefaultPrevented())return false;var u=m.attr(c.messageAttr);if(u){p=[u];return false}else k(p,r,o)}}});if(p.length){j.push({input:m,
messages:p});m.trigger("OI",[p]);c.errorInputEvent&&m.bind(h,function(o){f.checkValidity(m,o)})}if(c.singleError&&j.length)return false});var n=q[c.effect];if(!n)throw'Validator: cannot find effect "'+c.effect+'"';if(j.length){f.invalidate(j,e);return false}else{n[1].call(f,g,e);e.type="onSuccess";l.trigger(e,[g]);g.unbind(h)}return true}});d.each("onBeforeValidate,onBeforeFail,onFail,onSuccess".split(","),function(g,e){d.isFunction(c[e])&&d(f).bind(e,c[e]);f[e]=function(j){d(f).bind(e,j);return f}});
c.formEvent&&b.bind(c.formEvent,function(g){if(!f.checkValidity(null,g))return g.preventDefault()});b.bind("reset.V",function(){f.reset()});a[0]&&a[0].validity&&a.each(function(){this.oninvalid=function(){return false}});if(b[0])b[0].checkValidity=f.checkValidity;c.inputEvent&&a.bind(c.inputEvent,function(g){f.checkValidity(d(this),g)});a.filter(":checkbox, select").filter("[required]").bind("change.V",function(g){var e=d(this);if(this.checked||e.is("select")&&d(this).val())q[c.effect][1].call(f,
e,g)})}d.tools=d.tools||{version:"1.2.3"};var x=/\[type=([a-z]+)\]/,y=/^-?[0-9]*(\.[0-9]+)?$/,z=/^([a-z0-9_\.\-\+]+)@([\da-z\.\-]+)\.([a-z\.]{2,6})$/i,A=/^(https?:\/\/)?([\da-z\.\-]+)\.([a-z\.]{2,6})([\/\w \.\-]*)*\/?$/i,i;i=d.tools.validator={conf:{grouped:false,effect:"default",errorClass:"invalid",inputEvent:null,errorInputEvent:"keyup",formEvent:"submit",lang:"en",message:"<div/>",messageAttr:"data-message",messageClass:"error",offset:[0,0],position:"center right",singleError:false,speed:"normal"},
messages:{"*":{en:"Please correct this value"}},localize:function(a,b){d.each(b,function(c,k){i.messages[c]=i.messages[c]||{};i.messages[c][a]=k})},localizeFn:function(a,b){i.messages[a]=i.messages[a]||{};d.extend(i.messages[a],b)},fn:function(a,b,c){if(d.isFunction(b))c=b;else{if(typeof b=="string")b={en:b};this.messages[a.key||a]=b}if(b=x.exec(a))a=w(b[1]);t.push([a,c])},addEffect:function(a,b,c){q[a]=[b,c]}};var t=[],q={"default":[function(a){var b=this.getConf();d.each(a,function(c,k){c=k.input;
c.addClass(b.errorClass);var f=c.data("msg.el");if(!f){f=d(b.message).addClass(b.messageClass).appendTo(document.body);c.data("msg.el",f)}f.css({visibility:"hidden"}).find("span").remove();d.each(k.messages,function(l,g){d("<span/>").html(g).appendTo(f)});f.outerWidth()==f.parent().width()&&f.add(f.find("p")).css({display:"inline"});k=v(c,f,b);f.css({visibility:"visible",position:"absolute",top:k.top,left:k.left}).fadeIn(b.speed)})},function(a){var b=this.getConf();a.removeClass(b.errorClass).each(function(){var c=
d(this).data("msg.el");c&&c.css({visibility:"hidden"})})}]};d.each("email,url,number".split(","),function(a,b){d.expr[":"][b]=function(c){return c.getAttribute("type")===b}});d.fn.oninvalid=function(a){return this[a?"bind":"trigger"]("OI",a)};i.fn(":email","Please enter a valid email address",function(a,b){return!b||z.test(b)});i.fn(":url","Please enter a valid URL",function(a,b){return!b||A.test(b)});i.fn(":number","Please enter a numeric value.",function(a,b){return y.test(b)});i.fn("[max]","Please enter a value smaller than $1",
function(a,b){if(d.tools.dateinput&&a.is(":date"))return true;a=a.attr("max");return parseFloat(b)<=parseFloat(a)?true:[a]});i.fn("[min]","Please enter a value larger than $1",function(a,b){if(d.tools.dateinput&&a.is(":date"))return true;a=a.attr("min");return parseFloat(b)>=parseFloat(a)?true:[a]});i.fn("[required]","Please complete this mandatory field.",function(a,b){if(a.is(":checkbox"))return a.is(":checked");return!!b});i.fn("[pattern]",function(a){var b=new RegExp("^"+a.attr("pattern")+"$");
return b.test(a.val())});d.fn.validator=function(a){var b=this.data("validator");if(b){b.destroy();this.removeData("validator")}a=d.extend(true,{},i.conf,a);if(this.is("form"))return this.each(function(){var c=d(this);b=new s(c.find(":input"),c,a);c.data("validator",b)});else{b=new s(this,this.eq(0).closest("form"),a);return this.data("validator",b)}}})(jQuery);


/* site stuff */
$(document).ready( 
		function(){
			$("button, input:submit, a.jqbutton").button();
			//$('select').selectmenu({ maxHeight: 300, maxWidth: 300 });
			$(".megamenu").megamenu({ 'show_method':'fadeIn', 'hide_method': 'fadeOut' });
			if ($("#imageshortcuts").length>0){ 
				$("#imageshortcuts").jFlow({
					slides: "#mainimage",
					controller: ".jFlowControl", // must be class, use . sign
					slideWrapper : "#jFlowSlide", // must be id, use # sign
					selectedWrapper: "jFlowSelected",  // just pure text, no sign
					auto: false,		//auto change slide, default true
					width: "940px",
					height: "384px",
					duration: 400,
					auto: true
				});
			}
			if ($("#prod-imageshortcuts").length>0){ 
				$("#prod-imageshortcuts").jFlow({
					slides: "#product-images",
					controller: ".jFlowControl", // must be class, use . sign
					slideWrapper : "#jFlowSlide", // must be id, use # sign
					selectedWrapper: "jFlowSelected",  // just pure text, no sign
					auto: false,		//auto change slide, default true
					width: "460px",
					height: "520px",
					duration: 400,
					auto: true
				});
			}
			if ($(".product a").length>0) {
				$(".product a").hover(function(){$(".cover",this).stop().animate({top:'50px'},{queue:false,duration:160});},function(){$(".cover",this).stop().animate({top:'134px'},{queue:false,duration:160});});
			}
			$('.radio').buttonset();
			if ($('input[name="size"]').length > 0) {
				$('input.greysub').attr('disabled','disabled').val('select a size first','add to cart');
			}
			$('input[name="size"]').change(function(){
				if($(this).val != ''){
						$('input.greysub').removeAttr('disabled');
						$('input.greysub').val('add to basket');
						$('input.greysub').addClass('active');
					}
			     });
				$('#currency_selector input[type=radio]').click(function() {
					$('#update-currency').dialog({
						modal: true,
						resizable: false,
						height: 90 
					});
					$('form#currency_selector').submit();
				});
				$('a.login').click(function() {
					$("#loginbox").dialog({
						modal: true,
						resizable: false,
						width:400
					});
				});
			$('#addcart').click(function(){
		        // display a message indicating that we're updating the tax cost
        		$('#basket').html( '<p>Updating...</p>');
		        $('#addtocart').ajaxSubmit({
		            success: function(data) {
		                // load the updated tax value back into the page
		                $('#basket').load('/_components/basket_total');
						$("#basket p").stop().css("background-color", "#FFFF9C")
.animate({ backgroundColor: "#FFFFFF"}, 1500);
		            }
		        });
				return false;
		    });
		if ($('#billing_info').length > 0) {
			$("#billing_info").validator();
	      	
	      // Copy ship to
	      $("input#same").click(function(){ 
	          if ($("input#same").is(':checked')) 
	          { 
	              // Checked, copy values 
	              $("input#shipping_first_name").val($("input#first_name").val());
	              $("input#shipping_last_name").val($("input#last_name").val());
	              $("input#shipping_address").val($("input#address").val());
	              $("input#shipping_address2").val($("input#address2").val());
	              $("input#shipping_city").val($("input#city").val());
	              $("input#shipping_state").val($("input#state").val());
	              $("input#shipping_zip").val($("input#zip").val());
	              $("select#shipping_country").val($("select#country_code").val());
	          } 
	          else 
	          { 
	              // Clear on uncheck 
	              $("input#shipping_first_name").val("");
	              $("input#shipping_last_name").val("");
	              $("input#shipping_address").val("");
	              $("input#shipping_address2").val("")
	              $("input#shipping_city").val("");
	              $("select#shipping_state").val("");
	              $("input#shipping_zip").val("");
	          } 
	      });
		if ($('#shipping_country').length > 0) {
			$('#shipping_country').change(function() {
				$('#ship-info').html( 'Updating...' );
				$('#hidden_shipping_field').val( $(this).val() );
				$('#save_customer_info_form').ajaxSubmit({
              		success: function(data) {
	                  // load the updated shipping & total values back into the page
	                  $('#ship-info').load('https://www.kartelprime.com/_components/display_ship_total');
              			}
          			});
			})	
		}
	      $('#order').submit(function(){
	          $('input[type=submit]', this).attr('disabled', 'disabled');
	      });
			}
		}
	);
