$j(function() {
	$j(".carousel .dl").each(function() {
		var dl = $j(this);
		var slides = $j(".slide", this);
		slides.each(function() {
			$j('.head', this).insertAfter($j('.photo', this));
			var lnkVal = $j('.stext .more a:first', this).attr('href');
			if(lnkVal) {
				$j('.photo img', this).wrap('<a href="'+ lnkVal +'"></a>');
				$j('.stext .more', this).remove();
			}
		});
		var total = slides.length;
		if (total < 4) return;
		var ctrls = $j("<div class='prevnext'></div>")
		$j("<a href='#0' class='previous_btn' disabled='disabled'><span>Previous</span></a>")
			.bind("click", function(event) {
				var currPos = this.hash.substr(1);
				if(currPos > 0) {
					var counter = $j(".counter", this.parentNode);
					this.href = "#" + --currPos;
					$j(".next_btn", this.parentNode).attr("href", "#" + currPos).removeAttr("disabled");
					$j(slides[currPos]).show();
					$j(slides[currPos+3]).hide();
					counter.html((currPos+1) + " - " + (currPos+3) + " of " + total);
				}
				if (currPos <= 0) {
					$j(this).attr("disabled", "disabled");
				}
				return false;
			})
			.css({float: "left"})
			.appendTo(ctrls);
		$j("<a href='#0' class='next_btn'><span>Next</span></a>")
			.bind("click", function(event) {
				var currPos = this.hash.substr(1);
				if(currPos < total-3) {
					var counter = $j(".counter", this.parentNode);
					this.href = "#" + ++currPos;
					$j(".previous_btn", this.parentNode).attr("href", "#" + currPos).removeAttr("disabled");
					$j(slides[currPos-1]).hide();
					$j(slides[currPos+2]).show();
					counter.html((currPos+1) + " - " + (currPos+3) + " of " + total);
				}
				if (currPos >= total-3) {
					$j(this).attr("disabled", "disabled");
				}
	
				return false;
			})
			.css({float: "right"})
			.appendTo(ctrls);
		
		$j("<span class='counter'>1 - " + (total < 3 ? total : 3) + " of " + total + "</span>").appendTo(ctrls);
		ctrls.prependTo($j('.carousel .dl'))
		$j("<div class='clear'></div>").appendTo(this);
		dl.css({width: (209 * total) + "px"});
	});
	$j('#trafficBtn').bind('click',function(){getTraffic();});	
	$j("#trafficcity").keypress(function(event){if(checkTrafficEvent(event)) return true;else return false;});
	$j("#trafficstate").keypress(function(event){if(checkTrafficEvent(event)) return true;else return false;});
	$j("#trafficzip").keypress(function(event){if(!validateNumber(event)){	if(event.keyCode==13 && $j(this).val().length !=5){alert('Please enter a valid 5-digit zip code.');$j(this).focus();return false;}	else if(event.keyCode==13) getTraffic(); else return false; }});

	$j('#gaspriceBtn').bind('click',function(){getGasPrice();});	
	$j("#gaspricecity").keypress(function(event){if(checkGasPriceEvent(event)) return true;else return false;});
	$j("#gaspricestate").keypress(function(event){if(checkGasPriceEvent(event)) return true;else return false;});
	$j("#gaspricezip").keypress(function(event){ if(!validateNumber(event)){ if(event.keyCode==13 && $j(this).val().length !=5){alert('Please enter a valid 5-digit zip code.');$j(this).focus();return false;} else if(event.keyCode==13) getGasPrice(); else return false; }});
	
	$j('#ckprice').bind('click',function(){showPrice();});		
	$j('#ckdist').bind('click',function(){showDist();});		
	$j(".map-view-street").bind('click',function(){
		getTrafficOmniture();
	});
	
	$j(".map-view-aerial").bind('click',function(){
		getTrafficOmniture();
		setMapDivTag("#mqsattilediv");
	});
	
	$j(".map-view-hybrid").bind('click',function(){
		getTrafficOmniture();
		setMapDivTag("#mqhybtilediv");
	});

	$j(".map-zoom").bind('click',function(){
		getTrafficOmniture();
	});
	$j(".map-compass").bind('click',function(){
		getTrafficOmniture();
	});
	omnitureOnDragMap();
	clearFields("traffic");
	clearFields("gasprice");	
});

function getTraffic(){
	var address='';
	var city = $j("#trafficcity").val();
	var state = $j("#trafficstate").val();
	var postalCode = $j("#trafficzip").val();
	if (postalCode !=null && postalCode !=''){ if(escape(postalCode).length != 5) {alert('Please enter a valid 5-digit zip code.');return false;} createCookieObj('zip',escape(postalCode),30);eraseCookieObj("cityState");}		
	if (postalCode ==null || postalCode =='' && ((city !=null && city !='' && state !=null && state !='') || (state !=null && state !=''))){createCookieObj('cityState',escape(city+','+state),30);	}		
	if (city != null && city !='' && address !='') address = address+'-'+city.replace(/, /g,'-').replace(/ /g,'-').replace(/,/g,'-'); else address = address+city.replace(/, /g,'-').replace(/ /g,'-').replace(/,/g,'-');
	if (state != null && state !=''  && address !='') address = address+'-'+state;else address = address+state;
	if (postalCode != null && postalCode !=''  && address !='') address = address+'-'+postalCode;else address = address+postalCode;
	if (address ==null || address ==""){ alert("Please enter city,state or zip");return false;}
	document.location.href="/"+address+"-traffic";
}
function checkTrafficEvent(event) {if(checkEnter(event)){getTraffic();}var kn = null;document.all?kn=event.keyCode:kn=event.which;if((kn >47 && kn < 58) || kn ==8 || kn ==0)return true;else return true;}

function getGasPrice(){
	var address='';
	var city = $j("#gaspricecity").val();
	var state = $j("#gaspricestate").val();
	var postalCode = $j("#gaspricezip").val();
	if (postalCode !=null && postalCode !=''){ if(escape(postalCode).length != 5) {alert('Please enter a valid 5-digit zip code.');return false;} createCookieObj('zip',escape(postalCode),30);eraseCookieObj("cityState");}	
	if (postalCode ==null || postalCode =='' && ((city !=null && city !='' && state !=null && state !='') || (state !=null && state !=''))){createCookieObj('cityState',escape(city+','+state),30);	}		
	if (city !='' && city !=null && address !='') address = address+'-'+city.replace(/, /g,'-').replace(/ /g,'-').replace(/,/g,'-'); else  address = address+city.replace(/, /g,'-').replace(/ /g,'-').replace(/,/g,'-');
	if (state !='' && state !=null  && address !='') address = address+'-'+state;else address = address+state;
	if (postalCode !='' && postalCode !=null  && address !='') address = address+'-'+postalCode;else address = address+postalCode;
	if (address ==null || address ==""){ alert("Please enter city,state or zip");return false;}
	document.location.href="/"+address+"-gas-prices";
}
function validateNumber(event) {var kn = null;document.all?kn=event.keyCode:kn=event.which;  if((kn >47 && kn < 58) || kn ==8 || kn ==0)return true;else return false;}
function checkGasPriceEvent(event) {if(checkEnter(event)){getGasPrice();}var kn = null;document.all?kn=event.keyCode:kn=event.which;if((kn >47 && kn < 58) || kn ==8 || kn ==0)return true;else return true;}
function checkEnter(e) {var kC = window.event ? event.keyCode : e && e.keyCode ? e.keyCode : e && e.which ? e.which : null;if (kC) return kC == 13;else return false;}
function getTrafficOmniture() {
	var preFix = "aut : "
 	s_265.prop1 = preFix+"Map";
 	s_265.prop2 = preFix+"Map_Traffic";
 	s_265.pageName = preFix+"Map_Traffic_Detail";
 	s_265.prop12 = document.location.href;
 	s_265.prop19 = "";
 	s_265.prop20 = "";
 	s_265.prop21 = "";
 	s_265.prop23 = "";
 	var s_code=s_265.t();if(s_code)document.write(s_code);
	var timeStamp = new Date().getTime();
	jQuery.ajax({ type: "GET",  url: "/mm_track?cId="+timeStamp,  dataType: "text/html"});
 	
}
function showDist() {
	$j("#ckprice").removeAttr("class").bind("click", function(){showPrice();});
	$j("#ckdist").attr("class","inact").unbind("click");
	$j("#price").attr("class","clsHide");
	$j("#distance").attr("class","clsShow");
}

function showPrice() {
	$j("#ckdist").removeAttr("class").bind("click", function(){showDist();});
	$j("#ckprice").attr("class","inact").unbind("click");
	$j("#price").attr("class","clsShow");
	$j("#distance").attr("class","clsHide");
}

function getDefaultTraffic(id,num,lat,lon) {
	var defaultMap = new MQA.TileMap(document.getElementById(id),num,new MQA.LatLng(lat,lon));
	defaultMap.addControl(new MQA.LargeZoomControl());
	var myTrafficCtrl = new MQA.TrafficControl();
	defaultMap.addControl(myTrafficCtrl,new MQA.MapCornerPlacement(MQA.MapCorner.TOP_LEFT, new MQA.Size(330,20))); 
	myTraffic = new MQA.Traffic(defaultMap);
	myVControl = new MQA.ViewControl(defaultMap);
	MQA.EventManager.addListener(myTrafficCtrl,'refreshclick',alterTitle);
	MQA.EventManager.addListener(myTrafficCtrl,'activate',alterTitle);
	MQA.EventManager.addListener(myTrafficCtrl,'legendclose',alterTitle);
	MQA.EventManager.addListener(myTrafficCtrl,'legendopen',alterTitle);
	//No Event Listener found for zoom actions. Hence using jQuery.
	$j(".map-zoom").click(function(){alterTitle();});
	defaultMap.addControl(myVControl, new MQA.MapCornerPlacement(MQA.MapCorner.TOP_RIGHT, new MQA.Size(20,20)));			  
	fireEvent(document.getElementById('trafficButtonImage'),"click");
	alterTitle();
}

function alterTitle(){var title=jQuery('#titleBarDiv');title.html(title.html().replace(/undefined/,''));}

function fireEvent(element,event){
	var ie=$j.browser.msie;
    if (ie){
        var evt = document.createEventObject();
        return element.fireEvent('on'+event,evt)
    }
    else{
        var evt = document.createEvent("MouseEvents");
        evt.initEvent(event, true, true );
        return !element.dispatchEvent(evt);
    }
}
function omnitureOnDragMap()
{	//IE specific
	setMapDivTag("#mqmaptilediv");
	setMapDivTag("#mqOverlayDiv");
	//FF Specific
	setMapDivTag("svg");
}

var x,y,a,b;
function moveMouse(e) {
    a=e.clientX;
    b=e.clientY;
 if(a!=x||b!=y) getTrafficOmniture();
 }
function selectMouse(e) {
    x=e.clientX;
    y=e.clientY;
 a=x;b=y;
}

function setMapDivTag(id)
{
jQuery(id).unbind("mousedown");
jQuery(id).unbind("mouseup");
jQuery(id).mousedown(function(e){
    selectMouse(e);
   });
 jQuery(id).mouseup(function(e){
    moveMouse(e);
   });
}

var chgAdd = true;

function clearFields(type)
{
	$j("#"+type+"city").bind('keypress',function(){
		if (chgAdd){
		document.getElementById(type+"state").value ='';
		document.getElementById(type+"zip").value ='';
		chgAdd = false;
		}
	});
	$j("#"+type+"state").bind('keypress',function(){
		if (chgAdd){
		document.getElementById(type+"city").value ='';
		document.getElementById(type+"zip").value ='';
		chgAdd = false;
		}
	});
	$j("#"+type+"zip").bind('keypress',function(){
		if (chgAdd){
		document.getElementById(type+"city").value ='';
		document.getElementById(type+"state").value ='';
		chgAdd = false;
		}
	});
}
//cookie code
function createCookieObj(name,value,days) {
        if (days) {
                var date = new Date();
                date.setTime(date.getTime()+(days*24*60*60*1000));
                var expires = "; expires="+date.toGMTString();
        }
        else var expires = "";
        document.cookie = name+"="+value+expires+"; path=/";
}
function eraseCookieObj(name) {
	createCookieObj(name,"",-1);
}