// Quality Chevy Menu JS by Josh

(function(){

function initQCMenus(){
	function showQCMenu(e, obj){
		oMenuNew.hide();
		oMenuUsed.hide();
		oMenuSpecials.hide();
		oMenuFinance.hide();
		oMenuParts.hide();
		oMenuService.hide();
		oMenuContact.hide();
		obj.show();
	}
	var oMenubarNew = document.getElementById("qc_MenubarNew");
	var oMenubarUsed = document.getElementById("qc_MenubarUsed");
	var oMenubarSpecials = document.getElementById("qc_MenubarSpecials");
	var oMenubarFinance = document.getElementById("qc_MenubarFinance");
	var oMenubarParts = document.getElementById("qc_MenubarParts");
	var oMenubarService = document.getElementById("qc_MenubarService");
	var oMenubarContact = document.getElementById("qc_MenubarContact");
    var oMenuNew = new YAHOO.widget.Menu("qc_MenuNew", {shadow: false, hidedelay: 1, constraintoviewport: false, monitorresize: false, iframe: false});
	var oMenuUsed = new YAHOO.widget.Menu("qc_MenuUsed", {shadow: false, hidedelay: 1, constraintoviewport: false, monitorresize: false, iframe: false});
	var oMenuSpecials = new YAHOO.widget.Menu("qc_MenuSpecials", {shadow: false, hidedelay: 1, constraintoviewport: false, monitorresize: false, iframe: false});
	var oMenuFinance = new YAHOO.widget.Menu("qc_MenuFinance", {shadow: false, hidedelay: 1, constraintoviewport: false, monitorresize: false, iframe: false});
	var oMenuParts = new YAHOO.widget.Menu("qc_MenuParts", {shadow: false, hidedelay: 1, constraintoviewport: false, monitorresize: false, iframe: false});
	var oMenuService = new YAHOO.widget.Menu("qc_MenuService", {shadow: false, hidedelay: 1, constraintoviewport: false, monitorresize: false, iframe: false});
	var oMenuContact = new YAHOO.widget.Menu("qc_MenuContact", {shadow: false, hidedelay: 1, constraintoviewport: false, monitorresize: false, iframe: false});
    oMenuNew.render();
	oMenuUsed.render();
	oMenuSpecials.render();
	oMenuFinance.render();
	oMenuParts.render();
	oMenuService.render();
	oMenuContact.render();
	YAHOO.util.Event.addListener(oMenubarNew, "mouseover", showQCMenu, oMenuNew);
	YAHOO.util.Event.addListener(oMenubarUsed, "mouseover", showQCMenu, oMenuUsed);
	YAHOO.util.Event.addListener(oMenubarSpecials, "mouseover", showQCMenu, oMenuSpecials);
	YAHOO.util.Event.addListener(oMenubarFinance, "mouseover", showQCMenu, oMenuFinance);
	YAHOO.util.Event.addListener(oMenubarParts, "mouseover", showQCMenu, oMenuParts);
	YAHOO.util.Event.addListener(oMenubarService, "mouseover", showQCMenu, oMenuService);
	YAHOO.util.Event.addListener(oMenubarContact, "mouseover", showQCMenu, oMenuContact);
}

function initMiniGauges(){
	function shine(e){
		YAHOO.util.Event.stopPropagation(e);
		var oTarget = YAHOO.util.Event.getTarget(e);
		if(!YAHOO.util.Dom.hasClass(oTarget, "qc_MiniGauge")){
			var oTarget = YAHOO.util.Dom.getAncestorByClassName(oTarget, "qc_MiniGauge");
		}
		YAHOO.util.Event.removeListener(oTarget, "mouseover");
		var oChildren = YAHOO.util.Dom.getChildren(oTarget);
		var oIMG = oChildren[0];
		var oShine = oChildren[1];
		var oLeft = new YAHOO.util.Anim(oShine, {
				left: { to: 50 }
			}, .5, YAHOO.util.Easing.easeNone);
		oLeft.animate();
		oLeft.onComplete.subscribe(
			function(){
				oShine.style.left = -210 + "px";
			}
		);
		if(!YAHOO.env.ua.ie){ // Damnit IE...
			YAHOO.util.Event.addListener(oIMG, "mouseout",
				function(){
					YAHOO.util.Event.addListener(oTarget, "mouseover", shine);
				}
			);
		}
	}
	var oMiniGauges = YAHOO.util.Dom.getElementsByClassName("qc_MiniGauge");
	YAHOO.util.Event.addListener(oMiniGauges, "mouseover", shine);
}

function initBigGauges(){
	function shine(e){
		YAHOO.util.Event.stopPropagation(e);
		var oTarget = YAHOO.util.Event.getTarget(e);
		if(!YAHOO.util.Dom.hasClass(oTarget, "qc_BigGauge")){
			var oTarget = YAHOO.util.Dom.getAncestorByClassName(oTarget, "qc_BigGauge");
		}
		YAHOO.util.Event.removeListener(oTarget, "mouseover");
		var oChildren = YAHOO.util.Dom.getChildren(oTarget);
		var oIMG = oChildren[0];
		var oShine = oChildren[1];
		var oLeft = new YAHOO.util.Anim(oShine, {
				left: { to: 200 }
			}, .5, YAHOO.util.Easing.easeNone);
		oLeft.animate();
		oLeft.onComplete.subscribe(
			function(){
				oShine.style.left = -210 + "px";
			}
		);
		if(!YAHOO.env.ua.ie){ // Damnit IE...
			YAHOO.util.Event.addListener(oIMG, "mouseout",
				function(){
					YAHOO.util.Event.addListener(oTarget, "mouseover", shine);
				}
			);
		}
	}
	var oBigGauges = YAHOO.util.Dom.getElementsByClassName("qc_BigGauge");
	YAHOO.util.Event.addListener(oBigGauges, "mouseover", shine);
}

function initFadeButtons(){
	function fadeLoop(e){
		YAHOO.util.Event.stopPropagation(e);
		var oTarget = YAHOO.util.Event.getTarget(e);
		if(oTarget.nodeName.toUpperCase() != "A"){
			var oTarget = YAHOO.util.Dom.getAncestorByTagName(oTarget, "a");
		}
		YAHOO.util.Event.removeListener(oTarget, "mouseover");
		function stopFade(){
			oMouseOut = true;
		}
		function keepGlowing(){
			if(oMouseOut == false){
				oOpacity.animate();
			} else {
				YAHOO.util.Event.addListener(oTarget, "mouseover", fadeLoop);
			}
		}
		var oMouseOut = false;
		YAHOO.util.Event.addListener(oTarget, "mouseout", stopFade);
		var oOpacity = new YAHOO.util.Anim(oTarget, {
				opacity: { to: 1 }
			}, .25, YAHOO.util.Easing.easeNone);
		oOpacity.animate();
		oOpacity.onComplete.subscribe(
			function(){
				var oOpacity2 = new YAHOO.util.Anim(oTarget, {
						opacity: { to: 0 }
					}, .25, YAHOO.util.Easing.easeNone);
				oOpacity2.animate();
				oOpacity2.onComplete.subscribe(
					function(){
						keepGlowing();
					}
				);
			}
		);
	}
	var oFadeButtons = YAHOO.util.Dom.getElementsByClassName("qc_FadeButton");
	YAHOO.util.Dom.setStyle(oFadeButtons, "visibility", "visible");
	YAHOO.util.Dom.setStyle(oFadeButtons, "opacity", "0");
	YAHOO.util.Event.addListener(oFadeButtons, "mouseover", fadeLoop);
}

YAHOO.util.Event.onDOMReady(initQCMenus);
YAHOO.util.Event.onDOMReady(initFadeButtons);
YAHOO.util.Event.onDOMReady(initMiniGauges);
YAHOO.util.Event.onDOMReady(initBigGauges);

})();