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 getTopNavLink(w, catName) {
	if (BrowserDetect.browser == "Safari") {
		var a = "<img src=/includes/privatereserveguitars/images/pixel.gif width=" + w + " height=18 border=0/></A></DIV><div class=safariTopNavDiv style='WIDTH: " + w + "px'>" + catName + "</div>";
		return a;
	}
	else {
		return catName + "</A>";
	}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
	if (typeof dropmenuobj!="undefined") {
		hideMouseover();  
	}
}

function MM_topnavRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_preload() {

    //this.MM_preloadImages('/images/header/topnavBandOrch_on.gif','/images/header/topnavPercussion_on.gif','/images/header/interstate/topnavGuitars_on.gif','/images/header/interstate/topnavBass_on.gif','/images/header/interstate/topnavKeyboards_on.gif','/images/header/interstate/topnavRecComp_on.gif','/images/header/interstate/topnavLiveSound_on.gif','/images/header/topnavDjLighting_on.gif','/images/header/topnavOutlet.gif');

}

var menuwidth='100px' //default menu width
var menubgcolor='#FFFDF1'  //menu bgcolor
var appearDelay=300  //menu disappear speed onMouseout (in miliseconds)
var disappeardelay=50 //menu disappear speed onMouseout (in miliseconds)
var hidemenu_onclick="yes" //hide menu when user clicks within menu?
var isOn = true; 

/////No further editting needed

var ie4=document.all
var ns6=document.getElementById&&!document.all

if (ie4||ns6)
document.write('<div id="dropmenudiv" style="visibility:hidden;width:'+menuwidth+';background-color:'+menubgcolor+'" onMouseover="clearhidemenu()" onMouseout="dynamichide(event)"></div>')

function getposOffset(what, offsettype){
    var totaloffset=(offsettype=="left")? what.offsetLeft : what.offsetTop;
    var parentEl=what.offsetParent;
    while (parentEl!=null){
        totaloffset=(offsettype=="left")? totaloffset+parentEl.offsetLeft : totaloffset+parentEl.offsetTop;
        parentEl=parentEl.offsetParent;
    }
    return totaloffset;
}

var w_isLoaded = false;
if(!ie4) {
    if (navigator.userAgent.indexOf('Safari') != -1) {
		w_isLoaded = true;
	} else {
        if (document.addEventListener) {    
            document.addEventListener("DOMContentLoaded", setLoadedFlag, false);
        } else {
            document.onload = setLoadedFlag;
        }
    }
} else {
    document.onreadystatechange = setLoadedFlag;
}
function setLoadedFlag() {
    if( (ie4 && document.readyState=="complete") || (!ie4) ) {
        w_isLoaded = true;
    }
}
function showhide(obj, e, visible, hidden, menuwidth){
	if (ie4||ns6) {
		dropmenuobj.style.left=dropmenuobj.style.top=-500;
	}
	
	if (menuwidth!=""){
		dropmenuobj.widthobj=dropmenuobj.style
		dropmenuobj.widthobj.width=menuwidth
	}
	if (e.type=="click" && obj.visibility==hidden || e.type=="mouseover") {
		showTimer = setTimeout("showNow()",appearDelay);
	}
	else if (e.type=="click") {
		this.visibility="hidden"
	}
}

function setFlag(state) {
	isOn = state; 
}

function showNow() {
	if(isOn) {
		if(!ns6) {
		drawIframe();	
		}
		dropmenuobj.style.visibility="visible"
		clearTimeout(showTimer);
	}
}

function iecompattest(){
return (document.compatMode && document.compatMode!="BackCompat")? document.documentElement : document.body
}

function clearbrowseredge(obj, whichedge){
	var edgeoffset=0
	if (whichedge=="rightedge") {
		var windowedge=ie4 && !window.opera? iecompattest().scrollLeft+iecompattest().clientWidth-15 : window.pageXOffset+window.innerWidth-15
		dropmenuobj.contentmeasure=dropmenuobj.offsetWidth
		if (windowedge-dropmenuobj.x < dropmenuobj.contentmeasure)
		edgeoffset=dropmenuobj.contentmeasure-obj.offsetWidth
	}
	else{
		var topedge=ie4 && !window.opera? iecompattest().scrollTop : window.pageYOffset;
		var windowedge=ie4 && !window.opera? iecompattest().scrollTop+iecompattest().clientHeight-15 : window.pageYOffset+window.innerHeight-18;
		dropmenuobj.contentmeasure=dropmenuobj.offsetHeight;
		if (windowedge-dropmenuobj.y < dropmenuobj.contentmeasure) { //move up?
			edgeoffset=dropmenuobj.contentmeasure+obj.offsetHeight;
			if ((dropmenuobj.y-topedge)<dropmenuobj.contentmeasure) {//up no good either?
				edgeoffset=dropmenuobj.y+obj.offsetHeight-topedge;
			}
		}
	}
return edgeoffset
}

function populatemenu(what){
	if (ie4||ns6) {
		dropmenuobj.innerHTML= "<div class=\"dropItem\">" + what.join("")  + "</div>"
	}
}
// If the top menu item isn't going anywhere then assign this event to the onclick of the top item (root)
function topClick(e) {
    if(!e)
        e = window.event;
    if(ie4) {
        e.cancelBubble = true;
    } else {
        e.stopPropagation();
    }
    
}
function dropdownmenu(obj, e, menucontents, menuwidth, swap1, swap2, swap3){
	hidemenu();
	if(!w_isLoaded)
        return clickreturnvalue();
	isOn = true;
	MM_swapImage(swap1, swap2, swap3);  // executes mouseovers
	if (window.event) { event.cancelBubble=true; }
	else if (e.stopPropagation) { e.stopPropagation() }
	clearhidemenu();
	dropmenuobj=document.getElementById? document.getElementById("dropmenudiv") : dropmenudiv
	populatemenu(menucontents);

		if ((ie4||ns6) && (menucontents[0] != "none")) {
			
			if (swap1 != "topnavOutlet") {
			showhide(dropmenuobj.style, e, "visible", "hidden", menuwidth)
			dropmenuobj.x=getposOffset(obj, "left")
			dropmenuobj.y=getposOffset(obj, "top")
			dropmenuobj.style.left=dropmenuobj.x-clearbrowseredge(obj, "rightedge")+"px"
			dropmenuobj.style.top=dropmenuobj.y-clearbrowseredge(obj, "bottomedge")+obj.offsetHeight+"px"
			}
		}

	return clickreturnvalue();
}

function clickreturnvalue(){
	if (ie4||ns6) { return false }
	else return true
}

function contains_ns6(a, b) {
	while (b.parentNode) {
		if ((b = b.parentNode) == a) {
		return true;
		return false;
		}
	}
}

function dynamichide(e){
	if (ie4&&!dropmenuobj.contains(e.toElement)) {
		delayhidemenu();
	}
	else if (ns6&&e.currentTarget!= e.relatedTarget&& !contains_ns6(e.currentTarget, e.relatedTarget)) {
		delayhidemenu();
	}
}
// sets dropdown visibility to hidden 
function hideMouseover() {
	if (dropmenuobj.style.visibility="hidden" || !isOn) {
	MM_topnavRestore();
	iframe = getObj('iMask');
	iframe.style.visibility="hidden";
	}
}
// sets dropdown div visiibility to hidden
function hidemenu(e){
	if (typeof dropmenuobj!="undefined") {
			hideMouseover();
			if (ie4||ns6) {
			dropmenuobj.style.visibility="hidden";
		}
	}
}
// just triggers hidemenu() with a delay
function delayhidemenu(){
	if (ie4||ns6) {
		if ((typeof dropmenuobj!="undefined") && (dropmenuobj.style.visibility != "visible")) {
			hidemenu();
		}
		else {
		delayhide=setTimeout("hidemenu()",disappeardelay);
		}
	}
}

function clearhidemenu(){
	if (typeof delayhide!="undefined") {
		clearTimeout(delayhide);
	}
}

if (hidemenu_onclick=="yes")
document.onclick=hidemenu

function init() {
  if (!document.getElementById) return
  var imgOriginSrc;
  var imgTemp = new Array();
  var imgarr = document.getElementsByTagName('img');
  for (var i = 0; i < imgarr.length; i++) {
    if (imgarr[i].getAttribute('hsrc')) {
        imgTemp[i] = new Image();
        imgTemp[i].src = imgarr[i].getAttribute('hsrc');
        imgarr[i].onmouseover = function() {
            imgOriginSrc = this.getAttribute('src');
            this.setAttribute('src',this.getAttribute('hsrc'))
        }
        imgarr[i].onmouseout = function() {
            this.setAttribute('src',imgOriginSrc)
        }
    }
  }
}
onload=init;

//return [object]
function getObj(theId) {
    if (document.getElementById) {
        theObj = document.getElementById(theId); 
    } else if (document.all) { 
        theObj = document.all[theId];
    }
    return theObj;
}

// create an iframe if iframe or using as backdrop
function drawIframe() {
    var iframe = getObj('iMask');
    var dropArea = getObj('dropmenudiv');
    iframe.style.visibility = 'visible';
    document.body.insertBefore(iframe);

    iframe.style.zIndex = 0;
    iframe.style.top = dropArea.style.top;
    iframe.style.left = dropArea.style.left;
    iframe.style.width = dropArea.style.width;
    iframe.style.height = dropArea.offsetHeight;
    iframe.style.display='';
    //window.alert(dropArea.style.height);
}
