function isdefined(variable)
{
    return (typeof(window[variable]) == "undefined")?  false: true;
}

/* clear the main search box when clicked */
function clrsrchbx(objSearchBox) {
	if (objSearchBox.value == 'search here') {
	objSearchBox.value='';
	}
}

/* clear any search box when clicked */
function clransrchbx(objSearchBox) {
	objSearchBox.value='';
}

/*
    getElementsByClassName
    Written by Jonathan Snook, http://www.snook.ca/jonathan
    Add-ons by Robert Nyman, http://www.robertnyman.com
*/

function getElementsByClassName(oElm, strTagName, strClassName){
var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
var arrReturnElements = new Array();
strClassName = strClassName.replace(/\-/g, "\\-");
var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
var oElement;
    for(var i=0; i<arrElements.length; i++){
        oElement = arrElements[i];      
        if(oRegExp.test(oElement.className)){
            arrReturnElements.push(oElement);
        }   
    }
    return (arrReturnElements)
}

function togglehelp(answerid,arrowid,seeid) {
var myhelpelement=document.getElementById(answerid);
var myhelparrow=document.getElementById(arrowid);
var myseelink=document.getElementById(seeid);
	if ( myhelpelement.style.display=='none' || myhelpelement.style.display=='' ) {
		 myhelpelement.style.display='block';
		 myhelparrow.src='/img/helparrowdown.gif';
		 myseelink.innerHTML='hide this';
		 }
	else {
		 myhelpelement.style.display='none';
		 myhelparrow.src='/img/helparrowright.gif';
		 myseelink.innerHTML='expand';
		 }
}

function toggleallhelp(strType) {
var myhelpcontainer=document.getElementById('helpcontainer');
var myhelpanswers=getElementsByClassName(myhelpcontainer,'div','helpanswer');
var myhelparrows=getElementsByClassName(myhelpcontainer,'img','helparrow');
var myhelpseelink=getElementsByClassName(myhelpcontainer,'span','helpseeclose');
	for (var i=0; i<myhelpanswers.length; i++) {
		if (strType=='collapse') {
		myhelpanswers[i].style.display='none';
		myhelparrows[i].src='/img/helparrowright.gif';
		myhelpseelink[i].innerHTML='expand';
		}
		else if(strType=='expand') {
		myhelpanswers[i].style.display='block';
		myhelparrows[i].src='/img/helparrowdown.gif';
		myhelpseelink[i].innerHTML='hide this';
		}
	}
}

function helpquickshow(strHlpId) {
var myquickshow=document.getElementById(strHlpId);
	if (myquickshow.style.display=='block') {
	myquickshow.style.display='none';
	}
	else {
	myquickshow.style.display='block';
	}
}


function setLoading(to) {
	$(to).innerHTML = '<img class="vam" src="/img/loadingCir.gif" /> Loading...';
}


function simpleTab(holder,content,thisTab,ajaxUrl,ajaxParams) {
	var theseTabs = $$('div#'+holder.id+' ol.simpleTabList li');
	for(var i=0; i<theseTabs.length; i++) {
		theseTabs[i].className = '';
	}
	thisTab.className = 'active';
	var theseContents = $$('div#'+holder.id+' div.simpleTabContent');
	for(var i=0; i<theseContents.length; i++) {
		theseContents[i].style.display = 'none';
	}
	content.style.display = 'block';
	if(ajaxUrl != undefined) {
		setLoading(content);
		var ajx = new Ajax.Updater(
			content.id,
			ajaxUrl,
			{
				method: 'post',
				parameters: ajaxParams,
				evalScripts: true
			}
		);
	} else {
	}
}




function ajaxUpdate(url,params,plc) {
	var ajx = new Ajax.Updater(
		plc,
		url,
		{
			method: 'post',
			parameters: params,
			evalScripts: true
		}
	);
}



function focusIt(obj) {
	if($(obj)) {
		focObj=$(obj);
		setTimeout(focusItO,200);
	}
}

function focusItO() {
	focObj.focus();
}

function onlyNums(obj) {
	var regEx = new RegExp('([\\d]+)');
	var contents = obj.value;
	var match = regEx.exec(contents);
	if(match) {
		obj.value = match[0];
	} else {
		obj.value = '';
	}
}

function returnDec(value) {
	var regEx = new RegExp('([\\d\\.]+)');
	var match = regEx.exec(value);
	if(match) {
		return match[0];
	} else {
		return 0.00
	}
}


function compareItems(addlParams) {
	var comps = document.getElementsByClassName('compareItem');
	var get = 'a=compare';
	var ckd = 0;
	for(i=0;i<comps.length;i++) {
		if(comps[i].checked) {
			get+='&compareItem='+comps[i].value;
			ckd++;
		}
	}
	get+='&'+addlParams;
	if(ckd==0) { 
		alert('If you\'d like to compare items, check the box next to each item first.');
		return false;
	}
	top.location.href = '/compare?'+get;
}

function colorHighlight(obj,start,end) {
	new Effect.Highlight(obj, 
		{ 
			startcolor:start,
			endcolor:end,
			duration: 2
		}
	);
}

function loadGenericHelper(inpt,hlpr) {
	//alert(Position.positionedOffset(inpt));
	var co = Position.positionedOffset(inpt);
	var dims = Element.getDimensions(inpt);
	var thisLeft = co[0];
	var thisBottom = ( co[1] + dims.height );
	$(hlpr).style.top=(thisBottom-10)+'px';
	$(hlpr).style.left=( thisLeft - parseInt($(hlpr).style.width) )+'px';
	$(hlpr).style.display='block';
	$('genericHelper-id').value=getNumID(inpt.id);
	gnHlpr = hlpr;
	overGH=true;
	intGH();
}

function closeGenericHelper() {
	gnHlpr.hide();
}

function intGH() {

	if(!isdefined('gnHlprNd')) {
		Event.observe(
		   document.body,
		   'click',
		   function(e) {
		   	if(!overGH) { closeGenericHelper(); }
		      overGH=false;
		   }
		);
		gnHlprNd =false;
		Event.observe(
		   gnHlpr,
		   'mouseover',
		   function(e) {
		      overGH=true;
		   }
		);
		Event.observe(
		   gnHlpr,
		   'mouseout',
		   function(e) {
		      overGH=false;
		   }
		);
	}
}

function getNumID(str) {
	var myRegEx = new RegExp ('\\d+');
	var myMatch = str.match(myRegEx);
	return myMatch;
}

function replaceParam(p,v) {
	var curLoc = window.location.toString();
	var asArray = curLoc.split('?');
	var curPage = asArray[0];
	if(asArray.length == 1) {
		return curPage + '?'+p+'='+v;
	}
	var getString = asArray[1];
	var getArray = getString.split('&');
	var newGet = '';
	var needToReplace = false;
	if(getString.indexOf(p+'=')>0) {
		needToReplace = true;
	}
	for(i=0; i<getArray.length; i++) {
		if(getArray[i].indexOf(p+'=')==-1) {
			newGet+=getArray[i] + '&';
		}
			
	}
	newGet+=p+'='+v;
	return curPage + '?' + newGet;
	
}


function expandCatChooser(thisCat,level,thisLink,holder) {
   
   var currentCats = $$('.catHolder');
   for(i=0;i<currentCats.length;i++) {
      if(parseInt(currentCats[i].id) > level && $(currentCats[i].id)) {
         Element.remove(currentCats[i].id);
      }
   }
   
   var newCat = document.createElement('div');
   newCat.setAttribute('id',( level + 1 ));
   newCat.setAttribute('class','catHolder');
   newCat.setAttribute('className','catHolder');
   newCat.style.paddingLeft = ( 10 ) + 'px';
   $(holder).appendChild(newCat);
   newCat.innerHTML = '<img class="vam" src="/img/loadingCir.gif" /> Loading...';
   ajaxUpdate('/async/chooseCat','c='+thisCat+'&l='+level,newCat);
}