var $j = jQuery.noConflict();
jQuery(document).ready(function() {
	/* 
	 * Rollover preview of the product options image, clicking on the image saves the
	 *
	jQuery(".optionextended-narrow-picker > img").click(function(){
		jQuery("#image").attr("di",jQuery("#image").attr("src"));
	});
	jQuery(".optionextended-narrow-picker > img").mouseenter(function(){
		if (optionExtended) {
			jQuery("#image").attr("di",jQuery("#image").attr("src"));
			optionExtended.showImage(jQuery(this).attr("oid"), jQuery(this).attr("vid"),"select-one");
		}
	}).mouseleave(function() {
		if (jQuery("#image").attr("di")) {
			jQuery("#image").attr("src",jQuery("#image").attr("di"));
			jQuery("#image").attr("di",false);
		}
	});
	*/
	/* Contact Form Header */
	jQuery("#top-contact-button").mouseenter(function(){
		jQuery(this).addClass("header-menu-open");
		jQuery("#top-form").show();
		clearTimeout(jQuery("#top-contact-button").data('timeoutId'));
	}).mouseleave(function() {
		var someelement = this;
		var timeoutId = setTimeout(function(){
			jQuery("#top-contact-button").removeClass("header-menu-open");
			jQuery("#top-form").hide();
		}, 650);
		jQuery("#top-contact-button").data('timeoutId', timeoutId);
	});
	jQuery('body').click(function(event) {
	    if (!jQuery(event.target).closest('#top-form').length) {
	    	jQuery("#top-contact-button").removeClass("header-menu-open");
	    	jQuery('#top-form').hide();
	    };
	});
	jQuery("#top-form").mouseenter(function(){
		clearTimeout(jQuery("#top-contact-button").data('timeoutId'));
	}).mouseleave(function() {
		var someelement = this;
		var timeoutId = setTimeout(function(){
			jQuery("#top-contact-button").removeClass("header-menu-open");
			jQuery("#top-form").hide();
		}, 650);
		jQuery("#top-contact-button").data('timeoutId', timeoutId);
	});
	/* FAQ links */
	jQuery("ul.faq li div.faq-question").click(function(){
		jQuery(this).parent().toggleClass("over");
		jQuery(this).parent().children("div.faq-answer").slideToggle();
		
	});
	/* Cart expand Collapse Options */
	jQuery(".button-ec").click(function(){
		if (jQuery(this).html() == "show details") {
			jQuery(this).html("hide details");
		} else {
			jQuery(this).html("show details");
		}
		jQuery(this).parent().children("dl.item-options").slideToggle();
	});
	/* Buttons Hover */
	jQuery("[class*='button-']").each(function(){
		var name = jQuery(this).attr("nm");
		jQuery(this).hover(
			function() {
				jQuery(this).addClass("button-"+name+"-rollover");
			},
			function() {
				jQuery(this).removeClass("button-"+name+"-rollover");
			}
		);
	});
	/* Column match */
	var heightMatch = [jQuery(".col-left").height(),jQuery(".col-main").height()+40,jQuery(".col-right").height()]
	jQuery(".col-left").css("height",heightMatch.max());
	jQuery(".col-middle").css("height",heightMatch.max());
	jQuery(".col-right").css("height",heightMatch.max());
	
	/* Recent Products Hover */
	jQuery("a.prod-resent").each(function(){
		var prodId = jQuery(this).attr("prod_id");
		jQuery(this).hover(
			function() {
				jQuery("#side-prod-"+prodId).removeClass("not-shown");
			},
			function() {
				jQuery("#side-prod-"+prodId).addClass("not-shown");
			}
		);
	});
	/* Dowmloads menu */
	jQuery("a[menu='cad-menu']").mouseenter(function() {
		/* Hide Help */
		jQuery("a[menu='help-menu']").removeClass("over");
		jQuery("#help-menu").css("display","none");
		/* Show Downloads */
		clearTimeout(jQuery("a[menu='cad-menu']").data('timeoutId'));
		jQuery("a[menu='cad-menu']").addClass("over");
		jQuery("#cad-menu").css("display","block");
	}).mouseleave(function() {
		var someelement = this;
		var timeoutId = setTimeout(function(){
			jQuery("a[menu='cad-menu']").removeClass("over");
			jQuery("#cad-menu").css("display","none");
		}, 650);
		jQuery("a[menu='cad-menu']").data('timeoutId', timeoutId);
	});
	jQuery("#cad-menu").mouseenter(function(){
		clearTimeout(jQuery("a[menu='cad-menu']").data('timeoutId'));
	}).mouseleave(function(){
		jQuery("a[menu='cad-menu']").removeClass("over");
		jQuery("#cad-menu").css("display","none");
	});
	/* Help menu */
	jQuery("a[menu='help-menu']").mouseenter(function() {
		/* Hide Downloads */
		jQuery("a[menu='cad-menu']").removeClass("over");
		jQuery("#cad-menu").css("display","none");
		/* Show Help */
		clearTimeout(jQuery("a[menu='help-menu']").data('timeoutId'));
		jQuery("a[menu='help-menu']").addClass("over");
		jQuery("#help-menu").css("display","block");
	}).mouseleave(function() {
		var someelement = this;
		var timeoutId = setTimeout(function(){
			jQuery("a[menu='help-menu']").removeClass("over");
			jQuery("#help-menu").css("display","none");
		}, 650);
		jQuery("a[menu='help-menu']").data('timeoutId', timeoutId);
	});
	jQuery("#help-menu").mouseenter(function(){
		clearTimeout(jQuery("a[menu='help-menu']").data('timeoutId'));
	}).mouseleave(function(){
		jQuery("a[menu='help-menu']").removeClass("over");
		jQuery("#help-menu").css("display","none");
	});
        
	/* Contact menu */
	jQuery("a[menu='contact-menu']").mouseenter(function() {
		/* Hide Downloads */
		jQuery("a[menu='cad-menu']").removeClass("over");
		jQuery("#cad-menu").css("display","none");
		/* Hide Help */
		jQuery("a[menu='help-menu']").removeClass("over");
		jQuery("#help-menu").css("display","none");
		/* Show Contact */
		clearTimeout(jQuery("a[menu='contact-menu']").data('timeoutId'));
		jQuery("a[menu='contact-menu']").addClass("over");
		jQuery("#contact-menu").css("display","block");                
	}).mouseleave(function() {
		var someelement = this;
		var timeoutId = setTimeout(function(){
			jQuery("a[menu='contact-menu']").removeClass("over");
			jQuery("#contact-menu").css("display","none");
		}, 650);
		jQuery("a[menu='contact-menu']").data('timeoutId', timeoutId);
	});
	jQuery("#contact-menu").mouseenter(function(){
		clearTimeout(jQuery("a[menu='contact-menu']").data('timeoutId'));
	}).mouseleave(function(){
		jQuery("a[menu='contact-menu']").removeClass("over");
		jQuery("#contact-menu").css("display","none");
	});        
	
	/* Related and upsell */
	$j(".scrollable").scrollable();
	
	/*
	jQuery(".slidetabs").tabs(".images > div", {
		effect: 'fade',
		fadeOutSpeed: "slow",
		rotate: true
	}).slideshow({
		autoplay: true,
		interval: 5000,
		clickable: false
	});
	*/
	/* Terms & conditions */
	jQuery('.tnc-popup').click(function(){return false;});
	jQuery('.tnc-popup').hover(
		function () {
			jQuery(this).parent().parent().parent().children('div.agreement-content').show();
		},
		function () {
			jQuery(this).parent().parent().parent().children('div.agreement-content').hide();
		}
	);
	
	/* Home Portfolio Block */
	jQuery('div.portfolio-thumb a img').hover(
		function() {
			jQuery(this).animate({opacity:1},100);
		},
		function() {
			jQuery(this).animate({opacity:0.8},100);
		}
	);
	/* Home Portfolio Block */
	jQuery('div.portfolio-side-thumb a img').hover(
		function() {
			jQuery(this).animate({opacity:1},100);
		},
		function() {
			jQuery(this).animate({opacity:0.8},100);
		}
	);
	
	Shadowbox.init({overlayOpacity: "0.5"});
	/* will be depricated after Tradeshow deploy
	jQuery("select[rel='product-options']").change(function(){
		var sku = jQuery(this).children("option:selected").attr("rel");
		jQuery("#image").attr("src",jQuery("a[title='"+sku+"']").attr("href"));
		jQuery("#image").attr("from",jQuery("a[title='"+sku+"']").attr("item"));
		return false;
	});
	jQuery("select[rel='product-options']").keypress(function(){
		var sku = jQuery(this).children("option:selected").attr("rel");
		jQuery("#image").attr("src",jQuery("a[title='"+sku+"']").attr("href"));
		jQuery("#image").attr("from",jQuery("a[title='"+sku+"']").attr("item"));
		return false;
	});
	*/
	jQuery("ul.img_wrapper li a").click(function(){
		Shadowbox.setup(jQuery('a[@rel="shadowbox"]'),{player:'img'});
		Shadowbox.open({
			type: "img",
			content: jQuery(this).attr("href"),
			title:  jQuery(this).attr("title")
		});
		return false;
	});
	jQuery("#image-link").click(function(){
		Shadowbox.setup();
		Shadowbox.open({
			type: "img",
			content: jQuery(this).attr("href"),
			title:  jQuery(this).attr("title")
		});
		return false;
	});
	jQuery("#product-thumbs li a").each(function(){
		jQuery(this).click(function(){
			Shadowbox.clearCache();
			jQuery("#image").attr("src",jQuery(this).attr("href"));
			jQuery("#image-link").attr("href",jQuery(this).attr("href"));
			/* will be depricated after Tradeshow deploy */
			jQuery("select[rel='product-options'] > option[rel='"+jQuery(this).attr("title")+"']").attr("selected","selected");
			return false;
		});
	});
	
	//About Us Dropdown
	jQuery('#state-select option').each(function(){
		jQuery(this).click(function(){
			window.location.href= "#" + jQuery(this).attr('value');
		});
	})
	
	//Contact Form
	//Checkboxes Value toggle
	jQuery('input.quickFormCheck').each(function() {
		jQuery(this).click(function(){
			if(jQuery(this).val() == "on"){jQuery(this).attr("value","off");}else{jQuery(this).attr("value","on");}
		});
	});
	
	//Default Contact Form to SalesForce
	jQuery("#productContactForm").submit(function(){
		/* Validate the form */
		var errors = false;
		errors = fieldValidate(jQuery("#productContactForm input[name=first_name]"),errors);
		errors = fieldValidate(jQuery("#productContactForm input[name=last_name]"),errors);
                errors = fieldValidate(jQuery("#productContactForm input[name=company]"),errors);
                errors = fieldValidate(jQuery("#productContactForm input[name=phone]"),errors);
		errors = fieldValidate(jQuery("#productContactForm input[name=zip]"),errors);
		errors = fieldValidate(jQuery("#productContactForm input[name=email]"),errors);
		if(jQuery("#productContactForm select[name=region_id]").length) {
			errors = fieldValidate(jQuery("#productContactForm select[name=region_id]"),errors);
		}
		if(jQuery("#productContactForm input[name=city]").length) {
			errors = fieldValidate(jQuery("#productContactForm input[name=city]"),errors);
		}
		if(jQuery("#productContactForm input[name=phone]").length) {
			errors = fieldValidate(jQuery("#productContactForm input[name=phone]"),errors);
		}
		if(jQuery("#productContactForm input[name=first_name_cmc]").length) {
			errors = fieldValidate(jQuery("#productContactForm input[name=first_name_cmc]"),errors);
		}
		if(jQuery("#productContactForm input[name=last_name_cmc]").length) {
			errors = fieldValidate(jQuery("#productContactForm input[name=last_name_cmc]"),errors);
		}
		if(jQuery("#productContactForm input[name=email_cmc]").length) {
			errors = fieldValidate(jQuery("#productContactForm input[name=email_cmc]"),errors);
		}
		if(jQuery("#productContactForm input[name=cfr_district]").length) {
			errors = fieldValidate(jQuery("#productContactForm input[name=cfr_district]"),errors);
		}
		if (errors) {
			return false;
		}
		/* Validations successful */
		jQuery('#loading').css('display','block');
		jQuery.post(
			'/ajax/contact',
			{
				first_name: jQuery('#first_name').val(),
				last_name: jQuery('#last_name').val(),
				phone: jQuery('#phone').val(),
				email: jQuery('#email').val(),
				comments: jQuery('#comments').val(),
				company: jQuery('#company').val(),
				city: jQuery('#city').val(),
				state: jQuery('#region_id option:selected').html(),
				region: jQuery('#region').val(),
				zip: jQuery('#zip').val(),
				recordType: jQuery('#recordType').val(),
				fromURL: jQuery('#fromURL').val(),
				orderCart: jQuery('#orderCart').val(),
				first_name_cmc: jQuery('#first_name_cmc').val(),
				last_name_cmc: jQuery('#last_name_cmc').val(),
				email_cmc: jQuery('#email_cmc').val(),
				event_date: jQuery('input[name="event_date"]').val(),
				rep_name: jQuery('#rep_name option:selected').html(),
				cfr_district: jQuery('select[name="cfr_district"] option:selected').val(),
				client_current: jQuery('input[name="client_current"]:selected').val(),
				client_prev: jQuery('input[name="client_prev"]:selected').val()
			},
			function(xml){
				jQuery('#loading').remove();
				//Tag Omniture
			    s = s_gi(s_account);
			    s.linkTrackEvents="event2";
			    s.linkTrackVars="events";
			    s.events="event2";
			    s.tl(s,'o','lead form submission');
					
				//Load Thank You
				jQuery('#QF_content').load('/ajax/contact-thankyou');
			}
		);
		
		return false;
	});
        
	jQuery("#mainContactForm").submit(function(){
		/* Validate the form */
		var errors = false;
		errors = fieldValidate(jQuery("#mainContactForm input[name=first_name]"),errors);
		errors = fieldValidate(jQuery("#mainContactForm input[name=last_name]"),errors);
		errors = fieldValidate(jQuery("#mainContactForm input[name=zip]"),errors);
		errors = fieldValidate(jQuery("#mainContactForm input[name=email]"),errors);
		if(jQuery("#mainContactForm select[name=region_id]").length) {
			errors = fieldValidate(jQuery("#mainContactForm select[name=region_id]"),errors);
		}
		if(jQuery("#mainContactForm input[name=city]").length) {
			errors = fieldValidate(jQuery("#mainContactForm input[name=city]"),errors);
		}
		if(jQuery("#mainContactForm input[name=phone]").length) {
			errors = fieldValidate(jQuery("#mainContactForm input[name=phone]"),errors);
		}
		if(jQuery("#mainContactForm input[name=first_name_cmc]").length) {
			errors = fieldValidate(jQuery("#mainContactForm input[name=first_name_cmc]"),errors);
		}
		if(jQuery("#mainContactForm input[name=last_name_cmc]").length) {
			errors = fieldValidate(jQuery("#mainContactForm input[name=last_name_cmc]"),errors);
		}
		if(jQuery("#mainContactForm input[name=email_cmc]").length) {
			errors = fieldValidate(jQuery("#mainContactForm input[name=email_cmc]"),errors);
		}
		if(jQuery("#mainContactForm input[name=cfr_district]").length) {
			errors = fieldValidate(jQuery("#mainContactForm input[name=cfr_district]"),errors);
		}
		if (errors) {
			return false;
		}
		/* Validations successful */
		jQuery('#loading_main_contact').css('display','block');
		jQuery.post(
			'/ajax/contact',
			{
				first_name: jQuery('#mcf_first_name').val(),
				last_name: jQuery('#mcf_last_name').val(),
				phone: jQuery('#mcf_phone').val(),
				email: jQuery('#mcf_email').val(),
				comments: jQuery('#mcf_comments').val(),
				company: jQuery('#mcf_company').val(),
				city: jQuery('#mcf_city').val(),
				state: jQuery('#mcf_region_id option:selected').html(),
				region: jQuery('#mcf_region').val(),
				zip: jQuery('#mcf_zip').val(),
				recordType: jQuery('#mcf_recordType').val(),
				fromURL: jQuery('#mcf_fromURL').val(),
				orderCart: jQuery('#mcf_orderCart').val(),
				first_name_cmc: jQuery('#mcf_first_name_cmc').val(),
				last_name_cmc: jQuery('#mcf_last_name_cmc').val(),
				email_cmc: jQuery('#mcf_email_cmc').val(),
				event_date: jQuery('input[name="event_date"]').val(),
				rep_name: jQuery('#mcf_rep_name option:selected').html(),
				cfr_district: jQuery('select[name="cfr_district"] option:selected').val(),
				client_current: jQuery('input[name="client_current"]:selected').val(),
				client_prev: jQuery('input[name="client_prev"]:selected').val()
			},
			function(xml){
				jQuery('#loading_main_contact').remove();
				//Tag Omniture
			    s = s_gi(s_account);
			    s.linkTrackEvents="event2";
			    s.linkTrackVars="events";
			    s.events="event2";
			    s.tl(s,'o','lead form submission');
					
				//Load Thank You
				jQuery('#contact-menu').load('/ajax/contact-thankyou');
			}
		);
		
		return false;
	});
        
	
	//Tradeshow Contact Form to SalesForce
	jQuery(".tradeshowContactForm").submit(function(){
		/* Validate the form */
		var errors = false;
		myform = jQuery(this);
		errors = fieldValidate(myform.find("input[name='first_name']"),errors);
		errors = fieldValidate(myform.find("input[name='last_name']"),errors);
		errors = fieldValidate(myform.find("input[name='email']"),errors);
		errors = fieldValidate(myform.find("input[name='event']"),errors);
		errors = fieldValidate(myform.find("select[name='ctsf_state']"),errors);
		errors = fieldValidate(myform.find("select[name='ctsf_type']"),errors);
		if(myform.find("input[name='phone']").length) {
			errors = fieldValidate(myform.find("input[name='phone']"),errors);
		}
		
		if (errors) {
			return false;
		} else {
			myform.find("input,textarea").each(function(){
				if (jQuery(this).val() == jQuery(this).attr("title")) {
					jQuery(this).val("");
				}
			});
		}
		/* Validations successful */
		myform.parent().parent().find(".loading").css('display','block');
		jQuery.post(
			'/ajax/contact',
			{
				first_name: myform.find("[name='first_name']").val(),
				last_name: myform.find("[name='last_name']").val(),
				phone: myform.find("[name='phone']").val(),
				email: myform.find("[name='email']").val(),
				event: myform.find("[name='event']").val(),
				ctsf_state: myform.find("[name='ctsf_state']").val(),
				ctsf_type: myform.find("[name='ctsf_type']").val(),
				showComments: myform.find("[name='comments']").val(),
				recordType: myform.find("[name='recordType']").val(),
				leadSource: myform.find("[name='leadSource']").val(),
				fromURL: myform.find("[name='fromURL']").val()
			},
			function(xml){
				myform.parent().parent().find(".loading").remove();
				//Tag Omniture
			    s = s_gi(s_account);
			    s.linkTrackEvents="event2";
			    s.linkTrackVars="events";
			    s.events="event2";
			    s.tl(s,'o','lead form submission');
					
				//Load Thank You
				jQuery('.QF_content').load('/ajax/contact-thankyou');
			}
		);
		
		return false;
	});
	
	//Download Catalog Omniture tag
	jQuery("a.download-catalog").click(function(){
		s = s_gi(s_account);
	    s.linkTrackEvents="event1";
	    s.linkTrackVars="events";
	    s.events="event1";
	    s.tl(s,"o","download full catalog");
	});
	
	jQuery("#state-select").change(function(){
		var url = jQuery("#state-select option:selected").val();
		if (url.length > 0) {
			window.location = "#"+jQuery(this).val();
		}
	}).trigger('change');
	
	jQuery('.default-value').each(function() {
	    var default_value = jQuery(this).attr("title");
	    if(this.value == '') {
            this.value = default_value;
        }
	    jQuery(this).focus(function() {
	        if(this.value == default_value) {
	            this.value = '';
	        }
	        jQuery(this).addClass("activeField");
	    });
	    jQuery(this).blur(function() {
	        if(this.value == '') {
	            this.value = default_value;
	        }
	        jQuery(this).removeClass("activeField");
	    });
	});
        if(jQuery("#defaultCube").length > 0)
            jQuery("#defaultCube").imagecube();
});

function max() {
	var max = this[0];
	for(var i = 1; i < this.length; i++) {
		if (this[i] > max)
				max = this[i];
	}
	return max;
}

function fieldValidate(obj,er) {
	var invalid = false;
	/* Validate the pattern */
	if (obj.attr("required") == "required" || obj.attr("required")) {
		if (!obj.val() || obj.val() == "" || obj.val() == obj.attr("title") || obj.children("option:selected").val() == "") {
			obj.addClass("invalid");
			invalid = true;
		} else {
			obj.removeClass("invalid");
			invalid = false;
		}
	}
	if(obj.attr("pattern") && !invalid) {
		var pattern = eval("/^"+obj.attr("pattern")+"$/");
		if (!pattern.test(obj.val())) {
			obj.addClass("invalid");
			invalid = true;
		} else {
			obj.removeClass("invalid");
			invalid = false;
		}
	}
	
	/* Return erros flag */
	if (!er) {
		return invalid;
	} else {
		return er; 
	}
}

