// JavaScript Document
// Jason Reynolds (with some help)
// Vigilar, Inc
// Created: 11/20/07
// Modified: 05/23/07

/* ------------------------------------------------------
Page initializer -
------------------------------------------------------ */
function initialize(){
	// instantiates common objects
	if(document.getElementById){
		slider = document.getElementById("contactSlider");
		slider.style.height = 0;
		slider.style.top = 0;
		button = document.getElementById("slideCntrl");
		button.innerHTML = "<img src=\"\/images_\/contact_icon.png\" alt=\"\" \/> <a href=\"#\" onclick=\"SlideDown();\"> contact us</a>";
	}

}


/* ------------------------------------------------------
Contact Drop
------------------------------------------------------ */
function SlideDown(){
	if(document.getElementById){
		if(parseInt(slider.style.height) < 250){
			slider.style.height = parseInt(slider.style.height) + 25 + "px";
			slider.style.left = "auto";
			slider.style.visibility = "visible";
			button.innerHTML = "<img src=\"\/images_\/contact_icon.png\" alt=\"\" \/> <a href=\"#\" onclick=\"SlideUp();\"> contact us</a>";
			setTimeout("SlideDown()",30);	
		}
	}
}

function SlideUp(){
	if(document.getElementById){
		if(parseInt(slider.style.height) > 0){
			slider.style.height = parseInt(slider.style.height) - 25 + "px";
			button.innerHTML = "<img src=\"\/images_\/contact_icon.png\" alt=\"\" \/> <a href=\"#\" onclick=\"SlideDown();\"> contact us</a>";
			setTimeout("SlideUp()",30);			
		}
	}
}

function showProduct(item){
	if(document.getElementById){
		if(document.getElementById(item).style.visibility == "hidden"){
			document.getElementById(item).style.height = "auto";
			document.getElementById(item).style.visibility = "visible";
			document.getElementById(item).style.display = "block";
		}else{
			document.getElementById(item).style.height = 0 + "px";
			document.getElementById(item).style.visibility = "hidden";
			document.getElementById(item).style.display = "none";
		}
	}
}

/* ------------------------------------------------------
Suckerfish IE fix
------------------------------------------------------ */

sfHover = function() {
	var sfEls = document.getElementById("tier1nav").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);


/* ------------------------------------------------------
Vertical accordion script
------------------------------------------------------ */
var slider=function(){
	var array=[];
	var speed=10;
	var timer=10;
	return{
		init:function(t,c){
			var s,ds,l,i;
			s=document.getElementById(t); ds=s.getElementsByTagName('div'); l=ds.length; i=0;
			for(i=0;i<l;i++){
				var d,did; d=ds[i]; did=d.id;
				if(did.indexOf("header")!=-1){
					d.onclick=new Function("slider.process(this)");
				}else if(did.indexOf("content")!=-1){
					array.push(did.replace('-content',''));
					d.maxh=d.offsetHeight;
					if(c==1&&i==1){
						d.style.display='block';
					}else{
						d.style.height='0px';
						d.style.display='none';
					}
				} 
			}
		},
		process:function(d){
			var cl,i; cl=array.length; i=0;
			for(i;i<cl;i++){
				var s,h,c,cd;
				s=array[i]; h=document.getElementById(s+'-header');
				c=s+'-content'; cd=document.getElementById(c);
				clearInterval(cd.timer);
				if(h==d&&cd.style.display=='none'){
					cd.style.display='block';
					this.islide(c,1);
				}else if(cd.style.display=='block'){this.islide(c,-1)}
			}
		},
		islide:function(i,d){
			var c,m; c=document.getElementById(i); m=c.maxh; c.direction=d;
			c.timer=setInterval("slider.slide('"+i +"')",timer);
		},
		slide:function(i){
			var c,m,h,dist; c=document.getElementById(i); m=c.maxh; h=c.offsetHeight;
			dist=(c.direction==1)?Math.round((m-h)/speed):Math.round(h/speed);
			if(dist<=1){dist=1}
			c.style.height=h+(dist*c.direction)+'px';
			c.style.opacity=h/c.maxh;
			c.style.filter='alpha(opacity='+(h*100/c.maxh)+')';
			if(h<2&&c.direction!=1){
				c.style.display='none';
				clearInterval(c.timer);
			}else if(h>(m-2)&&c.direction==1){clearInterval(c.timer)}
		}
	};
}();


/* ------------------------------------------------------
Horizontal Accordion script
------------------------------------------------------ */
var slideMenu=function(){
	var sp,st,t,m,sa,l,w,sw,ot;
	return{
		build:function(sm,sw,mt,s,sl,h){
			sp=s; st=sw; t=mt;
			m=document.getElementById(sm);
			sa=m.getElementsByTagName('li');
			l=sa.length; w=m.offsetWidth; sw=w/l;
			ot=Math.floor((w-st)/(l-1)); var i=0;
			for(i;i<l;i++){s=sa[i]; s.style.width=sw+'px'; this.timer(s)}
			if(sl!=null){m.timer=setInterval(function(){slideMenu.slide(sa[sl-1])},t)}
		},
		timer:function(s){s.onmouseover=function(){clearInterval(m.timer);m.timer=setInterval(function(){slideMenu.slide(s)},t)}},
		slide:function(s){
			var cw=parseInt(s.style.width,'10');
			if(cw<st){
				var owt=0; var i=0;
				for(i;i<l;i++){
					if(sa[i]!=s){
						var o,ow; var oi=0; o=sa[i]; ow=parseInt(o.style.width,'10');
						if(ow>ot){oi=Math.floor((ow-ot)/sp); oi=(oi>0)?oi:1; o.style.width=(ow-oi)+'px'}
						owt=owt+(ow-oi)}}
				s.style.width=(w-owt)+'px';
			}else{clearInterval(m.timer)}
		}
	};
}();

// begin form validation ----------------------------------------------------------------------------------------------
 /*
 * Form vaildation for all standard elements
 *
 */

function validateNewsletter(theForm) {
	var reason = "";
	//if (theForm.email1 != theForm.email2){
		//reason += "Emails do not match";	
	//}
	reason += validateEmail(theForm.email1);
	reason += validateEmail(theForm.email2);
	if (reason != "") {
		alert("Some fields need correction:\n" + reason);
		return false;
	}
	return true;	
}


function validateFormOnSubmit(theForm) {
	var reason = "";
	reason += validateEmpty(theForm.firstname);
	reason += validateEmpty(theForm.lastname);
	reason += validateEmpty(theForm.title);
	reason += validateEmpty(theForm.companyname);
	reason += validateEmpty(theForm.phone);
	reason += validateEmpty(theForm.address1);
	reason += validateEmpty(theForm.city);
	reason += validateEmpty(theForm.state);
	reason += validateEmpty(theForm.zip);
	reason += validateEmail(theForm.email);
	 
	if (reason != "") {
		alert("Some fields need correction:\n" + reason);
		return false;
	}
	return true;
}

function validateEmpty(fld) {
    var error = ""; 
    if (fld.value.length == 0) {
        fld.style.background = 'Yellow'; 
        error = "The required field has not been filled in.\n"
    } else {
        fld.style.background = 'White';
    }
    return error;  
}

function trim(s)
{
	return s.replace(/^\s+|\s+$/, '');
}

function validateEmail(fld) {
	var error="";
	var tfld = trim(fld.value); // value of field with whitespace trimmed off
	var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
	var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
	
	if (fld.value == "") {
		fld.style.background = 'Yellow';
		error = "You didn't enter an email address.\n";
	} else if (!emailFilter.test(tfld)) {              //test email for illegal characters
		fld.style.background = 'Yellow';
		error = "Please enter a valid email address.\n";
	} else if (fld.value.match(illegalChars)) {
		fld.style.background = 'Yellow';
		error = "The email address contains illegal characters.\n";
	} else {
		fld.style.background = 'White';
	}
	return error;
}

// begin swfobject ----------------------------------------------------------------------------------------------
/**
 * SWFObject v1.4.4: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2006 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 * **SWFObject is the SWF embed script formerly known as FlashObject. The name was changed for
 *   legal reasons.
 */
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,_b){
	if(!document.getElementById){
		return;
	}
	this.DETECT_KEY=_b?_b:"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(c){
		this.addParam("bgcolor",c);
	}
	var q=_8?_8:"high";
	this.addParam("quality",q);
	this.setAttribute("useExpressInstall",_7);
	this.setAttribute("doExpressInstall",false);
	var _d=(_9)?_9:window.location;
	this.setAttribute("xiRedirectUrl",_d);
	this.setAttribute("redirectUrl","");
	if(_a){
		this.setAttribute("redirectUrl",_a);
	}
}

deconcept.SWFObject.prototype={
	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.push(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");
			}
		_19="<embed type=\"application/x-shockwave-flash\" src=\""+this.getAttribute("swf")+"\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\"";
		_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");}
_19="<object id=\""+this.getAttribute("id")+"\" classid=\"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000\" width=\""+this.getAttribute("width")+"\" height=\""+this.getAttribute("height")+"\">";
_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{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(_27){
this.major=_27[0]!=null?parseInt(_27[0]):0;
this.minor=_27[1]!=null?parseInt(_27[1]):0;
this.rev=_27[2]!=null?parseInt(_27[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(_29){
var q=document.location.search||document.location.hash;
if(q){var _2b=q.substring(1).split("&");
for(var i=0;i<_2b.length;i++){
if(_2b[i].substring(0,_2b[i].indexOf("="))==_29){
return _2b[i].substring((_2b[i].indexOf("=")+1));}}}
return "";}};
deconcept.SWFObjectUtil.cleanupSWFs=function(){if(window.opera||!document.all){return;}
var _2d=document.getElementsByTagName("OBJECT");
for(var i=0;i<_2d.length;i++){_2d[i].style.display="none";for(var x in _2d[i]){
if(typeof _2d[i][x]=="function"){_2d[i][x]=function(){};}}}};
deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};
__flash_savedUnloadHandler=function(){};
if(typeof window.onunload=="function"){
var _30=window.onunload;
window.onunload=function(){
deconcept.SWFObjectUtil.cleanupSWFs();_30();};
}else{window.onunload=deconcept.SWFObjectUtil.cleanupSWFs;}};
if(typeof window.onbeforeunload=="function"){
var oldBeforeUnload=window.onbeforeunload;
window.onbeforeunload=function(){
deconcept.SWFObjectUtil.prepUnload();
oldBeforeUnload();};
}else{window.onbeforeunload=deconcept.SWFObjectUtil.prepUnload;}
if(Array.prototype.push==null){
Array.prototype.push=function(_31){
this[this.length]=_31;
return this.length;};}
var getQueryParamValue=deconcept.util.getRequestParameter;
var FlashObject=deconcept.SWFObject;
var SWFObject=deconcept.SWFObject;

