﻿// Cart Management

function AddToCart(cartGuid, siteName, partInput, quantityInput, uomInput)
{
	var partText = document.getElementById(partInput);
	var qtyText = document.getElementById(quantityInput);
	var uomText = document.getElementById(uomInput);
	var partCode = partText.value;
	var quantity = qtyText.value;
	var uom = 'EA';
	if (uomText)
	{
		uom = uomText.value;
	}
	CartManagmentService.AddItemToCart(cartGuid, siteName, partCode, quantity, uom, AddToCartComplete);	
}

function AddToCartComplete(result)
{
	var CartContents = document.getElementById('CartContents');
	if (CartContents)
	{
		var body = CartContents.getElementsByTagName('tbody')[0];
		if (body)
		{
			body.innerHTML = '<tr>' + body.getElementsByTagName('tr')[0].innerHTML + '</tr>';
			for(var i = 0; i < result.length; ++i)
			{
				body.innerHTML += '<tr><td class="cartInnerProductInfo">' + result[i].ProductName + '</td><td class="cartInnerQty"><span>' + result[i].Quantity + '</span><span>' + result[i].UnitOfMeasure + '</span></td><td class="cartInnerExtPrice">$' + result[i].Price + '</td></tr>';
			}
			
			var anchorobj = window.document.getElementById('plc_lt_zoneLogin_UserState_viewCart_hlCart');
			var subobj = document.getElementById(anchorobj.getAttribute("rel"))
			dropdowncontent.show(anchorobj, subobj, null);
		}
	}
}

function GetRadioButtonValue(id)
{
	var retVal = '';
	var radio = window.document.getElementById(id);
	if (radio)
	{
		var list = radio.getElementsByTagName('input');
		for (var i = 0; i < list.length; ++i)
		{
			if (list[i].checked)
			{
				retVal = list[i].value;
				break;
			}
		}
	}
	return retVal;
}

function FindLocations(url, partCode, zip, proximity, errorElement, e)
{
	var err = window.document.getElementById(errorElement);
	
	if (zip.length > 4 && parseInt(zip, 10))
	{
		window.location = url + '?p=' + partCode + '&z=' + zip + '&prx=' + proximity;
	}
	else
	{
		err.innerHTML = 'Please enter a valid zip code';
	}
	
	if (e != null)
    {
		if (e.preventDefault)
		{
			e.preventDefault();
		}
		else
		{
			e.returnValue = false;
		}
	}
}

var searchUrl;
var currentSearchText;
var currentResultPane;
var currentDisplayHideTime;
var displayTimer;
var selectedRecommendation;

function CheckDoSearch(control, e)
{
	var key = GetKeyPress(e);

	if (key == 13)	// enter
	{
		if (control.value.length > 0)
		{
			Search(control.id);
		}
	}

}

function SearchTextChanged(control, siteId, rows, resultDiv, btnSearch, displayTime, e)
{
	var searchButton = window.document.getElementById(btnSearch);
	if (searchButton)
	{
		if (searchButton.disabled=true && control.value.length > 0)
		{
			searchButton.disabled=false;
		}			
		else
		{
			searchButton.disabled=true;
		}
	}

	currentSearchText = control;
	var searchText = currentSearchText.value;
	if (currentResultPane != null && currentResultPane != window.document.getElementById(resultDiv))
	{
		HideSearchSuggestions(currentResultPane);
	}
	currentResultPane = window.document.getElementById(resultDiv);
	currentDisplayHideTime = displayTime;

	var key = GetKeyPress(e);

	if (key == 13)	// enter
	{
		if (selectedRecommendation != null && selectedRecommendation.length > 0)
		{
			HideSearchSuggestions(currentResultPane);
		}
		
		if (control.value.length > 0)
		{
			Search(control.id);
		}
	}
	else if (key == 38 && currentResultPane.style.visibility == 'visible')  // up
	{
		// move selection up
		var items = currentResultPane.getElementsByTagName('div');
		
		var foundSelected = -1;
		for (var i = 0; i < items.length; ++i)
		{
			if (items[i].selected == true)
			{
				foundSelected = i;
				break;
			}
		}
		
		if (foundSelected > 0) // if it's 0, it can't go up anymore
		{
			UnHighliteRecommendation(items[foundSelected]);
			HighliteRecommendation(items[foundSelected - 1]);
			currentSearchText.value = UnBold(items[foundSelected - 1].innerHTML);
		}
	}
	else if (key ==40 && currentResultPane.style.visibility == 'visible')  // down
	{
		// move selection down
		var items = currentResultPane.getElementsByTagName('div');
		
		var foundSelected = -1;
		for (var i = 0; i < items.length; ++i)
		{
			if (items[i].selected == true)
			{
				foundSelected = i;
				break;
			}
		}
		
		if (foundSelected < 0)
		{
			HighliteRecommendation(items[0]);
			currentSearchText.value = UnBold(items[0].innerHTML);
		}
		else if (foundSelected >= 0 && foundSelected < (items.length - 1)) // if it's 0, it can't go up anymore
		{
			UnHighliteRecommendation(items[foundSelected]);
			HighliteRecommendation(items[foundSelected + 1]);
			currentSearchText.value = UnBold(items[foundSelected+1].innerHTML);
		}
	}
	else
	{
		if (searchText.length > 2)
		{
			SearchService.GetSearchSuggestions(searchText, siteId, rows, SearchCompleted);
		}
		else
		{
			HideSearchSuggestions(currentResultPane);
		}
		
		ClearDisplayTimer();
	}
}

function SearchCompleted(result)
{
	if (result && result.length > 0)
	{
		currentResultPane.style.visibility = 'visible';
		currentResultPane.innerHTML = '';
		
		for (var i = 0; i < result.length; ++i)
		{
			currentResultPane.innerHTML += '<div class=\'hand\' onmouseover=\'HighliteRecommendation(this)\' onmouseout=\'UnHighliteRecommendation(this)\' onclick=\'currentSearchText.value=UnBold(this.innerHTML); Search(currentSearchText.id);\'>' + BoldSearch(result[i]) + '</div>';
		}
		StartDisplayTimer();
	}
}

function BoldSearch(value)
{
	var startIndex = value.toLowerCase().indexOf(currentSearchText.value.toLowerCase());
	if (startIndex >= 0)
	{
		var length = currentSearchText.value.length;
		var endIndex = startIndex + length;
		return value.substr(0, startIndex) + '<b>' + value.substr(startIndex, length) + '</b>' + value.substr(endIndex);
	}
	else
	{
		return value;
	}
}

function HighliteRecommendation(control)
{
	var items = currentResultPane.getElementsByTagName('div');
	for (var i = 0; i < items.length; ++i)
	{
		if (items[i].selected == true)
		{
			UnHighliteRecommendation(items[i]);
		}
	}

	selectedRecommendation = control.innerHTML;
	control.style.backgroundColor='#8AB0FF';
	control.selected = true;
	ClearDisplayTimer();
}
function UnHighliteRecommendation(control)
{
	selectedRecommendation = '';
	control.style.backgroundColor='';
	control.selected = false;
	StartDisplayTimer();
}

function HideSearchSuggestions(control)
{
	control.style.visibility = 'hidden';
	selectedRecommendation = null;
}

function UnBold(value)
{
	return value.replace('<B>', '').replace('<b>', '').replace('</B>', '').replace('</b>', '');
}

function StartDisplayTimer()
{
	displayTimer = setTimeout(function() { HideSearchSuggestions(currentResultPane);}, currentDisplayHideTime * 1000);
}

function ClearDisplayTimer()
{
	if (displayTimer)
	{
		clearTimeout(displayTimer);
	}
}

function IsInputEnter(e)
{
	return GetKeyPress(e) == 13;
}	

function GetKeyPress(e)
{
	var key;
	if (window.event)
	{
		key = window.event.keyCode;
	}
	else
	{
		key = e.keyCode;
	}	
	
	return key;
}

function Search(element, defaultSearchText, e) 
{
	var searchText = document.getElementById(element).value;
	if (searchText != defaultSearchText && searchText.length > 0 && searchUrl != null && searchUrl.length > 0)
	{
		window.location = searchUrl + '?st=' + escape(document.getElementById(element).value);
    }
    
    if (e != null)
    {
		if (e.preventDefault)
		{
			e.preventDefault();
		}
		else
		{
			e.returnValue = false;
		}
	}
}

var lstPricingOptions = new Object();

function onPricingOptionChange(partCode, UoM, priceLabel, backorderLabel)
{
	document.getElementById(priceLabel).innerHTML = lstPricingOptions[partCode + '_' + UoM]["price"];
	document.getElementById(backorderLabel).innerHTML = lstPricingOptions[partCode + '_' + UoM]["backorder"];
}
// Generic OnLoad Event Loader.
//
// Allows multiple OnLoad javascript
// events to be handled correctly.
// Usage:
// addLoadEvent(nameOfSomeFunctionToRunOnPageLoad);
// addLoadEvent(function() { /* more code to run on page load */ });

var loadEvents = new Array();
function addLoadEvent(func) {
    if (loadEvents.length==0 && typeof window.onload=='function')
        loadEvents.push(window.onload);

    loadEvents.push(func);

    window.onload = function() {
        while (loadEvents.length > 0){
            var event = loadEvents.pop();
            if(typeof event == 'function');
                event();
        }
    }
}

/**
 * SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 */
if(typeof deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\"";_19+=" id=\""+this.getAttribute("id")+"\" name=\""+this.getAttribute("id")+"\" ";var _1a=this.getParams();for(var key in _1a){_19+=[key]+"=\""+_1a[key]+"\" ";}var _1c=this.getVariablePairs().join("&");if(_1c.length>0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\" style=\""+this.getAttribute("style")+"\">";_19+="<param name=\"movie\" value=\""+this.getAttribute("swf")+"\" />";var _1d=this.getParams();for(var key in _1d){_19+="<param name=\""+key+"\" value=\""+_1d[key]+"\" />";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="<param name=\"flashvars\" value=\""+_1f+"\" />";}_19+="</object>";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.major<fv.major){return false;}if(this.major>fv.major){return true;}if(this.minor<fv.minor){return false;}if(this.minor>fv.minor){return true;}if(this.rev<fv.rev){return false;}return true;};deconcept.util={getRequestParameter:function(_2b){var q=document.location.search||document.location.hash;if(_2b==null){return q;}if(q){var _2d=q.substring(1).split("&");for(var i=0;i<_2d.length;i++){if(_2d[i].substring(0,_2d[i].indexOf("="))==_2b){return _2d[i].substring((_2d[i].indexOf("=")+1));}}}return "";}};deconcept.SWFObjectUtil.cleanupSWFs=function(){var _2f=document.getElementsByTagName("OBJECT");for(var i=_2f.length-1;i>=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject;

/*end of flash player object */


/*Global properties*/
var currentModalID;
var isModalDisplayed;

// Search Form TextBox Clear
// use in code behind:  txtBox.Attributes.Add("onFocus", "clearSearch(this)");
function clearSearch(obj)
{
    obj.value="";
}


//
// Featured Rotator
//

var fA = new Array();
var fI = 1;
var rBtnIds=new Array();

function fRInit(){
    for (var i=0;i<fA.length-1;i++){
        rBtnIds[i] = 'rotatorOption' + (i+1);
    }

    rotF();
    startRT();
    initRE();
}

function initRE(){
    var clickAdv = typeof fRotClickChange!='undefined' && fRotClickChange;

    for (var i=0;i<rBtnIds.length;i++)
    {
        var c = document.getElementById(rBtnIds[i]);
        switch (i){
            case 0: c.onmouseover = function(){rotMO(1,!clickAdv);}; break;
            case 1: c.onmouseover = function(){rotMO(2,!clickAdv);}; break;
            case 2: c.onmouseover = function(){rotMO(3,!clickAdv);}; break;
            case 3: c.onmouseover = function(){rotMO(4,!clickAdv);}; break;
        }

        if (clickAdv){
            switch (i){
                case 0: c.onclick = function(){rotMO(1,true);}; break;
                case 1: c.onclick = function(){rotMO(2,true);}; break;
                case 2: c.onclick = function(){rotMO(3,true);}; break;
                case 3: c.onclick = function(){rotMO(4,true);}; break;
            }
            
            c.onmouseout = function(){rotMO(activeF(),false);startRT();};
        }
    }
}

function activeF(){return fI==0?fA.length:fI-1;}

function startRT(){rTID = setInterval('rotF()',8000);}

function stopRT(){clearInterval(rTID);}

function rotMO(i,advMain){
    stopRT();
    if (advMain)
    {
        actF(i);
        fI=i+1;
    }
    else
    {
        clearAF();
        var newActive = 'rotatorOption'+i;
        document.getElementById(newActive).setAttribute("class", "rotatorButtonActive");
        document.getElementById(newActive).setAttribute("className", "rotatorButtonActive");
    }
}

function rotF(){
    var len = fA.length;
    if(fI >= len)
        fI = 1;
    actF(fI);
    fI++;
}

function rotFBak(){
    var len=fA.length;
    fI=fI-2;
    if(fI<1)
        fI=len-1;
    actF(fI);
    fI++;
}

function clearAF(){
    var len = rBtnIds.length;
	for (var i=0;i<rBtnIds.length;i++){
		document.getElementById(rBtnIds[i]).setAttribute("class", "rotatorButton");
		document.getElementById(rBtnIds[i]).setAttribute("className", "rotatorButton");

	}
}

function actF(i){
    clearAF();
    this.index = i;
    var newActive = 'rotatorOption'+i;
    document.getElementById(newActive).setAttribute("class", "rotatorButtonActive");
    document.getElementById(newActive).setAttribute("className", "rotatorButtonActive");
    document.getElementById('featuredRotatorLeft').innerHTML = fA[this.index];
}

function makeF(u,i,a,wt,tr){
    this.url = u;
    this.img = i;
    this.alt = a;
    this.wt = wt;
    this.tr = tr;
    this.write = writeF;
}

function writeF(){
    var str = '';
    str += '<a href="' + this.url;
    if (this.wt != "")
        if (this.url.indexOf("?") > -1)
            str += '&';
        else
            str += '?';
    str += this.wt + '" target="' + this.tr + '">';
    str += '<img src="' + this.img + '" alt="' + this.alt + '"></a>';
    return str;
}

function ShowModal(modalPopupName) {
    var modal = $find(modalPopupName); //the modalPopup var is declared in code-behind.

    currentModalID = modalPopupName;
    isModalDisplayed = true;
    modal.show();
}

function writeAF(u,wt,t,tr) {
    var str = '<a href="' + u;
    if (wt != "")
        if (u.indexOf("?") > -1)
        str += '&';
    else
        str += '?';
    str += wt + '" target="' + tr; 
    str += '">' + t + '</a>';
    return str;
} 
function ShowTPConfirm(siteName, url) {
    var answer = confirm("This site contains links to third-party Web sites on the Internet. These links are provided as a service to individuals interested in additional information. These sites are not part of any " + siteName + " provided Web site. The content and materials in these third-party web sites are not produced or endorsed by " + siteName + " and some of these sites may refer to uses for products we provide that are not recommended by " + siteName + "");
    if (answer)
        window.location = url;
}
function CtrlLength(nLength,cId) 
{
    if (event.srcElement.value.length == nLength)
            document.all(cId).focus();
}
    
var phone_field_length=0;
function TabNext(obj,event,len,next_field) 
{
	if (event == "down") 
	{
		phone_field_length=obj.value.length;
    }
	else if (event == "up") 
	{
		if (obj.value.length != phone_field_length) {
			phone_field_length=obj.value.length;
			if (phone_field_length == len) {
				next_field.focus();
				}
			}
		}
	}
//
//
//
//
// ROUNDED CORNERS	
//
//
//
//
// Register OnLoad event handler
//
addLoadEvent(function() { 
if(!roundedCornersCheck())
    return;
  // Transparent Top Rounded Corners
    Rounded("div.topRoundSmall","top","#FFF","transparent","small");
    Rounded("div.topRoundLarge","top","#FFF","transparent");

  // Transparent All Rounded Corners
    Rounded("div.allRoundSmall","all","#FFF","transparent","small");
    Rounded("div.allRoundLarge","all","#FFF","transparent");

// Transparent Top Right Rounded Product Detail Tabs
//Rounded("div.productDetailTab","tr","#fff","#1548ed","border #999");
//Rounded("div.productDetailActiveTab","tr","transparent","#fff","border #999");
});

function roundedCornersCheck(){
if(!document.getElementById || !document.createElement)
    return(false);
isXHTML=/html\:/.test(document.getElementsByTagName('body')[0].nodeName);
if(Array.prototype.push==null){Array.prototype.push=function(){
      this[this.length]=arguments[0]; return(this.length);}}
return(true);
}

function Rounded(selector,wich,bk,color,opt){
var i,prefixt,prefixb,cn="r",ecolor="",edges=false,eclass="",b=false,t=false;

if(color=="transparent"){
    cn=cn+"x";
    ecolor=bk;
    bk="transparent";
    }
else if(opt && opt.indexOf("border")>=0){
    var optar=opt.split(" ");
    for(i=0;i<optar.length;i++)
        if(optar[i].indexOf("#")>=0) ecolor=optar[i];
    if(ecolor=="") ecolor="#666";
    cn+="e";
    edges=true;
    }
else if(opt && opt.indexOf("smooth")>=0){
    cn+="a";
    ecolor=Mix(bk,color);
    }
if(opt && opt.indexOf("small")>=0) cn+="s";
prefixt=cn;
prefixb=cn;
if(wich.indexOf("all")>=0){t=true;b=true}
else if(wich.indexOf("top")>=0) t="true";
else if(wich.indexOf("tl")>=0){
    t="true";
    if(wich.indexOf("tr")<0) prefixt+="l";
    }
else if(wich.indexOf("tr")>=0){
    t="true";
    prefixt+="r";
    }
if(wich.indexOf("bottom")>=0) b=true;
else if(wich.indexOf("bl")>=0){
    b="true";
    if(wich.indexOf("br")<0) prefixb+="l";
    }
else if(wich.indexOf("br")>=0){
    b="true";
    prefixb+="r";
    }
var v=getElementsBySelector(selector);
var l=v.length;
for(i=0;i<l;i++){
    if(edges) AddBorder(v[i],ecolor);
    if(t) AddTop(v[i],bk,color,ecolor,prefixt);
    if(b) AddBottom(v[i],bk,color,ecolor,prefixb);
    }
}

function AddBorder(el,bc){
var i;
if(!el.passed){
    if(el.childNodes.length==1 && el.childNodes[0].nodeType==3){
        var t=el.firstChild.nodeValue;
        el.removeChild(el.lastChild);
        var d=CreateEl("span");
        d.style.display="block";
        d.appendChild(document.createTextNode(t));
        el.appendChild(d);
        }
    for(i=0;i<el.childNodes.length;i++){
        if(el.childNodes[i].nodeType==1){
            el.childNodes[i].style.borderLeft="1px solid "+bc;
            el.childNodes[i].style.borderRight="1px solid "+bc;
            }
        }
    }
el.passed=true;
}
    
function AddTop(el,bk,color,bc,cn){
var i,lim=4,d=CreateEl("b");

if(cn.indexOf("s")>=0) lim=2;
if(bc) d.className="artop";
else d.className="rtop";
d.style.backgroundColor=bk;
for(i=1;i<=lim;i++){
    var x=CreateEl("b");
    x.className=cn + i;
    x.style.backgroundColor=color;
    if(bc) x.style.borderColor=bc;
    d.appendChild(x);
    }
el.style.paddingTop=0;
el.insertBefore(d,el.firstChild);
}

function AddBottom(el,bk,color,bc,cn){
var i,lim=4,d=CreateEl("b");

if(cn.indexOf("s")>=0) lim=2;
if(bc) d.className="artop";
else d.className="rtop";
d.style.backgroundColor=bk;
for(i=lim;i>0;i--){
    var x=CreateEl("b");
    x.className=cn + i;
    x.style.backgroundColor=color;
    if(bc) x.style.borderColor=bc;
    d.appendChild(x);
    }
el.style.paddingBottom=0;
el.appendChild(d);
}

function CreateEl(x){
if(isXHTML) return(document.createElementNS('http://www.w3.org/1999/xhtml',x));
else return(document.createElement(x));
}

function getElementsBySelector(selector){
var i,selid="",selclass="",tag=selector,f,s=[],objlist=[];

if(selector.indexOf(" ")>0){  //descendant selector like "tag#id tag"
    s=selector.split(" ");
    var fs=s[0].split("#");
    if(fs.length==1) return(objlist);
    f=document.getElementById(fs[1]);
    if(f) return(f.getElementsByTagName(s[1]));
    return(objlist);
    }
if(selector.indexOf("#")>0){ //id selector like "tag#id"
    s=selector.split("#");
    tag=s[0];
    selid=s[1];
    }
if(selid!=""){
    f=document.getElementById(selid);
    if(f) objlist.push(f);
    return(objlist);
    }
if(selector.indexOf(".")>0){  //class selector like "tag.class"
    s=selector.split(".");
    tag=s[0];
    selclass=s[1];
    }
var v=document.getElementsByTagName(tag);  // tag selector like "tag"
if(selclass=="")
    return(v);
for(i=0;i<v.length;i++){
    if(v[i].className.indexOf(selclass)>=0){
        objlist.push(v[i]);
        }
    }
return(objlist);
}

function Mix(c1,c2){
var i,step1,step2,x,y,r=new Array(3);
if(c1.length==4)step1=1;
else step1=2;
if(c2.length==4) step2=1;
else step2=2;
for(i=0;i<3;i++){
    x=parseInt(c1.substr(1+step1*i,step1),16);
    if(step1==1) x=16*x+x;
    y=parseInt(c2.substr(1+step2*i,step2),16);
    if(step2==1) y=16*y+y;
    r[i]=Math.floor((x*50+y*50)/100);
    }
return("#"+r[0].toString(16)+r[1].toString(16)+r[2].toString(16));
}

// If enter pressed, calls trimR
function trimREnter(e, text)
{
    var keynum;

    if(window.event) // IE
      keynum = e.keyCode;
    else if(e.which) // Netscape/Firefox/Opera
      keynum = e.which;

    if (keynum==13) // enter pressed
        trimR(text);
}

// Trims one whitespace char from the right of a textbox object
function trimR(text)
{
    text.value=text.value.replace(/\s$/, '');
}

function showCtl(c)
{
    document.getElementById(c).style['display']='';
}

function hideCtl(c)
{
    document.getElementById(c).style['display']='none';
}

var brws =
{
    vrsn: function() {
        var v = 999;
        if (navigator.appVersion.indexOf("MSIE") != -1)
            v = parseFloat(navigator.appVersion.split("MSIE")[1]);
        return v;
    }
}

//alert(brws.vrsn());

if (brws.vrsn() < 7) {

    // Horizontal Nav Menu IE6 Hover Support
    // finds all LI tags in 'topNav' elements 
    // and replaces their class name on hover

    //sfHover = function() {
    //	var sfEls = document.getElementById("topNav").getElementsByTagName("LI");
    //	for (var i=0; i<sfEls.length; i++) {
    //		sfEls[i].onmouseout=function() {
    //			this.className=this.className.replace(new RegExp("\\s?sfhover\\b"), "");
    //		}
    //	    sfEls[i].onmouseover=function() {
    //		    this.className+=" sfhover";
    //	    }
    //	}
    //}

    sfHover = function() {
        //alert("sfHover fired");
        // Support the standard nav without a class of nav.
        var el = document.getElementById("menuElem");

        if (el == null) // no menu - just bail
            return;

        if (!/\bnav\b/.test(el.className) && el.tagName == "UL")
            setHover(el);

        // Find all unordered lists.
        var ieNavs = document.getElementsByTagName('ul');
        for (i = 0; i < ieNavs.length; i++) {
            //alert(ieNavs[i]);
            var ul = ieNavs[i];
            // If they have a class of nav add the menu hover.
            if (/\bnav\b/.test(ul.className))
                setHover(ul);
        }
    }

    function setHover(nav) {
        //alert("setHover fired");

        var ieULs = nav.getElementsByTagName('ul');
        if (navigator.appVersion.substr(22, 3) != "5.0") {
            // IE script to cover <select> elements with <iframe>s
            for (j = 0; j < ieULs.length; j++) {
                //alert(ieULs[j]);
                var ieMat = document.createElement('iframe');
                if (document.location.protocol == "https:")
                    ieMat.src = "javascript:'<html></html>'";
                else if (window.opera != "undefined")
                    ieMat.src = "";
                else
                    ieMat.src = "javascript:false";
                ieMat.scrolling = "no";
                ieMat.frameBorder = "0";
                ieMat.style.width = ieULs[j].offsetWidth + "px";
                ieMat.style.height = ieULs[j].offsetHeight + "px";
                ieMat.style.zIndex = "-1";
                ieULs[j].insertBefore(ieMat, ieULs[j].childNodes[0]);
                ieULs[j].style.zIndex = "101";
            }
            // IE script to change class on mouseover
            var ieLIs = nav.getElementsByTagName('li');
            for (var i = 0; i < ieLIs.length; i++) if (ieLIs[i]) {
                // Add a sfhover class to the li.
                ieLIs[i].onmouseover = function() {
                    if (!/\bsfhover\b/.test(this.className))
                        this.className += " sfhover";
                }
                ieLIs[i].onmouseout = function() {
                    if (!this.contains(event.toElement))
                        this.className = this.className.replace(' sfhover', '');
                }
            }
        } else {
            // IE 5.0 doesn't support iframes so hide the select statements on hover and show on mouse out.
            // IE script to change class on mouseover
            var ieLIs = document.getElementById('nav').getElementsByTagName('li');
            for (var i = 0; i < ieLIs.length; i++) if (ieLIs[i]) {
                ieLIs[i].onmouseover = function() { this.className += " sfhover"; hideSelects(); }
                ieLIs[i].onmouseout = function() { this.className = this.className.replace(' sfhover', ''); showSelects() }
            }
        }
    }

    // If IE 5.0 hide and show the select statements.
    function hideSelects() {
        var oSelects = document.getElementsByTagName("select");
        for (var i = 0; i < oSelects.length; i++)
            oSelects[i].className += " hide";
    }

    function showSelects() {
        var oSelects = document.getElementsByTagName("select");
        for (var i = 0; i < oSelects.length; i++)
            oSelects[i].className = oSelects[i].className.replace(" hide", "");
    }

    //if (window.attachEvent) window.attachEvent("onload", sfHover);
    addLoadEvent(sfHover);

}

//for drop down content div

var dropdowncontent = {
    disableanchorlink: true, //when user clicks on anchor link, should link itself be disabled (always true if "revealbehavior" above set to "click")
    hidedivmouseout: [true, 200], //Set hiding behavior within Drop Down DIV itself: [hide_div_onmouseover?, miliseconds_before_hiding]
    ajaxloadingmsg: "Loading content. Please wait...", //HTML to show while ajax page is being feched, if applicable
    ajaxbustcache: true, //Bust cache when fetching Ajax pages?

    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 //calculate user added horizontal offset
            var verticaloffset = (subobj.dropposition[1] == "top") ? -subobj.offsetHeight : anchorobj.offsetHeight //calculate user added vertical offset

            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)" //hide drop down box initially via clipping
            subobj.style.visibility = "visible"
            subobj.startTime = new Date().getTime()
            subobj.contentheight = parseInt(subobj.offsetHeight)
            if (typeof window["hidetimer_" + subobj.id] != "undefined") //clear timer that hides drop down box?
                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 //return cos curve based value from a percentage input
    },

    slideengine: function(obj, direction) {
        var elapsed = new Date().getTime() - obj.startTime //get time animation has run
        if (elapsed < obj.glidetime) { //if time run is less than specified length
            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 { //if animation finished
            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) // if Mozilla, IE7, Safari etc
            page_request = new XMLHttpRequest()
        else if (window.ActiveXObject) { // if IE6 or below
            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 //Display "fetching page message"
        page_request.onreadystatechange = function() { dropdowncontent.loadpage(page_request, divId) }
        if (this.ajaxbustcache) //if bust caching of external page
            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) //hide drop down DIV when mouse rolls out of it?
            subobj.onmouseout = function(e) { dropdowncontent.hide(this, subobj, e) }
    }
}

