function mypopup(pagename){
	mywindow = window.open (pagename,"mywindow","location=1,status=1,scrollbars=1,resizable=yes,width=600,height=500");
	var centerWidth = (window.screen.width - 600) / 2;
	var centerHeight = (window.screen.height - 500) / 2;
	//window.moveTo(parseInt(centerWidth),parseInt(centerHeight));
}
function mypopup1(pagename){
	mywindow = window.open (pagename,"mywindow","location=1,status=1,scrollbars=1,resizable=yes,width=700,height=550");
	var centerWidth = (window.screen.width - 600) / 2;
	var centerHeight = (window.screen.height - 500) / 2;
	//window.moveTo(parseInt(centerWidth),parseInt(centerHeight));
}
function isNumberKey(evt)
  {
	 var charCode = (evt.which) ? evt.which : event.keyCode
	 if (charCode > 31 && (charCode < 48 || charCode > 57 ) && charCode!=46)
		return false;

	 return true;
  }

function formCheck(formobj, fieldRequired, fieldDescription){
	var alertMsg = "Please complete the following fields:\n";
	var emailArray	= Array("users_email");
	var emailfilter=/^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i
	var l_Msg = alertMsg.length;
	
	for (var i = 0; i < fieldRequired.length; i++){
		var obj = formobj.elements[fieldRequired[i]];
		if (obj){
			switch(obj.type){
			case "select-one":
				if (obj.selectedIndex == -1 || obj.selectedIndex == "" || obj.options[obj.selectedIndex].text == ""){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			case "select-multiple":
				if (obj.selectedIndex == -1){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			case "text":
			case "password":
			case "textarea":
				if (obj.value == "" || obj.value == null){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}else{
					var n = emailArray.length;
					while(n--) if(obj.name == emailArray[n]) {
						if(!emailfilter.test(obj.value)){
							alertMsg += " - " + "Valid Email Address" + "\n";
						}	
					}
				}
				break;
			case "checkbox":
				var blnchecked = false;
				if(obj.length == undefined){
					if (obj.checked == true){
						blnchecked = true;
					}
				}else{
					for (var j = 0; j < obj.length; j++){
						alert(obj[j].checked);
						if (obj[j].checked == true){
							blnchecked = true;
						}
					}
				}
				if (!blnchecked){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
				break;
			default:
			}
			if (obj.type == undefined){
				var blnchecked = false;
				for (var j = 0; j < obj.length; j++){
					if (obj[j].checked){
						blnchecked = true;
					}
				}
				if (!blnchecked){
					alertMsg += " - " + fieldDescription[i] + "\n";
				}
			}
		}
	}

	if (alertMsg.length == l_Msg){
		return true;
	}else{
		alert(alertMsg);
		return false;
	}
}
function validateFormOnSubmit(formobj, fieldType, fieldRequired, fieldDescription) {
  var reason;
  for (var i = 0; i < fieldRequired.length; i++){
		var obj = formobj.elements[fieldRequired[i]];
		if(fieldType[i] == 1){
			if(!validateUsername(obj, fieldDescription[i])){
				reason	= true;	
			}
		}else if(fieldType[i] == 2){
			if(!validatePassword(obj, fieldDescription[i])){
				reason	= true;	
			}
		}else if(fieldType[i] == 3){
			if(!validateEmail(obj, fieldDescription[i])){
				reason	= true;	
			}
		}else if(fieldType[i] == 4){
			if(!validateEmpty(obj, fieldDescription[i])){
				reason = true;	
			}
		}else if(fieldType[i] == 5){
			if(!validateRadioCheckbox(obj, fieldDescription[i])){
				reason = true;	
			}
		}else if(fieldType[i] == 6){
			if(!ValidateURL(obj, fieldDescription[i])){
				reason = true;	
			}
		}else if(fieldType[i] == 7){
			if(!validateEmptyEditor(obj, fieldDescription[i])){
				reason = true;	
			}
		}
  }
  if (reason) {
    return false;
  }
  return true;
}
/* VALIDATION FOR VALID USERNAME */
function validateUsername(fld, description) {
    var error = "";
    var illegalChars = /\W/; // allow letters, numbers, and underscores
    var errField	= "errorMsg_" + fld.name;
    if (fld.value == "") {
        fld.style.background = 'Yellow'; 
        error = description;
		document.getElementById(errField).className = 'validationerror';
		document.getElementById(errField).innerHTML	= error;
		return false;
    } else if ((fld.value.length < 5) || (fld.value.length > 15)) {
        fld.style.background = 'Yellow'; 
        error = "The username must be of 5 to 15 characters length.";
		document.getElementById(errField).className = 'validationerror';
		document.getElementById(errField).innerHTML	= error;
		return false;
    } else if (illegalChars.test(fld.value)) {
        fld.style.background = 'Yellow'; 
        error = "The username contains illegal characters.";
		document.getElementById(errField).className = 'validationerror';
		document.getElementById(errField).innerHTML	= error;
		return false;
    } else {
        //fld.style.background = '';
		document.getElementById(errField).innerHTML	= '';
		document.getElementById(errField).style.display	= 'none';
		return true;
    }
}
/* VALIDATION FOR PASSWORD */
function validatePassword(fld, description) {
    var error = "";
    var illegalChars = /[\W_]/; // allow only letters and numbers 
    var errField	= "errorMsg_" + fld.name;
    if (fld.value == "") {
        fld.style.background = 'Yellow';
        error = description;
		document.getElementById(errField).className = 'validationerror';
		document.getElementById(errField).innerHTML	= error;
		return false;
    } else if ((fld.value.length < 5) || (fld.value.length > 15)) {
        error = "The password must be of 5 to 15 characters length. \n";
        fld.style.background = 'Yellow';
		document.getElementById(errField).className = 'validationerror';
		document.getElementById(errField).innerHTML	= error;
		return false;
    } else if (illegalChars.test(fld.value)) {
        error = "The password contains illegal characters.\n";
        fld.style.background = 'Yellow';
		document.getElementById(errField).className = 'validationerror';
		document.getElementById(errField).innerHTML	= error;
		return false;
    } else if (!((fld.value.search(/(a-z)+/)) && (fld.value.search(/(0-9)+/)))) {
        error = "The password must contain at least one numeral.\n";
        fld.style.background = 'Yellow';
		document.getElementById(errField).className = 'validationerror';
		document.getElementById(errField).innerHTML	= error;
		return false;
    } else {
        //fld.style.background = '';
		document.getElementById(errField).innerHTML	= '';
		document.getElementById(errField).style.display	= 'none';
		return true;
    }
} 
/* VALIDATION FOR EMAIL ADDRESS */
function trim(s)
{
  return s.replace(/^\s+|\s+$/, '');
}

function validateEmail(fld, description) {
    var error="";
    var tfld = trim(fld.value);                        // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
    var errField	= "errorMsg_" + fld.name;
    if (fld.value == "") {
        fld.style.background = 'Yellow';
        error = description;
		document.getElementById(errField).className = 'validationerror';
		document.getElementById(errField).innerHTML	= error;
		return false;
    } else if (!emailFilter.test(tfld)) {              //test email for illegal characters
        fld.style.background = 'Yellow';
        error = "Please enter a valid email address.\n";document.getElementById(errField).className = 'validationerror';
		document.getElementById(errField).innerHTML	= error;
		return false;
    } else if (fld.value.match(illegalChars)) {
        fld.style.background = 'Yellow';
        error = "The email address contains illegal characters.\n";
		document.getElementById(errField).className = 'validationerror';
		document.getElementById(errField).innerHTML	= error;
		return false;
    } else {
        //fld.style.background = '';
		document.getElementById(errField).innerHTML	= '';
		document.getElementById(errField).style.display	= 'none';
		return true;
    }
}
/* VALIDATION FOR PHONE NUMBER */
function validatePhone(fld, description) {
    var error = "";
    var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, '');    
    var errField	= "errorMsg_" + fld.name;
   if (fld.value == "") {
        error = description;
        fld.style.background = 'Yellow';
		document.getElementById(errField).className = 'validationerror';
		document.getElementById(errField).innerHTML	= error;
		return false;
    } else if (isNaN(parseInt(stripped))) {
        error = "The phone number contains illegal characters.\n";
        fld.style.background = 'Yellow';
		document.getElementById(errField).className = 'validationerror';
		document.getElementById(errField).innerHTML	= error;
		return false;
    } else if (!(stripped.length == 10)) {
        error = "The phone number is the wrong length. Make sure you included an area code.\n";
        fld.style.background = 'Yellow';
		document.getElementById(errField).className = 'validationerror';
		document.getElementById(errField).innerHTML	= error;
		return false;
    }else{
		//fld.style.background = '';
		document.getElementById(errField).innerHTML	= '';
		document.getElementById(errField).style.display	= 'none';
		return true;
	}
}
/* VALIDATION FOR EMPTY VALUE */
function validateEmpty(fld, description) {
	var error = "";
    var errField	= "errorMsg_" + fld.name;
    if (fld.value.length == 0) {
        fld.style.background = 'Yellow'; 
        error = description;
		document.getElementById(errField).className = 'validationerror';
		document.getElementById(errField).innerHTML	= error;
		return false;
    } else {
        //fld.style.background = '';
		document.getElementById(errField).innerHTML	= '';
		document.getElementById(errField).style.display	= 'none';
		return true;
    }
}
/* VALIDATION FOR RADIO AND CHECKBOX */
function validateRadioCheckbox(fld, description){
	var blnchecked = false;
	var error = "";
	for (var j = 0; j < fld.length; j++){
		var errField	= "errorMsg_" + fld[j].name;
		if (fld[j].checked){
			blnchecked = true;
		}
	}
	if (!blnchecked){
		error = description;
		document.getElementById(errField).className = 'validationerror';
		document.getElementById(errField).innerHTML	= error;
	}else {
		document.getElementById(errField).innerHTML	= '';
		document.getElementById(errField).style.display	= 'none';
		return true;
    }
}
function ValidateURL(fld, description){
    var errField	= "errorMsg_" + fld.name;
	var error 		= description;
	var RegExp = /^(([\w]+:)?\/\/)?(([\d\w]|%[a-fA-f\d]{2,2})+(:([\d\w]|%[a-fA-f\d]{2,2})+)?@)?([\d\w][-\d\w]{0,253}[\d\w]\.)+[\w]{2,4}(:[\d]+)?(\/([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)*(\?(&?([-+_~.\d\w]|%[a-fA-f\d]{2,2})=?)*)?(#([-+_~.\d\w]|%[a-fA-f\d]{2,2})*)?$/;
    if(RegExp.test(fld.value)){
		document.getElementById(errField).innerHTML	= '';
		document.getElementById(errField).style.display	= 'none';
        return true;
    }else{
		fld.style.background = 'Yellow'; 
		document.getElementById(errField).className = 'validationerror';
		document.getElementById(errField).innerHTML	= error;
        return false;
    }
} 

/* VALIDATION FOR EMPTY VALUE */
function validateEmptyEditor(fld, description) {
	updateRTEs();
	var error = "";
    var errField	= "errorMsg_" + fld.name;
    if (fld.value.length == 0) {
        fld.style.background = 'Yellow'; 
        error = description;
		document.getElementById(errField).className = 'validationerror';
		document.getElementById(errField).innerHTML	= error;
		return false;
    } else {
        //fld.style.background = '';
		document.getElementById(errField).innerHTML	= '';
		document.getElementById(errField).style.display	= 'none';
		return true;
    }
}

function textCounter(field,cntfield,maxlimit) {
	if (field.value.length > maxlimit) // if too long...trim it!
	field.value = field.value.substring(0, maxlimit);
	// otherwise, update 'characters left' counter
	else
	cntfield.value = maxlimit - field.value.length;
}
