t1=new Array('Cāmpul "', 'The "', '');
t2=new Array('" este necesar.', '" field is required.', '');
t3=new Array('" este prea scurt.', '" field is too short.', '');
t4=new Array('" contine caractere invalide.', '" field contains invalid characters.', '');
t5=new Array('" este invalid.', '" field is invalid.', '');
t6=new Array('" nu a fost adaugat.', '" has not been added.', '');

function chknm(s,n)
{
  var ero="`@-=[];\',/\\~!#$%^&*()_+{}:\"<>?|1234567890"
  var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
  if (s=='') { eroare+=t1[lg_nr]+n+t2[lg_nr]+"\n"; return false; }
  else if (s.length<3) { eroare+=t1[lg_nr]+n+t3[lg_nr]+"\n"; return false; }
  else if (n=="Email" && !filter.test(s)) { eroare+= t1[lg_nr]+n+t5[lg_nr]+"\n"; return false; }
  return true;
  /*
  else {
    z=0;
    for (j=0; j<=ero.length-1; j++) if (s.indexOf(ero.substring(j,j+1))!=-1) z=1
    if (z==1) eroare+=t1[lg_nr]+n+t4[lg_nr]+"\n";
  }
  */
}

function chkel(s,n,l)
{
  if (s=='') { eroare+=t1[lg_nr]+n+t2[lg_nr]+"\n"; return false; }
  else if (s.length<l) { eroare+=t1[lg_nr]+n+t3[lg_nr]+"\n"; return false; }
  return true;
}

function chkph(s, n){
	ero="1234567890+()- ";
	if(s=='')
		{ eroare+=t1[lg_nr]+n+t2[lg_nr]+"\n"; return false; }
	else if(s.length<4)
		{ eroare+=t1[lg_nr]+n+t3[lg_nr]+"\n"; return false; }
	else{
		z=0;
		for(j=0; j<=s.length-1; j++)
			if(ero.indexOf(s.substring(j,j+1))==-1)
				z=1
        if(z==1)
        	{ eroare+=t1[lg_nr]+n+t4[lg_nr]+"\n"; return false; }
	}
  return true;
}

function chkem(addr, n)
{
	if (addr.length == 0)
	{
		eroare+=t1[lg_nr]+n+t2[lg_nr]+"\n";
    	return false;
   	}
    if (addr.length < 4)
    {
    	eroare+=t1[lg_nr]+n+t3[lg_nr]+"\n";
    	return false;
    }
	var invalidChars = '\/\'\\ ";:?!()[]\{\}^|=`,#$%&*+|';
	for (i=0; i<invalidChars.length; i++)
	{
		if (addr.indexOf(invalidChars.charAt(i),0) > -1)
		{
			eroare+=t1[lg_nr]+n+t5[lg_nr]+"\n";
        	return false;
	   	}
	}
	for (i=0; i<addr.length; i++)
	{
		if (addr.charCodeAt(i)>127)
		{
			eroare+=t1[lg_nr]+n+t5[lg_nr]+"\n";
        	return false;
	   	}
	}

	var atPos = addr.indexOf('@',0);
	if (atPos == -1) {
		eroare+=t1[lg_nr]+n+t5[lg_nr]+"\n";
		return false;
	}
	if (atPos == 0) {
		eroare+=t1[lg_nr]+n+t5[lg_nr]+"\n";
        return false;
	}
	if (addr.indexOf('@', atPos + 1) > - 1) {
		eroare+=t1[lg_nr]+n+t5[lg_nr]+"\n";
        return false;
	}
	if (addr.indexOf('.', atPos) == -1) {
		eroare+=t1[lg_nr]+n+t5[lg_nr]+"\n";
        return false;
	}
	if (addr.indexOf('@.',0) != -1) {
		eroare+=t1[lg_nr]+n+t5[lg_nr]+"\n";
        return false;
	}
	if (addr.indexOf('.@',0) != -1){
		eroare+=t1[lg_nr]+n+t5[lg_nr]+"\n";
        return false;
	}
	if (addr.indexOf('..',0) != -1) {
		eroare+=t1[lg_nr]+n+t5[lg_nr]+"\n";
        return false;
	}
	var suffix = addr.substring(addr.lastIndexOf('.')+1);
	if (suffix.length != 2 && suffix != 'com' && suffix != 'net' && suffix != 'org' && suffix != 'edu' && suffix != 'int' && suffix != 'mil' && suffix != 'gov' & suffix != 'arpa' && suffix != 'biz' && suffix != 'aero' && suffix != 'name' && suffix != 'coop' && suffix != 'info' && suffix != 'pro' && suffix != 'museum') {
		eroare+=t1[lg_nr]+n+t5[lg_nr]+"\n";
        return false;
	}
	if (suffix.length == 2)
	{
		if ((suffix.substr(0, 1) == parseInt(suffix.substr(0, 1))) || (suffix.substr(1, 1) == parseInt(suffix.substr(1, 1))))
		{
			eroare+=t1[lg_nr]+n+t5[lg_nr]+"\n";
        	return false;
		}
	}
	return true;
}

/*
function chkem(a, n)
{
    ero="`=[];\',/\\#$%^&*()+{}:\"<>?| ";
    ned="@.";
    er=0;
    if (a.length==0) { eroare+=t1[lg_nr]+n+t2[lg_nr]+"\n"; return false; }
      else if (a.length<4) { eroare+=t1[lg_nr]+n+t3[lg_nr]+"\n"; return false; }
        else {
          for (j=0; j<=ero.length-1; j++) if (a.indexOf(ero.substring(j,j+1))!=-1) er=1;
          for (j=0; j<=ned.length-1; j++) {
            aos = a.split(ned.substring(j,j+1));
            for (var i=0; i < aos.length-1; i++) if (aos[i]<1) er=1;
            if (a.indexOf(ned.substring(j,j+1))==-1) er=1;
         }
         if (er==1) { eroare+=t1[lg_nr]+n+t5[lg_nr]+"\n"; return false; }
       }
  return true;
}*/

function alerter(eroare)
{
  alert (eroare);
}

function getFile(url, callback, post_keys, post_values, xml){
	try{ var xmlHttp=new XMLHttpRequest(); }   // Firefox, Opera 8.0+, Safari
	catch (e){
		// Internet Explorer
		try{ var xmlHttp=new ActiveXObject('MSXML2.XMLHTTP.3.0'); }
		catch(e){
			try{ var xmlHttp=new ActiveXObject('MSXML3.XMLHTTP'); }
			catch(e){
				try{ var xmlHttp=new ActiveXObject('Msxml2.XMLHTTP'); }
				catch(e){
					try{ var xmlHttp=new ActiveXObject('Microsoft.XMLHTTP'); }
					catch(e){
						throw new Error("Could not find an XMLHttpRequest alternative.");
					}
				}
			}
		}
	}
	var post_string='';
	if(post_keys){
		if(!post_values){
			for(var i in post_keys)
				post_string+=escape(i)+'='+post_keys[i]+'&';
		}
		else
			for(var i=0;i<post_keys.length;i++)
				post_string+=escape(post_keys[i])+'='+escape(post_values[i])+'&';
		post_string=post_string.substring(0, post_string.length-1);
	}
	xmlHttp.open(post_string?'POST':'GET', url, callback?true:false);
	if(post_string){
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Content-length", post_string.length);
		xmlHttp.setRequestHeader("Connection", "close");
		var method='POST';
	}
	if(callback){
		xmlHttp.onreadystatechange=function(){
			if(xmlHttp.readyState==4){
				if(xmlHttp.status==200)
					callback(xml?xmlHttp.responseXML.documentElement:xmlHttp.responseText);
				else
					throw new Error('Page returned error '+xmlHttp.status+' '+xmlHttp.statusText);
			}
		}
	}
	xmlHttp.send(post_string);
	if(!callback)
		return xml?xmlHttp.responseXML.documentElement:xmlHttp.responseText;
	else
		return 'Wait for async';
}

function check_username(user, id_user)
{
	xmlHttp = GetXmlHttpObject();
	if (xmlHttp == null)
	{
		alert ("Your browser does not support AJAX!");
		return;
	}
	xmlHttp.onreadystatechange = function()
	{
		if(xmlHttp.readyState == 4)
		{
			var msg = xmlHttp.responseText;
			if (msg.length > 0)
			{
				eroare += msg+"\n";
				pause = 1;
			}

			if (eroare != '')
	    		alerter (eroare);
	    	else
	    		document.fc.submit();
		}
	}

	var params = "?username=" + user +"&id="+ id_user;
	xmlHttp.open ("GET", "_username_check.php" + params, true);
	xmlHttp.send (null);
}
var reInteger = /^[0-9]+$/;
function check_cnp(nr)
{
	if (nr.length != 0)
	{
		var err = false;
		if(nr.length!=13 || !reInteger.test(nr))
			err = true;

		var tmp=nr.substr(0,1);
		if(tmp==0)
			err = true;

		tmp=nr.substr(3,2);
		if(tmp<1 || tmp>12)
			err = true;

		tmp=nr.substr(5,2);
		if(tmp<1 || tmp>31)
			err = true;

		var control=0;
		var c="279146358279";
		for(var i=0; i<c.length; i++)
			control+=c.substr(i,1)*nr.substr(i,1);
		control=control%11;
		if(control==10)
			control=1;

		if(control!=nr.substr(12,1))
			err = true;
	}
	else
	{
		eroare += "Campul \"CNP\" este necesar.\n";
		return false;
	}

	if (err)
	{
		eroare += "Campul \"CNP\" introdus nu este valid.\n";
		return false;
	}

	return true;
}

String.prototype.reverse = function(){
	splitext = this.split("");
	revertext = splitext.reverse();
	reversed = revertext.join("");
	return reversed;
}

function check_cui(nr)
{
	if(nr.length==0){
		eroare += "Nu ati introdus codul fiscal.\n";
		return false;
	}
	else if(!nr.match(/^r?o? ?[0-9]{6,10}/i)){
		eroare += "Campul \"Cod fiscal\" introdus nu este valid.\n";
		return false;
	}
	else
		return true;
	// mai jos sunt balarii
	if (nr.length)
	{
		nr=nr.replace(/RO/, '');
		nr=nr.replace(/R/, '');
		nr=nr.replace(/ /, '');
		if(nr.length>10 || !reInteger.test(nr))
		{
			eroare += "Campul \"Cod fiscal\" introdus nu este valid.\n";
			return false;
		}
		var control = 0;
		var c = "235712357";
		nr = nr.reverse();

		for(var i = 1; i < nr.length; i++)
			control += c.substr(i - 1, 1) * nr.substr(i, 1);
		control = (control * 10) % 11;
		if(control == 10)
			control = 1;

		if(control != nr.substr(9, 1))
		{
			eroare += "Campul \"Cod fiscal\" introdus nu este valid.\n";
			return false;
		}
	}
	else
	{
		eroare += "Nu ati introdus codul fiscal.\n";
		return false
	}

	return true;
}

function check_iban(nr)
{
	if(nr.length==0){
		eroare += "Campul \"Cont\" este necesar.\n";
		return false;
	}
	else if(nr.replace(/[ -]/g, '').length!=24){
		eroare += "Campul \"Cont\" introdus nu este valid.\n";
		return false;
	}
	else
		return true;
	// mai jos sunt balarii
	if (nr.length != 0)
	{
		nr=nr.replace(/ /, '');
		nr=nr.replace(/-/, '');
		if(nr.length!=24)
		{
			eroare += "Campul \"Cont\" introdus nu este valid.\n";
			return false;
		}
		/*
		nr=nr.toUpperCase();
		var tmp=nr.substr(0,4);
		nr=nr.substr(4,20)+tmp;

		var nr_final='';
		for(var i=0; i<nr.length; i++){
			if(nr.charCodeAt(i)>64)
				nr_final+=nr.charCodeAt(i)-55;
			else
				nr_final+=nr.substr(i,1);
		}

		if(nr_final%97!=1){
			alert(nr_final);
			return false;
		}*/
	}
	else
	{
		eroare += "Campul \"Cont\" este necesar.\n";
		return false;
	}

	return true;
}