//=============================================================================
// JUMP MENU
// Takes user to selected URL

function MM_jumpMenu(targ,selObj,restore){ //v3.0
   eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
   if (restore) selObj.selectedIndex=0;
 } 


//=============================================================================
// BANNER ROTATOR
// http://www.geocities.com/jsmaster/banrot.html
// original content taken from Nic's JavaScript Page with permission
// lack of these three lines will result in copyright infringment
// made by: Nic's JavaScript Page - http://www.javascript-page.com

function initArray() {

	this.length = initArray.arguments.length;
	for (var i = 0; i < this.length; i++) {
	  	this[i] = initArray.arguments[i];
	}
}

function getBanner() {

	var currentdate = 0;
	var core = 0;


	topBanners = new initArray(
		'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="743" height="105" id="ad_topBanner"><param name="movie" value="/ads/CNNWM_banner.swf"><param name="quality" value="high"><param name="bgcolor" value="#FFFFFF"><EMBED src="/ads/CNNWM_banner.swf" quality="high" bgcolor="#FFFFFF" width="743" height="105" name="ad_topBanner" align="" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object>',
		
		'<a href="http://www.medical.philips.com/main/products/mri/products/achieva3T/index.html?banner=Fortune" target="_blank"><img src="/images/ad_banner_philips.gif" width="728" height="90" alt="Achieva 3.0T X-series MR scanner by Philips" /></a>',

		'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="728" height="90" id="ad_topBanner"><param name="movie" value="/ads/Marriott_banner.swf"><param name="quality" value="high"><param name="bgcolor" value="#FFFFFF"><EMBED src="/ads/Marriott_banner.swf" quality="high" bgcolor="#FFFFFF" width="728" height="90" name="ad_topBanner" align="" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object>',

		'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="728" height="90" id="ad_topBanner"><param name="movie" value="/ads/ALS_banner.swf"><param name="quality" value="high"><param name="bgcolor" value="#FFFFFF"><EMBED src="/ads/ALS_banner.swf" quality="high" bgcolor="#FFFFFF" width="728" height="90" name="ad_topBanner" align="" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object>',

		'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="743" height="105" id="ad_topBanner"><param name="movie" value="/ads/CNNWM_banner.swf"><param name="quality" value="high"><param name="bgcolor" value="#FFFFFF"><EMBED src="/ads/CNNWM_banner.swf" quality="high" bgcolor="#FFFFFF" width="728" height="90" name="ad_topBanner" align="" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object>'

	);


	rightBanners = new initArray(
		'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="336" height="280" id="ad_rightBanner"><param name="movie" value="/ads/CNNWM_rectangle.swf"><param name="quality" value="high"><param name="bgcolor" value="#FFFFFF"><EMBED src="/ads/CNNWM_rectangle.swf" quality="high" bgcolor="#FFFFFF" width="336" height="280" name="ad_rightBanner" align="" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object>',
		
		'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="336" height="280" id="ad_rightBanner"><param name="movie" value="/ads/CNNWM_rectangle.swf"><param name="quality" value="high"><param name="bgcolor" value="#FFFFFF"><EMBED src="/ads/CNNWM_rectangle.swf" quality="high" bgcolor="#FFFFFF" width="336" height="280" name="ad_rightBanner" align="" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object>',

		'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="336" height="280" id="ad_rightBanner"><param name="movie" value="/ads/Marriott_rectangle.swf"><param name="quality" value="high"><param name="bgcolor" value="#FFFFFF"><EMBED src="/ads/Marriott_rectangle.swf" quality="high" bgcolor="#FFFFFF" width="336" height="280" name="ad_rightBanner" align="" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object>',

		'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" width="336" height="280" id="ad_rightBanner"><param name="movie" value="/ads/ALS_rectangle.swf"><param name="quality" value="high"><param name="bgcolor" value="#FFFFFF"><EMBED src="/ads/ALS_rectangle.swf" quality="high" bgcolor="#FFFFFF" width="336" height="280" name="ad_rightBanner" align="" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer"></embed></object>',
		
		'<a href="http://cleancoaltechnologiesinc.com" target="_blank"><img src="/ads/CleanCoalTechologies_rectangle.gif" width="326" height="280" alt="Clean Coal Technologies, Inc." /></a>'
	
	);

	
	// Randomly chooses a banner ad by finding the modulus of 
	// current time's seconds divided by number of banner ads.
	var currentdate = new Date();
	var core = currentdate.getSeconds() % topBanners.length;
	var randTop = topBanners[core];
	var randRight = rightBanners[core];
	
	document.getElementById('ad-banner').innerHTML = randTop;
	document.getElementById('ad-rightCol').innerHTML = randRight;
}


//=============================================================================
// FORM VALIDATION

var swpArray = new Array();
	swpArray[swpArray.length] = "email";
	swpArray[swpArray.length] = "LastName";
	swpArray[swpArray.length] = "FirstName";
	swpArray[swpArray.length] = "comments";
	
function validate(myForm) {
		  var flag = 0;
		  var radioError=false;
		  var checkboxError=false;
		  e = myForm.elements;
                  for (i=0; i<myForm.length; i++) {
			if ((e[i].type == "text") && (e[i].name == "ZipCode") && !isZipCode(e[i].value)) {
			 	alert("Please provide a valid Zip Code");
				e[i].focus();
				e[i].select();
				return false;
			} else if ((e[i].type == "text") && ((e[i].name == "DayPhone") || (e[i].name == "EvePhone")) && !isPhoneNumber(e[i].value)) {
				alert("Please provide a valid Phone Number");
				e[i].focus();
				e[i].select();
				return false;
			} else if ((e[i].type == "text") && (e[i].name == "City") && !noNumbers(e[i].value)) {
				alert("Please provide a valid value for City");
				e[i].focus();
				e[i].select();
				return false;
			} else if ((e[i].type == "text") && (e[i].name == "FirstName") && !noNumbers(e[i].value)) {
                                alert("Please provide a valid value for First Name");
                                e[i].focus();
                                e[i].select();
                                return false;
                        } else if ((e[i].type == "text") && (e[i].name == "LastName") && !noNumbers(e[i].value)) {
                                alert("Please provide a valid value for Last Name");
                                e[i].focus();
                                e[i].select();
                                return false;
                        }	
			for (j=0;j<swpArray.length;j++) {
				if (e[i].name==swpArray[j]) {
					if (((e[i].type == "text") || (e[i].type == "textarea")) && (e[i].value == null || e[i].value == "" )) {
						alert("Missing required field: "+ swpArray[j]);
						e[i].focus();
						e[i].select();
						return false;
					}
					if (e[i].type == "radio") {
						if (e[i].name==swpArray[j]) {
      							if(testradio(e[i].name,myForm)) {
                                            			radioError=true;
                                        		}
                                    		}
    					}
                                        if (e[i].type == "checkbox") {
                                                if (e[i].name==swpArray[j]) {
                                                        if(testcheckbox(e[i].name,myForm)) {
                                                                checkboxError=true;
                                                        }
                                                }
                                        }
                                        if ((e[i].type == "select-one") || (e[i].type == "select-multiple")) {
                                                var iSel = e[i].selectedIndex;
                                                if (iSel != -1) {
                                                  if (e[i].options[iSel].value == null || (e[i].options[iSel].value == "")) {
                                                    alert("Missing required field: " + swpArray[j]);
                                                    return false;
                                                  }
                                                } else {
                                                    alert("Missing required field: " + swpArray[j]);
                                                    return false;
                                                }
                                        }
    				}
			}
			if ((e[i].name == "email") && (ValidEmail(e[i].value) == false)) {
				alert("Please provide a valid email address.");
				e[i].focus();
				e[i].select();
				return false;
			}
           			
            	}
            	if (radioError || checkboxError) {
     				alert("Missing required answer for question");
     				return false;
     		}
        return true;
}

function testradio(radioname,formdata) {
    var els=formdata.elements;
    var radioerror=true;
    for(var i=0;i<formdata.length;i++) {
        if(els[i].type=="radio") {
            if (els[i].name==radioname) {
                if(els[i].checked==true) {
                    radioerror=false;
                }
            }
        }
    }
    return radioerror;
}

function testcheckbox(checkboxname,formdata) {
    var els=formdata.elements;
    var checkboxerror=true;
    for(var i=0;i<formdata.length;i++) {
        if(els[i].type=="checkbox") {
            if (els[i].name==checkboxname) {
                if(els[i].checked==true) {
                    checkboxerror=false;
                }
            }
        }
    }
    return checkboxerror;
}

function ValidEmail(s) {
        var Count;
        var s2;

        // empty or blank email
        if (EmptyString(s) == true) return (false);
	// email with whitespace
	if (s.indexOf(' ') != -1) return (false);
        // email without @
        if (s.indexOf('@') == -1) return (false);
        // email with @ as the 1st char
        if (s.indexOf('@') == 0) return (false);
        // email with @ as the last char
        if ((s.indexOf('@')+1) == s.length) return (false);
        // email without .
        if (s.indexOf('.') == -1) return (false);
        // email with . as the 1st char
        if (s.indexOf('.') == 0) return (false);
        // email with . as the last char
        if ((s.indexOf('.')+1) == s.length) return (false);

        // Now look for the first . after the first @
        // s2 = string after the first @
        s2=s.substring(s.indexOf('@')+1,s.length);
        // email without a dot after the first @
        if (s2.indexOf('.') == -1) return (false);
        // email dot right after the first @
        if (s2.indexOf('.') == 0) return (false);
        return (true);
}

function EmptyString(s) {
        var Count;
        var Nblank = 0;
        if (s.length == 0) return (true); // empty string
        // count the number of blank chars
        for (Count = 0; Count < s.length; Count++) {
                if (s.charAt(Count) == " ") Nblank++;
        }
        if (Nblank == s.length)
                return (true);
        else
                return (false);
}

function isPhoneNumber(s) {
	if (s == "") {
	  	return (true);
	} else {
		if (regExpSupported()) {
			var re = /^1?\s*-?\s*\(?\s*[0-9]{3}\s*\)?\s*-?\s*[0-9]{3}\s*-?\s*[0-9]{4}$/;
			return re.test(s);
		} else {
		        for (var i = 0; i < s.length; i++) {
                        	if (((s.charAt(i) < '0') || (s.charAt(i) > '9')) && (s.charAt(i) != '-') && (s.charAt(i) != '(') && (s.charAt(i) != ')')) return (false);
			}
			return (true);
                }
	}
}

function isZipCode(s) {
        if (EmptyString(s)) {
            return (false);
        } else {
	    if (isValidUSZipCode(s) || isValidCanadianPostalCode(s)) {
	        return (true);
	    } else {
		return (false);
	    }
        }
}

function isValidUSZipCode(s) {
    if ((s.length != 5) && (s.length != 10)) {
	return (false);
    } else {
	if (regExpSupported()) {
	    var re = /^[0-9]{5}(-[0-9]{4})?$/;
            return re.test(s);
        } else {
	    for (var i = 0; i < s.length; i++) {
		if ((s.charAt(i) < '0') || (s.charAt(i) > '9')) {
		    if (s.charAt(i) == '-') {
			if (i != 5)
			    return (false);
		    } else {
			return (false);
		    }
		}
	    }
	    return (true);
	}
    }
}

function isValidCanadianPostalCode(s) {
    if ((s.length != 6) && (s.length != 7)) {
	return (false);
    } else {
	if (regExpSupported()) {
	    var re = /^[a-z|A-Z]{1}\d{1}[a-z|A-Z]{1}\-?\d{1}[a-z|A-Z]{1}\d{1}$/;
            return re.test(s);
        } else {
	    for (var i = 0; i < s.length; i++) {
		if ((s.charAt(i) < '0') || (s.charAt(i) > '9')) {
		    if (s.charAt(i) == '-') {
			if (i != 3)
			    return (false);
		    } else {
			if ((i != 0) && (i != 2)) {
			    if (s.charAt(3) == '-') {
				if ((i != 5) || ((s.charAt(i) < 'A') || ((s.charAt(i) > 'Z') && ((s.charAt(i) < 'a') || (s.charAt(i) > 'z')))))
				    return (false);
			    } else {
				if ((i != 4) || ((s.charAt(i) < 'A') || ((s.charAt(i) > 'Z') && ((s.charAt(i) < 'a') || (s.charAt(i) > 'z')))))
				    return (false);
			    }							    
			} else {
			    if ((s.charAt(i) < 'A') || ((s.charAt(i) > 'Z') && ((s.charAt(i) < 'a') || (s.charAt(i) > 'z'))))
				return (false);
			}
		    }
		} else {
		    if (s.charAt(3) == '-') {
			if ((i != 1) && (i != 4) && (i != 6))
			    return (false);
		    } else {
			 if ((i != 1) && (i != 3) && (i != 5))
			    return (false);
		    }	
		}
	    }
	    return (true);
	}
    }
}

function noNumbers(s) {
	if (s == "") {
		return (true);
	} else {
		if (regExpSupported()) {
			var re = /^[^0-9]+$/;
			return re.test(s);
		} else {
			for (var i = 0; i < s.length; i++) {
				if ((s.charAt(i) >= '0') && (s.charAt(i) <= '9')) return (false);
			}
			return (true);
		}
	}
}	

function regExpSupported() {
        if (window.RegExp)
        {
                var tempStr = "a";
                var tempReg = new RegExp(tempStr);
                if (tempReg.test(tempStr))
                        { return true; }
        }
        return false;
}

