/*
CSS Browser Selector v0.3.1
Rafael Lima (http://rafael.adm.br)
http://rafael.adm.br/css_browser_selector
License: http://creativecommons.org/licenses/by/2.5/
Contributors: http://rafael.adm.br/css_browser_selector#contributors
*/
function css_browser_selector(u){var ua = u.toLowerCase(),is=function(t){return ua.indexOf(t)>-1;},g='gecko',w='webkit',s='safari',h=document.getElementsByTagName('html')[0],b=[(!(/opera|webtv/i.test(ua))&&/msie\s(\d)/.test(ua))?('ie ie'+RegExp.$1):is('firefox/2')?g+' ff2':is('firefox/3')?g+' ff3':is('gecko/')?g:/opera(\s|\/)(\d+)/.test(ua)?'opera opera'+RegExp.$2:is('konqueror')?'konqueror':is('chrome')?w+' '+s+' chrome':is('applewebkit/')?w+' '+s+(/version\/(\d+)/.test(ua)?' '+s+RegExp.$1:''):is('mozilla/')?g:'',is('j2me')?'mobile':is('iphone')?'iphone':is('ipod')?'ipod':is('mac')?'mac':is('darwin')?'mac':is('webtv')?'webtv':is('win')?'win':is('freebsd')?'freebsd':(is('x11')||is('linux'))?'linux':'','js']; c = b.join(' '); h.className += ' '+c; return c;}; css_browser_selector(navigator.userAgent);

$(function() {
	/* video play button */
	$("#play").click(function() { swfobject.embedSWF("swf/mcqueen-video.swf", "video-fla", "930", "523", "9.0.0", null, {video:"ghost_930x523.flv", xpad:"0", ypad:"0"}, {menu:"false", wmode:"transparent"}); return false; });

	/* ACCORDIAN: h2 IE hover fix */
	$(".accordian h2").hover(
		function () {
			if ($(this).hasClass("open")) {
				$(this).addClass("hover-open");
			} else {
				$(this).addClass("hover");
			}
		}, 
		function () {
			if ($(this).hasClass("open")) {
				$(this).removeClass("hover-open");
			} else {
				$(this).removeClass("hover");
			}
		}
	);
	
	/* ACCORDIAN: Show/hide accordian-content */
	$(".accordian h2").click(function(){
		var toggleSpeed = 500;
		// remove open class from all H2 and turn them off!
		$(this).siblings("h2").removeClass("open").removeClass("hover-open").removeClass("hover")
		// close up all other content
		$(this).siblings("h2").next().slideUp(toggleSpeed);
		// target content (If already open, close it. If closed, open it)
		if (!$(this).hasClass("open")) {
			// turn on the trigger
			$(this).addClass("open");
			// open up the target content
			$(this).next().slideDown(toggleSpeed);
		} else {
			//  remove open class from trigger
			$(this).removeClass("open").removeClass("hover-open").removeClass("hover");
			// close target content
			$(this).next().slideUp(toggleSpeed);
		}
	});
});

// removeIntro gets called when flash intro is done to fade out and begin image fade cycle
function removeIntro() {
	$("#images").css("display", "block");
	$("#animation").fadeOut(1000, function() { setTimeout("fadeFive()", 3000); });
}

function fadeFive() {
	$("#animation").remove();
	$("#fader05").fadeOut(1000, function() { setTimeout("fadeFour()", 3000); });
}

function fadeFour() {
	$("#fader04").fadeOut(1000, function() { setTimeout("fadeThree()", 3000); });
}

function fadeThree() {
	$("#fader03").fadeOut(1000, function() { setTimeout("fadeTwo()", 3000); });
}

function fadeTwo() {
	$("#fader02").fadeOut(1000);
}

mcqueen_products = {
	lineFilter:"all",
	categoryFilter:"all",
	
	init:function() {
		$("#select-line > select").change(function() {
			mcqueen_products.lineFilter = $(this).val();
			mcqueen_products.refilter();
		});
		$("#select-category > select").change(function() {
			mcqueen_products.categoryFilter = $(this).val();
			mcqueen_products.refilter();
		});
		
		// For browsers that remember form element states on refresh
		mcqueen_products.lineFilter = $("#select-line > select").val();
		mcqueen_products.categoryFilter = $("#select-category > select").val();
		mcqueen_products.refilter();
	},
	
	refilter:function() {
		var lf = mcqueen_products.lineFilter;
		var cf = mcqueen_products.categoryFilter;
		$("li", $("#thumbnails")).removeClass("hidden");
		if(lf == "all" && cf == "all") {
			// do nothing
		} else if(lf == "all") {
			$("li:not(." + cf + ")", $("#thumbnails")).addClass("hidden");
		} else if(cf == "all") {
			$("li:not(." + lf + ")", $("#thumbnails")).addClass("hidden");
		} else {
			$("li", $("#thumbnails")).addClass("hidden");
			$("li." + cf + "." + lf, $("#thumbnails")).removeClass("hidden");
		}
		var filtered = $("li:not(.hidden)", $("#thumbnails"));
		filtered.removeClass("last");
		for(var i=0; i<filtered.length; i++) {
			if(i % 5 == 4) { filtered.get(i).className += " last"; }
		}
		if(filtered.length == 0) {
			$("#no-results").removeClass("hidden");
		} else {
			$("#no-results").addClass("hidden");
		}
	}
}

mcqueen_retailers = {
	req: null,
	writeListType: "city",
	
	init:function() {
		$("#countries").change(function() { mcqueen_retailers.toggleCountry(this.value); });
	},
	
	loadXML:function(file) {
		if(mcqueen_retailers.req) {
			mcqueen_retailers.req.abort();
		}
		if(window.XMLHttpRequest) {
			mcqueen_retailers.req = new XMLHttpRequest();
		} else if(window.ActiveXObject) {
			mcqueen_retailers.req = new ActiveXObject("Microsoft.XMLHTTP");
		}
		if(mcqueen_retailers.req) {
			mcqueen_retailers.req.onreadystatechange = mcqueen_retailers.xmlStateChange;
			mcqueen_retailers.req.open("GET", file, true);
			mcqueen_retailers.req.send("");
		}
	},
	
	xmlStateChange:function() {
		if(mcqueen_retailers.req.readyState == 4) {
			if(mcqueen_retailers.req.status == 200) {
				mcqueen_retailers.writeList();
			} else {
				alert("xml error\n" + mcqueen_retailers.req.status + "\n" + mcqueen_retailers.req.statusText);
			}
		}
	},
	
	writeList:function() {
		var listItems = mcqueen_retailers.req.responseXML.getElementsByTagName("object");
		if(mcqueen_retailers.writeListType == "city") {
			for(var i = 0; i < listItems.length; i++) {
				$("#cities").append("<option value='" + listItems[i].getElementsByTagName("link")[0].firstChild.nodeValue + "'>" + listItems[i].getElementsByTagName("header")[0].firstChild.nodeValue + "</option>");
			}
			$("#cities").change(function() { mcqueen_retailers.toggleCity(this.value); });
			$("#cities").removeAttr("disabled");
			Custom.styleDynamic();
		} else if(mcqueen_retailers.writeListType == "retailer") {
			for(var j = 0; j < listItems.length; j++) {
				var appendRetailer = "<li class='retailer col nostroke'><h2>" + listItems[j].getElementsByTagName("header")[0].firstChild.nodeValue + "</h2>";
				var infoLines = listItems[j].getElementsByTagName("detail")[0].getElementsByTagName("line");
				for(var jj = 0; jj < infoLines.length; jj++) {
					if(infoLines[jj].firstChild) {
						appendRetailer += "<br />" + infoLines[jj].firstChild.nodeValue;
					}
				}
				appendRetailer += "</li>";
				$("#retailers").append(appendRetailer);
			}
		}
	},
	
	toggleCountry:function(trigger) {
		if($("#cities").length > 0) {
			$("#select-city").empty();
		}
		if($(".retailer").length > 0) {
			$("#retailers").empty();
		}
		if(trigger != "0") {
			var cityWrap = $("#select-city");
			cityWrap.removeClass("hidden");
			cityWrap.append("<h3>City</h3><select id='cities' name='sel-city' class='styled' disabled><option value='0'>Please Select</option></select>");
			mcqueen_retailers.writeListType = "city";
			mcqueen_retailers.loadXML(trigger);
		} else {
			cityWrap.addClass("hidden");
		}
	},

	toggleCity: function(trigger) {
		if($(".retailer").length > 0) {
			$("#retailers").empty();
		}
		if(trigger != "0") {
			mcqueen_retailers.writeListType = "retailer";
			mcqueen_retailers.loadXML(trigger);
		}
	}
}