/* custom jquery validator methods */
(function() {
	//define all bad words here, separate words by | (pipe)
	var bad_words = "shit|fuck|bastard|bitch|tits|penis|cunt|cock|piss|asshole|CREATE|SELECT|INSERT|UPDATE|DELETE|DROP|ALTER|REVOKE|--|%|<|>|#";
	
	if( jQuery.validator ){
		jQuery.validator.addMethod("no_bad_words", function(value, element) {
			return this.optional(element) || !(new RegExp(bad_words, "i")).test(value);
		}, "Please do not use bad words.");  
		
		jQuery.validator.addClassRules({
			no_bad_words: {
				no_bad_words: bad_words
			}
		});
		
		
		/* validate birthday */
		function validateDate(day, month, year) {
			var d = parseInt(day) || 0,
				m = parseInt(month) || 0,
				y = parseInt(year) || 0;
				
			if (d > 0 && m > 0 && y > 0) {
				switch (m) {
					case 2:
						//always invalid if day > 29
						//day = 29 valid only if leap year
						return !(d > 29 || ((y != Math.round(y / 4) * 4) && d > 28));
						break;
						
					case 4:
					case 6:
					case 9:
					case 11:
						return !(d > 30);
						break;
						
					default:
						return true;
				}
			} else {
				return false;
			}
		}
	
		jQuery.validator.addMethod("datecombo", function(value, element) {
			var day = $("#birth_day").val(),
				month = $("#birth_month").val(),
				year = $("#birth_year").val();
			
			return this.optional(element) || validateDate(day, month, year);
		}, "Please input a valid Date.");  
		
		jQuery.validator.addClassRules({
			birthday: {
				datecombo: true
			}
		});
	}
})();


function get_baseurl() {
	//code from jquery lightbox
	// Get the src of the first script tag that includes our js file (with or without an appendix)
	var baseurl = $('script[src*=javascripts/]:first').attr('src');
	// The baseurl is the src up until the start of our js file
	baseurl = baseurl.substring(0, baseurl.indexOf("javascripts/"));
	return baseurl;
}
baseurl = get_baseurl();

(function($){
	
	var preloadImage = function(src) {
		var img = new Image();
		img.src = src;
	};
	
	/* newsletter signup form */
	var init_newsletter_signup_form = function(){
		var elem = $(".newsletterSignupForm");
		if (elem.length < 1) return;
		elem = $(elem[0]);
		var li = elem.parents("li");
		
		
		var mover = false;
		var mfocus = false;
		var hideTimeout = 0;
		
		var clearHideTimeout = function() {
			if (hideTimeout > 0) {
				window.clearTimeout(hideTimeout);
				hideTimeout = 0;
			}
		};
		
		var setHideTimeout = function(){
			clearHideTimeout();
			hideTimeout = window.setTimeout(function(){
				if (!mover && !mfocus) {
					$(elem).hide();	
				}
			},100);
		};
		
		elem.hide();
		$(li).bind('mouseover.newsletter', function(){
			clearHideTimeout();
			if (!mover) {
				mover = true;
				$(elem).show();
			}
		});
		$(li).bind('mousemove.newsletter', function(){
			clearHideTimeout();
			if (!mover) {
				mover = true;
				$(elem).show();
			}
		});
		
		$(li).bind('mouseout.newsletter', function(){
			mover = false;
			setHideTimeout();
		});
		
		$("*", elem).bind("focus.newsletter", function(){
			clearHideTimeout();
			if (!mfocus) {
				mfocus = true;
				$(elem).show();
			}
		});
		
		$("*", elem).bind("blur.newsletter", function(){
			mfocus = false;
			setHideTimeout();
		});
	};
	
	
	/* default text */
	function init_def_text() {
		var changedClass = "jDefText_changed";
		
		jQuery(".jDefText[type='text']").each(function(){
			var onFocus = false;
			var elem = this;
			jQuery(this).bind("focus.jDefText", function(){
				onFocus = true;
				if (this.value == this.defaultValue) {
					this.value = "";
				}
				jQuery(this).addClass(changedClass);
			});
			jQuery(this).bind("blur.jDefText", function(){
				onFocus = false;
				if (this.value == "") {
					this.value = this.defaultValue;
					jQuery(this).removeClass(changedClass);
				}
			});
			jQuery(this).bind("change.jDefText", function(){
				if (!onFocus) {
					jQuery(this).triggerHandler("focus");
					jQuery(this).triggerHandler("blur");
				}
			});
			//form reset
			if (jQuery(this).parents("form").length) {
				jQuery(this).parents("form").bind("reset.jDefText", function(){
					elem.value = elem.defaultValue;
					jQuery(elem).removeClass(changedClass);
				});
			}
			if (this.value == this.defaultValue) {
				jQuery(this).removeClass(changedClass);
			} else {
				jQuery(this).addClass(changedClass);
			}
			
		});
	};
	
	//content nav
	var init_content_nav = function() {
		$(".contentNav").each(function(){
			var elem = this;
			var items = [];
			var current = -1;
			
			var links = $("a", elem);
			
			var showContent = function(idx) {
				if (current != idx) {
					$(items[current].target).hide();
					$(items[current].elem).removeClass("selected");
					Cufon.replace(items[current].elem);
				}
				if (items[idx] != undefined) {
					$(items[idx].target).show();
					$(items[idx].elem).addClass("selected");
					Cufon.replace(items[idx].elem);
					current = idx;
				}
			};
			
			for (var i=0,n=links.length;i<n;i++) {
				var link = links[i];
				var hash = links[i].hash.replace('#', '');
				var target = undefined;
				if (hash != "") {
					target = $("#" + hash);
					if (target.length) {
						items.push($.extend({
							elem:link,
							hash:hash,
							target:target
						},{}));
					}
				}
			}
			
			for (var i=0,n=items.length;i<n;i++) {
				if ( $(items[i].elem).is(".selected") ) {
					if (current < 0) {
						current = i;
						$(items[i].target).show();
					} else {
						$(items[i].elem).removeClass("selected");
						Cufon.replace(items[i].elem);
						$(items[i].target).hide();
					}
				} else {
					$(items[i].target).hide();
				}
				$(items[i].elem).data("contentNav_idx", i);
				$(items[i].elem).bind('click.contentNav', function(){
					var idx = $(this).data("contentNav_idx");
					showContent(idx);
					this.blur();
					return false;
				});
			}
			
			if (current < 0) {
				current = 0;
			}
			
			
			showContent(current);
		});
	};
	
	var init_header_newsletter_form = function() {
		$(".frmNewsletterSignup").each(function(){
			var frm = this;
			var inp = $("#newsletter_email", frm)[0];
			
			$(frm).bind("submit", function() {
				var v = $.trim(inp.value);
				if (/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(v)) {
					$(inp).removeClass("error");
					
					return true;
				} else {
					$(inp).addClass("error");
				}
				
				return false;
			});
		});
	};
	
	
	$(document).ready(function(){
		if ($.browser.msie && $.browser.version < 7) {
			$("img[src$=png]").pngfix({
				//imageFixSrc: "http://127.0.0.1/c21/www/images/x.gif"
				imageFixSrc: baseurl + "images/x.gif"
			});
		}
		
		//gradient
		Cufon('.univers, .more', {
			fontFamily: 'Univers',
			hover: true,
			hoverables: { li: true, a:true }
			
		});
		
		//shadow
		Cufon('.univers_shadow', {
			fontFamily: 'Univers',
			hover: true,
			hoverables: { li: true, a:true },
			textShadow: '1px 1px #000'
		});
		
		//Cufon
		Cufon('.univers_c, .header .tagline, .newsletterSignupForm .title, .utilnav .nav a, .menu>ul>li>a, .intro_text, .barker_text, .contentNav>li>a, .footer .links a, .footer .copy, .barker_title', {
			hover: true,
			hoverables: { li: true, a:true }
		});
		
		
		Cufon('.label_1, .label_2, .label_3', {
			fontFamily: 'Univers LT Std',
			hover: true,
			hoverables: { li: true, a:true }
		});
		//gradient
		Cufon('.barker_subtext', {
			fontFamily: 'Univers',
			color: '-linear-gradient(#e2e1e1, #9a9999)',
			hover: true,
			hoverables: { li: true, a:true }
			
		});
		
		//preload images
		new preloadImage("images/home_barker-bg_over.png");
		
		
		//newsletter signup
		init_newsletter_signup_form();
		//def text
		init_def_text();
		//content nav
		init_content_nav();
		
		//scroll pane
		if ($.fn.jScrollPane) {
			$(".jScrollPane").jScrollPane({
				scrollbarWidth : 13,
				showArrows : false,
				arrowSize : 0,
				dragMinHeight : 57,
				dragMaxHeight : 57,
				maintainPosition: true
			});
			
			if ( $("link[href$=career_accordion_new.css]").length < 1 ) {
				$(".CorporateOfficePositions .jScrollPane, .DistributionCenter .jScrollPane").jScrollPane({
					scrollbarWidth : 19,
					showArrows : false,
					arrowSize : 0,
					dragMinHeight : 5,
					dragMaxHeight : 5,
					maintainPosition: true
				});
			}
		}
		
		//accordion
		if ($.fn.accordion) {
			$(".accordion").accordion();
		}
		
		//tabs
		if ($.fn.tabs) {
			$(".tabs").tabs();
		}
		
		//scroller
		if ($.fn.scroller) {
			$(".scroller").scroller();
		}
		
		//dropdown
		if (jQuery.dropDownMenu) {
			jQuery(".customDropdown").dropDownMenu({
				scrollPaneOptions: {
					scrollbarWidth : 13,
					showArrows : false,
					arrowSize : 0,
					dragMinHeight : 57,
					dragMaxHeight : 57,
					maintainPosition: true
				}
			});
		}
		
		//dropdown
		if (jQuery.dropdown) {
			jQuery(".customDropdown").dropdown({
				scrollPaneOptions: {
					scrollbarWidth : 13,
					showArrows : false,
					arrowSize : 0,
					dragMinHeight : 57,
					dragMaxHeight : 57,
					maintainPosition: true
				}
			});
		}
		
		//header nav Newsblast form
		init_header_newsletter_form();
		
		
		if ($.browser.msie && $.browser.version < 7) {
			$("img[src$=png]").pngfix({
				//imageFixSrc: "http://127.0.0.1/c21/www/images/x.gif"
				imageFixSrc: baseurl + "images/x.gif"
			});
			
			$("a").mouseover(function(){
				$(this).addClass("IEHover");
			});
			$("a").mouseout(function(){
				$(this).removeClass("IEHover");
			});
			
			$(".jScrollPaneDrag, .jScrollPaneTrack, .Locations .accordion .accordion_content, .Alerts .alert_mobile, .Alerts .alert_email").pngfix({
				//imageFixSrc: "http://127.0.0.1/c21/www/images/x.gif"
				imageFixSrc: baseurl + "images/x.gif"
			});
			
		}
		
		if ($.superbox != undefined) {
			$.superbox();
		}
	});
})(jQuery);


$(window).ready(function () {
	var container = $('div.HSlider');
	var ul = $('ul', container);
	var slider = $('.slider', container);
	
	if (!(container.length > 0 && ul.length > 0 && slider.length > 0 && $.fn.slider)) {
		return;
	}
	
	//var itemsWidth = ul.outerWidth() - container.innerWidth();
	var itemsWidth = 0;
	
	$("li", ul).each(function() {
		itemsWidth += $(this).outerWidth(true);
	});
	ul.css("width", itemsWidth + "px");
	
	itemsWidth -= container.innerWidth();
	
	var nextMousedown, prevMousedown;
	
	slider.slider({
		min: 0,
		max: itemsWidth,
		
		stop: function (event, ui) {
			ul.animate({'left' : ui.value * -1}, 500);
		},
		slide: function (event, ui) {
			ul.css('left', ui.value * -1);
		}
	});
	
	$('.next', container).bind("click", function(e){
		var v = slider.slider("value") + 10;
		if (v > itemsWidth) {
			v = itemsWidth;
		}
		
		slider.slider("value", v);
		ul.css('left', v * -1);
		this.blur();
		return false;
	});
	
	$('.next', container).bind("mousedown", function(e){
		nextMousedown = setInterval(function() {
			var v = slider.slider("value") + 10;
			if (v > itemsWidth) {
				v = itemsWidth;
			}
			
			slider.slider("value", v);
			ul.css('left', v * -1);
			
		}, 10);
		
		$("html").unbind("mouseup.hslider")
			.bind("mouseup.hslider", function(){
				clearInterval(nextMousedown);
			});
		
		this.blur();
		return false;
	});
	
	$('.prev', container).bind("click", function(e){
		var v = slider.slider("value") - 10;
		if (v < 0) {
			v = 0;
		}
		
		slider.slider("value", v);
		ul.css('left', v * -1);
		this.blur();
		return false;
	});
	
	$('.prev', container).bind("mousedown", function(e){
		nextMousedown = setInterval(function() {
			var v = slider.slider("value") - 10;
			if (v < 0) {
				v = 0;
			}
			
			slider.slider("value", v);
			ul.css('left', v * -1);
			
		}, 10);
		
		$("html").unbind("mouseup.hslider")
			.bind("mouseup.hslider", function(){
				clearInterval(nextMousedown);
			});
		
		this.blur();
		return false;
	});
});


function career_show_thanks() {
	if (jQuery(".career_thanks").length > 0) {
		jQuery(".career_thanks").triggerHandler("click");
	}
}

function list_show_thanks() {
	if (jQuery(".mail_list_thanks").length > 0) {
		jQuery(".mail_list_thanks").triggerHandler("click");
	}
}


(function($){
	$(function(){
		/* init main slide */
		if ($("#mainSlides").length > 0) {
			(function($){
				var mainSlide = $("#mainSlides:eq(0)");
				var slides = $(".slide", mainSlide);
				var timeoutDelay = 3500;
				var timeout = 0;
				var curSlide = 0, slidesCount = slides.length;
				
				var clearTimeout = function() {
					if (timeout > 0) {
						window.clearTimeout(timeout);
						timeout = 0;
					}
				}
				
				var setTimeout = function(timeout) {
					clearTimeout();
					timeout = window.setTimeout(function(){
						switchSlide(curSlide, (curSlide + 1) % slidesCount);
					}, timeout);
				}
				
				var switchSlide = function(toHide, toShow) {
					curSlide = toShow;
					
					toHide = $(slides[toHide]);
					toShow = $(slides[toShow]);
					
					toHide.stop();
					toShow.stop();
					
					
					toHide.animate({opacity:0},{queue:false, duration:5000, easing:"easeOutExpo", complete:function(){
						$(this).css({
							opacity:"",
							display:"none"
						});
					}});
					/** yeah, IE again! **/
					if ($.browser.msie && $.browser.version > 7) {
						$("div, cufoncanvas", toHide).stop().each(function(){
							$(this).animate({opacity:0},{queue:false, duration:5000, easing:"easeOutExpo", complete:function(){
								$(this).css({
									opacity:"",
									display:"none"
								});
							}});
						});
					}
					
					toShow.css({
						display:"block",
						opacity:0
					});
					toShow.animate({opacity:1},{queue:false, duration:5000, easing:"easeOutExpo", complete:function(){
						$(this).css({
							opacity:"",
							display:"block"
						});
						
						setTimeout(timeoutDelay);
					}});
					
					/** yeah, IE again! **/
					if ($.browser.msie && $.browser.version > 7) {
						$("div, cufoncanvas", toShow).css({
							opacity:0,
							display:"block"
						}).each(function(){
							$(this).animate({opacity:1},{queue:false, duration:5000, easing:"easeOutExpo", complete:function(){
								$(this).css({
									opacity:"",
									display:"block"
								});
							}});
						});
					}
				}
				
				
				slides.not(":first").hide();
				setTimeout(timeoutDelay);
			})($);
		}
		/****/
	});
})(jQuery);