var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};

BrowserDetect.init();


function correctColumns() {
	var colContainer = gETAC("DIV", "colWrapper", document);
	if(!colContainer) {return;}
	for(var i=0;i<colContainer.length;i++) {
		var cols = gETAC("DIV", "block", colContainer[i]);
		for(var j=0;j<cols.length;j++) {
			var colNum = j + 1;
			addClass(cols[j], "col" + colNum);
		}
	}
}
function assignMainNav() {
	var MainNav = gE("MainNav");
	if(!MainNav) {return;}
	var ParentItems = gETAC("A", "siblingList", MainNav);
	for (var i = 0; i < ParentItems.length; i++) {
		ParentItems[i].parentNode.onmouseover = function() {
			var childMenu = gET("ul", this)[0];
			if (childMenu) {
				removeClass(childMenu, "hide");
			}
			return false;
		}
		ParentItems[i].parentNode.onmouseout = function() {	
			var childMenu = gET("ul", this)[0];
			if(childMenu) {
				addClass(childMenu, "hide");
			}
			return false;
		}
	}
}

// globalDropdown
function assignGlobalDropdown() {
	var globalNav = gE("GlobalDropdown");
	if(!globalNav) {return;}
	//alert("found GlobalDropdown");
	globalNav.onmouseover = function() {
		var childMenu = gET("ul", this)[0];	
		//alert("childMenu: " + childMenu);
		if (childMenu) {
			removeClass(childMenu, "hide");
		}
		return false;
	}
	globalNav.onmouseout = function() {	
		var childMenu = gET("ul", this)[0];
		//alert("childMenu: " + childMenu);
		if (childMenu) {
			addClass(childMenu, "hide");
		}
		return false;
	}
}

// globalDropdown
function assignGlobalDropdownRollovers() {
	var oPreLoad = new Array();
	var oTempSrc;
	var globalNav = gE("GlobalDropdown");
	if(!globalNav) {return;}
	var navItems = gETAC("img", "rollover", globalNav);	
	for (var i = 0; i < navItems.length; i++) {
		// get the image source
		var src = navItems[i].getAttribute('src');
		
		// get the over state by replacing 'off' with 'on'
		var osrc = src.replace(/_off(\.[a-z0-9]+)$/i,'_on$1');
		navItems[i].setAttribute('osrc', osrc);
		
		// preload 'on' state images
		oPreLoad[i] = new Image();
		oPreLoad[i].src = osrc;
		
		// set image to on state
		navItems[i].onmouseover = function() {
			oTempSrc = this.getAttribute('src');
			this.setAttribute('src', this.getAttribute('osrc'));
		}
		
		// set image to off state
		navItems[i].onmouseout = function() {
			if (!oTempSrc) oTempSrc = this.getAttribute('src').replace(/-on(\.[a-z0-9]+)$/i,'_off$1');
			this.setAttribute('src', oTempSrc);
		}
	}
}

function highlightMainNav() {
	var MainNav = gE("MainNav");
	if(!MainNav) {return;}
	var MainNavCollection = gET("A", MainNav);
	for(var i=0;i<MainNavCollection.length;i++) {
		var fileNameWithExt = getFileName(MainNavCollection[i].href);
		var fileName = fileNameWithExt.substring(0, fileNameWithExt.indexOf("."));
		if(hasIndexOf(location.href, fileName)) {
			addClass(MainNavCollection[i], "active");
		}
	}
}
function clearZip() {
	var zipSearch = gE("zipSearch");
	if(!zipSearch) {return;}
	zipSearch.hasBeenFocused = false;
	zipSearch.onfocus =  function() {
		if(!this.hasBeenFocused) {
			this.value = "";
			this.hasBeenFocused = true;
		}
		return false;
	};
}
function toggleSearchWidget() {
	var oRoot = document.getElementById('searchWidget');
	if(!oRoot){return;}
	var arrLinks = oRoot.getElementsByTagName('a');
	for(var i = 0; i < arrLinks.length; i++) {
		if (arrLinks[i].className.indexOf(''+'toggle'+'') > -1) {
			arrLinks[i].onclick = function() {
				oRoot.className = (oRoot.className.indexOf(''+'open'+'') > -1) ? oRoot.className.replace(/open/g,'') : oRoot.className += ' open';
				return false;
			}
		}
	}
}
function quicklinks() {
	var quicklinks = gE("quicklinks");
	if(!quicklinks) {return;}
	quicklinks.onchange = function() {
		location.href = this.options[this.selectedIndex].value;
		return false;
	};
}
var allDDs;
function toggleDropdown() {
	allDDs = gETAC("DIV", "dropdown", document);
	//make sure you close all others first
	for(var i = 0; i < allDDs.length; i++) {
		var oRoot = gET('li', allDDs[i])[0];
		oRoot.onclick = function() {
			if(hasClass(this, "active")) {
				removeClass(this, "active");
				deactivateDrops();
			}else {
				deactivateDrops();
				addClass(this, "active");
			}
		}
		var aTag = gET('A', oRoot)[0];
		aTag.href="javascript: void(0);";
	}
}
function deactivateDrops() {
	for(var i = 0; i < allDDs.length; i++) {
		var oRoot = allDDs[i].getElementsByTagName('li')[0];
		removeClass(oRoot, "active");
	}
}

function popShoppingList(url) { 
	sendOmniturePaintWithThisImage();
	window.open(url,'','width=746, height=600, location=0, toolbar=0, menubar=0, directories=0, scrollbars=1, status=1, resizable=1'); 
} 

function sendDynamicSpotlightTag(categoryId, pageId) {
	//alert("Spotlight Server: " + spotlightServer + " categoryID: " + categoryId + " pageID: " + pageId);
	var random = Math.floor(Math.random()*1000000000);
	var imgSrc = spotlightServer + ";src=" + spotlightSource + ";type=" + pageId + ";cat=" + categoryId + ";ord=" + random + ";num=" + random + "?";
	//alert("imgSrc: " + imgSrc);
	var newImage = document.createElement("IMG");
	newImage.width = 1;
	newImage.height = 1;
	newImage.border = 0;
	newImage.src = imgSrc;
	document.body.appendChild(newImage);	
}

function sendOmniturePaintWithThisImage() {
	s = s_gi(s_account);
	s.linkTrackVars = "events";
	s.linkTrackEvents = "event4, event14";
	s.events = "event4, event14";
	s.tl(this,'o', "Paint With This Image");
	sendDynamicSpotlightTag("tools", "pntimage");
}

windowObject.addLoadFunction(assignGlobalDropdownRollovers, assignGlobalDropdown, assignMainNav, highlightMainNav, correctColumns, clearZip, toggleSearchWidget, quicklinks, toggleDropdown);
