// JavaScript Document - AJAX

var xmlHttp;
var xmlDoc;
var thisLocation = "http://" + location.hostname;
var logoutURL = "";

function showHideElement(elementID){
	elementObj = document.getElementById(elementID);
	if (elementObj.style.display == "none"){
		elementObj.style.visibility = "visible";
		elementObj.style.display = "block";
	} else {
		elementObj.style.visibility = "hidden";
		elementObj.style.display = "none";
	}	
}

function createXMLHttpRequest(){
	if (window.ActiveXObject){
		xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		xmlHttp = new XMLHttpRequest();
		if (xmlHttp == null){
			alert ("This browser does not support AJAX HTTP Requests.\r\n\r\nPlease use Internet Explorer or FireFox.");
			return;
		}
	}
	return xmlHttp;
}

function getImage(image_id,dsn){
	createXMLHttpRequest();
	url = "ajax/ajx_getImageInfo.cfm?PHOTO_ID=" + image_id + "&DSN=" + dsn;
	xmlHttp.onreadystatechange = getImage_Result;
	xmlHttp.open("GET",url,true);
	xmlHttp.send(null);
}

function getImage_Result(){
	var htmlString = "";
	if (xmlHttp.readyState == 4){
		if (xmlHttp.status == 200){
			retData = xmlHttp.responseText;
			retData = leftTrim(retData);
			var imageHeight = parseReturnData("height",retData);
			var imageWidth = parseReturnData("width",retData);
			var imageFilename = parseReturnData("filename",retData);
			var imageTitle = parseReturnData("title",retData);
			var imageDateTaken = parseReturnData("dateTaken",retData);
			var imageDescription = parseReturnData("description",retData);
			grayOutObject(imageFilename,imageTitle,imageDescription,imageDateTaken,imageWidth,imageHeight);
		} else if (xmlHttp.status == 404){
			alert("data file not accessed");
		} else {
			alert("Unspecified error");
		}
	}
}

function leftTrim(text){
	firstCharacterLocation = text.search(/w/g);	
	returnText = text.substr(firstCharacterLocation);
	return returnText;
}

function trim(text){
	returnText = text.replace(/\W/g,"");
	return returnText;
}

function parseReturnData(parameter,returnData){
	var thisData = returnData.split("|");
	var parameterValue;
	for (var i=0; i < thisData.length; i++){
		if (thisData[i].indexOf(parameter) > -1){
			dataParts = thisData[i].split("=");
			parameterValue = dataParts[1];
		}
	}
	return parameterValue;
}

function confirmEmailAddress(cbid,emid){
	emailObj = document.getElementById(emid);
	if (trim(emailObj.value).length == 0){
		alert("Please enter an email address for us to send alerts or login information to you.");
		return false;
	}
	return true;
}

function confirmPasswordChange(origID,confID){
	if (document.getElementById(origID).value != document.getElementById(confID).value){
		alert("The confirmation address you entered does not match the password you entered.");
		document.getElementById("submit_btn").disabled = "disabled";
	} else {
		document.getElementById("submit_btn").disabled = "";
	}
}

function evaluateCategory(newcat,textinput){
	newObj = document.getElementById(textinput);
	if (newcat == "Other"){
		newObj.style.display = "inline";
		newObj.style.visibility = "visible";
	} else {
		newObj.style.display = "none";
		newObj.style.visibility = "hidden";
	}
}

function changeInputLabel(rbValue){
	if (rbValue == "INPUT"){
		document.getElementById("inputLabel").innerHTML = "* Enter your input:";
	} else {
		document.getElementById("inputLabel").innerHTML = "* Describe the issue in detail:";
	}
}

function addToSelect(newvalue,selectID,newID){
	selectObj = document.getElementById(selectID);
	enterObj = document.getElementById(newID);
	if(newvalue.length > 0){
		selectObj[selectObj.options.length] = new Option(newvalue,newvalue);
		selectObj.options[selectObj.options.length-1].selected = true;
		enterObj.value = "";
		enterObj.style.display = "none";
		enterObj.style.visibility = "hidden";
	}
}

function validateForm(form){
	try{
		var alertMsg = '<p>The following fields require a value before being submitted:</p><ul>';
		var rf = requiredFields.split(",");
		var allgood = true;
		for (var f = 0; f < rf.length; f++){
			var thisObj = document.getElementById(rf[f]);
			if (getValue(rf[f]) == ""){
				thisObj.style.borderColor = "#FF0000";
				thisObj.style.backgroundColor = "#FFFFCC";
				alertMsg += "<li>" + thisObj.title + "</li>";
				allgood = false;
			} else {
				thisObj.style.borderColor = "";
				thisObj.style.backgroundColor = "";
			}
		}
		if (!allgood){
			msgObj = document.getElementById("errormessage");
			msgObj.innerHTML = alertMsg + "</ul>";
			msgObj.style.display = "block";
			msgObj.style.visibility = "visible";
		} else {
			msgObj = document.getElementById("errormessage");
			msgObj.innerHTML = "";
			msgObj.style.display = "none";
			msgObj.style.visibility = "hidden";
			form.submit();
		}
	} catch(err){
		alert("An error occurred: " + err);	
	}
}

function getValue(field){
	try{
		fieldObj = document.getElementById(field);
		if (fieldObj.type == "text" || fieldObj.type == "datefield" || fieldObj.type == "textarea"){
			return fieldObj.value;
		} else if (fieldObj.type == "select-one"){
			return fieldObj.options[fieldObj.selectedIndex].value;
		} else if (fieldObj.type == "select-multiple"){
			returnvals = new Array();
			for (var sf = 0; sf < fieldObj.options.length; sf++){
				if(fieldObj.options[sf].selected){
					returnvals.push(fieldObj.options[sf].value);
				}
			}
			return returnvals.join(",");
		} else {
			return "";
		}
	} catch(err){
		alert(err);
	}
}

function addRequiredField(field){
	if (requiredFields.indexOf(field) == -1){
		requiredFields += "," + field;
	}
}

function removeRequiredField(field){
	try{
		var txt = new RegExp(","+ field,"gi");
		requiredFields = requiredFields.replace(txt,"");
	} catch(err){
		
	}
}

function trimLeadingZeros(fieldID,fieldVal){
	fieldObj = document.getElementById(fieldID);
	for (var i = 0; i < 5; i++){
		if (fieldVal.indexOf("0") == 0){
			fieldVal = fieldVal.substr(1,fieldVal.length-1);
		}
	}
	fieldObj.value = fieldVal;
}
		



