//////////////////////=================

var IsValidePage = true;
var global_func_terminator;		// flag indicates that the function (checkControls) should exit

/**
 * validateForm
 * @param formControl Form Control
 * @return boolean
 */
function validateForm(formControl) {
    IsValidePage = true;
    checkControls(formControl.childNodes);
	global_func_terminator = "";	// reset the flag
    return IsValidePage;
}

/**
 * checkControls
 */
function checkControls(childNodes) {
   for( var i=0; i<childNodes.length; i++ ) {
       var elem = childNodes[i];

       if( elem.tagName == "SPAN" ) {
		    if(document.getElementById(elem.getAttribute("validateControl")) == null) continue;
            if( elem.getAttribute("validateControl") ) {
                   var ret = eval( elem.getAttribute("funcName") + "(\"" + elem.getAttribute("validateControl") + "\");" );
                   elem.innerHTML = "";
                   if( !ret ) {
						if(elem.title=="msgbox"){
							alert(elem.getAttribute("errorMessage"));
							
							if(document.getElementById(elem.getAttribute("validateControl")).type != 'hidden'){
								document.getElementById(elem.getAttribute("validateControl")).focus();
							}
								
	                        global_func_terminator = "exit_func";
                        	elem.innerHTML = elem.errorMessage;
							IsValidePage = false;
							return false;
						}
                        elem.innerHTML = elem.getAttribute("errorMessage");
                        IsValidePage = false;
                   }
            }
       }
		if( global_func_terminator == "exit_func"){			
//			alert(global_func_terminator);
			return false;
		}
        checkControls(childNodes[i].childNodes);
   }

}
/////////////////////////////////////===============
function resetControls(formName) {
	var spans = document.getElementsByTagName('span');
	
	for(i=0;i<spans.length; i++)
	{
		var elem = spans[i]; 
		if (elem.getAttribute("funcName")) {
			//alert(elem.innerHTML);
			elem.innerHTML = "";
		}
	}
	
}

/**
 * validateEmpty
 * @param elemetID string
 * @return boolean
 */
//////////////////////=================
function validateEmpty(elementID) {
   var element = document.getElementById(elementID);

   switch( element.type ) {
      case "text" :
      case "password" :
        if( element.value.length == 0 ) {
            return false;
         }
         break;
      case "select-one" :
        if( element.length == 0 || element.selectedIndex == -1 ) {
            return false;
         }
          break;
   }
   
   return true;
}

/**
 * customValidatePassword
 * @param elemetID string
 * @return boolean
 */
//////////////////////=================
function customValidatePassword(elementID) {
   var element = document.getElementById(elementID);
    
   if( element.value.length < 6 ) {
       return false;
   }

   return true;
}
//////////////////////=================
function isValidEmail(elementID){
 	var email = document.getElementById(elementID).value;
	if(email == ""){
		return true;	// because email isnt required
	}
	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(email)) {
		return true;
	}
	return false;
}

//////////////////////=================
function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}

/**
 * customValidatePassword
 * @param elemetID string
 * @return boolean
 */
////////////////////////////================
function validateCharacters(elementID){
	var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?0123456789";
	for (var i = 0; i < document.getElementById(elementID).value.length; i++) {
		if (iChars.indexOf(document.getElementById(elementID).value.charAt(i)) != -1) {
			//alert ("?? ???? ???? ???? ?????, ?? ???? ??? ?????? ???? ???.");
			return false;
		}
	}
	return true;
}
////////////////////////////================
function validURL(elementID) {
     var theurl=document.getElementById(elementID).value;
	 //alert (theurl);
	 if(theurl == ""){
		return true;	// because url isnt required
	}

	 var tomatch= /http:\/\/[A-Za-z0-9\.\/-_]{3,}/i;
	 //var tomatch = /^http+:\/\/[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$/
     if (tomatch.test(theurl))
     {
         //window.alert("URL OK.");
         return true;
     }
     else
     {
         //window.alert("URL invalid. Try again.");
         return false; 
     }
}
////////////////////////////===========

/**
 * customValidatePassword
 * @param elemetID string
 * @return boolean
 */
////////////////////////////=======================
function validateNumbers(elementID){
	//alert (document.getElementById(elementID).value.length);
	var iChars = "0123456789";
	for (var i = 0; i < document.getElementById(elementID).value.length; i++) {
	//alert(document.getElementById(elementID).value.charAt(i));
		if (iChars.indexOf(document.getElementById(elementID).value.charAt(i)) == -1) {
			//alert ("?? ???? ???? ??? ???? ????");
			//alert(document.getElementById(elementID).value.charAt(i));
			return false;
		}
	}
	return true;
}
////////////////////////////===========================
function validateMobile(elementID){
   var mobile=document.getElementById(elementID).value;
	 var tomatch= /^9665[0-9]{8}/i;
	 //var tomatch = /^http+:\/\/[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$/
     if (tomatch.test(mobile))
     {
         //window.alert("mobile OK.");
         return true;
     }
     else
     {
         //window.alert("mobile invalid. Try again.");
         return false; 
     }
}
//////////////////////=======================
function floatNum(elementID) {

 	var element = document.getElementById(elementID).value;
	if(element == ""){
		return true;	// because it isnt required
	}

	if(document.getElementById(elementID).value == 0)
		return false;  // because the value (zero) is not allowed

	var iChars = "0123456789.";
	for (var i = 0; i < document.getElementById(elementID).value.length; i++) {
		if (iChars.indexOf(document.getElementById(elementID).value.charAt(i)) == -1) {
			return false;
		}
	}
	return true;
}
//////////////////////=======================
function validateNoneZero(elementID){

 var element = document.getElementById(elementID).value;
   
	if(element == ""){
		return true;	// because the field is not required
	}

	if(document.getElementById(elementID).value == 0)
		return false;  // because the value (zero) is not allowed

/*then validate that all chars are numeric*/

	var iChars = "0123456789";
	for (var i = 0; i < document.getElementById(elementID).value.length; i++) {
		if (iChars.indexOf(document.getElementById(elementID).value.charAt(i)) == -1) {
			return false;
		}
	}
	return true;
}
//////////////////////=======================


