//Functie pentru numararea caracterelor care formeaza descrierea unui membru
function CharacterCount( field, remaining )
{
	// This variable (MaxCharacters) sets the maximum characters allowed
	var MaxCharacters = 300;
	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 unei oferte**************************************/

//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 =="."))
}

// 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 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;
}

//Functie care verifica daca un sir e numar real
function isFloat (s)
{   
	var i;
    var seenDecimalPoint = false;

    if ( eVid( s ) ) 
		return false;
    if (s == ".") return false;

    // Search through string's characters one by one
    // until we find a non-numeric character.
    // When we do, return false; if we don't, return true.

    for (i = 0; i < s.length; i++)
    {   
        // Check that current character is number.
        var c = s.charAt(i);

        if ( (c == "." ) && !seenDecimalPoint )
			seenDecimalPoint = true;
        else if ( !eCifra( c ))
			return false;
    }

    // All characters are numbers.
    return true;
}

/***************************************************************************************************************************************/

/***************************************************************FUNCTII DE VALIDARE****************************************************/
//Functie pentru validarea titlului unei oferte
function validare_numeledvs( formular )
{
	var bValid = true;
	
	if ( eVid( formular.numeledvs.value ) )
	{
		bValid = false;
		alert( "Va rugam sa completati campul cu numele dumneavoastra !" );
		formular.numeledvs.focus();
	}
	
	return bValid;
	/*alert (" Bau !");
	return false;*/
}

function validare_teldvs( formular )
{
	bValid = true;
	
	if( !eIntreg( formular.teldvs.value ) && !isFloat( formular.teldvs.value ) )
	{
		bValid = false;
		alert( "Va rugam sa completati telefonul dvs numai cu caractere numerice !");
		formular.teldvs.focus();		
	 
	}
	else	
		if ( formular.teldvs.value.charAt(0) == "-" )
		{
			bValid = false;
			alert( "Mai lasa figurile astea !");
			formular.teldvs.focus();
		}
	return bValid;
}

function validare_titlu_oferta( formular )
{
	var bValid = true;
	
	if ( eVid( formular.oferta.value ) )
	{
		bValid = false;
		alert( "Va rugam sa completati campul cu titlul ofertei dumneavoastra !" );
		formular.oferta.focus();
	}
	
	return bValid;
	/*alert (" Bau !");
	return false;*/
}


//Functie pentru validarea descrierii ofertei unui membru
function validare_descriere_oferta( formular )
{
	var bValid = !eVid( formular.continut.value );
	
	if (!bValid)
	{
		alert("Va rugam sa completati campul cu descrierea ofertei dumneavoastra !");
		formular.continut.focus();
	}
	
	return bValid;
}

//Functie pentru validarea descrierii ofertei unui membru
function validare_desccer2( formular )
{
	var bValid = !eVid( formular.desccer2.value );
	
	if (!bValid)
	{
		alert("Va rugam sa completati campul cu descrierea cererii dumneavoastra !");
		formular.desccer2.focus();
	}
	
	return bValid;
}


//Functie pentru validarea orasului ofertei unui membru
function validare_oras( formular )
{
	var bValid = !eVid( formular.oras.value );
	
	if (!bValid)
	{
		alert("Va rugam sa completati campul cu orasul unde este valabila oferta dumneavoastra !");
		formular.oras.focus();
	}
	
	return bValid;
}


//Functie pentru validarea cartierului ofertei unui membru
function validare_cartier( formular )
{
	var bValid = !eVid( formular.cartier.value );
	
	if (!bValid)
	{
		alert("Va rugam sa completati campul cu cartierul in care se afla apartamentul !");
		formular.cartier.focus();
	}
	
	return bValid;
}


//Functie pentru validarea zonei ofertei unui membru
function validare_zona( formular )
{
	var bValid = !eVid( formular.zona.value );
	
	if (!bValid)
	{
		alert("Va rugam sa completati campul cu zona unde este oferta dumneavoastra !");
		formular.zona.focus();
	}
	
	return bValid;
}


//Functie pentru validarea etajului ofertei unui membru
function validare_etajapnr( formular )
{
	var bValid = true;
	
			// Spargem sirul in atomi
			var VectorEtaj = formular.etajapnr.value.split( "/" );
			
			// Verificam daca atomii reprezinta entitati valide de data calendaristica
			if ( !eIntreg( VectorEtaj[0] ) || !eIntreg( VectorEtaj[1] ) )
			{
				bValid = false;
				alert( "Va rugam sa introduceti etajul corect !");
				formular.etajapnr.focus();
			}
			else
			{
				//bValid = false;
				// Convertim atomii...
				var numaretajap = parseInt( VectorEtaj[0] );
				
				// Aici e mai complicat, pentru ca daca ziua si luna sunt date cu 0 in fata ex. 09, 03 parseInt conv. la 0 !
				var PrimaCifraNrNivele = parseInt( VectorEtaj[1].substring( 0, 1 ) );
				
				var NrNivele = parseInt( VectorEtaj[1] );
				
		//		if ( PrimaCifraNrNivele != 0 )
		//			NrNivele = parseInt( VectorEtaj[1] );
		//		else
		//		 	NrNivele = parseInt( VectorEtaj[1].substring( 1, 2 ) );
					
								
				if ( numaretajap < 0 ||  NrNivele < 2  || numaretajap > NrNivele )
				{
					bValid = false;
					alert("Va rugam sa introduceti corect etajul !");
					formular.etajapnr.focus();
				}

		}
	//}
		
	return bValid;
}


//Functie pentru validarea suprafetei ofertei unui membru
function validare_suprafata( formular )
{
	bValid = true;
	
	if( !eIntreg( formular.suprafata.value ) && !isFloat( formular.suprafata.value ) )
	{
		bValid = false;
		alert( "Va rugam sa completati suprafata numai cu caractere numerice !");
		formular.suprafata.focus();		
	 
	}
	else	
		if ( formular.suprafata.value.charAt(0) == "-" )
		{
			bValid = false;
			alert( "Mai lasa figurile astea !");
			formular.suprafata.focus();
		}
	return bValid;
}


//Functie pentru validarea pretului pe metru patrat al ofertei unui membru
function validare_pretmp( formular )
{
	bValid = true;
	
	if( !eIntreg( formular.pretmp.value ) && !isFloat( formular.pretmp.value ) )
	{
		bValid = false;
		alert( "Va rugam sa completati pretmp numai cu caractere numerice !");
		formular.pretmp.focus();		
	 
	}
	else	
		if ( formular.pretmp.value.charAt(0) == "-" )
		{
			bValid = false;
			alert( "Mai lasa figurile astea !");
			formular.pretmp.focus();
		}
	return bValid;
}


//Functie pentru validarea deschiderii ofertei unui membru
function validare_deschidere( formular )
{
	bValid = true;
	
	if( !eIntreg( formular.deschidere.value ) && !isFloat( formular.deschidere.value ) )
	{
		bValid = false;
		alert( "Va rugam sa completati deschiderea terenului numai cu caractere numerice !");
		formular.deschidere.focus();		
	 
	}
	else	
		if ( formular.deschidere.value.charAt(0) == "-" )
		{
			bValid = false;
			alert( "Mai lasa figurile astea !");
			formular.deschidere.focus();
		}
	return bValid;
}


//Functie pentru validarea numarului de nivele ofertei unui membru
function validare_numarcamere( formular )
{
	bValid = true;
	
	if( !eIntreg( formular.numarcamere.value ) && !isFloat( formular.numarcamere.value ) )
	{
		bValid = false;
		alert( "Va rugam sa completati numarul de camere doar cu caractere numerice !");
		formular.numarcamere.focus();		
	 
	}
	else	
		if ( formular.numarcamere.value.charAt(0) == "-" )
		{
			bValid = false;
			alert( "Mai lasa figurile astea !");
			formular.numarcamere.focus();
		}
	return bValid;
}


//Functie pentru validarea pretului de baza
function validare_pret_baza( formular )
{
	bValid = true;
	
	if( !eIntreg( formular.preta.value ) && !isFloat( formular.preta.value ) )
	{
		bValid = false;
		alert( "Va rugam sa completati pretul pe care il doriti numai cu caractere numerice !");
		formular.preta.focus();		
	 
	}
	else	
		if ( formular.preta.value.charAt(0) == "-" )
		{
			bValid = false;
			alert( "Va rugam sa introduceti un pret pozitiv !");
			formular.preta.focus();
		}
	return bValid;
}


//Functie pentru validarea telefonului
function validare_telefon( formular )
{
	bValid = true;
	
	if( !eIntreg( formular.telefon.value ) && !isFloat( formular.telefon.value ) )
	{
		bValid = false;
		alert( "Va rugam sa completati telefonul agentiei care se ocupa de aceasta oferta numai cu caractere numerice !");
		formular.telefon.focus();		
	 
	}
	else	
		if ( formular.telefon.value.charAt(0) == "-" )
		{
			bValid = false;
			alert( "Mai lasa figurile astea !");
			formular.telefon.focus();
		}
	return bValid;
}


//Functie pentru validarea unui numar de telefon mobil
function validare_pret_alternativ( formular )
{
	bValid = true;
	
	if ( eVid( formular.pretb.value ) )
		bValid = true;
	else
	if( !eIntreg( formular.pretb.value ) && !isFloat( formular.pretb.value ) )
	{
		bValid = false;
		alert( "Va rugam sa completati pretul alternativ al ofertei numai cu caractere numerice !");
		formular.pretb.focus();		
	 
	}
	else	
		if ( formular.pretb.value.charAt(0) == "-" )
		{
			bValid = false;
			alert( "Va rugam sa introduceti un pret pozitiv !");
			formular.pretb.focus();
		}
	return bValid;
}

function validare_data( formular )
{
	var bValid = true;
	
	primulIndex = formular.expira.value.indexOf( "-" );
	
	if ( primulIndex != 4 )
	{
		bValid = false;
		alert( "Va rugam sa introduceti data exact ca in exemplu !" );		
		formular.expira.focus();
	}
	else
	{
		var sir = formular.expira.value.substring( primulIndex+1, 11 );
		var alDoileaIndex = sir.indexOf( "-" );
		
		if ( alDoileaIndex != 2 )
		{
			bValid = false;
			alert( "Va rugam sa introduceti data exact ca in exemplu!" );
			formular.expira.focus();
		}
		else
		{
			// Spargem sirul in atomi
			var VectorData = formular.expira.value.split( "-" );
			
			// Verificam daca atomii reprezinta entitati valide de data calendaristica
			if ( !eIntreg( VectorData[0] ) || !eIntreg( VectorData[1] ) || !eIntreg( VectorData[2] ) )
			{
				bValid = false;
				alert( "Va rugam sa introduceti data corect !");
				formular.expira.focus();
			}
			else
			{
				//bValid = false;
				// Convertim atomii...
				var an = parseInt( VectorData[0] );
				
				// Aici e mai complicat, pentru ca daca ziua si luna sunt date cu 0 in fata ex. 09, 03 parseInt conv. la 0 !
				var PrimaCifraLuna = parseInt( VectorData[1].substring( 0, 1 ) );
				
				var luna;
				
				if ( PrimaCifraLuna != 0 )
					luna = parseInt( VectorData[1] );
				else
				 	luna = parseInt( VectorData[1].substring( 1, 2 ) );
					
				var PrimaCifraZi = parseInt( VectorData[2].substring( 0, 1 ) );
				
				var zi;
				
				if ( PrimaCifraZi != 0 )
					zi = parseInt( VectorData[2] );
				else
				 	zi = parseInt( VectorData[2].substring( 1, 2 ) );
								
				if ( an<0 || ( luna < 1 || luna > 12) || ( zi < 1 || zi > 31 ) )
				{
					bValid = false;
					alert("Va rugam sa introduceti anul, luna si ziua corect !"+an+"-"+luna+"-"+zi );
					formular.expira.focus();
				}
				else
				{				
					// Validam: data introdusa trebuie sa fie intre ziua curenta si ultima zi de valabilitate a contului
					if ( an < formular.an_curent.value )
					{
						bValid = false;
						alert( "Anul nu poate fi mai mic decat anul curent !" );
						formular.expira.focus();
					}
					else
						if ( an > formular.an_exp.value )
						{
							bValid = false;
							alert("Data expirarii ofertei nu poate depasi data expirarii contului: "+formular.an_exp.value+"-"+formular.luna_exp.value+"-"+formular.ziua_exp.value);
							formular.expira.focus();
						}
						else
						{
							if ( an == formular.an_curent.value )
							{
								if ( luna < formular.luna_curenta.value )
								{
									bValid = false;
									alert("Luna nu poate fi mai mica decat luna curenta !");
									formular.expira.focus();
								}
								else
									if ( luna == formular.luna_curenta.value )
										if ( zi < formular.ziua_curenta.value )
										{
											bValid = false;
											alert("Ziua nu poate fi mai mica decat ziua curenta !");
											formular.expira.focus();
										}
							}
							else
								if( an == formular.an_exp.value )
								{
									if ( luna > formular.luna_exp.value )
									{
										bValid = false;
										alert("Luna nu poate fi mai mare decat luna expirarii !");
										formular.expira.focus();
									}
									else
										if ( luna == formular.luna_exp.value )
											if ( zi > formular.ziua_exp.value )
											{
												bValid = false;
												alert("Ziua nu poate fi mai mare decat ziua expirarii !");
												formular.expira.focus();
											}
								}
									
							}
				}
			}
		}
	}
		
	return bValid;
}

//Functia principala de validare a formularului
function ValidareFormularInscriereOferta( formular )
{
	return validare_titlu_oferta( formular )
	&&
	validare_descriere_oferta( formular )
	&&
	validare_oras( formular )
	&&
	validare_pret_baza( formular )
	&&
	validare_pret_alternativ( formular )
	&&
	validare_data( formular );
}

//Functia principala de validare a formularului adaugare cerere vizitator site CMI
function ValidareFormularInscriereCerereVizitator( formular )
{
	return validare_numeledvs( formular )
	&&
	validare_teldvs( formular )
	&&
	validare_desccer2( formular );
}

//Functia principala de validare a formularului adaugare apartament
function ValidareFormularInscriereApartament( formular )
{
	return validare_numeledvs( formular )
	&&
	validare_teldvs( formular )
	&&
	validare_titlu_oferta( formular )
	&&
	validare_descriere_oferta( formular )
	&&
	validare_oras( formular )
	&&
	validare_pret_baza( formular )
	&&
//	validare_pret_alternativ( formular )
//	&&
	validare_data( formular )
	&&
//	validare_cartier( formular )
//	&&
//	validare_zona( formular )
//	&&
	validare_etajapnr( formular );
//	&&
//	validare_telefon( formular );
}


//Functia principala de validare a formularului adaugare casa
function ValidareFormularInscriereCasa( formular )
{
	return validare_numeledvs( formular )
	&&
	validare_teldvs( formular )
	&&
	validare_titlu_oferta( formular )
	&&
	validare_descriere_oferta( formular )
	&&
	validare_oras( formular )
	&&
	validare_pret_baza( formular )
	&&
//	validare_pret_alternativ( formular )
//	&&
	validare_data( formular )
	&&
	validare_suprafata( formular )
	&&
	validare_deschidere( formular )
	&&
//	validare_zona( formular )
//	&&
	validare_numarcamere( formular );
//	&&
//	validare_telefon( formular );
}


//Functia principala de validare a formularului adaugare teren
function ValidareFormularInscriereTeren( formular )
{
	return validare_numeledvs( formular )
	&&
	validare_teldvs( formular )
	&&
	validare_titlu_oferta( formular )
	&&
	validare_descriere_oferta( formular )
	&&
	validare_oras( formular )
	&&
	validare_pret_baza( formular )
	&&
//	validare_pret_alternativ( formular )
//	&&
	validare_data( formular )
	&&
	validare_suprafata( formular )
	&&
	validare_deschidere( formular )
	&&
//	validare_zona( formular )
//	&&
	validare_pretmp( formular );
//	&&
//	validare_telefon( formular );
}


//Functia principala de validare a formularului adaugare birou, spatii com, ind si ferme
function ValidareFormularInscriereBirou( formular )
{
	return validare_numeledvs( formular )
	&&
	validare_teldvs( formular )
	&&
	validare_titlu_oferta( formular )
	&&
	validare_descriere_oferta( formular )
	&&
	validare_oras( formular )
	&&
	validare_pret_baza( formular )
	&&
//	validare_pret_alternativ( formular )
//	&&
	validare_data( formular )
	&&
	validare_suprafata( formular );
}


//Functie principala de validare a formularului de modificare oferta
function ValidareFormularModificareOferta( formular )
{
	return validare_titlu_oferta( formular )
	&&
	validare_descriere_oferta( formular )
	&&
	validare_oras( formular )
	&&
	validare_pret_baza( formular )
	&&
	validare_pret_alternativ( formular );
}

//Functie pentru validarea descrierii cererii unui membru
function validare_descriere_cerere( formular )
{
	var bValid = !eVid( formular.descriere.value );
	
	if ( !bValid )
	{
		alert("Va rugam sa completati campul cu descrierea cererii dumneavoastra !");
		formular.descriere.focus();
	}
	
	return bValid;
}

//Functie pentru validarea orasului cererii unui membru
function validare_oras_cerere( formular )
{
	var bValid = !eVid( formular.oras.value );
	
	if (!bValid)
	{
		alert("Va rugam sa completati campul cu orasul unde este valabila cererea dumneavoastra !");
		formular.oras.focus();
	}
	
	return bValid;
}

function validare_pret( formular )
{
	bValid = true;
	
	if ( eVid( formular.pret.value ) )
		bValid = true;
	else
	if( !eIntreg( formular.pret.value ) && !isFloat( formular.pret.value ) )
	{
		bValid = false;
		alert( "Va rugam sa completati pretul cererii numai cu caractere numerice !");
		formular.pret.focus();		
	 
	}
	else	
		if ( formular.pret.value.charAt(0) == "-" )
		{
			bValid = false;
			alert( "Va rugam sa introduceti un pret pozitiv !");
			formular.pret.focus();
		}
	return bValid;
}

function validare_data_cerere( formular )
{
	var bValid = true;
	
	primulIndex = formular.expira.value.indexOf( "-" );
	
	if ( primulIndex == -1 )
	{
		bValid = false;
		alert("Va rugam sa introduceti data exact ca in exemplu1 !");
		formular.expira.focus();
	}
	else
	{
		var sir = formular.expira.value.substring(primulIndex+1, 11);
		var alDoileaIndex = sir.indexOf( "-" );
		
		if ( alDoileaIndex == -1 )
		{
			bValid = false;
			alert("Va rugam sa introduceti data exact ca in exemplu!");
			formular.expira.focus();
		}
		else
		{
			//Spargem sirul in atomi
			var VectorData = formular.expira.value.split( "-" );
			
			//Verificam daca atomii reprezinta entitati valide de data calendaristica
			if ( !eIntreg( VectorData[0] ) || !eIntreg( VectorData[1] ) || !eIntreg( VectorData[2] ) )
			{
				bValid = false;
				alert("Va rugam sa introduceti data corect1 !");
				formular.expira.focus();
			}
			else
			{
				//Convertim atomii...
				var an = parseInt( VectorData[0] );
				var luna = parseInt( VectorData[1] );
				var zi = parseInt( VectorData[2] );
				
				if ( an<0 || ( luna < 1 || luna > 12) || ( zi < 1 || zi > 31 ) )
				{
					bValid = false;
					alert("Va rugam sa introduceti anul, luna si ziua corect !");
					formular.expira.focus();
				}
				else
				{
					//Validam: data introdusa trebuie sa fie intre ziua curenta si ultima zi de valabilitate a contului
					if ( an < formular.an_curent.value )
					{
						bValid = false;
						alert("Anul nu poate fi mai mic decat anul curent !");
						formular.expira.focus();
					}
					else
						if ( an > formular.an_exp.value )
						{
							bValid = false;
							alert("Data expirarii ofertei nu poate depasi data expirarii contului: "+formular.an_exp.value+"-"+formular.luna_exp.value+"-"+formular.ziua_exp.value);
							formular.expira.focus();
						}
						else
						{
							if ( an == formular.an_curent.value )
							{
								if ( luna < formular.luna_curenta.value )
								{
									bValid = false;
									alert("Luna nu poate fi mai mica decat luna curenta !");
									formular.expira.focus();
								}
								else
									if ( luna == formular.luna_curenta.value )
										if ( zi < formular.ziua_curenta.value )
										{
											bValid = false;
											alert("Ziua nu poate fi mai mica decat ziua curenta !");
											formular.expira.focus();
										}
							}
							else
								if( an == formular.an_exp.value )
								{
									if ( luna > formular.luna_exp.value )
									{
										bValid = false;
										alert("Luna nu poate fi mai mare decat luna expirarii !");
										formular.expira.focus();
									}
									else
										if ( luna == formular.luna_exp.value )
											if ( zi > formular.ziua_exp.value )
											{
												bValid = false;
												alert("Ziua nu poate fi mai mare decat ziua expirarii !");
												formular.expira.focus();
											}
								}
									
							}
				}
			}
		}
	}
	
	return bValid;
}

//Functia principala de validare a formularului pentru inscrierea unei cereri
function ValidareFormularInscriereCerere( formular )
{
	return validare_descriere_cerere( formular )
	&&
	validare_oras_cerere( formular )
	&&
	validare_pret( formular )
	&&
	validare_data_cerere( formular );
}

function ConfirmareStergere( idPagina, idOferta)
{
	var confirma = window.confirm( "Sigur doriti sa stergeti aceasta oferta ?" );
	
	if ( confirma )
		window.location = "stergere_oferta.php?id_pagina="+idPagina+"&id_oferta="+idOferta;
	else
		window.location = "first.php?id_actiune=1&idPagina="+idPagina;
}

function Modificare( idPagina, id_oferta )
{
	window.location = "modificare_oferta.php?id_pagina="+idPagina+"&id_oferta="+id_oferta;
}

function ModificareCMI( idPagina, id_oferta, tabel )
{
	window.location = "modificare_oferta_cmi.php?id_pagina="+idPagina+"&id_oferta="+id_oferta+"&tabel="+tabel;
}


// Dupa actualizarea unei oferte, aceasta functie incarca pagina cu prezentarea ofertelor membrului
function RevenireOferte( idPagina, idOferta )
{
	window.location = "first.php?id_actiune=1&idPagina="+idPagina;
}

function ConfirmareStergereCerere( idPagina, idCerere )
{
	var confirma = window.confirm( "Sigur doriti sa stergeti aceasta cerere ?" );
	
	if ( confirma )
		window.location = "stergere_cerere.php?id_pagina="+idPagina+"&id_cerere="+idCerere;
}

function ModificareCerere( idPagina, idCerere )
{
	window.location = "modificare_cerere.php?id_pagina="+idPagina+"&id_cerere="+idCerere;
}

function ValidareFormularModificareCerere( formular )
{
	return validare_descriere_cerere( formular )
			&&
			validare_oras_cerere( formular )
			&&
			validare_pret( formular );


}
/****************************************************************************************************************************************/