// Validate Search Box
function sb()
{if (document.se.st.value.length == 0 || document.se.st.value == "Keywords"){alert("Please enter search terms.");document.se.st.focus();return false;}
else{return true;}}

// Clear Search Box, if Uneditied
function sbc()
{if(document.se.st.value == "Keywords"){document.se.st.value = '';}}

// Populate Search Box, if Empty
function sbp()
{if(document.se.st.value.length == 0){document.se.st.value = 'Keywords';}}

// Validate Mailing List Box
function check_ml()
{
	if (document.ml.email.value.indexOf("@",0) == -1 || 
	document.ml.email.value.indexOf(".",0) == -1 || 
	document.ml.email.value.indexOf(" ",0) != -1)
	{
		alert("That email address is invalid.");
		document.ml.email.focus();
		return false;
	}
	else{return true;}
}

// Clear Mailing List Box, if Uneditied
function mlc()
{if(document.ml.email.value == "Email"){document.ml.email.value = '';}}

// Populate Mailing List, if Empty
function mlp()
{if(document.ml.email.value.length == 0){document.ml.email.value = 'Email';}}

// Clear Mailing List Box, if Uneditied
function mlnc()
{if(document.ml.name.value == "Name"){document.ml.name.value = '';}}

// Populate Mailing List, if Empty
function mlnp()
{if(document.ml.name.value.length == 0){document.ml.name.value = 'Name';}}

// Comments Box
function CheckComments()
{
	if (document.SubmitComment.Comments.value.length < 48)
	{
		alert('Please Enter A Detailed Comment');
		document.SubmitComment.Comments.focus();
		return false;
	}
	else
	{
		return true;
	}
}

// Print Price
function ppr(price)
{
	document.write('<nobr>$'+price+'</nobr>');
}

// Redirect by Product ID
function rdr(pid)
{
	window.location="http://www.electrokits.com/cgi-bin/out_pid.pl?"+pid;
}







/* http://www.kryogenix.org/code/browser/searchhi/ */
/* Modified 20021006 to fix query string parsing and add case insensitivity */
function highlightWord(node,word) {
	// Iterate into this nodes childNodes
	if (node.hasChildNodes) {
		var hi_cn;
		for (hi_cn=0;hi_cn<node.childNodes.length;hi_cn++) {
			highlightWord(node.childNodes[hi_cn],word);
		}
	}
	
	// And do this node itself
	if (node.nodeType == 3) { // text node
		tempNodeVal = node.nodeValue.toLowerCase();
		tempWordVal = word.toLowerCase();
		if (tempNodeVal.indexOf(tempWordVal) != -1) {
			pn = node.parentNode;
			if (pn.className != "searchword") {
				// word has not already been highlighted!
				nv = node.nodeValue;
				ni = tempNodeVal.indexOf(tempWordVal);
				// Create a load of replacement nodes
				before = document.createTextNode(nv.substr(0,ni));
				docWordVal = nv.substr(ni,word.length);
				after = document.createTextNode(nv.substr(ni+word.length));
				hiwordtext = document.createTextNode(docWordVal);
				hiword = document.createElement("span");
				hiword.className = "searchword";
				hiword.appendChild(hiwordtext);
				pn.insertBefore(before,node);
				pn.insertBefore(hiword,node);
				pn.insertBefore(after,node);
				pn.removeChild(node);
			}
		}
	}
}

function googleSearchHighlight() {
	if (!document.createElement) return;
	ref = document.referrer;
	if (ref.indexOf('?') == -1) return;
	qs = ref.substr(ref.indexOf('?')+1);
	qsa = qs.split('&');
	for (i=0;i<qsa.length;i++) {
		qsip = qsa[i].split('=');
	        if (qsip.length == 1) continue;
        	if (qsip[0] == 'q' || qsip[0] == 'p') { // q= for Google, p= for Yahoo
			words = unescape(qsip[1].replace(/\+/g,' ')).split(/\s+/);
	                for (w=0;w<words.length;w++) {
						if (words[w].length > 2 && words[w] != "and" && words[w] != "the") {
						highlightWord(document.getElementsByTagName("body")[0],words[w]);
			}
                	}
	        }
	}
}


var timerlen = 5;
var slideAniLen = 1000;

var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var endHeight = new Array();
var moving = new Array();
var dir = new Array();

function slidedown(objname){
        if(moving[objname])
                return;

        if(document.getElementById(objname).style.display != "none")
                return; // cannot slide down something that is already visible

        moving[objname] = true;
        dir[objname] = "down";
        startslide(objname);
}

function slideup(objname){
        if(moving[objname])
                return;

        if(document.getElementById(objname).style.display == "none")
                return; // cannot slide up something that is already hidden

        moving[objname] = true;
        dir[objname] = "up";
        startslide(objname);
}

function startslide(objname){
        obj[objname] = document.getElementById(objname);

        endHeight[objname] = parseInt(obj[objname].style.height);
        startTime[objname] = (new Date()).getTime();

        if(dir[objname] == "down"){
                obj[objname].style.height = "1px";
        }

        obj[objname].style.display = "block";

        timerID[objname] = setInterval('slidetick(\'' + objname + '\');',timerlen);
}

function slidetick(objname){
        var elapsed = (new Date()).getTime() - startTime[objname];

        if (elapsed > slideAniLen)
                endSlide(objname)
        else {
                var d =Math.round(elapsed / slideAniLen * endHeight[objname]);
                if(dir[objname] == "up")
                        d = endHeight[objname] - d;

                obj[objname].style.height = d + "px";
        }

        return;
}

function endSlide(objname){
        clearInterval(timerID[objname]);

        if(dir[objname] == "up")
                obj[objname].style.display = "none";

        obj[objname].style.height = endHeight[objname] + "px";

        delete(moving[objname]);
        delete(timerID[objname]);
        delete(startTime[objname]);
        delete(endHeight[objname]);
        delete(obj[objname]);
        delete(dir[objname]);

        return;
}

function toggleSlide(objname){
  if(document.getElementById(objname).style.display == "none"){
    // div is hidden, so let's slide down
    slidedown(objname);
  }else{
    // div is not hidden, so slide up
    slideup(objname);
  }
}



window.onload = googleSearchHighlight;