// JavaScript Document
/*--------------------------------------------------*\
	EDIT HISTORY :::::::::::: 
								  :: 10.10.2008 Initial Creation EOM - Emile Melbourne
	FILENAME :::::::::::::::: util.js
	DESCRIPTION ::::::::::::: 
\*---------------------------------------------------*/

function isJpegFile(str, hiddenField, filehiddenField) {
	var hiddenInputField	= document.getElementById(hiddenField);
	var recordInputField	= document.getElementById(filehiddenField);
	var str = str.toLowerCase();
	if ((str.lastIndexOf(".jpg") != -1) || (str.lastIndexOf(".jpeg") != -1)) {
		//Image isn't a jpeg
		hiddenInputField.value = 0;
		recordInputField.value = str;
	} else {
		//Image is a jpeg
		hiddenInputField.value = 1;
	}
}

function isPdfFile(str, hiddenField, filehiddenField) {
	var hiddenInputField	= document.getElementById(hiddenField);
	var recordInputField	= document.getElementById(filehiddenField);
	if (str.toLowerCase().lastIndexOf(".pdf") != -1) {
		//Image isn't a jpeg
		hiddenInputField.value = 0;
		recordInputField.value = str;
	} else {
		//Image is a pdf
		hiddenInputField.value = 1;
	}
}


/**********************************************************************\
	This will set the SeKeyName to a concatenated value 
		of first, middle init and last name.
\**********************************************************************/
function setSeKeyName() {
	var seKeyNameInputField			= document.getElementById("sekeyname");
	// get the input fields for first name, last name and middle initial.
	
	
	var firstnameInputField_obj	= document.getElementById("firstname");
	var middleinitInputField_obj	= document.getElementById("middleinitial");
	var lastnameInputField_obj		= document.getElementById("lastname");
	
	//alert(firstnameInputField_obj + " " + middleinitInputField_obj + " " + lastnameInputField_obj);
	
	if (firstnameInputField_obj != null) {
		var firstnameInputField_str	= firstnameInputField_obj.value;
	}
	if (middleinitInputField_obj != null) {
		var middleinitInputField_str	= middleinitInputField_obj.value;
	}
	if (lastnameInputField_obj != null) {
		var lastnameInputField_str		= lastnameInputField_obj.value;
	}
	
	//alert(firstnameInputField_str + " " + middleinitInputField_str + " " + lastnameInputField_str);
	
	// create string to put in SeKeyNameInputField.
	var seKey_str = "";
	if (firstnameInputField_obj != null && firstnameInputField_str != "") {
		seKey_str += firstnameInputField_str;
	}
	if (middleinitInputField_obj != null && middleinitInputField_str != "") {
		seKey_str += "-" + middleinitInputField_str;
	}
	if (lastnameInputField_obj != null && lastnameInputField_str != "") {
		seKey_str += "-" + lastnameInputField_str;
	}
	seKey_str = seKey_str.replace(/\s+/g, "-");
	seKey_str = seKey_str.replace(/[^a-zA-Z0-9-]/g, "");
	
	seKeyNameInputField.value = seKey_str;
}/**/

/**********************************************************************\
	This will hide or show the various objects (string ids) 
		passed to the function in the arguments Object
\**********************************************************************/
function showHideClasses(element, doHide, isClass) {
	isClass = (isClass == undefined)? false: true;
	//doHide = (doHide == undefined)? false: true;
	
	//alert("element = " + document.getElementById(element));
	var elements_arr = [];
	if (isClass) {
//		for (var i = 3; i < argumentsTotal; i++) {
			elements_arr = getElementsByTagName("div"); 
//		}
	} else {
		elements_arr.push(document.getElementById(element));
	}

	/*
		hide or show using CSS in DHTML
	*/
	for (var i = 0; i < elements_arr.length; i++) {
		object = elements_arr[i]; 
	
		if (doHide) {
			object.style.visibility 	= "hidden";
			object.style.zIndex 			= "1";
			/*object.style.width 			= "1px";
			object.style.height 			= "1px";
			object.style.left 			= "";
			object.style.top 				= "";
			object.style.right 			= "0px";
			object.style.bottom 			= "0px";*/
		} else {
			object.style.visibility		= "visible";
			object.style.zIndex			= "2";
			/*object.style.width 			= "100%";
			object.style.height 			= "100%";
			object.style.left 			= "0px";
			object.style.top 				= "0px";
			object.style.right 			= "";
			object.style.bottom 			= "";*/
		}
	}
}

/* Helper function that returns an array of all elements using a specified tag.
 code taken from http://snipplr.com. Who also recommends Pro JavaScript Techniques Book*/
function getElementsByClassName(classname, node)  {
    if(!node) {
		 node = document.getElementsByTagName("body")[0];
	 }
	 
    var a = [];
    var re = new RegExp('\\b' + classname + '\\b');
    var els = node.getElementsByTagName("*");
   
	for(var i=0,j=els.length; i<j; i++) {
        if(re.test(els[i].className)) {
			  a.push(els[i]);
		  }
	 }
    return a;
}


/**********************************************************************\
	Change a forms action URL
\**********************************************************************/
function setFromAction(formID, actionURL)  {
	formObj = document.getElementById(formID);
	
	formObj.action = actionURL;
}

/**********************************************************************\
	Change a forms action URL
\**********************************************************************/
function submitForm(formID)  {
	formObj = document.getElementById(formID);
	
	formObj.submit();
}

function manageMaxlengthByBlur(evt)  {
	evt = evt || window.event;
}

/**********************************************************************\
	Limit character count of textarea
\**********************************************************************/
function manageMaxlength(textareaObj, maxLength)  {
	var taObj = document.getElementById(textareaObj);
	var currentString = "";
	
	if ((taObj != undefined) && (maxLength != undefined)) {
		currentString = taObj.value;
		
		/*****************************************************************************\
			Give this onbject the onblur method as well. 
				That way it runs once last time when we leave it to interact with other page elements.
		\*****************************************************************************/
		if (taObj.onBlur == undefined) {
			taObj.onBlur = manageMaxlengthByBlur;
		}
	
		/*****************************************************************************\
			If the current string is the maxinum number of characters, don't exceed
		\*****************************************************************************/
		if (currentString.length >= maxLength) {
			taObj.value = taObj.value.substr(0, maxLength);
		}
	} else {
		//Do Nothing
	}
}

/**********************************************************************\
	Turn on/off body tag scroll
\**********************************************************************/
function turnOnScroll(turnOn, targetObj)  {
	turnOn = (turnOn == undefined)? true: turnOn;
	targetObj = (targetObj == undefined)? "body": targetObj;
	
	var bodyObj = document.getElementsByTagName(targetObj)[0];
	
	if (turnOn) {
		bodyObj.style.overflow = "auto";
	} else {
		bodyObj.style.overflow = "hidden";
	}
}

/**********************************************************************\
	show video
\**********************************************************************/
function loadHTMLPanel(targetURL, containerDiv)  {
	containerDiv = (containerDiv == undefined)? 'hiddenSpryPanel': containerDiv;
	
	turnOnScroll(false); 
	showHideClasses(containerDiv, false);
	var hpanel = new Spry.Widget.HTMLPanel("hiddenSpryPanel_htmlpanelConent");
	
	hpanel.loadContent(targetURL); 
	return false;
}


