//Javascript for IFRMonitoring.US
//Last Maintained by Brian R. Cline 
	String.prototype.trim = function() {
        return this.replace(/^\s+|\s+$/g,"");
    }

function appendToDropDown(e, text, value) {
		var elOpt = document.createElement('option');
		
		elOpt.text = text;
		elOpt.value = value;

		try {
			e.add(elOpt, null);
		} catch (ex) {
			e.add(elOpt);
		}
		elOpt = null;
	}
	function getHTTPObject() {
		if (window.ActiveXObject) {
			var httpObj = new ActiveXObject("Microsoft.XMLHTTP");
			
			if (httpObj == null) {
				httpObj = new ActiveXObject("Msxml2.XMLHTTP");
			}

			return httpObj
		}
		else if (window.XMLHttpRequest) {
			return new XMLHttpRequest();
		}
		else {
			return null;
		}
	}
	
	function getCurrentDate() {
		var date= new Date();
		return date.getDate();
	}
	
	function getCurrentMonth() {
		var date = new Date();
		
		switch(date.getMonth()) {
			case 0: return "Jan"; break;
			case 1: return "Feb"; break;
			case 2: return "March"; break;
			case 3: return "April";  break;
			case 4: return "May"; break;
			case 5: return "June"; break;
			case 6: return "July"; break;
			case 7: return "Aug"; break;
			case 8: return "Sept"; break;
			case 9: return "Oct"; break;
			case 10:return "Nov"; break;
			case 11: return "Dec"; break;
			default: return "Jan"; break;
		}

		return "Jan";
	}
	
	function getCurrentYear() {
		var date = new Date();
		return date.getFullYear();
	}
	
	function ChangeBGColorOnFocus(e) {
		if (e != null) {
			e.style.backgroundColor = "yellow";
		}
	}
	
	function ChangeBGColorOnBlur(e) {	
		if (e != null) {
			e.style.backgroundColor = "white";
		}
	}
	
	function ChangeCheckBoxColor(idToChange) {
		e = document.getElementById(idToChange);
		
		if (e != null && e.checked) {
			e.style.backgroundColor="green";
		}
		else if (e != null) {
			e.style.backgroundColor = "red";
		}
	}
	
	function ClearErrorMessage() {
		e = document.getElementById('errorMessage');
		
		if (e != null && e.style.display=="block") {
			e.innerHTTML = "";
			e.style.display = "none";
		}
	}
	
	function ClearForm() {
		var elms;
		var e;
	   
		//clear the value of all input fields
		elms = document.getElementsByTagName('input');
		for (i = 0; i < elms.length; i++) {
			e = elms[i];
				
			if (e.type =="text" || e.type == "password" ) {
				e. value = "";
			}
			else if (e.type == "select-one") {
				e.selectedIndex = 0;
			}
			else if (e.type == "checkbox") {
				e.checked = false;
				e.style.backgroundColor = "white";
			}
		}
			
		//clear textareas
		elms = document.getElementsByTagName('textarea');
		for (i = 0; i <elms.length; i++) {
			 e = elms[i];
			 
			 if (e.value.trim() != "") {
				e.value = "";
			 }
		}
			
		elms = document.getElementsByTagName('select');
		for (i =0; i <elms.length; i++ ) {
			e = elms[i];
				
			if (e.selectedIndex > 0 ) {
				e.selectedIndex = 0;
			}
		}
		
		ClearErrorMessage();
	}
	
	function DisplayErrorMessage(message) {
		e = document.getElementById('errorMessage');
		
		if (e != null && message.length > 0) {
			e.style.display="block";
			e.innerHTML = message.trim();
		}
	}
	
	function getForgotPassResponse() {
		var e = document.getElementById('passMessage');
		var httpObject = getHTTPObject();
		
		var eAddress = document.getElementById('userEmail');
		
		if (httpObject != null) {
			httpObject.open("GET", "includes/php/ajax/emailpassword.php?email=" + eAddress.value, true);
			httpObject.send(null);
			document.getElementById('passMessage').innerHTML = "Currently contacting server ";
				
			httpObject.onreadystatechange =  function() {
				if(httpObject.readyState == 4){
					document.getElementById('passMessage').innerHTML = httpObject.responseText;
				}			
			}
		}
		else {			
			e.innerHTML = "<b>IFR Monitoring failed to contact the server... </b>";		
		}
	}
	
	
	function getLoginResponse() {
		var e = document.getElementById('content');  
		var httpObject = getHTTPObject();
		var f = document.forms[0];
		
		var eAddress = f.userName//document.getElementById('userName');
		var password = f.password
		
		var params = 'userName='+ eAddress.value.trim() + '&password=' + password.value.trim() +''; 
		
		if (httpObject != null) {
			httpObject.open("POST", "auth.php", true);
			httpObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			httpObject.setRequestHeader("Content-length", params.length); 
			httpObject.setRequestHeader("Connection", "close"); 

			document.getElementById('normal_content').innerHTML = "Currently authenticating your login credentials. ";
					
			httpObject.onreadystatechange =  function() {
				if(httpObject.readyState == 4){
					document.getElementById('normal_content').innerHTML = httpObject.responseText;
				}			
			}
			
			httpObject.send(params);  
			
			ClearForm();
		}
		else {			
			e.innerHTML = "<b>IFR Monitoring failed to contact the server... </b>";		
		}
	} 
	
	function isEmailValid(e) {
		var r = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/i;
		
		if (e != null) {
			if (r.test(e) == true ) {
				e = e.toLowerCase();
				return true;
			}
			else if (e.length == 0){
				DisplayErrorMessage('<b>An email address is required! </b>');
				return false;
			}
			else {
				DisplayErrorMessage('<b>An invalid email has been entered </b>');
				return false;
			}
		}
	}

	function isMandatoryFieldEntered(e) {
		if (e.value.trim().length == 0) {
			return false;
		}
		else {
			return true;
		}
	}

	/*
	function isPasswordSame(eNew, eNewVerify){
		var submitDisabled = true;
		var iSubmit = document.getElementById('iSubmit');
		var eOriginalPassword = document.getElementById('originalPassword');
		var eNotification = document.getElementById('passMessage');
		
		eNew.value = eNew.value.trim();
		eNewVerify.value = eNewVerify.value.trim();
		
		if (eOriginalPassword.value.length > 0 && (eNew.value.length > 0 || eNewVerify.value.length > 0)) {
			if (eNew.value == eNewVerify.value) {
				submitDisabled = false;
				eNotification.innerHTML = "";
			}
			else {
				submitDisabled = true;
				eNotification.innerHTML = "The new password and confirmation password do not match.";
			}
		}
		else {
			submitDisabled = true;
			eNotification.innerHTML = "All fields are required, please check that you didn't miss anything.";
		}
		
		if (iSubmit != null) {
			iSubmit.disabled = submitDisabled;
			
			if (!submitDisabled) {
				iSubmit.focus();
			}
		}
	}*/

	function isValidFirstName(e) {
		var	regex = /^[A-Z]+[a-zA-Z-]*$/;
				
		if (e != null && e.value.trim().length >= 2 ) {
			MakeFirstCharacterUpperCase(e);
			
			if (regex.test(e.value) == true) {
				ClearErrorMessage();
			}
			else {
				DisplayErrorMessage("<b>The first name should include only letters, and hyphens. </b>");
			}
		}
		else {
			DisplayErrorMessage('<b>The first name must be at least two characters long. </b>');
		}
	}
	
	function isValidSurname(e) {
		var	regex = /^[A-Za-z-]*$/;
		
		//Minimum 2 Characters to account for Chinese lastnames like Yu
		if (e != null && e.value.trim().length >= 2 ) {
			MakeFirstCharacterUpperCase(e);
			
			if (regex.test(e.value) == true) {
				ClearErrorMessage();
			}
			else {
				DisplayErrorMessage("<b>The last name should include only letters, and hyphens. </b>");
			}
		}
		else {
			DisplayErrorMessage('<b>The last name must be at least two characters long.</b>');
		}
	}
	
	function isValidTelephone(e) {
		regex = /^[0-9-]*$/;
		
		if (e != null & e.value.trim().length > 0) {
			e.value = e.value.trim();
			
			if (regex.test(e.value) == true) {
				ClearErrorMessage();
			}
			else {
				DisplayErrorMessage("<b>" + e.value.trim() + " is not a valid phone number </b>");
			}
		}
	}
	
	function IsMinimumCharacters(dom, minimumNumChars) {	
		if (dom != null & minimumNumChars != null) {
			if (dom.value.length < minimumNumChars) {
				return false;
			} 
			else {
				return true;
			}
		}
		else {
			return false;
		}
	}
	
	function MakeFirstCharacterUpperCase(e) {
		var strToChange;
		
		if (e !=null) {
			if (e.value != "") {
				strToChange = e.value;
				strToChange = strToChange.replace(strToChange.charAt(0), strToChange.charAt(0).toUpperCase());
				e.value = strToChange.trim();
			}
		}
		
		strToChange = null;
	}
	/*
	function LoginFormVerify () {
		var f =document.forms[0];
		var returnVal = true;
		var i = 0;
		
		if (f != null) {
			for (i = 0; i < f.elements.length; i ++) {
				if (returnVal == true) {		
					returnVal = IsMinimumCharacters (f.elements[i], 4);
				}
				else {
					returnVal = false;
				}
			}
		}
		//No form was found or we had some sort of problem
		else {
			returnVal  = false;
		}
		
		//When returnVal is true, we want know that the form has all of its elements filled
		//and then are able to send the form elements to auth.php (using AJAX) for authentication.
		if (returnVal == true) {
			getLoginResponse();
		}
		else {
			DisplayErrorMessage('<b>You missed a required field.</b>');
		}
	}*/
	
	function ChangePasswordFormVerify() {
		var eOriginalPassword = document.getElementById('originalPassword');
		var eNewPassword = document.getElementById('newPassword');
		var eNewPasswordVerify = document.getElementById('newPasswordVerify');
		var eUserName = document.getElementById('userName');
		var httpObject = getHTTPObject();

		eOriginalPassword.value = eOriginalPassword.value.trim();
		eNewPassword.value = eNewPassword.value.trim();
		eNewPasswordVerify.value = eNewPasswordVerify.value.trim();
		eUserName.value = eUserName.value.trim();
		
		if (eNewPassword.value == eNewPasswordVerify.value) {
			if (eOriginalPassword.value != eNewPassword.value && eOriginalPassword.value != eNewPasswordVerify.value) {		
				var params = 'userName='+ eUserName.value + '&oldPassword=' + eOriginalPassword.value +'&newPassword=' + eNewPassword.value + ''; 
		
				if (httpObject != null) {
					httpObject.open("POST", "includes/php/ajax/authenticatedpasswordchange.php");
					httpObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
					httpObject.setRequestHeader("Content-length", params.length); 
					httpObject.setRequestHeader("Connection", "close"); 
					document.getElementById('passMessage').innerHTML = "Currently contacting server ";
								
					httpObject.onreadystatechange =  function() {
						if (httpObject.readyState < 4) {
							document.getElementById('passMessage').innerHTML ="Loading ... ";
						}
						else if(httpObject.readyState == 4){
							document.getElementById('passMessage').innerHTML = httpObject.responseText;
						}
					}
					httpObject.send(params); 
				}
				else {
					document.getElementById('passMessage').innerHTML = "You need to update your browser.";
				}
			}
			else {
				document.getElementById('passMessage').innerHTML = 'Your new password can\'t be the same as the old one!';
			}	
		}
		else {
			document.getElementById('passMessage').innerHTML = '<b>The new password and confirmation don\'t match!</b>'
		}
	} 

function RequestTrainingVerify() {
		var email = $('#email')[0];
		var fullName = $('#userFullName')[0];
		var trgType = $('#trainingType')[0];
		var comments = $('#userComments')[0];
		var e = $('#response')[0];
		
		var tdate = $('#trainingMonth')[0].value + '/' + $('#trainingDay')[0].value + '/' + $('#trainingYear')[0].value 
		
		var httpObject = getHTTPObject();
	//isDropDownSelected(trgType) &&
		if (!isEmptyText(comments)) {
			var params = 'userName='+ email.value + '&fullname=' + fullName.value +'&training=' + trgType.value + '&comments=' + comments.value + '&date=' + tdate; 
			if (httpObject != null) {
				httpObject.open("POST", "includes/php/ajax/authenticatedrequesttraining.php", true);
				httpObject.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
				httpObject.setRequestHeader("Content-length", params.length); 
				httpObject.setRequestHeader("Connection", "close"); 
				e.innerHTML = "Currently contacting server ";
							
				httpObject.onreadystatechange =  function() {
					if (httpObject.readyState < 4) {
						e.innerHTML ="Loading ... ";
					}
					else if(httpObject.readyState == 4){
						e.innerHTML = httpObject.responseText;
					}
				}
				httpObject.send(params); 
			} else {
				e.innerHTML = "You need to update your browser.";
			}
			
		} else {
			var s ='';
			
			 if (!isEmailValid(email)) {
					s = 'Email cannot be blank or invalid.\n';
			 }
			 
			 /*if (!isDropDownSelected(trgType)) {
				$s = $s + 'You must select a training type.\n';
			 }*/
			 
			 if (isEmptyText(comments)) {
				s = s + 'Comments cannot be empty.';
			 }
			 
			 alert(s);
		}
	}
	
	function isEmptyText(e) {
		if (e != null) {
			e.value = e.value.replace(/\s+$/,"");
			if (e.value.length > 0) {
				return false;
			} else {
				return true;
			}
		} else {
			return false;
		}
	}
	
	function getClientResponse(contactId) {
		var e = $('#dlResponse')[0];
		var httpObject = getHTTPObject();
		
		if (httpObject != null) {
			httpObject.open("GET", "includes/php/ajax/authenticatedgetStaff.php?id=" + contactId,true);
			httpObject.send(null);
			e.innerHTML = "Currently contacting server ";
				
			httpObject.onreadystatechange =  function() {
				if(httpObject.readyState == 4){
					if (httpObject.responseText.trim().length > 0 ) {
						e.innerHTML='Processing server return';

						
						var str= httpObject.responseText.split('|');
						if (str.length > 0) {
							$('#id')[0].value = str[0] ;
							$('#firstName')[0].value = str[1].trim() ;
							$('#lastName')[0].value = str[2].trim() ;
							$('#title')[0].value = str[3].trim();
							$('#email')[0].value = str[4].trim();
							$('#telephone')[0].value = str[5].trim();
							$('#ext')[0].value = str[6].trim();
							$('#fax')[0].value = str[7].trim();
							$('#cell')[0].value = str[8].trim();
							$('#directLine')[0].value = str[9].trim();
							$('#alternatePhone')[0].value = str[10].trim();
							
							
							if (str[11].trim() != "0") {
								$('#enabled')[0].checked = true;
								
							} else {
								$('#enabled')[0].checked = false;
							}
							
							e.innerHTML='';
						}
					} else {
						alert('Oops the server didn\'t return a value.');
						e.innerHTML = 'Oops the server didn\'t return an expected value';
					}
				}			
			}
		} else {			
			e.innerHTML = "<b>IFR Monitoring failed to contact the server... </b>";		
		}
	} 
	
	function urlchange(url) {
		if (url.trim().length > 0) {
			location.href= url;
		}
	}

	
	function windowopener(winUrl,winWidth,winHeight,winName,winX,winY,winScrollbars,winLocation,winStatus,winPersonalbar,winResizable,winToolbar,winMenubar,winDependent,winDirectories) {
	windowOpener(winUrl,winWidth,winHeight,winName,winX,winY,winScrollbars,winLocation,winStatus,winPersonalbar,winResizable,winToolbar,winMenubar,winDependent,winDirectories);
}
function windowOpener(winUrl,winWidth,winHeight,winName,winX,winY,winScrollbars,winLocation,winStatus,winPersonalbar,winResizable,winToolbar,winMenubar,winDependent,winDirectories) {
	var windowName = ""
	// set defaults
	if (!winWidth) winWidth = 415
	if (!winHeight) winHeight = 450
	if (!winName) winName = 'popupWindow'
	if (!winX) winX = 0
	if (!winY) winY = 0
	if (!winScrollbars) winScrollbars = "no"
	if (!winLocation) winLocation = "no"
	if (!winStatus) winStatus = "no"
	if (!winPersonalbar) winPersonalbar = "no"
	if (!winResizable) winResizable = "no"
	if (!winToolbar) winToolbar = "no"
	if (!winMenubar) winMenubar = "no"
	if (!winDependent) winDependent = "no"
	if (!winDirectories) winDirectories = "no"
	// open pop-up window
	eval(winName +  '= window.open(winUrl,winName,"width=' + winWidth + ",height=" + winHeight + ",left=" + winX + ",top=" + winY + ",screenX=" + winX + ",screenY=" + winY + ",scrollbars=" + winScrollbars + ",location=" + winLocation + ",status=" + winStatus + ",personalbar=" + winPersonalbar + ",resizable=" + winResizable + ",toolbar=" + winToolbar + ",menubar=" + winMenubar + ",dependent=" + winDependent + ",directories=" + winDirectories + '")') // deleted quotes around winName, added "eval" 17 Nov 2000 by mak
	eval(winName).focus() // added "eval" 17 Nov 2000 by mak
	}