// JavaScript Document

// rotate banner

bannerArray = new Array("banner-beijingtraffic.jpg","banner-coalmine.jpg","banner-containership.jpg","banner-feedlot.jpg","banner-forestburned.jpg","banner-landfill.jpg","banner-nuclearplant.jpg","banner-offshoretanker.jpg","banner-planefront.jpg","banner-shanghai.jpg","banner-solarpanels.jpg","banner-timber.jpg","banner-tokyoexpressway.jpg","banner-tokyoskyline.jpg","banner-trucktrain.jpg","banner-watertreatment.jpg","banner-waterworks.jpg","banner-windfarm.jpg","banner-windturbines.jpg","banner-bldgsidesNY.jpg","banner-cloud2.jpg","banner-forestlake.jpg","banner-hvacNY.jpg","banner-hydroelect.jpg","banner-lakesidecity.jpg","banner-peach.jpg","banner-taxistreet.jpg","banner-trucksolo.jpg","banner-iceburg.jpg","banner-coral.jpg","banner-corn.jpg","banner-desert.jpg","banner-duststorm.jpg","banner-glacier.jpg","banner-marsh.jpg","banner-nettles.jpg","banner-ocean.jpg","banner-palms.jpg","banner-riverdelta.jpg","banner-stormcloud.jpg","banner-citysmokestacks.jpg","banner-flooding.jpg","banner-rainforest.jpg","banner-ricefield.jpg","banner-shopping.jpg","banner-shorelinefreeway.jpg");
baLength = bannerArray.length;
var rn=Math.floor(Math.random()*(baLength))
document.write ('<style>#banner { background-image:url(http://globalchange.mit.edu/images/'+bannerArray[rn]+'); } </style>');

function OpenWin(url,width,height) {
	newWindow = window.open(url,"NewWindow","toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,copyhistory=yes,width="+width+",height="+height)
}

var error = "";
var rfString = "";
var form = "";
function ValidateForm(form) {
	error = "";
	for (i=0; i<form.elements.length; i++) {
		// FIRST CHECK TO SEE IF REQUIRED FIELDS EXIST
		if (form.elements[i].name.indexOf("reqfields") != -1) {
			rfString = form.reqfields.value;
			break;
		}
	}
	if (rfString) {
		validateReqFields(form)
	}
	else {
		validateAllFields(form)
	}
	if (error) {
		alert('This form could not be processed because of the following errors:\n\n' + error);
		return false;
	}
}

function validateReqFields(form) {
	rfString = form.reqfields.value;
	rfArray = rfString.split(",");
	rfCount = rfArray.length-1;
	rnametemp = "";
	for (x=0; x<=rfCount; x++) {
		for (i=0; i < form.elements.length; i++) {
			if (form.elements[i].name == rfArray[x]) {
				if ((form.elements[i].type == 'radio' || form.elements[i].type == 'checkbox') && rnametemp != form.elements[i].name) {
					rnametemp = form.elements[i].name;
					checkRadio(rnametemp,form);
				}
				else if (form.elements[i].name.indexOf("email") != -1) {
					checkEmail(form.elements[i].value)
					}
				else if (form.elements[i].value == "") {
					if (form.elements[i].name == rfArray[x]) {
						error = error + '* ' + form.elements[i].name + ' is empty\n'
					}
				}
			}
		}
	}
}

function validateAllFields(form) {
	rnametemp = "";
	for (i=0; i < form.elements.length; i++) {
		if (form.elements[i].type == 'radio' && rnametemp != form.elements[i].name) {
			rnametemp = form.elements[i].name;
			checkRadio(rnametemp,form);
		}
		else if (form.elements[i].name.indexOf("email") != -1) {
			checkEmail(form.elements[i].value)
			}
		else if (form.elements[i].value == "") {
			error = error + '* ' + form.elements[i].name + ' is empty\n'
		}
	}
}

function checkEmail (strng) {
//var error="";
if (strng == "") {
   error = error + "* You didn't enter an email address.\n";
}
else {
    var emailFilter=/^.+@.+\..{2,3}$/;
    if (!(emailFilter.test(strng))) { 
       error = error + "* Please enter a valid email address.\n";
    }
    else {
//test email for illegal characters
       var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/
         if (strng.match(illegalChars)) {
          error = error + "* The email address contains illegal characters.\n";
       }
    }
}
return error;    
}

function checkRadio(fname,form) {
	valcheck = "";
	alMsg = "";
	maxnum = form.elements[fname].length
	for (z=0;z<maxnum;z++) {
		if (form.elements[fname][z].checked) {
			valcheck = "1";
			break;
		}
	}
	if (!valcheck) {
		error = error + '* ' + fname + ' is not checked\n';
	}
}


function addHandlers2() {
	var otherObj = document.getElementById("person_id");
	otherObj.onchange = showTxtFld2;
	var otherObjB = document.getElementById("publication_type");
	otherObjB.onchange = showTxtFldB;
}

function showTxtFld() {
	if (document.pubsearch.person_id.options['other'].selected) {
		var txtObj = document.getElementById("other_name_div");
		txtObj.style.display = "inline";
		//txtObj.focus();
	}
	showAndOr('person_and_or','person_id')
}

function showTxtFld2() {
	for (var i = 0; i < document.pubsearch.person_id.length; i++) {
		if (document.pubsearch.person_id.options[i].selected && document.pubsearch.person_id.options[i].text == 'Other') {
			var txtObj = document.getElementById("other_name_div");
			txtObj.style.display = "inline";
			break;
		}
	}
	showAndOr('person_and_or','person_id')
}

function showTxtFldB() {
	var txtObj = document.getElementById("publication_lookup");
	pubtype = document.pubsearch.publication_type;
	for (var i = 0; i < pubtype.length; i++) {
		if (pubtype.options[i].selected && pubtype.options[i].text == 'Joint Program Report') {
			txtObj.innerHTML = 'Report Number (if known):<br /><input type="text" name="report_number" style="margin:0px;" />';
			break;
		}
		else if (pubtype.options[i].selected && pubtype.options[i].text == 'Joint Program Reprint') {
			txtObj.innerHTML = 'Reprint Number (if known):<br /><input type="text" name="reprint_number" style="margin:0px;" />';
			break;
		}
		else if (pubtype.options[i].selected && pubtype.options[i].text == 'Joint Program Technical Note') {
			txtObj.innerHTML = 'Technical Note Number (if known):<br /><input type="text" name="technical_note_number" style="margin:0px;" />';
			break;
		}
		else {
			txtObj.innerHTML = '';
		}
	}
	//showAndOr('pubtype_and_or','publication_type')
}

function showAndOr(fld,selectfld) {
	var andOrObj = document.getElementById(fld);
	var count = 0
	for (var i = 0; i < document.pubsearch[selectfld].length; i++) {
		if (document.pubsearch[selectfld].options[i].selected) {
			count++;
		}
	}
	if (count > 1) {
		andOrObj.style.display = "inline";
	}
}

function addHandlers() {
	var linkArray = document.getElementsByTagName("a");
	for (var i = 0; i < linkArray.length; i++) {
		if (linkArray[i].className.indexOf("wheelimg") > -1) {
			linkArray[i].onmouseover = flipImage;
			linkArray[i].onmouseout = flipImage;
		}
	}
}

function flipImage () {
	imgObj = this.childNodes[0];
	if (imgObj.src.indexOf("-off") > -1) {
		imgObj.src = imgObj.src.replace("-off","");
	}
	else {
		imgObj.src = imgObj.src.replace(".gif","-off.gif");
	}
}

