//Functie pentru numararea caracterelor care formeaza descrierea unui membru
function CharacterCount( field, remaining )
{
	// This variable (MaxCharacters) sets the maximum characters allowed
	var MaxCharacters = 1000;
	if (field.value.length > MaxCharacters)
	{
		field.value = field.value.substring(0, MaxCharacters);
	}
	else
	{
		// This will update remaining characters to be allowed
		remaining.value = MaxCharacters - field.value.length;
	}
}

/*******************************************Functii auxiliare pentru validarea datelor unui membru**************************************/

//Functie care verifica daca un sir e vid
function eVid ( szSirReferinta )
{
	return ((szSirReferinta == null) || (szSirReferinta.length == 0))
}

// Functie ce testeaza daca un caracter e litera
function eLitera (c)
{
	return ( ((c >= "a") && (c <= "z")) || ((c >= "A") && (c <= "Z")) || (c ==" ") || (c ==".") || (c =="-"))
}

// Functie ce testeaza daca un caracter e cifra
function eCifra (c)
{
	return ((c >= "0") && (c <= "9"))
}

// Functie care testeaza daca un sir contine numai caractere alfabetice
function eSirAlfabetic ( szSirReferinta )
{
	var i;
	var bValid = true;

	if ( eVid( szSirReferinta ) )
		bValid = false;
	else
	{
		// Cautam prin sir pana gasim un caracter non-alfabetic
		for ( i = 0; i < szSirReferinta.length; i++ )
		{
			var c = szSirReferinta.charAt( i );

			if ( !eLitera( c ) )
				bValid = false;
		}
	}

	// Daca nu am gasit un asemenea caracter, inseamna ca sirul e alfabetic
	return bValid;
}

//Functie care verifica daca un sir este o adresa E-mail
function eMailValid(email)
{
	var bValid = false;
	var szSir = new String( email );
	var index = szSir.indexOf("@");
	
	if (index > 0)
	{
		var pindex = szSir.indexOf(".",index);
		if ( (pindex > index+1) && (szSir.length > pindex + 1) )
			bValid = true;
	}
	
	return bValid;
}

//Functie care verifica daca un sir este un numar intreg
function eIntreg ( szSir )
{
	var i;
	var bValid = true;
	
	if ( eVid( szSir ) )
		bValid = false;
	else
	{
		var bGasit = false;
		//Cautam in sir pana gasim un caracter nenumeric
		for (i = 0; !bGasit && i < szSir.length; i++)
		{
			var c = szSir.charAt( i );
			if ( !eCifra( c ) )
			{
				bValid = false;
				bGasit = false;
			}
		}
	}
	
	return bValid;
}
/***************************************************************************************************************************************/

/***************************************************************FUNCTII DE VALIDARE****************************************************/

//Functie pentru validarea numelui unui membru
function validare_nume_membru( formular )
{
	var bValid = !eVid( formular.firma.value );
	
	if ( !bValid )
	{
		alert( "Va rugam sa completati campul cu numele firmei dumneavoastra !" );
		formular.firma.focus();
	}
	
	return bValid;
}


//Functie pentru validarea descrierii unui membru
function validare_descriere_membru( formular )
{
	var bValid = !eVid( formular.continut.value );
	
	if ( !bValid )
	{
		alert( "Va rugam sa completati campul cu descrierea firmei dumneavoastra !" );
		formular.continut.focus();
	}
	
	return bValid;
}

//Functie pentru validarea numelui reprezentantului firmei
function validare_nume_reprezentant( formular )
{
	if ( eVid( formular.reprezentant.value ) )
		bValid = true;
	else
	{
		var bValid = eSirAlfabetic( formular.reprezentant.value );
	
		if ( !bValid )
		{
			alert( "Va rugam sa completati cu caractere alfabetice campul cu numele reprezentantului !" );
			formular.reprezentant.focus();
		}
	}
	
	return bValid;
}

//Functie pentru validarea adresei de E-mail a firmei
function validare_mail_membru( formular )
{
	var bValid = true;

	if ( eVid( formular.email.value ) )
	{
		bValid = false;
		alert("Va rugam sa introduceti adresa de E-mail a firmei dumneavoastra !");
		formular.email.focus();
	}
	else
		if ( !eMailValid( formular.email.value) )
		{
			bValid = false;
			alert("Va rugam sa introduceti adresa de E-mail in forma specificata !");
			formular.email.focus();
		}
		else
			if (formular.email.value.length < 5)
			{
				bValid = false;
				alert("Va rugam sa introduceti o adresa de E-mail formata din cel putin 5 caractrere !");
				formular.email.focus();
			}
			
	return bValid;
}

//Functie pentru validarea parolei unui membru
function validare_parola(formular)
{
	var bValid = !eVid( formular.pass.value );
	
	if ( !bValid )
	{
		alert( "Va rugam sa completati campul cu parola dumneavoastra !" );
		formular.pass.focus();
	}
	else
		if( formular.pass.value.length <6 )
		{
			bValid = false;
			alert( "Va rugam sa completati o parola cu cel putin 6 caractere !" );
			formular.pass.focus();

		}
	
	return bValid;
}

//Functie pentru validarea confirmarii parolei membrului
function validare_confirmare_parola( formular )
{
	var  bValid = true;
	
	if( formular.pass.value != formular.confirma.value )
		bValid = false;
	
	if ( !bValid )
	{
		alert( "Va rugam sa introduceti o parola identica !" );
		formular.confirma.focus();
	}
	
	return bValid;
}

//Functie pentru validarea strazii
function validare_strada( formular )
{
	var bValid = !eVid( formular.str.value );
	
	if ( !bValid )
	{
		alert( "Va rugam sa completati campul strada !" );
		formular.str.focus();
	}
	
	return bValid;
}

//Functie pentru validarea nuamrului
function validare_numar( formular )
{
	var bValid = true;
	
	if( eVid( formular.nrstr.value ) )
	{
		bValid = false;
		alert( "Va rugam sa completati un numar valid !" );
		formular.nrstr.focus();		
	}
	
	return bValid;
}

//Functie pentru validarea etajului
function validare_etaj( formular )
{
	var bValid = true;
	
	if( !eVid( formular.etaj.value ) && !eIntreg( formular.etaj.value ) )
	{
		bValid = false;
		alert( "Va rugam sa completati un etaj valid !");
		formular.etaj.focus();
	}
	
	return bValid;
}

//Functie pentru validarea apartamentului
function validare_apartament( formular )
{
	var bValid = true;
	
	if( !eVid( formular.ap.value ) && !eIntreg( formular.ap.value ) )
	{
		bValid = false;
		alert( "Va rugam sa completati un apartament valid !");
		formular.ap.focus();
	}
	
	return bValid;
}

//Functie pentru validarea localitatii
function validare_localitate( formular )
{
	var bValid = !eVid( formular.oras.value );
	
	if ( !bValid )
	{
		alert( "Va rugam sa completati campul cu localitatea !" );
		formular.oras.focus();
	}
	
	return bValid;
}

//Functie pentru validarea codului postal
function validare_cod_postal( formular )
{
	var bValid = true;
	
	if( !eVid( formular.codpostal.value ) && !eIntreg( formular.codpostal.value ) )
	{
		bValid = false;
		alert( "Va rugam sa completati un cod postal valid !");
		formular.codpostal.focus();
	}
	
	return bValid;
}

//Functie pentru validarea unui telefon fix
function validare_telefon_fix( formular )
{
	bValid = true;
	
	if( !eIntreg( formular.tel.value ) )
	{
		bValid = false;
		alert( "Va rugam sa completati numarul de telefon numai cu caractere numerice !");
		formular.tel.focus();		
	 
	}
	return bValid;
}

//Functie pentru validarea unui numar de telefon mobil
function validare_telefon_mobil( formular )
{
	var bValid = true;
	
	if ( eVid( formular.mob.value ) )
		bValid = true;
	else
		if( !eIntreg( formular.mob.value ) )
		{
			bValid = false;
			alert( "Va rugam sa completati numarul de telefon mobil numai cu caractere numerice !");
			formular.mob.focus();
		}
	return bValid;
}

//Functie pentru validarea unui numar de fax
function validare_fax( formular )
{
	bValid = true;
	
	if( !eIntreg( formular.fax.value ) )
	{
		bValid = false;
		alert( "Va rugam sa completati numarul de fax numai cu caractere numerice !");
		formular.fax.focus();
	}
	return bValid;
}

//Functie pentru validarea codului fiscal
function validare_cod_fiscal( formular )
{
	var bValid = !eVid( formular.codfiscal.value );
	
	if ( !bValid )
	{
		alert("Va rugam sa completati campul cu codul fiscal !");
		formular.codfiscal.focus();
	}
	
	return bValid;
}

//Functie pentru validarea numarului de inregistrare la registrul comertului
function validare_registru_comert( formular )
{
	var bValid = !eVid( formular.j.value );
	
	if ( !bValid )
	{
		alert("Va rugam sa completati campul cu codul de inregistrare la registrul comertului !");
		formular.j.focus();
	}
	
	return bValid;
}

//Functie pentru validarea contului bancar
function validare_cont_bancar( formular )
{
	var bValid = !eVid( formular.cbanka.value );
	
	if ( !bValid )
	{
		alert("Va rugam sa completati campul cu contul bancar !");
		formular.cbanka.focus();
	}
	
	return bValid;
}

//Functie pentru categoriei propuse
function validare_categorie( formular )
{
	var bValid = eSirAlfabetic( formular.categorie_propusa.value );
	
	if (!bValid)
	{
		alert("Va rugam sa completati cu caractere alfabetice campul cu categoria propusa de dumneavoastra !");
		formular.categorie_propusa.focus();
	}
	
	return bValid;
}

//Functie pentru subcategoriei propuse
function validare_subcategorie( formular )
{
	var bValid = eSirAlfabetic( formular.subcategorie_propusa.value );
	
	if (!bValid)
	{
		alert("Va rugam sa completati cu caractere alfabetice campul cu subcategoria propusa de dumneavoastra !");
		formular.subcategorie_propusa.focus();
	}
	
	return bValid;
}

//Functia principala de validare a formularului
function ValidareFormularInscriereMembru(formular)
{
	return validare_nume_membru( formular )
			&&
			validare_descriere_membru( formular )
			&&
			validare_nume_reprezentant( formular )
			&&
			validare_mail_membru( formular )
			&&
			validare_parola( formular )
			&&
			validare_confirmare_parola( formular )
			&&
			validare_localitate( formular )
			&&
			validare_cod_postal( formular )
			&&
			validare_strada( formular )
			&&
			validare_numar( formular )
			&&
			validare_etaj( formular )
			&&
			validare_apartament( formular )
			&&
			validare_telefon_fix( formular )
			&&
			validare_telefon_mobil( formular )
			&&
			validare_fax( formular )
			&&
			validare_cod_fiscal( formular )
			&&
			validare_registru_comert( formular )
			&&
			validare_cont_bancar(formular);
}

//Functia de validare a formularului cu propunere de categorie si subcategorie
function ValidareFormularPropunere1( formular )
{
	return validare_categorie( formular ) && validare_subcategorie( formular );
}

//Functia de validare a formularului cu propunere de categorie
function ValidareFormularPropunere2( formular )
{
	return validare_subcategorie( formular );
}
/**************************************************************************************************************************************/


