	function FizzMailRequest(t) {
		var strPost=FizzFormValues(t,'fizzuploadprocess');
		//	document.getElementById("dbug").innerHTML=typeof strPost+"<br/>"+strPost;
		if (typeof(strPost)=="boolean") {
		//	document.getElementById("dbug").innerHTML="fine";
			return;
		}
		// document.getElementById("dbug").innerHTML=strPost;return;
		var actionUrl=relativeURL+"coursemail.asp";
		var datahead={postData:strPost, headers: { "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" }, errorCallback: FizzBurst };
		Fizz.Utils.loadURL("POST",actionUrl,true,FizzMailResponse, datahead);
	};
	function FizzMailResponse(req) {
		document.getElementById("fizzuploadprocess").style.visibility="visible";
		document.getElementById("fizzuploadprocess").innerHTML=unescape(req.xhRequest.responseText); return;
		try {
	//		document.getElementById('dbug').innerHTML=req.xhRequest.responseText; 
		} catch (e) {
			alert(e);
		}
	
	};
	function FizzBurst(req) {
			alert("Error: " + req.xhRequest.responseText);
	};
	function FizzFormValues(fobj,flag) { 
		   var complete=true;
   		   var str = ""; 
		   for(var i = 0;i < fobj.elements.length;i++) { 
		       switch(fobj.elements[i].type) 
		       { 
		           case "text": 
		               fobj.elements[i].style.backgroundColor="#fff";fobj.elements[i].style.border="1px solid #777";
		                if(fobj.elements[i].value.replace(/^\s*|\s*$/,"")=="") { complete=false;fobj.elements[i].style.backgroundColor="#ffff00";break;}
			if(fobj.elements[i].name=="fizzEmail") {
			    var mailStr=fobj.elements[i].value.replace(/^\s*|\s*$/,"");
			    if (!mailStr.IsEmail()) {
				complete=false;fobj.elements[i].style.backgroundColor="#ffff00";break;
			    }
			}
			if(fobj.elements[i].name=="fizzEmp" || fobj.elements[i].name=="fizzPhone") {
			    var numStr=fobj.elements[i].value.replace(/\s/g,"");
			    if (isNaN(numStr)) {
				complete=false;fobj.elements[i].style.backgroundColor="#ffff00";break;
			    }
			}
		                str += fobj.elements[i].name + 
		                 "=" + escape(fobj.elements[i].value.replace(/^\s*|\s*$/,"")) + "&"; 
		                 break; 
		           case "textarea": 
		             //  fobj.elements[i].style.backgroundColor="#fff";fobj.elements[i].style.border="1px solid #777";
		             //   if(fobj.elements[i].value=="") { complete=false;fobj.elements[i].style.backgroundColor="#ffff00";break;}
		                str += fobj.elements[i].name + 
		                 "=" + escape(fobj.elements[i].value) + "&"; 
		                 break; 
		           case "file": 
		                if(fobj.elements[i].value=="") { complete=false;fobj.elements[i].style.backgroundColor="#ffff00";break;}
		                str += fobj.elements[i].name + 
		                 "=" + escape(fobj.elements[i].value) + "&"; 
		                 break; 
		           case "hidden": 
		                str += fobj.elements[i].name + 
		                 "=" + escape(fobj.elements[i].value) + "&"; 
		                 break; 
		           case "password": 
		               fobj.elements[i].style.backgroundColor="#fff";fobj.elements[i].style.border="1px solid #777";
		                if(fobj.elements[i].value=="") { complete=false;fobj.elements[i].style.backgroundColor="#ffff00";break;}
		                str += fobj.elements[i].name + 
		                 "=" + escape(fobj.elements[i].value) + "&"; 
		                 break; 
		           case "select-one": 
		                str += fobj.elements[i].name + 
		                "=" + escape(fobj.elements[i].options[fobj.elements[i].selectedIndex].value) + "&"; 
		                break; 
		       } 
		   } 
		document.getElementById(flag).style.visibility="visible";
		   if(complete) {
			document.getElementById(flag).innerHTML="<img src=\""+relativeURL+"images/smallthrob.gif\" /> Loading...";
		   } else {
			document.getElementById(flag).innerHTML="<img src=\""+relativeURL+"images/inputerrorflag.jpg\" /> Invalid or incomplete Input"
		   }			

		   str = str.substr(0,(str.length - 1)); 
		   return complete?str:complete; //str+" "+complete; 
		}

/* ------------------------------------------------- */

/* TRAINING NEEDS */
		function FizzNeedsRequest(t) {
		var strPost=FizzFormValues(t,'fizzuploadprocess2');
		//	document.getElementById("dbug").innerHTML=typeof strPost+"<br/>"+strPost;
		if (typeof(strPost)=="boolean") {
		//	document.getElementById("dbug").innerHTML="fine";
			return;
		}
		// document.getElementById("dbug").innerHTML=strPost;return;
		var actionUrl=relativeURL+"trainingneedsmail.asp";
		var datahead={postData:strPost, headers: { "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" }, errorCallback: FizzBurst };
		Fizz.Utils.loadURL("POST",actionUrl,true,FizzNeedsResponse, datahead);
		};
	function FizzNeedsResponse(req) {
		document.getElementById("fizzuploadprocess2").style.visibility="visible";
		document.getElementById("fizzuploadprocess2").innerHTML=unescape(req.xhRequest.responseText); return;
		try {
	//		document.getElementById('dbug').innerHTML=req.xhRequest.responseText; 
		} catch (e) {
			alert(e);
		}
	
	};
/* CONTACT */
		function FizzContactRequest(t) {
		var strPost=FizzFormValues(t,'fizzuploadprocess2');
		//	document.getElementById("dbug").innerHTML=typeof strPost+"<br/>"+strPost;
		if (typeof(strPost)=="boolean") {
		//	document.getElementById("dbug").innerHTML="fine";
			return;
		}
		// document.getElementById("dbug").innerHTML=strPost;return;
		var actionUrl=relativeURL+"contactmail.asp";
		var datahead={postData:strPost, headers: { "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8" }, errorCallback: FizzBurst };
		Fizz.Utils.loadURL("POST",actionUrl,true,FizzNeedsResponse, datahead);
		};

/* ------------------------------------------------ */

function IsEmailAddress() {
	var s = "", re;
	//retrieve email instance.
	s = "" +this + "";

	//length check: remove leading and trailing spaces and then test length.
	//x@x.xx is the smallest address... that's 6 characters. so, length
	//must be greater than 5 to continue.
	s = s.replace(/^\s*|\s*$/g, "");
	if (s == "undefined" || s.length < 6) {return false;}

	//test for spaces before checking syntax. spaces are illegal 
	//in an email address. if a space is found, it's definitely an illegal address:
	re = /\s+/g
	if (re.test(s)) {return false;}

	//validate email address syntax and remove any emails that don't 
	//match the basic syntax pattern below.
	re = /^(\w|[^_]\.|[\-])+((\@){1}([^_]))(([a-z]|[\d]|[\-]|\.)+|([^_]\.[^_])*)+\.[a-z]{2,6}$/i
	if (!re.test(s)) {return false;}

	//validate domain part of the email against all known TLDs as of May 2001 
	re = /\.(a[c-gil-oq-uwz]|b[a-bd-jm-or-tvwyz]|c[acdf-ik-orsuvx-z]|d[ejkmoz]|e[ceghr-u]|f[i-kmorx]|g[abd-ilmnp-uwy]|h[kmnrtu]|i[delm-oq-t]|j[emop]|k[eg-imnprwyz]|l[a-cikr-vy]|m[acdghk-z]|n[ace-giloprtuz]|om|p[ae-hk-nrtwy]|qa|r[eouw]|s[a-eg-ort-vyz]|t[cdf-hjkm-prtvwz]|u[agkmsyz]|v[aceginu]|w[fs]|y[etu]|z[admrw]|com|edu|net|org|mil|gov|biz|pro|aero|coop|info|name|museum)$/i
	if (!re.test(s)) {return false;}

	//fix the .. problem...
	re = /\.\./
	if (re.test(s)) {return false;}

	//fix the @@ problem...
	re = /\@\@/
	if (re.test(s)) {return false;}

return true;
}

String.prototype.IsEmail = IsEmailAddress;
