/**
 * COMMON DHTML FUNCTIONS
 * These are handy functions I use all the time.
 *
 * By Seth Banks (webmaster at subimage dot com)
 * http://www.subimage.com/
 *
 * Up to date code can be found at http://www.subimage.com/dhtml/
 *
 * This code is free for you to use anywhere, just keep this comment block.
 */

/**
 * X-browser event handler attachment and detachment
 * TH: Switched first true to false per http://www.onlinetools.org/articles/unobtrusivejavascript/chapter4.html
 *
 * @argument obj - the object to attach event to
 * @argument evType - name of the event - DONT ADD "on", pass only "mouseover", etc
 * @argument fn - function to call
 */
function addEvent(obj, evType, fn){
 if (obj.addEventListener){
    obj.addEventListener(evType, fn, false);
    return true;
 } else if (obj.attachEvent){
    var r = obj.attachEvent("on"+evType, fn);
    return r;
 } else {
    return false;
 }
}
function removeEvent(obj, evType, fn, useCapture){
  if (obj.removeEventListener){
    obj.removeEventListener(evType, fn, useCapture);
    return true;
  } else if (obj.detachEvent){
    var r = obj.detachEvent("on"+evType, fn);
    return r;
  } else {
    alert("Handler could not be removed");
  }
}

/**
 * Code below taken from - http://www.evolt.org/article/document_body_doctype_switching_and_more/17/30655/
 *
 * Modified 4/22/04 to work with Opera/Moz (by webmaster at subimage dot com)
 *
 * Gets the full width/height because it's different for most browsers.
 */
function getViewportHeight() {
	if (window.innerHeight!=window.undefined) return window.innerHeight;
	if (document.compatMode=='CSS1Compat') return document.documentElement.clientHeight;
	if (document.body) return document.body.clientHeight; 

	return window.undefined; 
}
function getViewportWidth() {
	var offset = 17;
	var width = null;
	if (window.innerWidth!=window.undefined) return window.innerWidth; 
	if (document.compatMode=='CSS1Compat') return document.documentElement.clientWidth; 
	if (document.body) return document.body.clientWidth; 
}

/**
 * Gets the real scroll top
 */
function getScrollTop() {
	if (self.pageYOffset) // all except Explorer
	{
		return self.pageYOffset;
	}
	else if (document.documentElement && document.documentElement.scrollTop)
		// Explorer 6 Strict
	{
		return document.documentElement.scrollTop;
	}
	else if (document.body) // all other Explorers
	{
		return document.body.scrollTop;
	}
}
function getScrollLeft() {
	if (self.pageXOffset) // all except Explorer
	{
		return self.pageXOffset;
	}
	else if (document.documentElement && document.documentElement.scrollLeft)
		// Explorer 6 Strict
	{
		return document.documentElement.scrollLeft;
	}
	else if (document.body) // all other Explorers
	{
		return document.body.scrollLeft;
	}
}


// add2cart Function used to display submodal dialog
function add2cart(part_num) {
	showPopWin('http://www.sightlinedisplay.com/detail.php?submodal=Y&product_id=' + part_num, 600, 400, null, true);
	//return false;

}

function swapimage(theimage,newimage) {
		placeholder = document.getElementById(theimage);
		placeholder.src = "http://www.sightlinedisplay.com/images/" + newimage;
	}

	var dropdowncontent={disableanchorlink:true,hidedivmouseout:[true,200],ajaxloadingmsg:"Loading content. Please wait...",ajaxbustcache:true,getposOffset:function(what,offsettype){return(what.offsetParent)?what[offsettype]+this.getposOffset(what.offsetParent,offsettype):what[offsettype]},isContained:function(m,e){var e=window.event||e
var c=e.relatedTarget||((e.type=="mouseover")?e.fromElement:e.toElement)
while(c&&c!=m)try{c=c.parentNode}catch(e){c=m}
if(c==m)
return true
else
return false},show:function(anchorobj,subobj,e){if(!this.isContained(anchorobj,e)||(e&&e.type=="click")){var e=window.event||e
if(e.type=="click"&&subobj.style.visibility=="visible"){subobj.style.visibility="hidden"
return}
var horizontaloffset=(subobj.dropposition[0]=="left")?-(subobj.offsetWidth-anchorobj.offsetWidth):0
var verticaloffset=(subobj.dropposition[1]=="top")?-subobj.offsetHeight:anchorobj.offsetHeight
subobj.style.left=this.getposOffset(anchorobj,"offsetLeft")+horizontaloffset+"px"
subobj.style.top=this.getposOffset(anchorobj,"offsetTop")+verticaloffset+"px"
subobj.style.clip=(subobj.dropposition[1]=="top")?"rect(auto auto auto 0)":"rect(0 auto 0 0)"
subobj.style.visibility="visible"
subobj.startTime=new Date().getTime()
subobj.contentheight=parseInt(subobj.offsetHeight)
if(typeof window["hidetimer_"+subobj.id]!="undefined")
clearTimeout(window["hidetimer_"+subobj.id])
this.slideengine(subobj,(subobj.dropposition[1]=="top")?"up":"down")}},curveincrement:function(percent){return(1-Math.cos(percent*Math.PI))/2},slideengine:function(obj,direction){var elapsed=new Date().getTime()-obj.startTime
if(elapsed<obj.glidetime){var distancepercent=(direction=="down")?this.curveincrement(elapsed/obj.glidetime):1-this.curveincrement(elapsed/obj.glidetime)
var currentclip=(distancepercent*obj.contentheight)+"px"
obj.style.clip=(direction=="down")?"rect(0 auto "+currentclip+" 0)":"rect("+currentclip+" auto auto 0)"
window["glidetimer_"+obj.id]=setTimeout(function(){dropdowncontent.slideengine(obj,direction)},10)}
else{obj.style.clip="rect(0 auto auto 0)"}},hide:function(activeobj,subobj,e){if(!dropdowncontent.isContained(activeobj,e)){window["hidetimer_"+subobj.id]=setTimeout(function(){subobj.style.visibility="hidden"
subobj.style.left=subobj.style.top=0
clearTimeout(window["glidetimer_"+subobj.id])},dropdowncontent.hidedivmouseout[1])}},hidediv:function(subobjid){document.getElementById(subobjid).style.visibility="hidden"},ajaxconnect:function(pageurl,divId){var page_request=false
var bustcacheparameter=""
if(window.XMLHttpRequest)
page_request=new XMLHttpRequest()
else if(window.ActiveXObject){try{page_request=new ActiveXObject("Msxml2.XMLHTTP")}
catch(e){try{page_request=new ActiveXObject("Microsoft.XMLHTTP")}
catch(e){}}}
else
return false
document.getElementById(divId).innerHTML=this.ajaxloadingmsg
page_request.onreadystatechange=function(){dropdowncontent.loadpage(page_request,divId)}
if(this.ajaxbustcache)
bustcacheparameter=(pageurl.indexOf("?")!=-1)?"&"+new Date().getTime():"?"+new Date().getTime()
page_request.open('GET',pageurl+bustcacheparameter,true)
page_request.send(null)},loadpage:function(page_request,divId){if(page_request.readyState==4&&(page_request.status==200||window.location.href.indexOf("http")==-1)){document.getElementById(divId).innerHTML=page_request.responseText}},init:function(anchorid,pos,glidetime,revealbehavior){var anchorobj=document.getElementById(anchorid)
var subobj=document.getElementById(anchorobj.getAttribute("rel"))
var subobjsource=anchorobj.getAttribute("rev")
if(subobjsource!=null&&subobjsource!="")
this.ajaxconnect(subobjsource,anchorobj.getAttribute("rel"))
subobj.dropposition=pos.split("-")
subobj.glidetime=glidetime||1000
subobj.style.left=subobj.style.top=0
if(typeof revealbehavior=="undefined"||revealbehavior=="mouseover"){anchorobj.onmouseover=function(e){dropdowncontent.show(this,subobj,e)}
anchorobj.onmouseout=function(e){dropdowncontent.hide(subobj,subobj,e)}
if(this.disableanchorlink)anchorobj.onclick=function(){return false}}
else
anchorobj.onclick=function(e){dropdowncontent.show(this,subobj,e);return false}
if(this.hidedivmouseout[0]==true)
subobj.onmouseout=function(e){dropdowncontent.hide(this,subobj,e)}}}
function CheckNum(e){return((e.keyCode==9)||(e.keyCode==46)||(e.keyCode==8)||(e.keyCode>36&&e.keyCode<41)||(e.keyCode>47&&e.keyCode<58)||(e.keyCode>95&&e.keyCode<106));}