﻿// JScript File  For Validating email,Url,TextBoxEmpty.....

var intCount;
intCount=2;
var BannedEmails=new Array(intCount);
BannedEmails[0]="bbc.com";
BannedEmails[1]="cnn.com";

function ComparePasswords(obj,TableName)
{
    var x=obj.getAttribute("compareTotxt");
        if(document.getElementById(x).value==obj.value)
          {         
                return "";            
          }
        else
          {     
              return "Password Mismatch";
          }
}


function regularXValidation(obj,TableName)
{
   //alert(obj.getAttribute("regularX")); 
 if(obj.getAttribute("regularX")=="zip")
      {
       return  validateZIP(obj,TableName)
      }
  if(obj.getAttribute("regularX")=="phone")
      {
       return  validatePhone(obj,TableName)
      }
  if(obj.getAttribute("regularX")=="alpha")
      {
       return  validateAlpha(obj,TableName);
      }

}


function validateAlpha(obj,TableName)
{
  var ZipToTest =obj;
  subject=ZipToTest.Value;
  var myregexp = /[^A-Za-z]+/m;
  var IsFound = myregexp.exec(obj.value);
  if(IsFound!=null)
    {
		var endtxt=obj.getAttribute("othermessage");
       if(TableName=='MMenuTblData')
          {            
            
            var part_num=0;
            return endtxt ;
          }
       else
         {
            return endtxt;//+obj.getAttribute("id").replace(/txt/,"");
         }
    }
 else
   {
    return "";
   }   


}


function validatePhone(obj,TableName)
{
 var ZipToTest =obj;
 if(ZipToTest.value=="")
  return "";
  var IsFound = /\(?[0-9]{3}\)?[-. ]?[0-9]{3}[-. ]?[0-9]{4}/.test(ZipToTest.value);
  if(!IsFound)
    {
	   var endtxt=obj.getAttribute("othermessage");
       if(TableName=='MMenuTblData')
          {            
            
            var part_num=0;
            return endtxt;//+endtxt[1] ;
          }
       else
         {
            return endtxt;//+obj.getAttribute("id").replace(/txt/,"");
         }
    }
 else
   {
    return "";
   }   


}

function emailcheck(email)
{
    var emailToTest = email.toLowerCase();
    var IsFound = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*\.(\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum))$/.test(emailToTest.toLowerCase());
    if(!IsFound)
    {
    return false;
    }
    else
    {
    return true;
    }
}


function validateInt(obj,TableName)
{
 var intToTest = obj;
 var IsFound = /^\d+$/.test(intToTest.value);
  if(!IsFound)
    {
       if(TableName=='MMenuTblData')
          {            
            var endtxt=obj.getAttribute("id").split("txt");
            var part_num=0;
            return " Invalid format";//+endtxt[1] ;
          }
       else
         {
            return "Invalid format";//+obj.getAttribute("id").replace(/txt/,"");
         }
    }
 else
   {
    return "";
   }   


}


function validateMoney(obj,TableName)
  {
  var moneyToTest =obj;
    var IsFound = /^\$?(?:\d+|\d{1,3}(?:,\d{3})*)(?:\.\d{1,2}){0,1}$/.test(moneyToTest.value);
  if(!IsFound)
    {
       if(TableName=='MMenuTblData')
          {            
            var endtxt=obj.getAttribute("id").split("txt");
            var part_num=0;
            return " Invalid format";
          }
       else
         {
            return " Invalid format";
         }
    }
 else
   {
      return "";
   }   
  
  }


function validateZIP(obj,TableName)
  {
  var ZipToTest =obj;
  var IsFound =/\b[0-9]{5}\b/.test(ZipToTest.value);
  if(!IsFound)
    {
       var endtxt=obj.getAttribute("othermessage");
       if(TableName=='MMenuTblData')
          {            
            
            var part_num=0;
            return endtxt;
          }
       else
         {
            return endtxt;
         }
    }
 else
   {
      return "";
   }   
  
  }


function ValidateEmail(obj,TableName)
 {
      if ((obj.value==null)||(obj.value==""))
        {
		  var endtxt=obj.getAttribute("othermessage");
          if(TableName=='MMenuTblData')
             {
               var part_num=0;
               return endtxt;//+endtxt[1] ;
             }
         else
            {
             return endtxt;//+obj.getAttribute("id").replace(/txt/,"");
            }        
        }
     var endtxt=obj.getAttribute("othermessage");
     if(emailcheck(obj.value)==false)
         {
           
           if(TableName=='MMenuTblData')
             {    
               var part_num=0;
               return endtxt;//+endtxt[1] ;
             }
          else
            {
             return endtxt;//+obj.getAttribute("id").replace(/txt/,"");
            } 
       
         }
		var x=0;
		for (x=0; x<intCount; x++)
		{
		 if(obj.value.substring(obj.value.length,obj.value.length -BannedEmails[x].length)==BannedEmails[x])
		  return "Official Email ID Required";
		}
     return "";
 }


/*URL Validation */



function ValidateURL(obj,TableName)
{
  var urlToTest =obj;
  if(urlToTest.value.substring(7,0)!="http://")
   urlToTest.value= "http://" + urlToTest.value;
  //var IsFound = /^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.|http:\/\/|https:\/\/|ftp:\/\/){1}([\w]+)(.[\w]+){1,2}$/.test(urlToTest.value);
  //var IsFound = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/.test(urlToTest.value);
  var IsFound = /http(s)?:\/\/([\w-]+\.)+[\w-]+(\/[\w- .\/?%&=]*)?/.test(urlToTest.value);
  if(!IsFound)
    {
		 var endtxt=obj.getAttribute("othermessage");
       if(TableName=='MMenuTblData')
          {            
           
            var part_num=0;
            return endtxt;//+endtxt[1] ;
          }
       else
         {
            return endtxt;//+obj.getAttribute("id").replace(/txt/,"");
         }
    }
 else
   {
    return "";
   }   
}




function CheckReqTxtBox(obj,TableName,showmessage)
{
       
        if((obj.value==null)||(obj.value==""))
        {
			var endtxt=obj.getAttribute("messagereq");
            if(TableName=='MMenuTblData')
            {
            
            var part_num=0;
            //return  showmessage+" Required";
            return  endtxt; //endtxt[1]+" cannot left empty";
            }
            else
            {
            //return showmessage+" Required";//obj.getAttribute("id").replace(/txt/,"") +" cannot left empty";
            return endtxt;
            }
        }
        return "";
}

function DisplayMessage(obj,msg)
{
        
       if(window.navigator.appVersion.indexOf("MSIE")!=-1) //works in IE
        {
            var row=obj.parentNode.parentNode;
            var targetCell=row.childNodes[3];
            if(msg=='')
                {
                targetCell.innerHTML="<img src='http://www.chandyshomes.com/assets/images/icon-tick.gif' class='vAlignMiddle' />";
                return;
                }
           // var dvMessage=document.createElement('div');
           // dvMessage.innerHTML="<img src='../../../../images/red_x.gif'/> " + msg;
           // dvMessage.style.color='Red';
             row.align='left';
             row.style.display='inline';
            //targetCell.innerHTML='';
             targetCell.innerHTML="<img src='http://www.chandyshomes.com/assets/images/icon-cancel.gif' class='vAlignMiddle' /> " + msg + "" ;
           //  targetCell.appendChild(dvMessage);
       }
      
       else//works in firefox

       {
            var row=obj.parentNode.parentNode;
            if(msg=='')
            {
            if(row.childNodes[7]!=null)
               row.childNodes[7].innerHTML="<img src='http://www.chandyshomes.com/assets/images/icon-tick.gif' class='vAlignMiddle' />";
            else
               row.childNodes[3].innerHTML="<img src='http://www.chandyshomes.com/assets/images/icon-tick.gif' class='vAlignMiddle' />";
           
            return;
            }
            //var dvMessage=document.createElement('div');
           // dvMessage.innerHTML="<img src='../../../../images/red_x.gif'/> "+ msg;
           // dvMessage.style.color='Red';sss
            row.align='left';
            //if(row.childNodes[3]!=null)
            if(row.childNodes[7]!=null)
            {            
            row.childNodes[7].innerHTML='';
            //row.childNodes[3].innerHTML='';
            row.childNodes[7].innerHTML="<img src='http://www.chandyshomes.com/assets/images/icon-cancel.gif' class='vAlignMiddle' /> " + msg + "" ;
            }
            else
            {
            row.childNodes[3].innerHTML='';
            row.childNodes[3].innerHTML="<img src='http://www.chandyshomes.com/assets/images/icon-cancel.gif' class='vAlignMiddle' /> " + msg + "" ;
            }
          //  row.childNodes[7].appendChild(dvMessage);
       } 
        
}

/* VALIDATION STARTS  HERE  */

function ValidateTxt(obj,TableName)
{

    var message;
    message='';
    var Req=obj.getAttribute("required");
    var format=obj.getAttribute("urlformatval");
    var emaivalidate=obj.getAttribute("emailval");    
    var ShowMessage=obj.getAttribute("label");
    var comparepwd=obj.getAttribute("comparepwd");
    var regXValidator=obj.getAttribute("regularX");
    var pwdCompareTotxt=obj.getAttribute("compareTotxt");
    var integerValidate=obj.getAttribute("integerformatval");
    var moneyValidate=obj.getAttribute("moneyformatval");
    var strminlen=obj.getAttribute("txtminlen");


    
    if(Req!='undefined')
      {
         if(Req=="yes")
            {
               message=CheckReqTxtBox(obj,TableName,ShowMessage);
            }
            DisplayMessage(obj,message);
            if(message!="")
             {
               return false;
             }
     }
    if(strminlen!='undefined')
    {
      if(obj.value.length<strminlen)
       {DisplayMessage(obj,"Min "+ strminlen + " characters");return false;}
       
    }

   if(format !='undefined' && format=="url")
     {
        if(message!="")
           {
              message=message+", "+ValidateURL(obj,TableName);
           }
       else
          {
             message=ValidateURL(obj,TableName);
          }
          DisplayMessage(obj,message);
          if(message!="")
             {
               return false;
             }
     }
 
   if(emaivalidate!='undefined' && emaivalidate=="email")
     {
       if(message!="")
          {
             message=message+", "+ValidateEmail(obj,TableName);
          }
       else
         {
             message=ValidateEmail(obj,TableName);
         }
         DisplayMessage(obj,message);
         if(message!="")
             {
               return false;
             }
     }
     
     if(regXValidator!=null && regXValidator!="")
     { 
           if(message!="")
              {
                message=message+", "+regularXValidation(obj,TableName);
              }
           else
             {
               message=regularXValidation(obj,TableName);
             }
               DisplayMessage(obj,message);
               if(message!="")
                  {
                   return false;
                  }          
         } 
         
         
   //Comparing  password textBoxes
         
    if(pwdCompareTotxt!=null && pwdCompareTotxt!="")
     { 
            
            if(message!="")
              {
                //message=message+", "+ComparePasswords(obj,TableName);
                message=ComparePasswords(obj,TableName);
              }
           else
             {
               message=ComparePasswords(obj,TableName);
             }
               DisplayMessage(obj,message);
               if(message!="")
                  {
                   return false;
                  }          
         }      
             
    
     
     if(moneyValidate!='undefined' && moneyValidate=="money")
     {
       if(message!="")
          {
             message=message+", "+ validateMoney(obj,TableName);
          }
       else
         {
             message=validateMoney(obj,TableName);
         }
         DisplayMessage(obj,message);
         if(message!="")
             {
               return false;
             }
     }
     
     if(integerValidate!='undefined' && integerValidate=="integer")
     {
       if(message!="")
          {
             message=message+", "+ validateInt(obj,TableName);
          }
       else
         {

             message=validateInt(obj,TableName);

         }
         DisplayMessage(obj,message);
         if(message!="")
             {
               return false;
             }
     }
           
                return true;    
    
  }
  
function validateDropDown(obj,TableName,ShowMessage)
{
//alert('ok');

    var message;
    message='';
    var Req=obj.getAttribute("required");
    
    if(Req!='undefined')
    {
         if(Req=="yes")
            {
               message=checkReqDropDown(obj,TableName,ShowMessage);
            }
            DisplayMessage(obj,message);
            if(message!="")
             {
               return false;
             }
     }
     return true;    
}
   
function checkReqDropDown(obj,TableName,showmessage)
{
//alert('ok');
       
        if((obj.value==null)||(obj.value=="Select..."))
        {
            if(TableName=='MMenuTblData')
            {
                return  " Selection Required"
            }
            else
            {
                return " Selection Required";
            }
        }
        return "";
}

/*  FORM   VALIDATION   */
function ValidateCheckRadio(obj,tableid)
{
 //alert('ok');
 if(document.getElementsByName(obj.name)[0].getAttribute('required') ==null)
  return "";
 if(document.getElementsByName(obj.name)[0]!=obj)
 {
  return ""
 }
 var found;
 found=false;
 for(ii=0;ii<document.getElementsByName(obj.name).length;ii++)
 {
  if(document.getElementsByName(obj.name)[ii].checked)
   found=true;
 }
 if(found!=true)
  {DisplayMessage(document.getElementsByName(obj.name)[0],document.getElementsByName(obj.name)[0].getAttribute("messagereq"));return document.getElementsByName(obj.name)[0].getAttribute("messagereq");}
 else
  {DisplayMessage(document.getElementsByName(obj.name)[0],""); return document.getElementsByName(obj.name)[0].getAttribute("messagereq");}
}


function ValidateForm(TableId,obj)
{
    var toreturn;
    toreturn=true;   
    
    for(i=0;i<document.getElementById(TableId).getElementsByTagName("input").length;i++)
    {
  
        if(document.getElementById(TableId).getElementsByTagName("input")[i].type=="radio" || document.getElementById(TableId).getElementsByTagName("input")[i].type=="checkbox")
        {
           if(obj !=null)
           {
             if (document.getElementById(TableId).getElementsByTagName("input")[i].name==obj.name)
             {	 
                  var result1=ValidateCheckRadio(document.getElementById(TableId).getElementsByTagName("input")[i],TableId);
				  if(result1==false)
                  {
                   toreturn=result1;
                  }
             }
            }
             else
             {		
                  var result1=ValidateCheckRadio(document.getElementById(TableId).getElementsByTagName("input")[i],TableId);
				  if(result1==false)
                  {
                   toreturn=result1;
                  }
             }
        }
    }
    
    for(i=0;i<document.getElementById(TableId).getElementsByTagName("input").length;i++)
    {
//      alert("ok");
        if(document.getElementById(TableId).getElementsByTagName("input")[i].type=="text" || document.getElementById(TableId).getElementsByTagName("input")[i].type=="password")
        {
           if(obj !=null)
            {
            if (document.getElementById(TableId).getElementsByTagName("input")[i].name==obj.name)
             {
				  var result1=ValidateTxt(document.getElementById(TableId).getElementsByTagName("input")[i],TableId);
				  if(result1==false)
                  {
                   toreturn=result1;
                  }
             }
            }
           else
           {
				var result1=ValidateTxt(document.getElementById(TableId).getElementsByTagName("input")[i],TableId);
				  if(result1==false)
                  {
                   toreturn=result1;
                  }
           }
            
        }
    }
    for(i=0;i<document.getElementById(TableId).getElementsByTagName("textarea").length;i++)
    {
//      alert("ok");
        if(document.getElementById(TableId).getElementsByTagName("textarea")[i]!=null)
        {
        
			if(obj !=null)
            {
            if (document.getElementById(TableId).getElementsByTagName("textarea")[i].name==obj.name)
             {
				var result1=ValidateTxt(document.getElementById(TableId).getElementsByTagName("textarea")[i],TableId);

				if(result1==false)
				{
					toreturn= result1;
				}
			 }
			}
			else
			{
				var result1=ValidateTxt(document.getElementById(TableId).getElementsByTagName("textarea")[i],TableId);

				if(result1==false)
				{
					toreturn= result1;
				}
			}
        }
    }
    for(i=0;i<document.getElementById(TableId).getElementsByTagName("select").length;i++)
    {
//      alert("ok");
        if(document.getElementById(TableId).getElementsByTagName("select")[i]!=null)
        {
        
			if(obj !=null)
            {
            if (document.getElementById(TableId).getElementsByTagName("select")[i].name==obj.name)
             {
				var result1=validateDropDown(document.getElementById(TableId).getElementsByTagName("select")[i],TableId);

				if(result1==false)
				{
					toreturn= result1;
				}
			  }
			}
			else
			{
			var result1=validateDropDown(document.getElementById(TableId).getElementsByTagName("select")[i],TableId);

				if(result1==false)
				{
					toreturn= result1;
				}
			}
		
        }
    }
    return toreturn;
    
}



 






