/* ////////////////////////////////////////////////////////////////////////////////////////////////////

// core.js should only be used for functions that are site-wide
// separate functions that are page specific into page specific javascript files
// camelCase should be used for all variable and function names, e.g. "initLinks()" NOT "init_links()"

//////////////////////////////////////////////////////////////////////////////////////////////////// */

var environment = window.location.toString();
if(environment.indexOf('v8web1-dev') !== -1 || environment.indexOf('v8vcm-dev') !== -1 || environment.indexOf('v8vcm-qa') !== -1){
    document.domain = "misyscorp.local";
}else if (environment.indexOf('V8VCM-dev') !== -1){
    document.domain = "misyscorp.local";
}else if(environment.indexOf('v8vcm-qa') !== -1){
    document.domain = "ratchet.com";
}else if(environment.indexOf('67.192.100.238') !== -1){
	document.domain = "67.192.100.238";
}else if(environment.indexOf('internationaltrucks.com') !== -1){
	document.domain = "internationaltrucks.com";
}else if(environment.indexOf('stagingv8') !== -1){
        document.domain = "stagingv8.internationaltrucks.com";
}else if(environment.indexOf('intltruckdealers.com') !== -1){
        document.domain = "intltruckdealers.com";
}

// this you can cut out and paste into core.js

var homeBannerFunk = {
	index: 0,
	images: [],
	timer: null,
	go: function() {
		_t = this;
		if (_t.index < _t.images.length - 1)
			_t.index++
		else
			_t.index = 0;

		var img = $('.topPromotion img'); // grab image
	        
		img.fadeOut(400, function() {
			img.attr('src', "");
			//$('.isBannerLink').unwrap().removeClass('isBannerLink');
			img.parent().attr('href', _t.images[_t.index].href);
			img.attr('src', _t.images[_t.index].src).attr('alt', _t.images[_t.index].alt).fadeIn(400);

			//if (_t.images[_t.index].href)
			//    img.addClass('isBannerLink').wrap('<a href="' + _t.images[_t.index].href + '" />');
		});
		_t.setTimer();
	},
	setTimer: function() {
		this.timer = setTimeout('_t.go()', 5000);
	},
	init: function(images) {
		_t = this;
		_t.images = images;
		$.each(_t.images, function(k, v){
			var newImage = new Image();
			newImage.src =  _t.images[k].src;
		});
		if( _t.images.length > 1 )
			_t.setTimer();
	}
};


	var dwtInit = {
		init: function(){
			// top navigation
			$('a.navBtnWrapper').hover(
				function(){
					$(this).children().addClass('navHover');
				},
				function(){
					$(this).children().removeClass('navHover');
				}
			);
			// slide menus
			var staticMenus = $('#headerNavigation ul li');
			var slideMenus = $('#headerNavigation ul li ul');
			slideMenus.hide();
			staticMenus.hover(function(){
				var thisNav = $(this);
				thisNav.find('ul').show();
			},
			function(){
				var thisNav = $(this);
				thisNav.find('ul').hide();
			});
			slideMenus.hover(function(){
				$(this).parent().find('a.navBtnWrapper').children().addClass('navHover');
			},
			function(){
				$(this).parent().find('a.navBtnWrapper').children().removeClass('navHover');
			});
			slideMenus.find('li a').live('click',function(){
				slideMenus.hide();
			});
			// close button
			$('a.closeBtn').live('click',function(){
				$('#popupHolder',window.parent.document).animate({opacity:0},500,function(){
					$('#popupHolder',window.parent.document).hide();
				});
				$('#popupScreen',window.parent.document).hide();
				if($('.backdropPop',window.parent.document).length > 0){
					$('.backdropPop',window.parent.document).remove();
				}
				return false;
			});
			// lightboxing
			if(jQuery().lightBox)
				//$('a.lightbox').lightBox();
			
			$('p.linkOut a').live('click',function(){
				var monkey = $(this).attr('href');
				self.parent.window.location = monkey;
				return false;
			});
			dwtInit.signupFormFunction();
			dwtInit.promoFix();
			dwtInit.promoOmniture();
			//dwtInit.removeEmptyV8Nonsense();
		},
		getQueryVariable: function(name, searchInput){
			if(searchInput)
				var query = searchInput.search.substring(1);
			else
				var query = window.location.search.substring(1);
			
			var vars = query.split("&");
			for (var i=0;i<vars.length;i++){
				var pair = vars[i].split("=");
				if (pair[0] == name){
					if(pair[1].indexOf("#") != -1){
						var nohash = pair[1].split("#");
						return nohash[0];
					}
					return pair[1];
				}
			}
			return null;
		},
		oldGarbageMan: function(page){
			// remove elements that should be wrapped in .leftCol
			// and put them in a new .leftCol.
			var isOnLive = window.location.toString().indexOf('v8web1-dev');
			var isOnProd224 = window.location.toString().indexOf('67.192.100.224');
			var isOnProd225 = window.location.toString().indexOf('67.192.100.225');
			var isOnIT = window.location.toString().indexOf('internationaltrucks.com');
			if(isOnLive !== -1 || isOnProd224 !== -1 || isOnProd225 !== -1 || isOnIT !== -1){
				if($('div#content').length > 0 && $('div.leftCol').length > 0 && $('div.leftWrapper').length > 0){
					//console.log('The garbage man can!!!1');
					// get left section
					var leftCol = $('div.leftCol');
					var leftWrapper = $('div.leftWrapper');
					var leftColContents = leftCol.contents();
					var leftWrapperContents = leftWrapper.contents();
					// leftectomy
					leftCol.remove();
					leftWrapper.remove();
					// replace guts with new mechanical monstrocity
					$('div#content').prepend('<div class="leftCol"><div class="leftWrapper"></div></div>');
					$('div.leftCol').prepend(leftColContents);
					$('div.leftWrapper').prepend(leftWrapperContents);
				}
			}
		},
		garbageMan: function(page){
			// nina wants me to break this to fix it so i am.
			// set environment
			var isOnLive = window.location.toString().indexOf('v8web1-dev');
			var isOnLiveQA = window.location.toString().indexOf('v8web1-qa');
			var isOnDev = window.location.toString().indexOf('v8vcm-dev');
			var isOnDevQA = window.location.toString().indexOf('v8vcm-qa');
			var isOnManagement = window.location.toString().indexOf('67.192.100.238');
			var isOnProd224 = window.location.toString().indexOf('67.192.100.224');
			var isOnProd225 = window.location.toString().indexOf('67.192.100.225');
			var isOnIT = window.location.toString().indexOf('internationaltrucks.com');
			// if on non-preview environment, run code
			if(isOnLive !== -1 || isOnLiveQA !== -1 || isOnProd224 !== -1 || isOnProd225 !== -1 || isOnIT !== -1){
				//console.log('The garbage man can!!!1');
				var wrapElements = false;
				var element = $('div#content > div:nth-child(1)');
				var elementA = element.find('> div:nth-child(1)');
				var elementB = element.find('> div:nth-child(2)');
				var elementC = element.find('> div:nth-child(3)');
				var elementD = element.find('> div:nth-child(4)');
				var rightColMargin = '0';
				if(page == 'partsAndService'){
					$('div#content > div:nth-child(1)').addClass('leftColFix');
					/*
					$('div#content > div:nth-child(2)').addClass('leftColFix');
					$('div#content > div:nth-child(3)').addClass('leftColFix');
					$('div#content > div:nth-child(4)').addClass('leftColFix');
					*/
					/*
					elementA.addClass('leftColFix');
					elementB.addClass('leftColFix');
					elementC.addClass('leftColFix');
					elementD.addClass('leftColFix');
					*/
					rightColMargin = '-348px';
					wrapElements = false;
				} else if(page == 'truckInventory'){
					elementA.addClass('leftColFix');
					elementB.addClass('leftColFix');
					rightColMargin = '-93px';
					wrapElements = true;
				} else if(page == 'finance'){
					elementA.addClass('leftColFix');
					elementB.addClass('leftColFix');
					rightColMargin = '-165px';
					wrapElements = true;
				} else if(page == 'genericContent'){
					$('div#content > div:nth-child(1)').addClass('leftColFix');
					$('div#content > div:nth-child(2)').addClass('leftColFix');
					$('div#content > div:nth-child(3)').addClass('leftColFix');
					rightColMargin = '-279px';
					wrapElements = false;
				}
				if(wrapElements){
					// wrap all divs that aren't of class .leftColFix
					$('div#content > div:nth-child(1) > div:not(.leftColFix)').wrapAll('<div class="rightCol"></div>');
				} else {
					$('div#content > div:not(.leftColFix)').wrapAll('<div class="rightCol"></div>');
				}
				$('div.rightCol').css('marginTop',rightColMargin);
			}
			/*
			if(isOnDev !== -1){
				var elementA = $('div#content:nth-child(1)');
				elementA.wrap('<div class="leftCol"></div>');
			}
			*/
		},
		removeEmptyV8Nonsense: function(){
			function v8regions(){
				var v8regions = $('div.vgn-ext-region');
				v8regions.each(function(){
					var kurios = $(this).contents();
					$(this).replaceWith(kurios);
					v8components();
				});
			}
			function v8components(){
				var v8components = $('div.vgn-ext-component');
				v8components.each(function(){
					var stoikios = $(this).contents();
					$(this).replaceWith(stoikios);
				});
				v8empties();
			}
			function v8empties(){
				var v8empties = $('div:not([class]):not([id]):not([style])');
				v8empties.each(function(){
					var koinos = $(this).contents();
					$(this).replaceWith(koinos);
				});
			}
			//v8regions();
			v8empties();
		},
		contentTabbing: function(defaultVarsBool, varsArray, javaTabNum){
			if(defaultVarsBool == true && varsArray == null){
				// default functions
				var tabNumber = $('.leftBody').children().length;
				var contentTabQuery = 'tabOpen';
				var contentDivs = $('div.leftBody').children();
				var tabLevel = $('div.leftHead h2');
				var tabLevelString = 'div.leftHead h2';
				var activeClass = 'leftHeadActive';
				var hoverClass = 'leftHeadHover';
			}
			else{
				// non-default functions
				var tabNumber = varsArray.tabNumber;
				var contentTabQuery = varsArray.contentTabQuery;
				var contentDivs = varsArray.contentDivs;
				var tabLevel = varsArray.tabLevel;
				var tabLevelString = varsArray.tabLevelString;
				var activeClass = varsArray.activeClass;
				var hoverClass = varsArray.hoverClass;
			}
			tabID = [];
			for(i=1;i<=tabNumber;i++){
				tabID[i] = $('#tab'+i);
			}
			var tabIDLength = tabID.length;
			contentDivs.hide();// hide all content
			removeActiveClass(); // remove active classes
			function removeActiveClass(){
				tabLevel.removeClass(activeClass);
			}
			tabQuery(javaTabNum); // check query string
			function tabQuery(javaTabNum){
				if(javaTabNum != null){
					var tabOpen = javaTabNum;
				}
				else{
					var tabOpen = $.query.get(contentTabQuery);
				}
				var tabHead = [];
				for(i=1;i<=tabNumber;i++){
					tabHead[i] = $(''+tabLevelString+'.tab'+i);
				}
				runQuery();
				function runQuery(){
					if(tabOpen != null && tabOpen<=tabNumber && tabOpen>0){
						tabHead[tabOpen].addClass(activeClass);
						contentDivs.hide();
						tabID[tabOpen].show();
					}
					else{
						tabHead[1].addClass(activeClass);
						contentDivs.hide();
						tabID[1].show();
					}
				}
			}
			// tab hover
			tabLevel.hover(
				function(){
					$(this).addClass(hoverClass);
				},
				function(){
					$(this).removeClass(hoverClass);
				}
			);
			// tab click

			tabLevel.live('click',function(){
				genOmn.init("channel:"+dwtUrlData[2]+">"+(dwtIsAdmin ? 'Admin>' : '')+dwtUrlData[3]+">"+$(this).text()+", prop6:"+$(this).text());

				var _this = $(this);
				removeActiveClass();
				_this.addClass(activeClass);
				for(i=1;i<=tabNumber;i++){
					if(_this.hasClass('tab'+i)){
						contentDivs.hide();
						tabID[i].show();
					}
				}
			});
		},
		signupFormFunction: function(){
			var rightSignupForm = $('#rightSignupForm');
			if(rightSignupForm.length > 0){
				var defaultValue = 'Enter your email';
				rightSignupForm.focus(function(){
					if($(this).val() == defaultValue){
						$(this).val('');
					}
				});
				rightSignupForm.blur(function(){
					if($(this).val() == ''){
						$(this).val(defaultValue);
					}
				});
			}
			var goBtn = $('div.rightSignup div.rightSignupGoBTN');
			goBtn.live('click',function(){
				genOmn.init("events:event7");

				var emailVal = $('div.rightSignup input#rightSignupForm').val();
				var tooaddress = $('input#financeEmailString').val();
				var validEmail = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
				var isValid = validEmail.test(emailVal);
				if(emailVal == '' || emailVal == 'Enter your email' || !isValid){
					$('div.rightSignup > p').html('Please enter a valid email address');
					return false;
				}
				else{
					//var url = "/dwtadmin/secure/dwt/enewsletter.jsp?email="+emailVal+"&origin=flash"
					var url = "/vgn-ext-templating/dwt/jsp/common/enewsletter.jsp?email="+emailVal+"&origin=flash&toaddress="+tooaddress;
					$('div.rightSignup input#rightSignupForm').val('Enter your email');
					//window.location = url
					openNewsletter(url, 400, 700);
					return false;
				}
			});
			function openNewsletter(url, height, width){
				$('#popupHolder .popupContent').height(height+20);
				$('#popupHolder .popupContent #iframeContent').height(height);
				$('#iframeContent').bind('load',function(){newsletterWidth(width)});
				$('#iframeContent').attr('src',url);
				$('#popupScreen, #popupHolder').css({'opacity':0,'display':'block'});
				$('#popupScreen').animate({opacity:0.8},500);
				$('#popupHolder').animate({opacity:1},500);
				return false;
			}
			function newsletterWidth(pxWide){
				$('.roundWrapper .roundMid').width(pxWide-20);
				$('.popupContent, .popupHolder')
					.css('overflow','hidden')
					.width(pxWide);
				//iframe special commands
				$('#iframeContent').contents()
					.find('body')
					.css('overflow','hidden')
					.css('margin','0')
					.css('padding','0')
					.css('background','#FFFFFF')
					.width(pxWide);
				$('iframeContent').css('overflow','hidden');
				$('#iframeContent').unbind('load');
				newsletterCenter();
				return false;
			}
			function newsletterCenter(){
				var windowScrollTop = $(window).scrollTop();
				var windowHeight = $(window).height();
				var halfWindowHeight = windowHeight/2;
				var holderOuterHeight = $('#popupHolder').outerHeight();
				var halfHolderOutHeight = holderOuterHeight/2;
				var holderTopPos = halfWindowHeight - halfHolderOutHeight + windowScrollTop;
				$('#popupScreen').css('top', windowScrollTop);
				$('#popupHolder').css('top', holderTopPos);
				
				var windowWidth = $(window).width();
				var halfWindowWidth = windowWidth/2;
				var holderOuterWidth = $('#popupHolder').outerWidth();
				var halfHolderOutWidth = holderOuterWidth/2;
				var holderLeftPos = halfWindowWidth - halfHolderOutWidth;
				$('#popupHolder').css('left', holderLeftPos);
				
				var _window = $(window);
				var popupScreen = $('#popupScreen');
				var popupHolder = $('#popupHolder');
				_window.scroll(function(){
					popupScreen.css('top',$(document).scrollTop());
					//popupHolder.css('top',holderTopPos + $(window).scrollTop());
				});
				
				return false;
			}
		},
		hoursTable: function(){
			$('#hoursTable .hoursDiv p:not(.hoursHead)').hide();
			var firstHoursHead = $('p.hoursHead:first');
			firstHoursHead.siblings().show();
			firstHoursHead.addClass('activeHours');
			$('p.hoursHead').click(function(){
				if($(this).hasClass('activeHours')){
					$(this).siblings().slideUp('500');
					$(this).removeClass('activeHours');
				}
				else{
					$('#hoursTable .hoursDiv p:not(.hoursHead)').slideUp('500');
					$('#hoursTable .hoursDiv p.hoursHead').removeClass('activeHours');
					$(this).addClass('activeHours');
					$(this).siblings().slideDown('500');
				}
			});
		},
		signupFormOnTop: function(){
			$('div.rightSignup').addClass('rightSignupLone');
		},
		focusAndBlur: function(thisObj, defaultValue){
			thisObj.focus(function(){
				if(thisObj.val() == defaultValue){
					thisObj.val('');
				}
			});
			thisObj.blur(function(){
				if(thisObj.val() == ''){
					thisObj.val(defaultValue);
				}
			});
		},
		lightBoxFunction: function(){
			//$('a.lightbox').lightBox();
		},
		siblingHide: function(){
			var clickToggle = $('.clickHideSibling');
			clickToggle.live('click',function(){
				var _this = $(this);
				var toggleText = _this.find('a');
				var siblingString = '.siblingToHide'; // string to inject in hide function
				_this.siblings(''+siblingString+'').slideToggle('500');
				if(toggleText.html() == 'Hide'){
					toggleText.html('Show');
					//rightCol.addClass('newHeight');
				}
				else{
					toggleText.html('Hide');
				}
				return false;
			});
		},
		newsWidthFix: function(){
			// if news story has no image, extend content width to end of box
			var newsContent = $('div.newsContent');
			newsContent.each(function(){
				hasNewsImg = $(this).siblings('.newsImg');
				if(hasNewsImg.length <= 0){
					$(this).addClass('newsContentNoIMG');
				}
			});
		},
		truckDetailRotator: function(){
			// limit height of sidebar
			var largePicDiv = $('#truckPicsRotator div.largePic');
			var largePicDivImg = largePicDiv.find('img');
			var rotatorDiv = $('#truckPicsRotator .picRotator');
			var rotatorPic = rotatorDiv.find('img');
			var maxHeight = largePicDiv.height();
			//rotatorDiv.css('height',maxHeight);
			// change pic
			rotatorPic.live('click',function(){
				var _this = $(this);
				rotatorPic.removeClass('active');
				_this.addClass('active');
				//var picID = _this.attr('id').split('rotator');
				var picID = _this.attr('id');
				var picIDXL = picID.replace('thumbnails','xl');
				//var picNum = picId[1];
				//largePicDiv.html('<img src="/StaticFiles/dwt/common/images/truck_pics/largeTruckPic'+picNum+'.jpg" alt="I am Big!" />');
				largePicDiv.html('<img src="'+picIDXL+'" width="467" alt="Large Photo" />');
			});
			// enable rotation
			//$('.picRotator .picThumbs img').quickpaginate();
		},
		dealershipMap: function(){
			// dealer button functions
			var thisBtn = $('#dealershipInfoBTNs .infoWrapper');
			var allBtn = $('#dealershipInfoBTNs').children();
			var dealerPic = $('.dealershipPic img');
			thisBtn.hover(
				function(){
					$(this).addClass('infoWrapperHover');
				},
				function(){
					$(this).removeClass('infoWrapperHover');
				}
			);
		},
		contactFormQuery: function(){
			var departmentName = $.query.get('department');
			$('div#contactForm select#department option').removeAttr('selected');
			$('div#contactForm select#department').find('option#'+departmentName+'Dep').attr('selected', true);
		},
		serviceButtonFix: function(){
			$('serviceBTNs img:last').addClass('serviceBTNLast');
		},
		promoOmniture: function(){
			$('div.rightPromoCommon a').live('click',function(){
				var promoTitle = $(this).find('img').attr('title');
				genOmn.init("events:event2, eVar3:"+promoTitle);
			});
		},
		promoCapFix: function(){
			$('<div class="rightPromoHeadCap">&nbsp;</div>').insertBefore('div.rightPromoHead');
		},
		promoFix: function(){
			$('.rightPromoCommon:last').addClass('rightPromoCommonLast');
			$('<div class="rightPromoHead">&nbsp;</div><br class="clearRight" />').insertBefore('div.rightPromoCommon:first');
			$('<div class="rightPromoFoot">&nbsp;</div><br class="clearRight" />').insertAfter('div.rightPromoCommon:last');
			/*add http://
			$('.rightPromoCommon a:not(.blankPopupClass)').each(function(){
				var promoLinkTemp = $(this).attr('href');
				var promoHttpCheck = promoLinkTemp.indexOf('http://');
				if(promoHttpCheck == -1){
					$(this).attr('href','http://'+promoLinkTemp);
				}
			});
			*/
		},
		homePage: function(javaTabNum){
			dwtInit.init();
			dwtInit.contentTabbing(true, null, javaTabNum);
			dwtInit.lightBoxFunction();
			dwtInit.signupFormOnTop();
			//dwtInit.dealerFirstPromoFix();
		},
		newAndUsedTrucksPage: function(){
			dwtInit.siblingHide();
			dwtInit.init();
			dwtInit.oldGarbageMan('truckInventory');
		//dwtInit.garbageMan();
			//dwtInit.corporateFirstPromoFix();
		},
		pasPage: function(javaTabNum){
			dwtInit.init();
			dwtInit.serviceButtonFix();
			dwtInit.contentTabbing(true, null, javaTabNum);
			dwtInit.newsWidthFix();
			dwtInit.lightBoxFunction();
			dwtInit.garbageMan('partsAndService');
			//dwtInit.dealerFirstPromoFix();
		},
		viewAllPartsPage: function(){
			dwtInit.serviceButtonFix();
			dwtInit.init();
			dwtInit.lightBoxFunction();
			//dwtInit.dealerFirstPromoFix();
		},
		financePage: function(){
			dwtInit.siblingHide();
			//dwtInit.paymentEstimator();
			dwtInit.init();
			//dwtInit.dealerFirstPromoFix();
			dwtInit.signupFormOnTop();
			dwtInit.oldGarbageMan('finance');
		//dwtInit.garbageMan();
			dwtInit.promoCapFix();
		},
		vehicleDetailPage: function(){
			dwtInit.init();
			dwtInit.truckDetailRotator();
			dwtInit.siblingHide();
			//dwtInit.corporateFirstPromoFix();
		},
		newsAndEventsPage: function(javaTabNum){
			dwtInit.init();
			dwtInit.contentTabbing(true, null, javaTabNum);
			dwtInit.newsWidthFix();
		},
		newsAndEventsDetailPage: function(){
			dwtInit.init();
		},
		genericContentPage: function(){
			dwtInit.init();
			dwtInit.signupFormOnTop();
			dwtInit.garbageMan('genericContent');
		//dwtInit.garbageMan();
		},
		contactUsPage: function(){
			dwtInit.init();
			dwtInit.dealershipMap();
			dwtInit.siblingHide();
			//dwtInit.hoursTable();
		},
		contactForm: function(){
			dwtInit.init();
			dwtInit.contactFormQuery();
		}
	}
	var ajax = {
		    go: function(type, url, data, returnData, callback, extraData) {
				$.ajax({
					type: type,
					url: url,
					data: data,
					success: function(msg){
					if(returnData)
						callback(msg, extraData);
					else
						callback();
					},
				error: function(XMLHttpRequest, textStatus, errorThrown){
					//alert('There has been an error with your request, please try again.');
				}
			});
		}
	};
/* //////////////////////////////////////////////////////////////////////////
// Returns url hash
////////////////////////////////////////////////////////////////////////// */

function getUrlVars()
{
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for(var i = 0; i < hashes.length; i++)
    {
        hash = hashes[i].split('=');
        //vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}
