﻿
var once_Submit = false;

function toggleStatus(objElement){
	
}

function toggleStatusDD(objElement){

    objElement.style.background = '#f1f1f1'
}

function setRqdField(arrRqdFields, strElementName, strDisplayMessage, blnIsEmail, blnIsNumber, blnIsEditor, blnIsIP,  blnDisplayAlert, confirmEmailElement, pid)    {

	var objRequired = new Object();        
	objRequired.ElementName = strElementName;        
	objRequired.DisplayMessage = strDisplayMessage;        
	objRequired.IsEmail = blnIsEmail;        
	objRequired.IsNumber = blnIsNumber;        
	objRequired.IsEditor = blnIsEditor;
	objRequired.IsIP = blnIsIP;
    objRequired.confirmEmail = confirmEmailElement;
    objRequired.pid = pid;
    objRequired.DisplayAlert = blnDisplayAlert;
	if(arrRqdFields.length == 0){
		arrRqdFields[0] = objRequired;        
	}else{
		arrRqdFields[arrRqdFields.length] = objRequired;        
	}
}

function CheckForm(FieldArray, msg){



    once_Submit = true;
var currentElement = 0;
var isError = false;



try
{
	//if confirmMsg is supplied once the form had been verfidied the user needs to agree to the msg to continue.

	for (var i = 0; i < FieldArray.length; i++) {
		var blnFail = true; 
		var objElement = eval(document.getElementById(FieldArray[i].ElementName));	
		currentElement = i;

        
	
	
		if(objElement.type == "select-one"){
			if(objElement.selectedIndex != "0"){
				blnFail=false;
			}
		}

		else if(objElement.type == "file"){
			if(objElement.value != ""){
				blnFail=false;
			}
		}

		else if(objElement.type == "text") {

			if (objElement.value != "") {			    
			    if (FieldArray[i].IsEmail) {
			    
			        if (CheckEmail(objElement.value)) 
			        { 
			            
			           blnFail = false;
			        } 
			        else 	
			        {	if(FieldArray[i].DisplayAlert)		        				            
				            alert('Please enter a valid email address')}; 				        				           		
				    }
				else if (FieldArray[i].IsNumber) { if (!isNaN(objElement.value)) blnFail = false; }
				else if (FieldArray[i].IsIP) { if (CheckIP(objElement.value)) blnFail = false;}
			else blnFail = false;
			}
		}


		else if(objElement.type == "hidden" && FieldArray[i].IsEditor) {
			if(objElement.value != ""){
				blnFail=false;
			}
		}

		else if(objElement.type == "password") {

			if (objElement.value != "") {
				if (FieldArray[i].IsEmail) { if (CheckEmail(objElement.value)) blnFail = false; }					
			else blnFail = false;
			}
			//now check confrimation pwd
			if(document.getElementById('txtConfirmPassword').value != objElement.value){
				blnFail = true;
				alert('Passwords do not match')
			}
				
		}

		if (blnFail) {
			//alert(FieldArray[i].DisplayMessage);
			if (objElement.length && !objElement.type) objElement[0].focus();
			else 
				if(!(objElement.type == "hidden" && FieldArray[i].IsEditor)){
					//objElement.focus();
				}else{
					//editor failed on content check - set focus to iframe
					//editorField.focus();

					//alert(FieldArray[i].DisplayMessage)
				}
				objElement.style.backgroundColor = '#ffb6b6';
			    objElement.style.color = 'black';


		    isError = true;
			//return false;
		}else{
			//objElement.style.backgroundColor = 'white';
			//objElement.style.color = 'black';
			
			
		}	
				
	}

	//all fields ok, now check if a message is displayed and if so prompt user to agree or disagree
	if (!isError) {        
	    if (msg != null) {
	        if (msg.length > 0) {	            
	            return Confirmfn(msg);	            
	        }
	        else{	            
	            return true;	                
	            }
	    }
	    return true;
	}	
	return false;
}
catch(err)
{
	//alert("An error occured checking specified required fields; " + FieldArray[currentElement].ElementName)
	return true;
}


}



//******************************************************
//
//	Set default Field For forms
//
//******************************************************


function InitSelectedField(field){
	document.getElementById(field).focus();
}


function CheckEmail(who) {
	/* With RegExp */
	var email=/^[A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*@[A-Za-z0-9]+([_\.-][A-Za-z0-9]+)*\.([A-Za-z]){2,4}$/i;
	return(email.test(who));
}



function Confirmfn(confirmMsg){
	if(!(confirm(confirmMsg))){
		return false;
    }
	
}


function fieldOK(control){
	document.getElementById(control).style.backgroundColor = '#FFFFFF';
	document.getElementById(control).style.color = '#000';
}




//******************************************************
//
//  Events for onchange and Keyup
//
//******************************************************

function checkEmail(field) {
    if (once_Submit) {
        if (!CheckEmail(field.value)) {
            field.style.backgroundColor = '#ffb6b6';
            field.style.color = 'black'
        }
        else {
            field.style.backgroundColor = '#f1f1f1';
            field.style.color = '#737373'
        } 
    }
}


function checkRequired(field) {
    if (once_Submit) {
        if ((field.value == "") || (field.value == null)) {
            field.style.backgroundColor = '#ffb6b6';
        }
        else {
            field.style.backgroundColor = '#f1f1f1';

        } 
    }
}


function Subscribe(msg)
{
    //Validate the form
    if(CheckForm(arrRqdSysUsers))
    {
        //Display a conformation message
        return confirm(msg);        
    }
    else
    {
        return false;
    }
}

//Function check for the required fields and type [Form Validation], if form successfully validated display a confirmation message
function check_confirm(msg)
{
    //Validate the form 
    if(CheckForm(arrRqdSysUsers))
    {            
        //If all validation is ok, display a confirmation message
        return confirm(msg);
    }
    else
    {                
        //Form not validated
        return false;
    }                
}
