lg=1; // limba 0=ro, 1=tr, 2=fr

t1=new Array('Câmpul "', '"', '');
t2=new Array('" este necesar.', '" Yetersiz', '');
t3=new Array('" este prea scurt.', '" Çok Kısa', '');
t4=new Array('" conşine caractere invalide.', '" Karakter Hatası', '');
t5=new Array('" este invalid.', '" Geçersiz/Eksik Karakter İçermektedir!', '');



// BOI = Beginning Of Input
// EOI = End Of Input

// BOI, followed by one or more whitespace characters, followed by EOI.
var reWhitespace = /^s+$/


// BOI, followed by one lower or uppercase English letter, followed by EOI.
var reLetter = /^[a-zA-Z]$/


// BOI, followed by one or more lower or uppercase English letters,
// followed by EOI.
var reAlphabetic = /^[a-zA-Z]+$/


// BOI, followed by one or more lower or uppercase English letters
// or digits, followed by EOI.
var reAlphanumeric = /^[a-zA-Z0-9]+$/


// BOI, followed by one digit, followed by EOI.
var reDigit = /^d/


// BOI, followed by one lower or uppercase English letter
// or digit, followed by EOI.
var reLetterOrDigit = /^([a-zA-Z]|d)$/


// BOI, followed by one or more digits, followed by EOI.
var reInteger = /^d+$/



// BOI, followed by one of these two patterns:
// (a) one or more digits, followed by ., followed by zero or more digits
// (b) zero or more digits, followed by ., followed by one or more digits
// ... followed by EOI.
var reFloat = /^((d+(.d*)?)|((d*.)?d+))$/



// BOI, followed by one or more characters, followed by @,
// followed by one or more characters, followed by .,
// followed by one or more characters, followed by EOI.
var reEmail = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;





// VARIABLE DECLARATIONS


// pt. a verifica daca este nume

var elemFormDefaultBackColor ="#FFFFFF"
var elemFormBackColor ="#D9E7E8"
//var reNamed="'@-=[];\',/\\~!#$%^&*()_+{}:\"<>?|1234567890"
var reNamed="'@=[];\',/\\~#$%^*()_{}:\"<>?|1234567890"
var reName="@-=[];\/\\~!#$%^*()_+{}:\"<>?|"

var digits = "0123456789";

var lowercaseLetters = "abcdefghijklmnopqrstuvwxyz"

var uppercaseLetters = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"

// whitespace characters as defined by this sample code
var whitespace = " \t\n\r";


// non-digit characters which are allowed in phone numbers
var phoneNumberDelimiters = "()- ";

// characters which are allowed in international phone numbers
// (a leading + is OK)
var validWorldPhoneChars = digits + phoneNumberDelimiters + "+";



// U.S. phone numbers have 10 digits.
// They are formatted as 123 456 7890 or (123) 456-7890.
var digitsInUSPhoneNumber = 10;



// non-digit characters which are allowed in ZIP Codes
var ZIPCodeDelimiters = "-";


// characters which are allowed in ZIP Code
var validZIPCodeChars = digits + ZIPCodeDelimiters



// U.S. ZIP codes have 5 or 9 digits.
// They are formatted as 12345 or 12345-6789.
var digitsInZIPCode1 = 5
var digitsInZIPCode2 = 9


// non-digit characters which are allowed in credit card numbers
var creditCardDelimiters = " "


function isInteger(sIn)
	{return reInteger.test(sIn);}

	
	
function isEmpty(s,n)
{
  return ((s == null) || (s.length == 0) || (s.length < n))
}



function chkem(fname,a,nume)	// verifica o adresa de e-mail, a=valoarea adresei, nume=numele campului
			// nu tre sa contina caracterele din ero, tre sa le contina pe ned
{
 if (isEmpty(a,4))
    {
    eroare+=t1[lg]+nume+t3[lg]+"\n";
    set_error_form(fname);
  }

else if (!reEmail.test(a))
        {
        eroare+=t1[lg]+nume+t5[lg]+"\n";
        set_error_form(fname);
        }

}


function chknm(fname,s,nume,size) // verifica un nume, s=valoarea campului, nume=numele campului, cum va fi afisat
			// verifica daca e mai mic de "size" caractere si daca nu contine caractere invalide
			// perfecte pt un nume

{
  if (isEmpty(s,size))
    {
    eroare+=t1[lg]+nume+t3[lg]+"\n";
    set_error_form(fname);
    }
  else
    {
    z=0;
    for (j=0; j<=reName.length-1; j++) if (s.indexOf(reName.substring(j,j+1))!=-1) z=1;
    if (z==1)
    {
    eroare+=t1[lg]+nume+t4[lg]+"\n";
    set_error_form(fname);
    }
    }

}



function chkel(fname,s,n,l)	// verifica un element, s=valoarea campului, n=numele lui, l=lungimea minima
			// il verifica daca e mai mic de 4 sau nul
{
  if (isEmpty(s,l))
    {
    eroare+=t1[lg]+n+t2[lg]+"\n";
  set_error_form(fname);
  }
}

function chkph(fname,s,n)
			// verifica un numar de telefon, s=valoarea, n=numele
			// verifica sa contina doar anumite caractere
			// sa fie mai mare de 2 si sa nu fie nul
{
 
  if (isEmpty(s,2))
    {
    eroare+=t1[lg]+n+t2[lg]+"\n";
  set_error_form(fname);
    }
else
    {
      z=0;
        for (j=0; j<=validWorldPhoneChars.length-1; j++) if (validWorldPhoneChars.indexOf(s.substring(j,j+1))==-1) z=1
        if (z==1) 
        {
        eroare+=t1[lg]+n+t4[lg]+"\n";
        set_error_form(fname);
        }
    }
}

function chkcheckbox(fname,nume)	//pt checkbox. verifica daca este checkuit
{
  if (!fname.checked)
    {
        eroare+=t1[lg]+nume+t2[lg]+"\n";
        set_error_form(fname);
    }
}


function ispicture(fname,s,n)//verifica zip code US. 
{ 
val=s.substring(s.length-4,s.length);

if (val!='.gif'&&val!='.jpg'&&val!='.jpeg'&&val!='.png')
    {
  eroare+="No valid picture extension for \""+n+"\"\n";
   set_error_form(fname);
  return false;
 }
}

function checkinteger(fname,s,n)//check integer. 
{ 
	if (isEmpty(s,1)) 
	{
    eroare+=t1[lg]+n+t2[lg]+"\n";
  	set_error_form(fname);
    }
	else
	{
	z=0;
	for (j=0; j<=digits.length-1; j++) 
	    if (digits.indexOf(s.substring(j,j+1))==-1) z=1;
	    
	    if (z==1)
	    {
	eroare+=t1[lg]+n+t4[lg]+"(only digits allowed)\n";
        set_error_form(fname);
        }
	}

}

function isUSZIPCode(fname,s,n)//verifica zip code US. 
{ 

	if (isEmpty(s,5)) 
	{
    eroare+=t1[lg]+n+t2[lg]+"\n";
  	set_error_form(fname);
    }
	else 
	{
	checkinteger(fname,s,n)
	}

}


function isCAZIPCode(fname,s,n)//verifica zip code CA. 
{ 
	s=s.toUpperCase();
	if (isEmpty(s,5)) 
	{
    eroare+=t1[lg]+n+t2[lg]+"\n";
  	set_error_form(fname);
    }
  else if(
			'ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(s.charAt(0)) < 0 ||
			'0123456789'.indexOf(s.charAt(1)) < 0 ||
			'ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(s.charAt(2)) < 0 ||
			'0123456789'.indexOf(s.charAt(3)) < 0 ||
			'ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(s.charAt(4)) < 0 ||
			'0123456789'.indexOf(s.charAt(5)) < 0 )
	{
	eroare+=t1[lg]+n+t4[lg]+"\n";
        set_error_form(fname);
	}

}




function alerter(eroare)	//afiseaza eroarea, asa cum este ea.
{
  alert (eroare);
}






function set_error_form(nameform)	//afiseaza eroarea, asa cum este ea.
{
 nameform.style.backgroundColor=elemFormBackColor;
 nameform.focus;
}
