/* Validtaion Engine */
/* ©2007 Nitin Gupta */
// JScript File

function CheckValidation(theForm)
{

	for(i=0; i < theForm.length ; i++)
    {
    	
        var Obj = theForm.elements[i];
        if(Obj.getAttribute('type') == 'text' || Obj.getAttribute('type') == 'password')
        {
            if(!CheckValidity(Obj))
            { 
                Obj.focus();
                return false;   
            }
        }
        else if(Obj.getAttribute('type') == 'select' || Obj.getAttribute('type') == 'select-one')
        {
            if(!CheckDropDownValidity(Obj))
            { 
                Obj.focus();
                return false;  
            }
        }
        else if(Obj.getAttribute('type') == 'file' && Obj.getAttribute('filetype') == 'picture')
        {
            if(!CheckPictureFileValidity(Obj))
            {
                Obj.focus();
                return false;  
            }
        }
        else if(Obj.getAttribute('type') == 'file' || Obj.getAttribute('type') == 'file')
        {
            if(!CheckFileValidity(Obj))
            {
                Obj.focus();
                return false;  
            }
        }
        else if(Obj.getAttribute('type') == 'checkbox' || Obj.getAttribute('type') == 'checkbox')
        {
      
   
        if(!CheckCandT(Obj))
        {
        
              return false;  
        }
    
        }
    }
    
    return true;
}
function CheckCandT(Object)
{
    if(Object.checked ==false)
    {
        if(Object.getAttribute('caption') != '' && Object.getAttribute('caption') != null)
        
        {
            alert("Please enter " + Object.getAttribute('caption') + "."); 
        /*else
            alert("Please enter the value."+ Object.id +"--->");
       // Object.value = "";
       */
       
       
        return false;
        }
        return true;        
    }
    else
    {
     return true;
    }

}

function CheckValidity(Object)
{
	if(Object.getAttribute('notBlank') != null && Object.getAttribute('notBlank') != 'false' && trim(Object.value) == '')
    {
    	    if(Object.getAttribute('caption') != '' && Object.getAttribute('caption') != null)
            alert("Please enter " + Object.getAttribute('caption') + "."); 
        else
        {
            alert("Please enter the value.");
		}
        Object.value = "";
        return false;
    }
    else if(Object.getAttribute('removePercentage') != null && Object.getAttribute('removePercentage') != 'false')
    {
        Object.value=removePercentage(Object.value);
    }
    else if(Object.getAttribute('dataType') == 'string' && isString(Object.value) == false)
    {
        if(Object.getAttribute('caption') != '' && Object.getAttribute('caption') != null)
            alert( Object.getAttribute('caption') + " Validation: \n 1. First character should be Alphabet.\n 2. No space in between. \n 3. No special character except underscore.\n Valid " + Object.getAttribute('caption') + " Examples: 'Abc_881', 'P234', 'Rajiv_Sikka'"); 
        else
            alert( "Validation: \n 1. First character should be Alphabet.\n 2. No space. \n 3. No special character except underscore.\n Valid Examples: 'Abc_881', 'P234', 'Rajiv_Sikka'"); 
        return false;
    }
    else if(Object.getAttribute('dataType') == 'email' && isEmail(Object.value) == false)
    {
        alert('Please enter valid email address !');
        return false;
    }
    else if(Object.getAttribute('dataType') == 'postelcode' && validZip(Object.value) == false)
    {
    	alert('Please enter valid Postelcode !');
        return false;
    }
    else if(Object.getAttribute('dataType') == 'password')
    {
        strPassword = Object.value;
        if(strPassword.length < 6 || isPassword(Object.value) == false)
        {
            alert("Password Validation: \n 1. Minimum 6 character are required. \n 2. No Space.\n Valid Examples: 'jk98#%', '89ab_*9', 'sumit_1980'");
            return false;
        }
    }
    else if(Object.getAttribute('compareControl') != null)
    {
        
        var compareControl = document.getElementById(Object.getAttribute('compareControl'));
        if(compareControl != null)
        {
            if(compareControl.value != Object.value)
            {
                alert("Passwords do not match. Please enter again");
                return false;
            }
            
        }
    }
    else if(Object.getAttribute('dataType')== "uint" && uInteger(Object.value)== false && trim(Object.value) != '')
    {
         if(Object.getAttribute('caption') != '' && Object.getAttribute('caption') != null)
            alert("Please enter Positive Integer value for the " + Object.getAttribute('caption') + " !"); 
        else
            alert("Please enter Positive Integer value!"); 
        return false;
    }
    else if(Object.getAttribute('dataType')== "url" && isURL(Object.value)== false)
    {
        alert("Please enter a valid URL!"); 
        return false;
    }
    else if(Object.getAttribute('dataType')== "checkhtmltag" && isHtml(Object.value)== false)
    {
        alert("You have entered invalid character in "+Object.getAttribute('caption')); 
        return false;
    }
    
    return true;
}
function isHtml(check)
{
		var result = true;
		var iChars = "<>";
		var string = check.length;
		for (var i = 0; i < string; i++) 
		{
			if (iChars.indexOf(check.charAt(i)) != -1)
			result = false;
		}
		//alert(result+" result");
		if (!result)
		{
			//alert('Please enter a proper value for the ');
			return false;
		}

		return true;
}

function validZip(zip)
	{
		var result = true;
		var iChars = "!*|,\":<>[]{}`\';()@&$#%";
		var string = zip.length;
		for (var i = 0; i < string; i++) 
		{
			if (iChars.indexOf(zip.charAt(i)) != -1)
			result = false;
		}
		//alert(result+" result");
		if (!result)
		{
			//alert('Please enter a proper value for the ');
			return false;
		}

		return true;
	}
function CheckDropDownValidity(Object)
{
    if(Object.getAttribute('notBlank') != null && Object.getAttribute('notBlank') != 'false' && Object.selectedIndex == 0)
    {
        if(Object.getAttribute('caption') != '' && Object.getAttribute('caption') != null)
            alert("Please select " + Object.getAttribute('caption') + "."); 
        else
            alert("Please select 1 Option.");
        return false;
    }
    return true;
}

function CheckFileValidity(Object)
{
    if(Object.getAttribute('notBlank') != null && Object.getAttribute('notBlank') != 'false' && trim(Object.value) == '')
    {
        if(Object.getAttribute('caption') != '' && Object.getAttribute('caption') != null)
            alert("Please Select the " + Object.getAttribute('caption') + " to Upload."); 
        else
            alert("Please Select the File.");
        Object.value = "";
        return false;
    }
    else if(Object.getAttribute('Validation') != null)
    {
    }
    else if(Object.value != "")
    {
      var ext = getFileName(Object.value).ext
      if(ext != 'doc' && ext != 'xls' && ext != 'ppt' &&ext != 'txt' && ext != 'rtf' && ext != 'pdf')
      {
        if(Object.getAttribute('caption') != '' && Object.getAttribute('caption') != null)
            alert("Please enter valid " + Object.getAttribute('caption') + " to Upload.\nonly [.doc] [.xls] [.ppt] [.txt] [.rtf] [.pdf]\n files can be uploaded."); 
        else
            alert("Please enter valid File to upload.\nonly [.doc] [.xls] [.ppt] [.txt] [.rtf] [.pdf]\n files can be uploaded.");
        Object.value = "";
        return false;
      }
    }
    return true;
}

function CheckPictureFileValidity(Object)
{
    if(Object.getAttribute('notBlank') != null && Object.getAttribute('notBlank') != 'false' && trim(Object.value) == '')
    {
        if(Object.getAttribute('caption') != '' && Object.getAttribute('caption') != null)
            alert("Please Select the " + Object.getAttribute('caption') + " to Upload."); 
        else
            alert("Please Select the File.");
        Object.value = "";
        return false;
    }
    else if(Object.getAttribute('Validation') != null)
    {
    }
    else if(Object.value != "")
    {
      var ext = getFileName(Object.value).ext
      if(ext != 'jpg' && ext != 'png' && ext != 'gif' && ext != 'bmp')
      {
        if(Object.getAttribute('caption') != '' && Object.getAttribute('caption') != null)
            alert("Please enter valid " + Object.getAttribute('caption') + " to Upload.\nonly [.jpg] [.png] [.gif] [.bmp] \n files can be uploaded."); 
        else
            alert("Please enter valid File to upload.\nonly [.jpg] [.png] [.gif] [.bmp] \n files can be uploaded.");
        Object.value = "";
        return false;
      }
    }
    return true;
}
