﻿/*

TODO: Namespace all functions
http://www.netalive.org/swsu/archives/2004/11/namespaces_in_j.html

*/

function AddError(ErrorsList, ErrorMessage){
    return ErrorsList + "<li>" + ErrorMessage + "</li>";
}

function SetRequiredStatus(Field, StatusOn){
    if(StatusOn){
        Field.className = "Required";
    }else{
        Field.className = "";      
    }
}
    
    
    
    

function Trim(Value) {
	return Value.replace(/^\s+|\s+$/g,"");
}


function IsValidEmail(Email){
    var re = new RegExp("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$");
    return re.test(Email);
}
function IsValidURL(URL){
    var regexp = /(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?/;
	return regexp.test(URL);
}


function ValidateReqField(Field, ErrorsList, ErrorMessage){
	if(Field.value.replace(/[\s]+/g, "").length == 0){
	    ErrorsList = AddError(ErrorsList, ErrorMessage);
	    SetRequiredStatus(Field, true);
	}
	return ErrorsList;
}
function ValidateReqRAdEditorField(Field, ErrorsList, ErrorMessage){
	var editor = $find(Field);//return a reference to RadEditor
	if(editor.get_text().replace(/[\s]+/g, "").length == 0){
	    ErrorsList = AddError(ErrorsList, ErrorMessage);
	    SetRequiredStatus(Field, true);
	}
	return ErrorsList;
}
function ValidateReqEmail(Field, ErrorsList, ErrorMessage){
	if(!IsValidEmail(Field.value)){
		ErrorsList = AddError(ErrorsList, ErrorMessage);
	    SetRequiredStatus(Field, true);
	}
	return ErrorsList;
}
function ValidateReqList(List, ErrorsList, ErrorMessage){
	if(List.selectedIndex == -1 || List[List.selectedIndex].value.length == 0){
		ErrorsList = AddError(ErrorsList, ErrorMessage);
	    SetRequiredStatus(List, true);
	}
	return ErrorsList;
}
function ValidateReqDate(Field, ErrorsList, ErrorMessage){
    ///TODO: css error formating not working with RadDateInput.
    /// must use Rad Client scripts
	if(Field.value.length == 0){
		ErrorsList = AddError(ErrorsList, ErrorMessage);
	    SetRequiredStatus(Field, true);
	}
	return ErrorsList;
}
function ValidateReqURL(Field, ErrorsList, ErrorMessage){
    if(!IsValidURL(Field.value)){
		ErrorsList = AddError(ErrorsList, ErrorMessage);
	    SetRequiredStatus(Field, true);
	}
	return ErrorsList;
}
