var gblnPickerValidation = false;
gblnForm = true;


String.prototype.Trim = trimString; // Extend the string object to include a trim function

function checkValidDate(day, month, year) {
	var blnLeapYear = (year % 4 == 0);
	var lngMaxDays;
	
	switch (Number(month)) {
		case 1:
			lngMaxDays = 31;
			break;
		case 2:
			if (blnLeapYear == true) {
				lngMaxDays = 29;
			}
			else {
				lngMaxDays = 28;
			}
			break;
		case 3:
			lngMaxDays = 31;
			break;
		case 4:
			lngMaxDays = 30;
			break;
		case 5:
			lngMaxDays = 31;
			break;
		case 6:
			lngMaxDays = 30;
			break;
		case 7:
			lngMaxDays = 31;
			break;
		case 8:
			lngMaxDays = 31;
			break;
		case 9:
			lngMaxDays = 30;
			break;
		case 10:
			lngMaxDays = 31;
			break;
		case 11:
			lngMaxDays = 30;
			break;
		case 12:
			lngMaxDays = 31;
			break;
		default:
			return false;
			break;
	}
	
	if (day > lngMaxDays) {
		return false;
	}
	
	if (day == 00) {
		return false;
	}
	
	if (day < 0) {
		return false;
	}
	
	if (year < 1753) {
		return false;
	}
	if (year > 2200) {
		return false
	}
	
	return true;
}	

function convertToUpperCase() {
	if ((event.keyCode >= 97) && (event.keyCode <= 122)) {
		event.keyCode = (event.keyCode - 32);
	}
}

function dateAdd(interval, number, dateObject){
	/*interval is YYYY, M, D, H, N, S as in VB number is amount +/-; dateObject is javascript date object*/
	switch(interval){
		case "M":
			dateObject.setMonth(dateObject.getMonth() + number);
			break;
		case "YYYY":
			dateObject.setFullYear(dateObject.getFullYear() + number);
			break;
		case "D":
			dateObject.setDate(dateObject.getDate() + number);
			break;
		case "H":
			dateObject.setHours(dateObject.getHours() + number);
			break;
		case "N":
			dateObject.setMinutes(dateObject.getMinutes() + number);
			break;
		case "S":
			dateObject.setSeconds(dateObject.getSeconds() + number);
			break;
		default:
	}
	return dateObject
}

function disableRadioObject(radioObject, state) {
    for (var i = 0; i < radioObject.length; i++) {
        radioObject[i].disabled = state
    }
}


function getRadioValue(radioObject) {
	var strValue;
	for (var i = 0; i < radioObject.length; i++) {
		if (radioObject[i].checked) {
			strValue = radioObject[i].value;
			break;
		}
	}
	return strValue;
}

function hideSaveMessage() {
	var objSpan = document.getElementById("spaPageMessage");
	var objTable = document.getElementById("tblMarginLoadingMessage");
	var objText = document.getElementById("txtSaveMessage");
	var objToolbar = document.getElementById("tddToolbar");
	
	if (objTable != null && objSpan != null & objText != null) {
		document.getElementById("tblMarginTable").style.display = "inline";
		objSpan.innerText = objText.value;
		objTable.style.display = "none";
	}
	
	if (objToolbar != null) {
		objToolbar.style.display = "inline";
	}
	
	blnPageBusy = false;
	blnDirty = true;
}

function isAlphaNumeric(field, fieldName) {
	var strInput = document.getElementById(field).value.Trim();
     if ((/\W/.test(strInput))) {
		alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "InvalidAlphaNumeric"));
		return false;
	}
	else {
		return true;
	}
}

function isCreditCardNumber(field, fieldName) { // LUHN Formula for validation of credit card numbers.
	var strInput = document.getElementById(field).value.Trim();
	var ar = new Array( strInput.length );
	var i = 0,sum = 0;

	for( i = 0; i < strInput.length; ++i ) {
		ar[i] = parseInt(strInput.charAt(i));
	}
	for( i = ar.length -2; i >= 0; i-=2 ) { // you have to start from the right, and work back.
		ar[i] *= 2;							 // every second digit starting with the right most (check digit)
		if( ar[i] > 9 ) ar[i]-=9;			 // will be doubled, and summed with the skipped digits.
	}										 // if the double digit is > 9, ADD those individual digits together 


    	for( i = 0; i < ar.length; ++i ) {
    		sum += ar[i];						 // if the sum is divisible by 10 mod10 succeeds
    	}
    	if ((((sum%10)==0)?true:false) == false) {
    		alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "InvalidCreditCardNumber"));
			return false;	
		}
		else {
			return true;
		} 	
}


function isDate(field, fieldName) {
	var strInput = document.getElementById(field).value.Trim();
	
	if (validateDate(strInput) == false) {
		alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "InvalidDate") + " " + getPhrase(2, 8, "DateFormat" + glngDateFormat));
		return false;
	}
	return true;
}


function isDateNotEmpty(field, fieldName) {
	var strInput = document.getElementById(field).value.Trim();
	
	if (!isNotBlank(field, fieldName)) {
		return false;
	}
		
	if (validateDate(strInput) == false) {
		alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "InvalidDate") + " " + getPhrase(2, 8, "DateFormat" + glngDateFormat));
		return false;
	}
	return true;
}

function isDate1LessThanDate2(date1, date1FieldName, date2, date2FieldName) {
	if (!isDate1LessThanDate2NoAlert(date1, date2)) {
		alert(createPagePhrase(getPhrase(2, 8, "Date2MustBeGreaterThanDate1"), unescape(date2FieldName) + "<1>" + unescape(date1FieldName) + "<2>"));
		return false;
	}
	return true;
}

function isDate1LessThanDate2NoAlert(date1, date2) {
	var blnReturnFalse = false;
	var strDate1 = document.getElementById(date1).value.Trim();
	var strDate2 = document.getElementById(date2).value.Trim();
	
	if (strDate1 == "") {
		return true;
	}
	if (strDate2 == "") {
		return true;
	}
	
	if (Date.parse(strDate2) < Date.parse(strDate1)) {
		return false;
	}
	return true;
}

function isDateTime(field, fieldName) {
	var aryDateTime;
	var lngDay;
	var lngIndex;
	var lngMonth;
	var lngYear;
	var strInput = document.getElementById(field).value.Trim();
	var strDatePart;
	var strTimePart;
	
	if (strInput == "") {
		return true;
	}
	
	lngIndex = strInput.indexOf(" ");
	if (lngIndex == -1) {
		strDatePart = strInput;
		strTimePart = "";
	}
	else {
		strDatePart = strInput.slice(0, lngIndex);
		strTimePart = strInput.slice(lngIndex + 1)
	}
	
	if (validateDate(strDatePart) == false) {
		alert(createPagePhrase(getPhrase(2, 8, "InvalidDateTimeDate"), unescape(fieldName)) + " " + getPhrase(2, 8, "DateFormat" + glngDateFormat));
		return false;
	}
	if (validateTime(strTimePart) == false) {
		alert(createPagePhrase(getPhrase(2, 8, "InvalidDateTimeTime"), unescape(fieldName)) + " " + getPhrase(2, 8, "TimeFormat" + glngTimeFormat));
		return false;
	}
	
	return true;
}

function checkValidEmail(strInput) {
	var sEmail = strInput;
	var idx = 0
	if (strInput == "") {
		return true;
	}
	
    // do not allow commas
    if (strInput.indexOf(",") > 0) {
        return false;
    }
    // do not allow semicolons
    if (strInput.indexOf(";") > 0) {
        return false;
    }

    idx = strInput.indexOf("<");
    if (idx > -1) {
        // Handle emails like: 'Kevin Derrick MD <kevin.derrick@eahealthcorp.com>'
        // Only look at the part between the '<>'
        sEmail = strInput.substring(idx + 1, strInput.length - 1);
    }

    //bug in in Firefox; following script hangs on some emails.  I don't see what the ? test accomplishes so I removed it
    //if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(sEmail))) {
    if (!(/^\w+([\.-]\w+)*@\w+([\.-]\w+)*(\.\w{1,4})+$/.test(sEmail))) {
        return false;
    }
    
    return true;
}

function isEmail(field, fieldName) {
	var strInput = document.getElementById(field).value.Trim();

    if (checkValidEmail(strInput)) {
        return true;
    }
    else {
	    alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "InvalidEmail"));
        return false;
    }
}

function isEmailList(field, fieldName) {
   	var aryEMails;
	var strInput = document.getElementById(field).value.Trim();
    var lngIndex;
    
	if (strInput == "") {
		return true;
	}

    // Check in a list of emails that each one is valid.   EMails in a list are separated by a ';'    
    aryEMails = strInput.split(";");
    if (aryEMails.length > 0) {
        // If there is at least one email in the list, don't allow the last one to be blank (ie ";")
        if (aryEMails[aryEMails.length-1] == "") {
            alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "InvalidEmailList"));
            return false;
        }
    }
	for (lngIndex=0; lngIndex < aryEMails.length; lngIndex++) {
	    if (checkValidEmail(aryEMails[lngIndex].Trim()) == false) {
	        alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "InvalidEmailList"));
            return false;
        }
	}
    return true;
}

function isEmailLessThanCharacterSize(fieldName, field, characters, emailValidationFunction) {
	var strInput = document.getElementById(field).value.Trim();
	
	if (strInput.length > characters) {
		alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "CharacterSize") +  characters + '.');
		return false;
	}
	else {
	    var strValidate = emailValidationFunction + "('" + field + "', '" + escape(fieldName) + "')";
    	
	    if (!eval(strValidate)) {
		    document.getElementById(field).focus();
		    return false;
	    }
	}
}


function isImage(field, fieldName) {
	var lngLocation;
	var strExtension;
	var strInput = document.getElementById(field).value.Trim();
	
	if (strInput == "") {
		return true;
	}
	
	lngLocation = strInput.lastIndexOf(".");
	
	if (lngLocation != -1) {
		strExtension = strInput.substr(lngLocation + 1, strInput.length - lngLocation - 1);
		switch (strExtension.toUpperCase()) {
			case "JPG":
				return true;
			case "JPEG":
				return true;
			case "GIF":
				return true;
			case "BMP":
				return true;
		}
	}		
	
	alert(getPhrase(2, 8, "NotAnImage"));
	return false;
}

function isItemChecked(field, fieldName) {
	var lngIndex;
	var objField = document.getElementById(field);
	
	for (lngIndex=0; lngIndex < objField.length; lngIndex++) {
		if (objField[lngIndex].checked == true) {
			return true;
		}
	}
	
	alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "ItemNotChecked"));
	return false;
}

function isItemSelected(field, fieldName) {
	if (document.getElementById(field).selectedIndex == 0) {
        alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "ItemNotSelected"));
        return false;
    }
    else {
		return true;
	}
}

function isLessThanCharacterSize(fieldName, field, characters) {
	var strInput = document.getElementById(field).value.Trim();
	
	if (strInput.length <= characters) {
		return true;
	}
	else {
		alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "CharacterSize") +  characters + '.');
		return false;
	}
}

function isNotBlank(field, fieldName) {
	if (document.getElementById(field).value.Trim() == "") {
		alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "BlankPhrase"));
		return false;
	}
	return true;
}

function isNumber(field, fieldName) {
	var strInput = document.getElementById(field).value.Trim();

	if (validateNumber(strInput) != true) {
	    alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "InvalidNumber"));
        return false;
    }

    return true;
}

function isNumberBetweenRange(minValue, maxValue, field, fieldName) {
	var lngNumber;
	var strInput = document.getElementById(field).value.Trim();
	  
    if (validateNumber(strInput) != true) {
	    alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "InvalidNumber"));
        return false;
    }

	lngNumber = Number(strInput);
	
	if (minValue != null) {
		if (lngNumber < minValue) {
			alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "TooLow") + " " + minValue + ".");
			return false;
		}
	}

	if (maxValue != null) {
		if (lngNumber > maxValue) {
			alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "TooHigh") + " " + maxValue + ".");
			return false;
		}
	}

	return true;
}

function isNumberNotEmpty(field, fieldName) {
	var lngLoop;
	var strInput = document.getElementById(field).value.Trim();

	if (!isNotBlank(field, fieldName)) {
		return false;
	}
			
	if (validateNumber(strInput) != true) {
	    alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "InvalidNumber"));
        return false;
    }

    return true;
}

function isPassword(field, fieldName) {
	var strInput = document.getElementById(field).value.Trim();

    if (!(/\w{8}/.test(strInput))) {
		alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "InvalidPassword"));
		return false;
	}
	else {
		return true;
	}
}

function isPositiveInteger(minValue, maxValue, field, fieldName) {
	var lngNumber;
	var strInput = document.getElementById(field).value.Trim();
	
	if (strInput == "") {
		return true;
	}
    
    if (strInput.match(/\d/g) == null) {
		alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "NotInteger"));
		return false;
	}
	else {
		if (strInput.match(/\d/g).length != strInput.length) {
			alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "NotInteger"));
			return false;
		}
	}
	
	lngNumber = Number(strInput);
	
	if (minValue != null) {
		if (lngNumber < minValue) {
			alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "TooLow") + " " + minValue + ".");
			return false;
		}
	}

	if (maxValue != null) {
		if (lngNumber > maxValue) {
			alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "TooHigh") + " " + maxValue + ".");
			return false;
		}
	}

	return true;
}

function isPositiveIntegerNotEmpty(minValue, maxValue, field, fieldName) {
	var lngNumber;
	var strInput = document.getElementById(field).value.Trim();
	
	if (isNumberNotEmpty(field, fieldName) == false) {
		return false;
	}
    
    if (strInput.match(/\d/g) == null) {
		alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "NotInteger"));
		return false;
	}
	else {
		if (strInput.match(/\d/g).length != strInput.length) {
			alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "NotInteger"));
			return false;
		}
	}
	
	lngNumber = Number(strInput);
	
	if (minValue != null) {
		if (lngNumber < minValue) {
			alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "TooLow") + " " + minValue + ".");
			return false;
		}
	}

	if (maxValue != null) {
		if (lngNumber > maxValue) {
			alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "TooHigh") + " " + maxValue + ".");
			return false;
		}
	}

	return true;
}

function isSSN(field, fieldName) {
	var strInput = document.getElementById(field).value.Trim();
	
	if (strInput == "") {
		return true;
	}
	
    if (!(/^\d{3}-\d{2}-\d{4}$/.test(strInput)) && !(/^\d{9}$/.test(strInput))) {
        alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "InvalidSSN"));
        return false;
    }
    
    return true;
}

function isTime(field, fieldName) {
	var strInput = document.getElementById(field).value.Trim();
	
	if (validateTime(strInput, fieldName) == false) {
		alert("'" + unescape(fieldName) + "' " + getPhrase(2, 8, "InvalidTime") + " " + getPhrase(2, 8, "TimeFormat" + glngTimeFormat));
		return false;
	}
	return true;
}

function fixDate(eventObject) {
	var lngX;
	var objDate;
	var strDate;
	var strTemp;
	
	if (gblnIE) {
		objDate = window.event.srcElement;
	}
	else {
		objDate = eventObject.target;
	}
	
	strDate = objDate.value;
	lngX = strDate.lastIndexOf("/");
	
	if (lngX > -1) {
		strTemp = strDate.slice(lngX + 1);
		
		if (strTemp.length == 2 && validateNumber(strTemp)) {
			if (Number(strTemp) > 50) {
				strTemp = "19";
			}
			else {
				strTemp = "20";
			}
			
			strTemp = strDate.substr(0, lngX + 1) + strTemp + strDate.slice(lngX + 1);
			
			objDate.value = strTemp;
		}
	}
}

function formUnload(eventObject) {
	if (gblnKillSession != true) {
		if (blnDirty == true && blnCheckDirty == true) {
			return getPhrase(2, 8, "DirtyWarning");
		}
	}
}

function refreshPageNoMessage(page) { 
    var destination = page.toString();
	var winOpener;
	var ref = "";

	if (gblnIE) {
		winOpener = window.parent.dialogArguments;
	}
	else {
		winOpener = window.parent.opener;
	}
	if (page==""){
	    winOpener.setTimeout('refreshPage()', 0);
	    }else {
	        ref = "refreshPage('" + destination + "')";
	        winOpener.setTimeout(ref, 0);
	    }	   
	window.parent.close();
}

function resetAfterFail() {
	var objDiv = document.getElementById("divLoadingMessage");
	var objDivBottom = document.getElementById("divBottom");
	
	if (objDiv != null && objDivBottom != null) {
		objDiv.style.display = "none";
		objDivBottom.style.display = "inline";
	}
	
	blnPageBusy = false
}

function saveConflictQueryString() {
	return("sctopicid=" + document.getElementById("txtSaveConflictTopicId").value + "&sctopicrecordid=" + document.getElementById("txtSaveConflictTopicRecordId").value + "&sclasteditdate=" + escape(document.getElementById("txtSaveConflictLastEditDate").value));
}

function serverFormValidation(pageURL) {
	var objDiv = document.getElementById("divLoadingMessage");
	var objDivBottom = document.getElementById("divBottom");
	var objIFrame = document.getElementById("fraServerFormValidation");
	var objSpan = document.getElementById("spaLoadingMessage")
	var objText = document.getElementById("txtFormValidationMessage");
	
	//if (objSpan != null && objText != null && objDivBottom != null) {
		//objDivBottom.style.display = "none";
		//objSpan.innerHTML = objText.value;
		//objDiv.style.display = "inline";
	//}

	blnPageBusy = true;

	objIFrame.src = gstrAdminBaseURL + "blank.asp";
	objIFrame.src = gstrAdminBaseURL + pageURL;
}

function setRadioValue(radioObject, value) {
	for (var i = 0; i < radioObject.length; i++) {
		if (radioObject[i].value == value) {
			radioObject[i].checked = true;
			break;
		}
	}	
}

function showSaveMessage() {
	var objDiv = document.getElementById("divLoadingMessage");
	var objDivBottom = document.getElementById("divBottom");
	var objSpan = document.getElementById("spaLoadingMessage")
	var objText = document.getElementById("txtSaveMessage");
	
	if (objSpan != null && objText != null && objDivBottom != null) {
		objDivBottom.style.display = "none";
		objSpan.innerHTML = objText.value;
		objDiv.style.display = "inline";
	}

	blnPageBusy = true;
}

function standardFormValidation() {
	var blnForm = false;
	var lngX = 0;
	var objForm;
	var objBlank;
	var strValidate;

	for (lngX = 0; lngX < document.forms.length; lngX++) {
		if (document.forms[lngX].getAttribute("validate") == "true") {
			objForm = document.forms[lngX];
			blnForm = true;
		}
	}

	if (blnForm != true) {
		return false;
	}

	for (lngX = 0; lngX < objForm.length; lngX++) {
		if (objForm[lngX].getAttribute("validate")) {
			strValidate = objForm[lngX].getAttribute("validate");
	
			if (strValidate.indexOf("(") > 0) {
				strValidate = strValidate.substr(0, strValidate.length - 1) + ", '" + objForm[lngX].name + "', '";

				if (objForm[lngX].getAttribute("fieldname")) {
					strValidate += escape(objForm[lngX].getAttribute("fieldname"));
				}

				strValidate += "')";

				if (eval(strValidate) == false) {
					objForm[lngX].focus();
					return false;
				}
			}
			else {
				strValidate += "('" + objForm[lngX].name + "', '"
				
				if (objForm[lngX].getAttribute("fieldname")) {
					strValidate += escape(objForm[lngX].getAttribute("fieldname"));
				}

				strValidate += "')";

				if (!eval(strValidate)) {
					objForm[lngX].focus();
					return false;
				}
			}
		}
	}

	return true;
}	

function trimString() {
    var lngChar;
    var lngCount;
    var strValue = this;
    
    lngChar = strValue.length - 1;
    lngCount = -1;
    
    while (strValue.charAt(lngChar) == ' ' && lngChar > lngCount) {
        --lngChar;
    }
        
    if (lngChar != (strValue.length - 1)) {
        strValue = strValue.slice(0, lngChar + 1);
    }
    
    lngChar = 0;
    lngCount = strValue.length - 1;
    
    while (strValue.charAt(lngChar) == ' ' && lngChar < lngCount) {
        ++lngChar;
	}
	
    if (lngChar != 0) {
        strValue = strValue.slice(lngChar, strValue.length);
    }
        
    return strValue;
}

function validateDate(value) {
	var aryDateTime;
	var lngDay;
	var lngMonth;
	var lngYear;

	if (value == "") {
		return true;
	}

	if (value.match(/"/) != null | value.match(/'/) != null) {
		return false;
	}

	switch (glngDateFormat) {
		case 1:
			if (!(/\d{1,2}\/\d{1,2}\/\d{4}/.test(value))) {
				return false;
			}
			else {
				aryDateTime = value.split("/");
				if (aryDateTime.length != 3) {
					return false;
				}
				lngMonth = aryDateTime[0];
				lngDay = aryDateTime[1];
				lngYear = aryDateTime[2];
					
				if (lngYear.length != 4) {
					return false;
				}
				else {
					if (checkValidDate(lngDay, lngMonth, lngYear) == false) {
						return false;
					}
				}
			}
			break;	
		
		default:
			alert(getPhrase(2, 8, "DateNotSupported"));
			return false;
	}
	
	return true;
}

function validateNumber(value) {
	var lngPosition;
	var strValue;
	if (isFinite(value)) {
		strValue = new String(value)
		lngPosition = strValue.lastIndexOf("e");
		if (lngPosition > -1) {
			return false;
		}
		lngPosition = strValue.lastIndexOf("E");
		if (lngPosition > -1) {
			return false;
		}
		if ((value > 999999999) || (value <-999999999)) {
			return false;
		}
		
		return true;
	}
	else {
		return false;
	}
}

function validateTime(value, returnValue) {
	var lngColon;
	var lngHour = new Number;
	var lngMinute = new Number;
	var lngTest;
	
	if (value == "") {
		return true;
	}

	if (value.match(/"/) != null | value.match(/'/) != null) {
		return false;
	}
	
	value = value.toUpperCase();
	switch (glngTimeFormat) {
		case 1:
			if (!(/\d{1,2}\:\d{2}\s{0,1}[A,P]M/.test(value))) {
				return false;
			}
			else {
				if (value.match(/\d{1,2}\:\d{2}\s{0,1}[A,P]M/)[0].length != value.length) {
					return false;
				}
				
				lngColon = value.indexOf(":");
				lngHour = Number(value.substr(0, lngColon));
				lngMinute = Number(value.substr(lngColon + 1, 2));

				if (lngHour < 1 || lngHour > 12) {
					return false;
				}

				if (lngHour == 12) {
					lngHour = 0;
				}
				
				if (value.match(/[p,P]/) != null) {
					lngHour += 12;
				}
			}
			break;	
		case 2:
			if ((!(/\d{1,2}\:\d{2}/.test(value))) | ((/[A-Z]/).test(value))) {
				return false;
			}
			else {
				lngColon = value.indexOf(":");
				lngHour = Number(value.substr(0, lngColon));
				lngMinute = (value.substr(lngColon + 1, 2));

				if (lngHour > 23 | lngHour < 0) {
					return false;
				}
			}
			break;	
	}
	
	if (lngMinute > 59 | lngMinute < 0) {
		return false;
	}

	if (returnValue == true) {
		return ((lngHour * 60) + lngMinute);
	}

	return true;
}

function validateFormPickerFields(passFunction, failFunction) {
	var blnForm = false;
	var lngCounter = 1;
	var lngOrganizationId = -1
	var lngX = 0;
	var objBlank;
	var objForm;
	var strFieldName;
	var strPostEval;
	var strValue;
	var wndParent;
	var lngTryCounter
	
	gblnPickerValidation = true;
	wndParent = window.frames["fraPickerFormValidation1"]
	//wndParent.display = "block"	
	
	try {
		lngOrganizationId = document.getElementById("txtOrganizationId").value
	}
	catch (e) {
	}
	
	for (lngX = 0; lngX < document.forms.length; lngX++) {
		if (document.forms[lngX].getAttribute("validate")) {
			objForm = document.forms[lngX];
			blnForm = true;
		}
	}
	
	for (lngX = 0; lngX < objForm.length; lngX++) {
		if (objForm[lngX].getAttribute("pickertopicid")) {
			if (objForm[lngX].value != '') {		
				if (document.getElementById(objForm[lngX].getAttribute("pickerfieldidname")).value == '') {
					strPostEval = '-1' //We don't need to execute any post eval when saving a form.
					strValue = objForm[lngX].getAttribute("pickertopicid");
					strValue += "|" + objForm[lngX].getAttribute("pickersearchmetafieldid"); 
					strValue += "|" + objForm[lngX].value; 
					strValue += "|" + objForm[lngX].name
					strValue += "|" + objForm[lngX].getAttribute("pickerfieldidname"); 
					strValue += "|" + objForm[lngX].getAttribute("fieldlabel"); 
					strValue += "|" + strPostEval; 
					strValue += "|" + objForm[lngX].getAttribute("multi"); 
					strValue += "|" + objForm[lngX].getAttribute("servervalidation"); 
					strValue += "|" + objForm[lngX].getAttribute("filter"); 
					strValue += "|" + lngOrganizationId; 
					strFieldName = "txtPICValidate" + lngCounter.toString();
					wndParent.document.getElementById(strFieldName).value = strValue;
				
					lngCounter += 1
				}
			}
		}
	}
	
	wndParent.document.getElementById("txtPassFunction").value = passFunction;
	wndParent.document.getElementById("txtFailFunction").value = failFunction;
	gblnPickerValidation = false;
	wndParent.document.forms[0].submit()
}

function validateFormPickerKeyDownTab(event, elementName) {
	if (event) {
		if (event.keyCode != 9) {
			document.getElementById(elementName).value = ''
			event.returnValue = true;
		}
	}
}

function validateSingleFormPickerField(objField, passFunction, failFunction) {
	var blnForm = false;
	var lngCounter = 1;
	var lngOrganizationId = -1;
	var lngX = 0;
	var objForm;
	var objBlank;
	var strValue;
	var strFieldName
	var strPostEval;
	var wndParent;

	if(gblnPickerValidation == true) {
		return true;
	}

	wndParent = window.frames["fraPickerFormValidation1"]
	
	try {
		lngOrganizationId = document.getElementById("txtOrganizationId").value
	}
	catch (e) {
	}

	if (objField.getAttribute("pickertopicid")) {
		if (objField.value == '') {
			document.getElementById(objField.getAttribute("pickerfieldidname")).value = ""
			if (objField.getAttribute("postevalfunction") != '') {
				eval(objField.getAttribute("postevalfunction"))
			}
		
		}
		else {
			if (objField.getAttribute("postevalfunction") == '') {
				strPostEval = '-1'
			}
			else {
				strPostEval = objField.getAttribute("postevalfunction");
			}
				
			strValue = objField.getAttribute("pickertopicid");
			strValue += "|" + objField.getAttribute("pickersearchmetafieldid"); 
			strValue += "|" + objField.value; 
			strValue += "|" + objField.name
			strValue += "|" + objField.getAttribute("pickerfieldidname"); 
			strValue += "|" + objField.getAttribute("fieldlabel"); 
			strValue += "|" + strPostEval; 
			strValue += "|" + objField.getAttribute("multi"); 
			strValue += "|" + objField.getAttribute("servervalidation"); 
			strValue += "|" + objField.getAttribute("filter"); 
			strValue += "|" + lngOrganizationId; 
			wndParent.document.getElementById("txtPICValidate1").value = strValue;
				
			lngCounter += 1
			wndParent.document.getElementById("txtPassFunction").value = passFunction;
			wndParent.document.getElementById("txtFailFunction").value = failFunction;
			
			wndParent.document.forms[0].submit()
		}
	}
}
