// JavaScript Document

window.onload = initAll;

var xhr = false;
// var jsMSG;

var xPos, yPos;
var docWidth, docHeight;
var scrollWidth, scrollHeight;
var scrollTop, scrollLeft;

var winInHeight, winOutHeight;
var speed;

var neMOarray = new Array();
var neLBlinks = new Array();
var nePQIlinks = new Array();
var neLBcounter= 0;
var neJsTime, today ,thisDate, thisTime;

var winInHeight, winOutHeight;



function initAll() {

	var allLinks = document.body.getElementsByTagName('a');

	// var jsMSG = document.getElementById('jsMSG');//  jsMSG.innerHTML = 'links found: '+allLinks.length+'<br />';

	for (var i=0; i<allLinks.length; i++) {
		
		if(allLinks[i].getAttribute('rel') == "neMO") {
			
			var newObj = allLinks[i];
			neMOarray.push(newObj);
			allLinks[i].onmouseover = launch_neMO;
			// allLinks[i].onclick = noReturn;
			////  jsMSG.innerHTML += "neMO found (total = " + neMOarray.length + ")" + "<br />";
				
		}
		
		if (allLinks[i].rel == "neLB") {
			neLBlinks[i] = allLinks[i];
			allLinks[i].onclick = captureOnClickEvent;
		}
		
		if (allLinks[i].rel == "nePQI") {
			nePQIlinks[i] = allLinks[i];
			allLinks[i].onclick = launch_nePQI;	
			// jsMSG.innerHTML += 'nePQI found<br />';
		}
		
	}//  jsMSG.innerHTML += 'neMOs found: '+neMOarray.length+'<br />';
	
	if(neMOarray.length>0) {create_neMO_elements();}
	if(neLBlinks.length>0) {createNElb();}
	if(nePQIlinks.length>0) {createNEpqi();}
	
	setGlobalVars();
}

function setGlobalVars() {
	
	// jsMSG = document.getElementById("jsMSG");
	
	docWidth = document.body.clientWidth;
	docHeight = document.body.clientHeight;
//	scrollWidth = document.body.scrollWidth;
//	scrollHeight = document.body.scrollHeight;
	if(!window.innerHeight) {
		if(document.documentElement.clientHeight > 0) {
			winInHeight = document.documentElement.clientHeight;
		} else {
			winInHeight = document.body.clientHeight;
		}
	} else {
		winInHeight = window.innerHeight;
	}
	if(!window.outerHeight) {winOutHeight = document.body.offsetHeight;} else {winOutHeight = window.outerHeight;}
	
	// neJsTime = document.getElementById("neJsTime");
	today = new Date();
	thisDate = today.toLocaleDateString();
	thisTime = today.toLocaleTimeString();
	
	// neJsTime.innerHTML = thisDate + ' ' + thisTime;
	
}



// AJAX FUNCTIONS

function captureOnClickEvent(e) {
					
	if (!e) { e = window.event; } 	
	if (e.target) { var target = e.target; } else {  var target = e.srcElement; }
	
//		var event = e || window.event;
//		var target = event.target || event.srcElement;

////  jsMSG.innerHTML += "<br /><p><b>captureOnClickEvent(e) triggered by <span class='red'>" + target.id + "</span></b></p>";		
////  jsMSG.innerHTML += "<b>target</b> = " + target + "<br />";
	
	// event Vars
	xPos = e.clientX;
	yPos = e.clientY;
	scrollTop = window.pageYOffset;
	scrollLeft = window.pageXOffset;
	
	
	if (window.XMLHttpRequest) {
			xhr = new XMLHttpRequest();
		}
		else {
			if (window.ActiveXObject) {
				try {
					xhr = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (e) { }
			}
		}
	
		if (xhr) {
			
			if (target.rel == "neLB") {xhr.onreadystatechange = launch_neLB;} 
							
			xhr.open("GET", target, true);
			xhr.send(null);
		}
	else {
		alert("Sorry, but I couldn't create an XMLHttpRequest");
	}
	
	return false;
	
}




// GENERAL FUNCTIONS

function noReturn() {
	return false;	
}

function getById(id) {
	if(!document.getElementById(id)) {
		return false;
	} else {
		return document.getElementById(id);
	}
}

function displayJStime() {	
	var date = new Date();	
	neJsTime.innerHTML = date.toLocaleDateString() + ' ' + date.toLocaleTimeString();
}

function changeColor(obj, newColor) {
	obj.style.color = newColor;
}

function hideThis(id) {
	if(document.getElementById(id)) {document.getElementById(id).style.display = "none";}
}

function unhideThis(id) { 
	if(document.getElementById(id)) {document.getElementById(id).style.display = "";}
}

function autoLogout() {	
	setTimeout(redirect_to_logout, 60*60*1000);	//  X minutes * 60 seconds * 1000 milliseconds	
}

function redirect_to_logout() {
	window.location.href = siteRoot + "logout.php?auto=1";
}

function addElement(elemType, elemID, elemParent) {
	////  jsMSG.innerHTML += "<br />addElement("+ elemType + ", " + elemID + ", " + elemParent + ") triggered: <br />";
	var newElem = document.createElement(elemType);
	newElem.id = elemID;		
	addThisNode(newElem, elemParent);		
}

function addThisNode(thisObj, thisID) {			
	if(thisID != null) {
		var objToAppend = document.getElementById(thisID);
		objToAppend.appendChild(thisObj);
		////  jsMSG.innerHTML += "<span class='blue'>" + thisID + " | appended with: " + thisObj.id + "</span><br />";
	}		
}

function changeOpacity(opacity, id) {
	var object = document.getElementById(id).style; 
	object.opacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
}

function fadeIn(id, opacLimit) {	
	var timer = 0;
	for(i = 0; i <= opacLimit; i++) {		
		setTimeout("changeOpacity(" + i + ",'" + id + "')",(timer * speed));
		timer++;
		if (i == opacLimit) {		
			var thisObj = document.getElementById(id);
			thisObj.zIndex = 2;			
		}
	}			
}


function fadeOut(id, opacLimit) {
	var timer = 0;
	for(i = 0; i <= opacLimit; i++) {		
		setTimeout("changeOpacity(" + (i+(-opacLimit)) + ",'" + id + "')",(timer * speed));
		timer++;				
		if (i == opacLimit) {		
			var thisObj = document.getElementById(id);
			thisObj.style.display = "none";							
		}
	}			
}

function in_array(needle, haystack, argStrict) {
	
	var key = '', strict = !!argStrict;

	if (strict) {
		for (key in haystack) {
			if (haystack[key] === needle) {
				return true;
			}
		}
	} else {
		for (key in haystack) {
			if (haystack[key] == needle) {
				return true;
			}
		}
	}
 
	return false;

}

function get_target_element_by_attribute(data, attrib, value) {
	
	for (var i=0;i<data.length; i++) {		
		if (data[i].getAttribute(attrib) == value) {	
			var targetElement = data[i];		
		}		
	}
	
	return targetElement;
	
}

function createNElb() {
		
	addElement("div", "neLBblackout", "container");
	addElement("div", "neLBwindow", "container");
		
	return false;
		
}


function launch_neLB() {
		
	var neLBwinHeight = 500;
	var neLBwinWidth = 700;
	
	var neLBwin = document.getElementById("neLBwindow");
	if(!window.pageYOffset) {
		if(document.documentElement.scrollTop) {
			scrollTop = document.documentElement.scrollTop;
		} else {
			scrollTop = document.body.scrollTop;
		}
	} else {
		scrollTop = window.pageYOffset;
	}
	
	// alert('scrollTop'+scrollTop);
	
	if(!window.pageXOffset) {scrollLeft = document.body.scrollLeft;} else {scrollLeft = window.pageXOffset;}

	
	if (xhr.readyState == 4) {
		
		if (xhr.status == 200) {
			var outMsg = xhr.responseText;//  jsMSG.innerHTML += "launch_neLB() triggered<br />";
		}
		else {
			var outMsg = "There was a problem with the request " + xhr.status;
		}
	
		speed = 1; // SETS speed for fading
		
		blackout = document.getElementById("neLBblackout");
		changeOpacity(0, "neLBblackout");
		blackout.style.display = "block";
		blackout.style.height =  document.body.offsetHeight + 200 + 'px'; // docHeight + "px";//  jsMSG.innerHTML = "docHeight: " + docHeight + "px<br />";
	
		fadeIn("neLBblackout", 80);		
		
		changeOpacity(0, "neLBwindow");
		
		neLBwin.style.display = "block";
		neLBwin.style.position = "absolute";
		neLBwin.style.height =  neLBwinHeight + "px";
		neLBwin.style.width =  neLBwinWidth + "px";
		setTimeout("changeOpacity(" + 100 + ",'" + "neLBwindow" + "')",(10 * speed));
		
		neLBwin.style.top = scrollTop + Math.round((winInHeight - neLBwinHeight) / 2) - 40 + "px";
		neLBwin.style.left = Math.round((docWidth - neLBwinWidth) / 2) - 30 + "px";
		
		
		neLBwin.innerHTML = outMsg;
		
		
		blackout.onclick = close_neLB; 				
			
		

	}
	
	return false;
		
}

function close_neLB() {	
	blackout = document.getElementById("neLBblackout");
	fadeOut("neLBblackout", 50);
	fadeOut("neLBwindow", 100);
}


// neMO FUNCTIONS

function launch_neMO(e) {
		
	if (!e) { e = window.event; } 	
	if (e.target) { var evtObj = e.target; } else {  var evtObj = e.srcElement; }
	
	// var jsMSG = document.getElementById('jsMSG');//  jsMSG.innerHTML += 'launch_neMO'+'<br />';
	
	evtObj.href = evtObj.parentNode.getAttribute('href');
	
	var brokenHref = evtObj.href.split('=');
	
	
	var thisID = brokenHref[1];//  jsMSG.innerHTML += 'id Found: '+thisID+'<br />';
	
//	xPos = e.clientX;
//	yPos = e.clientY;

	var	myXpos = e.clientX;
	var	myYPos = e.clientY;	

	
	var neMO = document.getElementById("neMObox");
	var neMOcontent = document.getElementById("neMOmid");
	
	var pTileInfo = document.getElementById('pTI_'+thisID).innerHTML;
	var pTileDesc = document.getElementById('pTdesc_'+thisID).innerHTML;
	
	neMOcontent.innerHTML = pTileDesc;
	
	neMO.style.top = window.pageYOffset + myYPos + 2 - (1 * neMO.offsetHeight) + "px";
	neMO.style.left = myXpos + 2 + "px";
	neMO.style.visibility = "visible";

//	neMO.onclick = function() {
//		neMO.style.visibility = "hidden";
//	};
	
	evtObj.onmouseout = hide_neMO;

////  jsMSG.innerHTML += "captureOnMouseOverEvent(e) triggered" + "(" + myYPos +","+ myXpos + ")" + "[" + neMO.offsetHeight + "]" + "<br />";	
////  jsMSG.innerHTML += "<br />" + evtObj.alt + "<br />";	
	
}

function create_neMO_elements() {
	
	var neMObox = document.createElement("div");
	neMObox.setAttribute("id", "neMObox");
	
	var neMOtop = document.createElement("div");
	neMOtop.setAttribute("id", "neMOtop");
	
	var neMOmid = document.createElement("div");
	neMOmid.setAttribute("id", "neMOmid");
	
	var neMObot = document.createElement("div");
	neMObot.setAttribute("id", "neMObot");
	
	neMObox.appendChild(neMOtop);
	neMObox.appendChild(neMOmid);
	neMObox.appendChild(neMObot);
	
	document.body.appendChild(neMObox);	
	
	// var jsMSG = document.getElementById('jsMSG');//  jsMSG.innerHTML += "<b>neMO elements created</b> (" + neMOarray.length + " found)<br /><br />";
}

function hide_neMO() {
	
	var neMO = document.getElementById("neMObox");
	neMO.style.visibility = "hidden";
	
}

/////////////////////////////////////////////
///////////////////////////////////////////
// neProduckQuickInfo

function createNEpqi() {
		
	addElement("div", "nePQIblackout", "container");
	addElement("div", "nePQIwindow", "container");
		
	return false;
		
}


function launch_nePQI(e) {
	
	
	if (!e) { e = window.event; } 	
	if (e.target) { var evtObj = e.target; } else {  var evtObj = e.srcElement; }
	
	xPos = e.clientX;
	yPos = e.clientY;
	
	if(!window.pageYOffset) {
		if(document.documentElement.scrollTop) {
			scrollTop = document.documentElement.scrollTop;
		} else {
			scrollTop = document.body.scrollTop;
		}
	} else {
		scrollTop = window.pageYOffset;
	}
	
	// window.alert('scrollTop'+scrollTop);
	
	// jsMSG.innerHTML = ;
	
	var nePQIwinHeight = 315;
	var nePQIwinWidth = 500;
	
	var nePQIwin = document.getElementById("nePQIwindow");
	
	
	if (nePQIwin) {
			
		speed = 1; // SETS speed for fading
		
		var liStyle = 'style="padding-left: 15px; font-style: italic; color: #444; font-size: 12px; line-height: 1.8em; ';
		liStyle += 'background: url('+"'"+'images/ie6/tiny_triangle_blue.gif'+"'"+') left top no-repeat;"';
		
		var HLs = evtObj.parentNode.getElementsByTagName('li');
		var HLcode = '';
		for(var i=0; i<HLs.length; i++) {
			HLcode += '<li '+liStyle+'>'+HLs[i].innerHTML+'</li>';
		}
		
		var holderHolderStyle = 'style="width: 176px; height: 186px; border: 1px solid #ccc; margin-bottom: 10px; float: left;  background: #FFF; padding: 5px;"';
		var imgHolderStyle = 'style="width: 170px; height: 180px; border: 1px solid #ccc; vertical-align: middle; display: table-cell; background: #FFF; text-align:center; "';
		var tableStyle = 'style="width: 174px; background: #FFF;"';
		var trStyle ='';
		var tdStyle = 'style="height: 184px; background: #FFF; text-align: center;"';
		var h2Style = 'style="font-size: 16px; line-height: 1.5em; margin-top: 0px; padding-top: 0px; color: #22608E; text-align: left; width: 280px; float: right; font-weight: bold;"';
		var descStyle = 'style="font-size: 14px; font-style: normal; clear: both;"';
		var ulHolderStyle = 'style="width: 270px; float: left; margin-top: 10px; margin-left: 20px; ';
		ulHolderStyle += 'overflow: auto;"'; // border: 1px solid #CCC;
		var ulStyle = 'style="list-style: none; margin-left: 10px; padding-left: 0px; margin-top: 0px; padding-top: 0px;"';
		var productLinkStyle = 'style="margin-right: 0px;"';
		var pLholderStyle = 'style="clear: both; font-size: 10px; margin-top: 20px; text-align: right; color: #666666;"';
		
		var outputCode = '<div id="nePQI">';
		outputCode += '<h2 '+h2Style+'>'+evtObj.parentNode.getElementsByTagName('h2')[0].innerHTML+'</h2>';
		outputCode += '<div '+holderHolderStyle+'>'+'<table '+tableStyle+'><tr '+trStyle+'><td '+tdStyle+' valign="middle"><img src="'+evtObj.parentNode.getElementsByTagName('img')[0].getAttribute("src")+'" /></td></tr></table>'+'</div>';	
		outputCode += '<div '+ulHolderStyle+'>'+'<ul '+ulStyle+'>'+HLcode+'</ul>'+'</div>';

		outputCode += '<p '+descStyle+'>'+document.getElementById('pTdesc_'+evtObj.rev).innerHTML+'</p>';
		outputCode += '<div '+pLholderStyle+'>More Info (images, documents, videos, &amp; specs) Available on the <a href="'+evtObj.parentNode.getElementsByTagName('a')[1].getAttribute("href")+'" '+productLinkStyle+'>Full Product Page</a></div>';
		outputCode += '</div>';
		
		nePQIwin.innerHTML = outputCode;
		
		blackout = document.getElementById("nePQIblackout");
		changeOpacity(0, "nePQIblackout");
		blackout.style.display = "block";
		// blackout.style.width = "100%";
		blackout.style.height =  document.body.offsetHeight + 200 + 'px'; // docHeight + "px";//  jsMSG.innerHTML = "docHeight: " + docHeight + "px<br />";
	
		fadeIn("nePQIblackout", 80);		
		
		changeOpacity(0, "nePQIwindow");
		
		nePQIwin.style.display = "block";
		nePQIwin.style.position = "absolute";
		nePQIwin.style.height =  nePQIwinHeight + "px";
		nePQIwin.style.width =  nePQIwinWidth + "px";
		setTimeout("changeOpacity(" + 100 + ",'" + "nePQIwindow" + "')",(10 * speed));
		
		nePQIwin.style.top = scrollTop + Math.round( (winInHeight - nePQIwinHeight) / 2) - 40 + "px";
		nePQIwin.style.left = Math.round( (docWidth - nePQIwinWidth) / 2) - 30 + "px";
		
		
		
		
		
		blackout.onclick = close_nePQI; 				
			
		

	}
	
	return false;
}

function close_nePQI() {	
	blackout = document.getElementById("nePQIblackout");
	fadeOut("nePQIblackout", 50);
	fadeOut("nePQIwindow", 100);
}


 ////////////////////////////////////////////////////////////////
 // SUCKERFISH NAV IE WORKAROUND
 ///////////////////////////////////////////////////////////////
 
sfHover = function() {
var sfEls = document.getElementById("suckerfishnav").getElementsByTagName("LI");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover=function() {
this.className+=" sfhover";
}
sfEls[i].onmouseout=function() {
this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
}
}
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

 ////////////////////////////////////////////////////////////////
 // SUCKERFISH NAV IE WORKAROUND