function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}
//***********************************************************************************
function submitsearch(){ 
	document.searchform.submit();}
//***********************************************************************************
function ShowPopup(hoveritem, divname){
	hp = document.getElementById(divname);
    // Set position of hover-over popup
    //hp.style.top = hoveritem.offsetTop + 58;
	//hp.style.left = hoveritem.offsetLeft + 20;
    // Set popup to visible
    hp.style.visibility = "Visible";
}
function HidePopup(divname){
	hp = document.getElementById(divname);
	hp.style.visibility = "Hidden";
}
//***********************************************************************************
function changeDisplay( elementId, setTo ) {
  var theElement;
  if( document.getElementById ) {
    //DOM
    theElement = document.getElementById( elementId );
  } else if( document.all ) {
    //Proprietary DOM
    theElement = document.all[ elementId ];
  }
  if( !theElement ) {
    /* The page has not loaded, or the browser claims to
    support document.getElementById or document.all but
    cannot actually use either */
    return;
  }
  //Reference the style ...
  if( theElement.style ) { theElement = theElement.style; }
  if( typeof( theElement.display ) == 'undefined' ) {
    //The browser does not allow us to change the display style
    //Alert something sensible (not what I have here ...)
    window.alert( 'Your browser does not support this' );
    return;
  }
  //Change the display style
  theElement.display = setTo;
}
//*********************************************************************************
function opensection(sectionnum){
		path = 'images/';
		if (sectionnum == activesection){
			hidediv('section' + sectionnum);

			elem = document.getElementById('sectionimg' + sectionnum);
			elem.src = path + 'plus.gif';		
			return 0;
		}
		else {
			if (activesection != 0){
				hidediv('section' + activesection);
				elem = document.getElementById('sectionimg' + activesection);
				elem.src = path + 'plus.gif';		
			}
			
		
			showdiv('section' + sectionnum);
	
			elem = document.getElementById('sectionimg' + sectionnum);
			elem.src = path + 'minus.gif';		
			return sectionnum;
		}
}
//*********************************************************************************
function loadpage(thepagename){
}
//***********************************************************************************
function getElementHeight(Elem) {
	if (ns4) {
		var elem = getObjNN4(document, Elem);
		return elem.clip.height;
	} else {
		if(document.getElementById) {
			var elem = document.getElementById(Elem);
		} else if (document.all){
			var elem = document.all[Elem];
		}
		if (op5) { 
			xPos = elem.style.pixelHeight;
		} else {
			xPos = elem.offsetHeight;
		}
		return xPos;
	} 
}
//***********************************************************************************
function showdiv(id) {
 	//safe function to show an element with a specified id
		  
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = 'block';
	}
	else {
		if (document.layers) { // Netscape 4
			document.id.display = 'block';
		}
		else { // IE 4
			document.all.id.style.display = 'block';
		}
	}
}
function hidediv(id) {
 	//safe function to show an element with a specified id
		  
	if (document.getElementById) { // DOM3 = IE5, NS6
		document.getElementById(id).style.display = 'none';
	}
	else {
		if (document.layers) { // Netscape 4
			document.id.display = 'none';
		}
		else { // IE 4
			document.all.id.style.display = 'none';
		}
	}
}
//***********************************************************************************
var newsformfieldnames = new Array('fname','lname','company','email'); 
var newsfieldtypes = new Array('text','text','text','email'); 
var newsfieldtitles = new Array('First Name','Last Name','Company Name','Email Address'); 
var newsfieldvaltype = new Array('required','required','required','required');

function newsletterfieldvalidationjs(myform){
	var invalidfields = new Array(0);
	xnum=0;
	while (xnum < newsformfieldnames.length){
		
		
		if(newsfieldtypes[xnum] == "email") {
			if(newsfieldvaltype[xnum] == "required"){
				if(!isEmail(myform.elements[newsformfieldnames[xnum]].value.trim())){
					invalidfields.push('Valid ' + newsfieldtitles[xnum]);
				}		
			}
			else if(!(myform.elements[newsformfieldnames[xnum]].value.trim() == "")){
				if(!isEmail(myform.elements[newsformfieldnames[xnum]].value.trim())){
					invalidfields.push('Valid ' + newsfieldtitles[xnum]);
				}						
			}
		}
		//*************************************
		else if(newsfieldtypes[xnum] == "url") {
			if(newsfieldvaltype[xnum] == "required"){
				if(!validurl(myform.elements[newsformfieldnames[xnum]].value.trim())){
					invalidfields.push(newsfieldtitles[xnum]);
				}			
			}
			else if(!(myform.elements[newsformfieldnames[xnum]].value.trim() == "")){
				if(!validurl(myform.elements[newsformfieldnames[xnum]].value.trim())){
					invalidfields.push('Valid ' + newsfieldtitles[xnum]);
				}						
			}
		}
		//*************************************
		else if(newsfieldtypes[xnum] == "select") {
			if(myform.elements[newsformfieldnames[xnum]].selectedIndex == 0){
				invalidfields.push(newsfieldtitles[xnum]);
			}			
		}
		//*************************************
		else if(newsfieldtypes[xnum] == "phone") {
			myform.elements[newsformfieldnames[xnum]].value = myform.elements[newsformfieldnames[xnum]].value.replace(/-/g, ".");
			if(newsfieldvaltype[xnum] == "required"){				
				if(!checkInternationalPhone(myform.elements[newsformfieldnames[xnum]].value.trim())){
					invalidfields.push('Valid ' + newsfieldtitles[xnum]);
				}			
			}
			else if(!(myform.elements[newsformfieldnames[xnum]].value.trim() == "")){
				if(!checkInternationalPhone(myform.elements[newsformfieldnames[xnum]].value.trim())){
					invalidfields.push('Valid ' + newsfieldtitles[xnum]);
				}						
			}
		}
		//*************************************
		else{
			if(myform.elements[newsformfieldnames[xnum]].value.trim() == "" || myform.elements[newsformfieldnames[xnum]].value.trim() == "First Name" || myform.elements[newsformfieldnames[xnum]].value.trim() == "Last Name" || myform.elements[newsformfieldnames[xnum]].value.trim() == "Company"){
				invalidfields.push(newsfieldtitles[xnum]);
			}			
		}
		xnum++;
	} 
	//*************************************
	if (invalidfields == ""){return true;}
	else {alert('Please enter values for the following:\n\r' + invalidfields.join("\n\r")); return false;}
}
//*****************************************************************************************



String.prototype.trim = function() {
	return this.ltrim().rtrim();
};

String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}

String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}

//***********************************************************************************
