	var ns4 = (document.layers);
	var ie4 = (document.all && !document.getElementById);
	var ie5 = (document.all && document.getElementById);
	var ns6 = (!document.all && document.getElementById);
	var tid;

	function findPosX(obj) {
		var curleft = 0;
		if (obj.offsetParent) {
			while (obj.offsetParent) {
				curleft += obj.offsetLeft
				obj = obj.offsetParent;
			}
		}
		else if (obj.x) {curleft += obj.x;}
		return curleft;
	}
	
	function findPosY(obj) {
		var curtop = 0;
		if (obj.offsetParent) {
			while (obj.offsetParent) {
				curtop += obj.offsetTop
				obj = obj.offsetParent;
			}
		}
		else if (obj.y) {curtop += obj.y;}
		return curtop;
	}

	function hideall() {
		clearTimeout(tid);
		var len = childrenNames.length;
		for (i=0;i<childrenNames.length;i++) {
			hide(childrenNames[i]);
		}
	}
	
	function reveal(id,button) {
		var o;
		if (document.getElementById) {
			   o = document.getElementById(button);
		}
		else if (document.all) {
			   o = document.all[button];
		}
		else if (document.layers) {
			if (document.layers[button]) {
				o = document.layers[button];
			}
			else {
			    o = document.layers.testP.layers[button];
			}
		}
		if(ns4)				{	// Netscape 4
			document.layers[id].left       = findPosX(o)+childoffset_x;
			document.layers[id].top        = findPosY(o)+15;
			document.layers[id].height     = childheight;
			document.layers[id].visibility = "show";
		}
		else if(ie4)		{	// Explorer 4
			document.all[id].style.left       = findPosfindPosX(o)+childoffset_x;
			document.all[id].style.top        = findPosY(o)+15;
			document.all[id].style.height     = childheight;
			document.all[id].style.visibility = "visible";
		}
		else if(ie5 || ns6) {	// Explorer 5+ and Netscape 6+
			document.getElementById(id).style.left       = findPosX(o)+childoffset_x;
			document.getElementById(id).style.top        = findPosY(o)+15;
			document.getElementById(id).style.height     = childheight;
			document.getElementById(id).style.visibility = "visible";
		}
	}

	function showpic(id,button,wid) {
		var o;
		if (document.getElementById) {
			   o = document.getElementById(button);
		}
		else if (document.all) {
			   o = document.all[button];
		}
		else if (document.layers) {
			if (document.layers[button]) {
				o = document.layers[button];
			}
			else {
			    o = document.layers.testP.layers[button];
			}
		}
		if(ns4)				{	// Netscape 4
			document.layers[id].width     = wid;
			document.layers[id].visibility = "show";
		}
		else if(ie4)		{	// Explorer 4
			document.all[id].style.width     = wid;
			document.all[id].style.visibility = "visible";
		}
		else if(ie5 || ns6) {	// Explorer 5+ and Netscape 6+
			document.getElementById(id).style.width     = wid;
			document.getElementById(id).style.visibility = "visible";
		}
	}

	function hide(id){
		if(ns4)				{document.layers[id].visibility = "hide";}					// Netscape 4
		else if(ie4)		{document.all[id].style.visibility = "hidden";}				// Explorer 4
		else if(ie5 || ns6)	{document.getElementById(id).style.visibility = "hidden";}	// Explorer 5+ and Netscape 6+
	}

	function FP_swapImg() {//v1.0 
		var doc=document,args=arguments,elm,n;
		doc.$imgSwaps=new Array();
		for(n=2; n<args.length;n+=2) {
			elm=FP_getObjectByID(args[n]);
			if(elm) {
				doc.$imgSwaps[doc.$imgSwaps.length]=elm;
				elm.$src=elm.src; elm.src=args[n+1];
			}
		}
	}
	
	function FP_preloadImgs() {//v1.0 
		var d=document,a=arguments;
		if(!d.FP_imgs) {d.FP_imgs=new Array();}
		for(var i=0; i<a.length; i++) {
			d.FP_imgs[i]=new Image;
			d.FP_imgs[i].src=a[i];
		}
	}
	
	function FP_getObjectByID(id,o) {//v1.0 
	 var c,el,els,f,m,n; if(!o)o=document; if(o.getElementById) el=o.getElementById(id);
	 else if(o.layers) c=o.layers; else if(o.all) el=o.all[id]; if(el) return el;
	 if(o.id==id || o.name==id) return o; if(o.childNodes) c=o.childNodes; if(c)
	 for(n=0; n<c.length; n++) { el=FP_getObjectByID(id,c[n]); if(el) return el; }
	 f=o.forms; if(f) for(n=0; n<f.length; n++) { els=f[n].elements;
	 for(m=0; m<els.length; m++){ el=FP_getObjectByID(id,els[n]); if(el) return el; } }
	 return null;
	}
	
	function FP_changeProp() {//v1.0 
	 var args=arguments,d=document,i,j,id=args[0],o=FP_getObjectByID(id),s,ao,v,x;
	 d.$cpe=new Array(); if(o) for(i=2; i<args.length; i+=2) { v=args[i+1]; s="o"; 
	 ao=args[i].split("."); for(j=0; j<ao.length; j++) { s+="."+ao[j]; if(null==eval(s)) { 
	  s=null; break; } } x=new Object; x.o=o; x.n=new Array(); x.v=new Array();
	 x.n[x.n.length]=s; eval("x.v[x.v.length]="+s); d.$cpe[d.$cpe.length]=x;
	 if(s) eval(s+"=v"); }
	}
	
	function loader() {
		FP_preloadImgs('');
	}
	
	function checkerDirectContact() {
		if (document.form1.name.value == "")	{alert("Please enter YOUR NAME ...");document.form1.name.focus();return false;}
		if (document.form1.email.value == "")	{alert("Please enter YOUR E-MAIL ADDRESS ...");document.form1.email.focus();return false;}
		if (document.form1.comments.value == ""){alert("Please enter YOUR COMMENTS ...");document.form1.comments.focus();return false;}
		if (document.form1.code.value == "")	{alert("Please COPY THE SECURITY CODE INTO THE TEXTBOX ...");document.form1.code.focus();return false;}
		return emailCheck();
	}
	
	function checkerAlertReport() {
		if (document.form1.name.value == "")	{alert("Please enter YOUR NAME.");document.form1.name.focus();return false;}
		if (document.form1.email.value == "" && 
			document.form1.phone1.value == "" && 
			document.form1.phone2.value == "" && 
			document.form1.phone3.value == "" 
			)	{
			alert("Please enter YOUR PHONE NUMBER or YOUR EMAIL ADDRESS.");document.form1.email.focus();return false;
		}
		return emailCheck();
	}
	
	function emailCheck() {
		var emailStr = document.form1.email.value;
		var checkTLD=1;
		var knownDomsPat=/^(com|net|org|edu|int|mil|gov|tv|arpa|biz|aero|name|coop|info|pro|museum)$/;
		var emailPat=/^(.+)@(.+)$/;
		var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
		var validChars="\[^\\s" + specialChars + "\]";
		var quotedUser="(\"[^\"]*\")";
		var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
		var atom=validChars + '+';
		var word="(" + atom + "|" + quotedUser + ")";
		var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
		var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
		var matchArray=emailStr.match(emailPat);
		if (matchArray==null) {alert("The E-mail address seems incorrect (check @ and .'s)");document.form1.email.focus();return false;}
		var user=matchArray[1];
		var domain=matchArray[2];
		for (i=0; i<user.length; i++) {
			if (user.charCodeAt(i)>127) {alert("The E-mail address username contains invalid characters.");document.form1.email.focus();return false;}
		}
		for (i=0; i<domain.length; i++) {
			if (domain.charCodeAt(i)>127) {alert("The E-mail address domain name contains invalid characters.");document.form1.email.focus();return false;}
		}
		if (user.match(userPat)==null) {alert("The E-mail address username doesn't seem to be valid.");document.form1.email.focus();return false;}
		var IPArray=domain.match(ipDomainPat);
		if (IPArray!=null) {
			for (var i=1;i<=4;i++) {
				if (IPArray[i]>255) {alert("The E-mail Destination IP address is invalid!");document.form1.email.focus();return false;}
			}
			return true;
		}
		var atomPat=new RegExp("^" + atom + "$");
		var domArr=domain.split(".");
		var len=domArr.length;
		for (i=0;i<len;i++) {
			if (domArr[i].search(atomPat)==-1) {alert("The E-mail address domain name does not seem to be valid.");document.form1.email.focus();return false;}
		}
		if (checkTLD && domArr[domArr.length-1].length!=2 && domArr[domArr.length-1].search(knownDomsPat)==-1) {
			alert("The E-mail address address must end in a well-known domain or two letter " + "country.");
			document.form1.email.focus();
			return false;
		}
		if (len<2) {alert("The E-mail address address is missing a hostname!");document.form1.email.focus();return false;}
		return true;
	}
