<!--// ---------------------------// 4DBK javascript librairies// CHECK VALUES TOOLS// (c) 4D NET Center SA - 2000-2006// A.L & M.I - version 1.02// ---------------------------// ------------------------------------------------------------------------------// check if the field is empty// error=CheckEmpty(form.Name,form.Name.value,"Enter a name.");// ------------------------------------------------------------------------------function CheckEmpty(field,text,msg){	var error=false;	if (text=='') { error=true; }	if (error) { alert(msg); field.focus(); field.select(); }	return error;}// ------------------------------------------------------------------------------// check if a menu item has been selected// error=CheckEmptyMenu(form.Menu,"Select a menu item.");// ------------------------------------------------------------------------------function CheckEmptyMenuItem(field,msg){	var error=false;	if (field.selectedIndex==0) { error=true; }   	if (error) { alert(msg); field.focus();}	return error;}// ------------------------------------------------------------------------------// check if a checkbox is unchecked// error=CheckEmptyCheckbox(form.Checkbox,"Check that box !");// ------------------------------------------------------------------------------function CheckEmptyCheckbox(field,msg){	var error=false;	if (field.checked==0) { error=true; }   	if (error) { alert(msg); field.focus();}	return error;}// ------------------------------------------------------------------------------// check if an email address seems to be in a correct format// error=CheckBadEMail(form.Email,"This email address is not valid.");// ------------------------------------------------------------------------------function CheckBadEMail(field,msg){    var error=true;    var pos,posdot,str,end;    if (field.value.indexOf("@")>=2)    {    posdot=0;        pos=0;        str=field.value;        pos=str.indexOf(".");        while(pos>0)        {    posdot+=pos;            posdot+=1;            str=str.substring(pos+1,str.length);            pos=str.indexOf(".");        }        end=str;               if(end!="")            if(posdot>=4)                if(end.length>=1)                    error=false;    }    if (error) { alert(msg); field.focus(); field.select(); }    return error;} // ------------------------------------------------------------------------------// check if a field does not contain any of characters found in a set// error=CheckNotInSet(form.Number,"-0123456789.,","This is not a number.");// ------------------------------------------------------------------------------function CheckNotInSet(field,set,msg){	var error=false;	var text;	for (var i=0;i<field.value.length;i++)	{	text=field.value.substring(i,i+1);		if (set.indexOf(text)=="-1")  error=true;	}	if (error) { alert(msg); field.focus(); field.select(); }	return error;}// ------------------------------------------------------------------------------// check if some characters found in a field are in a set//	error=CheckInSet(form.Name,"\:/&Žˆ","Some characters are not valid.");// ------------------------------------------------------------------------------function CheckInSet(field,set,msg){	var error=false;	var text;	for (var i=0;i<field.value.length;i++)	{	text=field.value.substring(i,i+1);		if (set.indexOf(text)!="-1")  error=true;	}	if (error) { alert(msg); field.focus(); field.select(); }	return error;}// ------------------------------------------------------------------------------// check if a string is found in a field//	error=CheckStringDoesExist(form.Name,"root","You url is not valid.");// ------------------------------------------------------------------------------function CheckStringDoesExist(field,set,msg){	var error=false;	if (field.value.indexOf(set)!=-1)  error=true;	if (error) { alert(msg); field.focus(); field.select(); }	return error;}// ------------------------------------------------------------------------------// check if a string is not found in a field//	error=CheckStringDoesNotExist(form.Name,"XUY","Your key is not valid.");// ------------------------------------------------------------------------------function CheckStringDoesNotExist(field,set,msg){	var error=false;	if (field.value.indexOf(set)==-1)  error=true;	if (error) { alert(msg); field.focus(); field.select(); }	return error;}// ------------------------------------------------------------------------------// check the max length of a field// error=CheckMaxLength(form.Name,20,"This name is too long.");// ------------------------------------------------------------------------------function CheckMaxLength(field,length,msg){	var error=false;	if (field.value.length > length)  error=true;	if (error) { alert(msg); field.focus(); field.select(); }	return error;}// ------------------------------------------------------------------------------// check the min length of a field// error=CheckMinLength(form.Name,20,"This name is too short.");// ------------------------------------------------------------------------------function CheckMinLength(field,length,msg){	var error=false;	if (field.value.length < length) error=true;	if (error) { alert(msg); field.focus(); field.select(); }	return error;}// ------------------------------------------------------------------------------// check if both password fields are the same// error=CheckTwoSameFields(form.Password,form.Password2,"The two passwords are not the same.");// MI 28.07.2005// ------------------------------------------------------------------------------function CheckTwoSameFields(field1,field2,msg){	var error=false;	if (field1.value != field2.value) error=true;	if (error) { alert(msg); field.focus(); field.select(); }	return error;}// ------------------------------------------------------------------------------// check the date format// error=CheckBadDate(form.Date,"This is not a date.");// ------------------------------------------------------------------------------function CheckBadDate(field,msg){	var error=false;	var set="0123456789/"	for (var i=0;i<field.value.length;i++)	{	if(set.indexOf(""+field.value.substring(i,i+1))=="-1") error=true;	}	if (field.value.length != 8) error=true	b=field.value.substring(0,2) // day	c=field.value.substring(2,3)// '/'	d=field.value.substring(3,5) // month	e=field.value.substring(5,6)// '/'	f=field.value.substring(6,8) // year	if(b<1 || b>31) error=true	if(c != '/') error=true	if(d<1 || d>12) error=true	if(e != '/') error=true	if(f<0 || f>99) error=true	if(b==4 || b==6 || b==9 || b==11)	{	if (d==31) error=true	}	if (b==2)	{	var g=parseInt(f/4)		if (isNaN(g))		{	error=true	}		if (d>29) error=true		if (d==29 && ((f/4)!=parseInt(f/4))) error=true	}	if (error)	{	alert(msg); field.focus(); field.select(); }	return error;}// ------------------------------------------------------------------------------// check the format of credit card number// errorstr=CheckCard(form.CardNumber.value,form.CardDate.value);// if (errorstr!="")//      switch(errorstr)//		{	case "DATEXP" : alert("Your card has expired..."); error=true; break;//			case "BADNUM" : alert("This number is not valid..."); error=true; break;//			case "UNKCAR" : alert("This card's type is not valid..."); error=true; break;//			case "INVLEN" : alert("Key's length of this card is not valid..."); error=true; break;//			case "INVKEY" : alert("Key of this card is not valid..."); error=true; break;//			default : alert("Your card is a "+errorstr);//		} // ------------------------------------------------------------------------------function CheckCard(cardnumber,carddate){	var error=false;	var errorstr="";	var cardsprefix=new Array(22);	var cardsnames=new Array(22);	var cardsmasks=new Array(22);	var cardname="";	var cardidx=0;	var cardlength=cardnumber.length;	cardsprefix[0]="4";	cardsprefix[1]="51";	cardsprefix[2]="52";	cardsprefix[3]="53";	cardsprefix[4]="54";	cardsprefix[5]="55";	cardsprefix[6]="37";	cardsprefix[7]="34";	cardsprefix[8]="6011";	cardsprefix[9]="56";	cardsprefix[10]="3";	cardsprefix[11]="1800";	cardsprefix[12]="2131";	cardsprefix[13]="2014";	cardsprefix[14]="2149"	cardsprefix[15]="300";	cardsprefix[16]="301";	cardsprefix[17]="302";	cardsprefix[18]="303";	cardsprefix[19]="304";	cardsprefix[20]="305";	cardsprefix[21]="36";	cardsprefix[22]="38";		cardsnames[0]="VISA";	cardsnames[1]="MasterCard";	cardsnames[2]="MasterCard";	cardsnames[3]="MasterCard";	cardsnames[4]="MasterCard";	cardsnames[5]="MasterCard";	cardsnames[6]="American Express";	cardsnames[7]="American Express";	cardsnames[8]="Discover";	cardsnames[9]="BankCard"	cardsnames[10]="JCB";	cardsnames[11]="JCB";	cardsnames[12]="JCB";	cardsnames[13]="enRoute";	cardsnames[14]="enRoute";	cardsnames[15]="Diners Club/Carte Blanche";	cardsnames[16]="Diners Club/Carte Blanche";	cardsnames[17]="Diners Club/Carte Blanche";	cardsnames[18]="Diners Club/Carte Blanche";	cardsnames[19]="Diners Club/Carte Blanche";	cardsnames[20]="Diners Club/Carte Blanche";	cardsnames[21]="Diners Club/Carte Blanche";	cardsnames[22]="Diners Club/Carte Blanche";	cardsmasks[0]=10;	// (((13-12)Ê<<Ê1) | ((16-12)Ê<<Ê1))	cardsmasks[1]=8;	// (16-12)Ê<<Ê1	cardsmasks[2]=8;	cardsmasks[3]=8;	cardsmasks[4]=8;	cardsmasks[5]=8;	cardsmasks[6]=6;	// (15-12)Ê<<Ê1	cardsmasks[7]=6;	cardsmasks[8]=8;	// (16-12)Ê<<Ê1	cardsmasks[9]=8;	// (16-12)Ê<<Ê1	cardsmasks[10]=6;	// (15-12)Ê<<Ê1	cardsmasks[11]=6;	cardsmasks[12]=6;	cardsmasks[13]=6;	// (15-12)Ê<<Ê1	cardsmasks[14]=6;	cardsmasks[15]=4;	// (14-12)Ê<<Ê1	cardsmasks[16]=4;	cardsmasks[17]=4;	cardsmasks[18]=4;	cardsmasks[19]=4;	cardsmasks[20]=4;	cardsmasks[21]=4;	cardsmasks[22]=4;		var result=true;	var badnumber=false;		cardnumber=cardnumber.replace(/ /gi,"");	cardnumber=cardnumber.replace(/-/gi,"");	cardnumber=cardnumber.replace(/\//gi,"");		if(!error)	{	var month=Number(carddate.substring(0,2));		var year=Number(carddate.substring(3,5));	//	alert(month+"-"+year);		year=((year<80) ? 2000+year : 1900+year);		var expiresdate=new Date(year,month,1);		today=new Date();	//	alert("Exp: "+expiresdate.toGMTString());			var deltayears=expiresdate.getFullYear()-today.getFullYear();		var deltamonthes=expiresdate.getMonth()-today.getMonth();	//	alert(deltamonthes+" "+deltayears);		if(expiresdate<today) { error=true; errorstr="DATEXP"; }			//	if(deltayears<0) { error=true; errorstr="DATEXP"; }	//	else	//		if(deltayears>=0)	//			if(deltamonthes<=0) { error=true; errorstr="DATEXP"; }	}		if(!error)	{	for (var i=0;(i<cardlength) && (!error);i++)		{	thecode=cardnumber.charCodeAt(i);			if((thecode<48) || (thecode>57))			{ error=true; errorstr="BADNUM"; }		} 	}		if(!error)	{	var digits4=cardnumber.substring(0,4);		var digits3=cardnumber.substring(0,3);		var digits2=cardnumber.substring(0,2);		var digits1=cardnumber.substring(0,1);		var found=false;		for (var i=0;(i<cardsprefix.length) && (!found);i++)			if(cardsprefix[i]==digits4) { cardidx=i; cardname=cardsnames[i]; found=true; }		for (var i=0;(i<cardsprefix.length) && (!found);i++)			if(cardsprefix[i]==digits3) { cardidx=i; cardname=cardsnames[i]; found=true; }		for (var i=0;(i<cardsprefix.length) && (!found);i++)			if(cardsprefix[i]==digits2) { cardidx=i; cardname=cardsnames[i]; found=true; }		for (var i=0;(i<cardsprefix.length) && (!found);i++)			if(cardsprefix[i]==digits1) { cardidx=i; cardname=cardsnames[i]; found=true; }		if(!found)			{ error=true; errorstr="UNKCAR"; }	}		if(!error)	{	if (cardlength < 29)		{	var checksum=((cardlength-12) << 1)// & cardsmasks[cardidx];			if ((cardlength < 12) || (checksum==0)) { error=true; errorstr="INVLEN"; }			else			{	if (cardname!="enRoute")				{	checksum=0;					var nu=0;					var cnt=cardlength;					var flag=false;					while(cnt>0)					{	nu=Number(cardnumber.substring(cnt-1,cnt));						if (flag)						{	nu*=2;							nu=((nu>9) ? nu-=9 : nu);						}						checksum+=nu;						flag=!flag;						cnt--;					}					if((checksum % 10)!=0) { error=true; errorstr="INVKEY"; }				}			}		  		}		else { error=true; errorstr="INVLEN"; }	}		if(errorstr=="") errorstr=cardname;	return(errorstr);}	// -->