var return_x=true;

obj_all = new Array();
obj_temp = new Array();

obj_must = new Array();
obj_must_msg = new Array();

obj_num = new Array();
obj_num_msg = new Array();
obj_num_min = new Array();
obj_num_max = new Array();

obj_alpha = new Array();
obj_alpha_msg = new Array();

obj_alphanum = new Array();
obj_alphanum_msg = new Array();

obj_special = new Array();
obj_special_msg = new Array();

obj_special1 = new Array();
obj_special1_msg = new Array();

emailid_must = new Array();
emailid_must_msg = new Array();

obj_no_space = new Array();
obj_no_space_msg = new Array();

field_for_length = new Array();
field_length_lesser = new Array();
field_length_greater = new Array();
field_for_length_msg = new Array();

date_field = new Array();
date_field_msg = new Array();

num_ary = new Array(); 
num_ary=["0","1","2","3","4","5","6","7","8","9"];

alpha_ary = new Array(); 
alpha_ary=["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"," "];

special_ary = new Array();
special_ary1 = new Array();
myn_ary = new Array(); 

special_ary1=[".","_"];
myn_ary=["."];

phoneArr=new Array();


function trim(obj)
{
  var txt=obj.value;
  if((txt!="")||(txt!=null))
  {
   while(txt.charAt(txt.length-1) == " "||txt.charAt(txt.length-1) == ".")
   {
    txt=txt.substring(0,txt.length-1);
   }
    while(txt.charAt(0) == " "||txt.charAt(0) == ".")
   {
    txt=txt.substring(1,txt.length);
   }
  }
 obj.value=txt;
 return txt;
}

function emt_chk(myobj, msg)
{
   if(myobj.value==""){myobj.focus();alert(msg);return false;}
   else{return true;}   
}

function num_chk(mymin,mymax,myobj, msg)
{ 
  if((myobj.value=="")||(myobj.value==00)||(isNaN(myobj.value))){myobj.focus();alert("Proper "+msg+" pls");return false;}
  else{	
  	if (char_che(myobj,myn_ary)){myobj.focus();alert("Proper "+msg+" pls");return false;}
  	else
  	{
     if((parseInt(myobj.value) < parseInt(mymin))||(parseInt(myobj.value) > parseInt(mymax))){myobj.focus();alert(msg+" must be between "+mymin+" and "+mymax);return false;}
     return true;
     }
    }
}

function date_valid(myd,mym,myy,dmsg,maxy,miny,maxm,minm,maxd,mind)
{
   today = new Date();
 thisDay = parseInt(today.getDate());
 year_now =parseInt(today.getYear());
  if(navigator.appName=="Netscape"){year_now+=1900};
 month_now=parseInt(today.getMonth())+1;

  if((maxy=="")||(isNaN(maxy))){ maxy=year_now }
  else{ maxy=parseInt(maxy) }   

  if((miny=="")||(isNaN(miny))){ miny="1900";   miny=parseInt(miny) }
  else{ miny=parseInt(miny) }

  if((maxm=="")||(isNaN(maxm))){   maxm=month_now; }
  else{maxm=parseInt(maxm);}  

  if((minm=="")||(isNaN(minm))){   minm="01";   minm=parseInt(minm); }
  else{minm=parseInt(minm);}

  if((maxd=="")||(isNaN(maxd))){   maxd=thisDay; }
  else{maxd=parseInt(maxd);}  

  if((mind=="")||(isNaN(mind))){   mind="01";   mind=parseInt(mind); }
  else{mind=parseInt(mind);}

   if(parseInt(myy.value)>maxy || parseInt(myy.value)<miny){
   alert("You Must Enter The Year for "+dmsg+" Between "+miny+" and "+maxy+"\n please provide date correctly");
   myy.focus();
   return false;
   }
      
  if(mym.value>12){
  alert("we think you can not enter an abnormal month for "+dmsg+"\n please provide date correctly");
  mym.focus();
  return false;
  }

  if(myd.value>31){
  alert("we think you can not enter an abnormal day for "+dmsg+"\n please provide date correctly");
  myd.focus();
  return false;
  }
 

 year_b=parseInt(myy.value);

 monthDays = new Array(); 
 monthDays=[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
 
 if(((year_b % 4 == 0) && (year_b % 100 != 0)) || (year_b % 400 == 0)) monthDays[1] = 29;


  if(parseInt(myd.value) > monthDays[parseInt(mym.value)-1])
  {
   alert("You have Entred an invalid day for the month mentioned for "+dmsg+" \n please provide date correctly");
   myd.focus();
   return false;
  }

//    alert(myy.value+"   "+mym.value+"   "+myd.value+"\n "+year_now+"   "+month_now+"   "+thisDay)
//    alert("we think you may not bo born in the future"+"\n please provide date correctly");


 if(parseInt(myy.value) > maxy) { dis_msg(myd,mym,myy,dmsg,maxy,miny,maxm,minm,maxd,mind); return false; }
 if((parseInt(myy.value) == maxy)&&(parseInt(mym.value) > maxm)){ dis_msg(myd,mym,myy,dmsg,maxy,miny,maxm,minm,maxd,mind); return false; }
 if((parseInt(myy.value) == maxy)&&(parseInt(mym.value) == maxm)&&(parseInt(myd.value) > maxd)){ dis_msg(myd,mym,myy,dmsg,maxy,miny,maxm,minm,maxd,mind); return false; }
 if(parseInt(myy.value) < miny) { dis_msg(myd,mym,myy,dmsg,maxy,miny,maxm,minm,maxd,mind); return false; }
 if((parseInt(myy.value) == miny)&&(parseInt(mym.value) < minm)){ dis_msg(myd,mym,myy,dmsg,maxy,miny,maxm,minm,maxd,mind); return false; }
 if((parseInt(myy.value) == miny)&&(parseInt(mym.value) == minm)&&(parseInt(myd.value) < mind)){ dis_msg(myd,mym,myy,dmsg,maxy,miny,maxm,minm,maxd,mind); return false; }

return true;
}


function dis_msg(myd,mym,myy,dmsg,maxy,miny,maxm,minm,maxd,mind){

var ent_val="Entered "+dmsg+" is "+myd.value+"/"+mym.value+"/"+myy.value
alert(" "+dmsg+" Must Be "+"\n Between "+mind+"/"+minm+"/"+miny+"\n And "+maxd+"/"+maxm+"/"+maxy+"\n "+ent_val+"\n"+"\n please provide date correctly");
myd.value=""
mym.value=""
myy.value=""
myd.focus();
}

function ema_che(mobj,mmsg)
{
  var i=0;
  mailid=mobj.value;
  x=true;
  var len=mailid.length;
   if((mailid.charAt(0)=="@")||(mailid.charAt(0)==".")||(mailid.charAt(len-1)=="@")||(mailid.charAt(len-1)==".")){x=false;}
   else
   {   
     for(i=1;i<len;i++)
     {
      if(((mailid.charAt(i) >= "A")&&(mailid.charAt(i) <= "Z"))||((mailid.charAt(i) >= "a")&&(mailid.charAt(i) <= "z"))||((mailid.charAt(i) >= 0)&&(mailid.charAt(i) <= 9))||(mailid.charAt(i)==".")||(mailid.charAt(i)=="@")||(mailid.charAt(i)=="_")||(mailid.charAt(i)=="-"))
      {
       if(((mailid.charAt(i)=="@")&&(mailid.charAt(i-1)=="."))||((mailid.charAt(i)==".")&&(mailid.charAt(i-1)=="@"))||((mailid.charAt(i)==".")&&(mailid.charAt(i-1)=="."))||((mailid.charAt(i)=="@")&&(mailid.charAt(i-1)=="@"))){x=false;i=len;}
      }else{x=false;i=len;} 
     }
     if(x)
     { 
       var at_count=0;var dot_count=0;var at_count_flag=0;var first_dot_occurence_flag=0;
       for(i=1;i<len;i++)
       {
        if(mailid.charAt(i)=="@"){at_count++;}
        if(mailid.charAt(i)=="."){dot_count++;}
        if((dot_count > 1)&&(at_count==0)){
//        alert("+++++"+x);
        x=false;i=len;}  
        //at_count_flag=0;
        if(at_count==1 && at_count_flag==0)
        {
        	if (dot_count==1){first_dot_occurence_flag=1;}
        	at_count_flag=1;
        }                      
       } 
       if(((at_count==0)||(dot_count==0)||(at_count >1))&&(x==true)){x=false;}       
       if((first_dot_occurence_flag==1)&&(dot_count == 1)&&(at_count==1)&&(x==true)){x=false;}       
     }    
   }
   if(!x){mobj.focus();alert(mmsg);} 
   return x;
}

function emp_val()
{
   
   var i=0;
   var j=0;

   alphanum_ary = new Array(); 
   for(i=0;i<alpha_ary.length;i++){alphanum_ary[j]=alpha_ary[i];j++}
   for(i=0;i<num_ary.length;i++){alphanum_ary[j]=num_ary[i];j++}
   
   i=j=0;

   alpnumspe_ary = new Array();
   for(i=0;i<alphanum_ary.length;i++){alpnumspe_ary[j]=alphanum_ary[i];j++}
   for(i=0;i<special_ary.length;i++){alpnumspe_ary[j]=special_ary[i];j++}
   
   i=j=0;

   alpnumspe_ary1 = new Array();
   for(i=0;i<alphanum_ary.length;i++){alpnumspe_ary1[j]=alphanum_ary[i];j++}
   for(i=0;i<special_ary1.length;i++){alpnumspe_ary1[j]=special_ary1[i];j++}

 
   for(i=0;i<obj_must.length;i++)
   {
   	
    trim(obj_must[i]);
	if(!emt_chk(obj_must[i],obj_must_msg[i])){return false;}
   }
  
   for(i=0;i<obj_num.length;i++)
   { 
    trim(obj_num[i]);
	if(obj_num[i].value!="")
       {   
         if(!num_chk(obj_num_min[i],obj_num_max[i],obj_num[i],obj_num_msg[i])){return false;}
       }	
   }

   for(i=0;i<obj_alpha.length;i++)
   { 

    trim(obj_alpha[i]);   
     if(obj_alpha[i].value!="")
      {
       if(!char_che(obj_alpha[i],alpha_ary)){alert("You must enter only Alphabets for "+obj_alpha_msg[i]);obj_alpha[i].focus();return false;}
      }
   }
  
/* for(i=0;i<obj_alphanum.length;i++)
   { 
    trim(obj_alphanum[i]);   
     if(obj_alphanum[i].value!="")
      {
        if(!char_che(obj_alphanum[i],alphanum_ary)){alert("No special Charecters For "+obj_alphanum_msg[i]);obj_alphanum[i].focus();return false;}
      }
   }
  */

  
  for(i=0;i<obj_special.length;i++)
   { 
 
    trim(obj_special[i]);   
     if(obj_special[i].value!="")
      {
        if(!char_che(obj_special[i],alpnumspe_ary)){alert("You must enter only Alphabets, Numbers \n And Special Characters "+special_ary+" for "+obj_special_msg[i]);obj_special[i].focus();return false;}
      }
   }
   
   for(i=0;i<obj_special1.length;i++)
   { 
 
    trim(obj_special1[i]);   
     if(obj_special1[i].value!="")
      {
        if(!char_che(obj_special1[i],alpnumspe_ary1)){alert("You must enter only Alphabets, Numbers \n And Special Characters  "+special_ary1+" for "+obj_special1_msg[i]);obj_special1[i].focus();return false;}
      }
   }
  
   for(i=0;i<obj_no_space.length;i++)
   { 
 
    trim(obj_no_space[i]);   
     if(obj_no_space[i].value!="")
      {
        if(!onechar_che(obj_no_space[i]," ")){alert("You must not enter Space for "+obj_no_space_msg[i]);obj_no_space[i].focus();return false;}
      }
   }

   for(i=0;i<field_for_length.length;i++)
   { 
     trim(field_for_length[i]);
	 if(field_for_length[i].value!="")
	 {
	    if((field_for_length[i].value.length > parseInt(field_length_greater[i])) || (field_for_length[i].value.length < parseInt(field_length_lesser[i])))
        {
          alert(field_for_length_msg[i]+" must be of "+field_length_lesser[i]+"-"+field_length_greater[i]+" digits");
          field_for_length[i].focus();
          return false;     
        }
	 }	
   }
  

  for(i=0;i<emailid_must.length;i++)
   {
    trim(emailid_must[i]);
    if(emailid_must[i].value!="")
	 {
      if(!ema_che(emailid_must[i],emailid_must_msg[i])){return false;}
	 }  
   }

  
   for(i=0;i<date_field.length;i++)
   {
    if(!date_valid(date_field[i],date_field[i+1],date_field[i+2],date_field_msg[j],"","","","","","")){return false;} //maxy,miny,maxm,minm,maxd,mind      
    i=i+2;     
    j++;
   }

	if(phoneArr.length!=undefined && phoneArr.length>0){
		var ph=trim(phoneArr[0]);
		var std=trim(phoneArr[1]);
//		alert(ph+"-"+std);
		if(std+""+ph!=""){
//		alert(ph+"-"+std);
			if(std.charAt(0)=="0"){
				std=std.substring(1,std.length);
			}
			if((std.length+ph.length)!=10){
				alert("Check Phone No. "+ ph +" and STD Code " + std +" are Correct!");
				return false;
			}
			phoneArr[2].value=std+"-"+ph;
		}		
	}
 if(!new_fun()){return false;}
 
 return true;
}

function mm_check(mobj)
{
var j=mobj.value;
j++;
j=j-1;
  if(mobj.value < 10)
 {
  if(mobj.value!="0"+j)
  {
   if(mobj.value!="") mobj.value="0"+j;
  }
 }
}

function dd_check(dobj)
{
  var j=dobj.value;
  j++;
  j=j-1;
   if((dobj.value < 10)&&(dobj.value!="0"+dobj.value)&&(dobj.value!=""))
   {
    dobj.value="0"+j;
   }
}

function yyyy_check(yobj){}

function Key_p_d(dobj,mobj)
{
 if (dobj.value.length==2)
 {
 mobj.focus(); 
 }  
}

function Key_p_m(mobj,yobj)
{
 if (mobj.value.length==2)
 {
 yobj.focus(); 
 }  
}

function char_che(obj,ary){
var obj_value=obj.value;
var i=0;
var j=0;
myflag = false;
 for(i=0;i<obj_value.length;i++)
 {
  if((obj_value.charAt(i)=="\n")||(obj_value.charAt(i)=="\r"))
  {myflag=true;}
  else
  {
    myflag=false; 
    for(j=0;j<ary.length;j++)
    {
       if(ary[j]==obj_value.charAt(i)){myflag=true;}
 	if(myflag){j=ary.length;}      
    }
    if(!myflag){i=obj_value.length;}      
  }
 }
return myflag
}

function onechar_che(obj,onecharstr){
var obj_value=obj.value;
var i=0;
myflag = false;
 for(i=0;i<obj_value.length;i++)
 {
  if((obj_value.charAt(i)=="\n")||(obj_value.charAt(i)=="\r"))
  {myflag=true;}
  else
  {
    myflag=true; 
    if(obj_value.charAt(i)==onecharstr){myflag=false;}
 	if(!myflag){i=obj_value.length;}      
  }
 }
return myflag
}


/*

function mynum_che(mynum){
 myflag = false;

 for(i=0;i<mynum.length;i++)
 {
   myflag=false;
   for(j=0;j<num_ary.length;j++)
   {
    if(num_ary[j]==mynum.charAt[i]){myflag=true;}
   }
   if(!myflag){i=mynum.length;}   
 }
 return myflag
}

*/



