// Creates & returns an ajax object
function newAjaxObject()
{
	var xmlhttp = null;
	
	try
	{
		// Mozilla, Opera, Safari, Konqueror and everything else uses this method
		xmlhttp = new XMLHttpRequest();
	}
	catch(e)
	{
		try
		{
			// IE lower than 6 implements Msxml lib (only 5.xx versions,
			// versions below 5.0 does not support asynchronous queries
			xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e)
		{
			try
			{
				// For IE 6 and later
				xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e)
			{
				// No asynchronous support provided by this browser...
				alert("Your browser doesn't support Ajax Requests\n\nTherefore, certain features may not be available to you.")
			}
		}
	}
	return xmlhttp;
}

// Init some new ajax objects
var ajax = newAjaxObject(); // this is globally used
var ajaxBusy = false;

// Makes a query using the ajax object ajaxObj to the page serverPage
// using GET or POST (sendMethod) and puts the response into the div with the id divID
// If the POST method is prefered, the params to be sent must be given as a string of this form:
// field1=value1&field2=value2&field3=value3 (etc.)
function makequery( ajaxObj, serverPage, divID, sendMethod, params )
{
	// Get the container's handler
	var div = document.getElementById( divID );
	
	if( ajaxBusy )
	{
		ajaxObj.onreadystatechange = function() {}
		ajaxObj.abort();
	}
	
	if( ajaxObj )
	{
		if( sendMethod == "GET" )
		{
			ajaxObj.open( "GET", serverPage, true );
			ajaxBusy = true;
			ajaxObj.onreadystatechange = function()
			{
				if( ajaxObj.readyState == 4 && ajaxObj.status == 200 )
				{
					div.innerHTML = ajaxObj.responseText;
				}
				ajaxBusy = false;
			}
			ajax.send( null );
		}
		else if( sendMethod == "POST" )
		{
			ajaxObj.open( "POST", serverPage, true );
			ajaxBusy = true;
			ajaxObj.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded; charset=UTF-8" );
			ajaxObj.onreadystatechange = function()
			{
				if( ajaxObj.readyState == 4 && ajaxObj.status == 200 )
				{
					div.innerHTML = ajaxObj.responseText;
				}
				ajaxBusy = false;
			}
			ajaxObj.send( params );
		}
		else
		{
			// No other valid known methods for passing the data...
			alert( "Invalid or no method passed to the function!" );
			return;
		}
	}
}

function showHide(divID) 
{
	document.getElementById(divID).style.display == 'none' ? document.getElementById(divID).style.display = 'block' : document.getElementById(divID).style.display = 'none';
}

function pop(src)
{
	window.open('<?php echo BASE_HREF; ?>custom_images/produse/full/'+stripPath(src),'popup' ,'resizable=1, status=0, toolbar=0, location=0, menubar=0, width=850, height=850');
}

function stripPath(loc)
{
	return loc.replace(/^(((.+)\/)+)?(([\w\-_]+\.)+\w{3})$/, '$4');
}

function changePic(newSrc)
{
	document.getElementById('poza_mare').src=newSrc;
}

function activate(objectName){
	document.getElementById(objectName).className='hover';
}

function deactivate(objectName){
	document.getElementById(objectName).className='';
}

function show(objectName)
{
	if (document.getElementById(objectName)) document.getElementById(objectName).style.display='block';
}

function hide(objectName)
{
	if (document.getElementById(objectName)) document.getElementById(objectName).style.display='none';
}

// Change the picture
function changePic(newSrc)
{
	document.getElementById('poza_mare').src=newSrc;
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function reloadWindow()
{
	window.location=window.location;
	
	return;
}

function closeWindow(Id)
{
	document.getElementById(Id).style.display = "none";
}

// Checks if a field is empty, and if so, resets the input's content to the default value
function checkField( obj, value )
{
	// Match any amount of white spaces
	if( obj.value.match( " " ) || obj.value == "" )
	{
		obj.value = value;
	}
	
	return false;
}

// Clears an input's content
function clearField( obj, value )
{
	if( obj.value == value )
	{
		obj.value = "";
	}
	
	return false;
}

function changeIt(targetElement) {
	var x = document.getElementById('main_menu');
	var y = x.getElementsByTagName('li');
	for(var i = 0; i < y.length; i++) {
		var z = y.item(i);
		if (z.className == 'active') {
			z.className = '';
		}
	}
	document.getElementById(targetElement).className = 'active';
}

function arataMeniu(id)
{
	if (document.getElementById(id)) document.getElementById(id).className='active';
}

function showForm(id)
{
	switch (id)
	{
		case 'anuntVz':
			show('anuntVz');
			hide('anuntCp');
			hide('detAnVz');
			hide('detAnCp');
			break
		case 'anuntCp':
			hide('anuntVz');
			show('anuntCp');
			hide('detAnVz');
			hide('detAnCp');
			break
		case 'detAnVz':
			show('anuntVz');
			hide('anuntCp');
			show('detAnVz');
			hide('detAnCp');
			break
		case 'detAnCp':
			hide('anuntVz');
			show('anuntCp');
			hide('detAnVz');
			show('detAnCp');
			break
	}
}

function getElementsByClass(searchClass,node,tag) {
	var classElements = new Array();
	if ( node == null )
		node = document;
	if ( tag == null )
		tag = '*';
	var els = node.getElementsByTagName(tag);
	var elsLen = els.length;
	var pattern = new RegExp('(^|\\\\s)'+searchClass+'(\\\\s|$)');
	for (i = 0, j = 0; i < elsLen; i++) {
		if ( pattern.test(els[i].className) ) {
			classElements[j] = els[i];
			j++;
		}
	}
	return classElements;
}

function validEmail(str)
{
	var filter=/^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i
	if (filter.test(str)) return true;
	else return false;
}

function showNumar(obj)
{
	var selected = obj.options[obj.selectedIndex].value;
	if (selected == 'da') show('numarBalcoane');
	else if (selected == 'nu') hide('numarBalcoane');
}

function showDet(obj)
{
	var selected = obj.options[obj.selectedIndex].value;
	if (selected == 'altele') show('altaIncalzire');
	else hide('altaIncalzire');
}

function showInterval(obj)
{
	var selected = obj.options[obj.selectedIndex].value;
	if (selected == 'interval') show('intervalPret');
	else if (selected == 'nu') hide('intervalPret');
}

function showIntervalS(obj)
{
	var selected = obj.options[obj.selectedIndex].value;
	if (selected == 'interval') show('intervalSuprafata');
	else if (selected == 'nu') hide('intervalSuprafata');
}

function showIntervalST(obj)
{
	var selected = obj.options[obj.selectedIndex].value;
	if (selected == 'interval') { show('intervalSuprafata'); hide('suprafata'); }
	else if (selected == 'aproximativ') { hide('intervalSuprafata'); show('suprafata'); }
}

function showJudete(obj)
{
	var selected = obj.value;
	var pretPlatit = document.getElementById('pretPlatit');
	if (selected == 'gratuit')
	{
		hide('selJudete');
		hide('modPlata');
		pretPlatit.innerHTML = 'Anunturile gratuite vor ajunge numai la agentiile partenere din judetul dvs.de resedinta. In medie, acestea reprezinta 11 % din totalul agentiilor.';
	}
	else if (selected == 'din judet')
	{
		hide('selJudete');
		show('modPlata');
		pretPlatit.innerHTML = listaPreturi[7] + ' EURO (se plateste in lei si nu include TVA)';
	}
	else if (selected == 'din judet + 10')
	{
		show('selJudete');
		show('modPlata');
		pretPlatit.innerHTML = listaPreturi[8] + ' EURO (se plateste in lei si nu include TVA)';
	}
	else if (selected == 'din tara')
	{
		hide('selJudete');
		show('modPlata');
		pretPlatit.innerHTML = listaPreturi[9] + ' EURO (se plateste in lei si nu include TVA)';
	}
	else
	{
		hide('selJudete');
		hide('modPlata');
		pretPlatit.innerHTML = 'selectati unde vreti sa ajunga anuntul';
	}
}

function showPlata(obj)
{
	var selected = obj.options[obj.selectedIndex].value;
	if (selected == 'banca') { show('banca'); hide('plataPaypal'); hide('plataCard'); hide('plataSms'); }
	else if (selected == 'paypal') { hide('banca'); show('plataPaypal'); hide('plataCard'); hide('plataSms'); }
	else if (selected == 'card') { hide('banca'); hide('plataPaypal'); show('plataCard'); hide('plataSms'); }
	else if (selected == 'sms') { hide('banca'); hide('plataPaypal'); hide('plataCard'); show('plataSms'); }
	else { hide('banca'); hide('plataPaypal'); hide('plataCard'); hide('plataSms'); }
}

function changeZona(ales)
{
	var sel = ales.selectedIndex;
	document.getElementById('zonaJudetului').value = zoneJudete[sel];
}

function checkF1(form)
{
	nrCam = form.nrCam.value;
	suprafata = form.suprafata.value;
	etaj = form.etaj.value;
	bai = form.bai.value;
	balcoane = form.balcoane.value;
	nrBalc = form.nrBalc.value;
	vechime = form.vechime.value;
	err = '';
	if (nrCam == '') err += ' - numarul de camere\n';
	if (suprafata == '') err += ' - suprafata\n';
	if (etaj == '') err += ' - etajul\n';
	if (bai == '') err += ' - numarul de bai\n';
	if (balcoane == 'da' && nrBalc == '') err += ' - numarul de balcoane\n';
	if (vechime == '') err += ' - vechimea aproximativa a constructiei\n';
	if (err == '') return true;
	else
	{
		err = 'Nu ati completat urmatoarele campuri:\n\n'+err;
		alert(err);
		return false;
	}
}

function checkF2(form)
{
	nrCam = form.nrCam.value;
	suprafata = form.suprafata.value;
	etaj = form.etaj.value;
	bai = form.bai.value;
	balcoane = form.balcoane.value;
	nrBalc = form.nrBalc.value;
	apartamente = form.apartamente.value;
	vechime = form.vechime.value;
	err = '';
	if (nrCam == '') err += ' - numarul de camere\n';
	if (suprafata == '') err += ' - suprafata\n';
	if (etaj == '') err += ' - etajul\n';
	if (bai == '') err += ' - numarul de bai\n';
	if (balcoane == 'da' && nrBalc == '') err += ' - numarul de balcoane\n';
	if (apartamente == '') err += ' - numarul de apartamente din vila\n';
	if (vechime == '') err += ' - vechimea aproximativa a constructiei\n';
	if (err == '') return true;
	else
	{
		err = 'Nu ati completat urmatoarele campuri:\n\n'+err;
		alert(err);
		return false;
	}
}

function checkF3(form)
{
	suprafata = form.suprafata.value;
	suprafataT = form.suprafataT.value;
	nrCam = form.nrCam.value;
	nrNiv = form.nrNiv.value;
	bai = form.bai.value;
	incalzire = form.incalzire.value;
	detIncalzire = form.detIncalzire.value;
	balcoane = form.balcoane.value;
	vechime = form.vechime.value;
	err = '';
	if (suprafata == '') err += ' - suprafata casei\n';
	if (suprafataT == '') err += ' - suprafata terenului\n';
	if (nrCam == '') err += ' - numarul de camere\n';
	if (nrNiv == '') err += ' - numarul de niveluri\n';
	if (bai == '') err += ' - numarul de bai\n';
	if (incalzire == 'altele' && detIncalzire == '') err += ' - modul de incalzire al casei\n';
	if (balcoane == '') err += ' - numarul de balcoane\n';
	if (vechime == '') err += ' - vechimea aproximativa a constructiei\n';
	if (err == '') return true;
	else
	{
		err = 'Nu ati completat urmatoarele campuri:\n\n'+err;
		alert(err);
		return false;
	}
}

function checkF4(form)
{
	suprafata = form.suprafata.value;
	deschidere = form.deschidere.value;
	err = '';
	if (suprafata == '') err += ' - suprafata terenului\n';
	if (deschidere == '') err += ' - deschiderea la drum ("NU" daca nu are)\n';
	if (err == '') return true;
	else
	{
		err = 'Nu ati completat urmatoarele campuri:\n\n'+err;
		alert(err);
		return false;
	}
}

function checkF5(form)
{
	nrCam = form.nrCam.value;
	etaj = form.etaj.value;
	zona = form.zona.value;
	alteZone = form.alteZone.value;
	pret = form.pret.value;
	minim = form.minim.value;
	maxim = form.maxim.value;
	err = '';
	if (nrCam == '') err += ' - numarul de camere ("NU" daca nu conteaza)\n';
	if (etaj == '') err += ' - etajul preferat ("NU" daca nu conteaza)\n';
	if (zona == '') err += ' - zona preferata ("NU" daca nu conteaza)\n';
	if (alteZone == '') err += ' - alte zone acceptate ("NU" daca nu sunt)\n';
	if (pret == 'interval' && (minim == '' || maxim == '')) err += ' - intervalul de pret\n';
	if (err == '') return true;
	else
	{
		err = 'Nu ati completat urmatoarele campuri:\n\n'+err;
		alert(err);
		return false;
	}
}

function checkF6(form)
{
	selSuprafata = form.selSuprafata.value;
	minima = form.minima.value;
	maxima = form.maxima.value;
	zona = form.zona.value;
	alteZone = form.alteZone.value;
	pret = form.pret.value;
	minim = form.minim.value;
	maxim = form.maxim.value;
	err = '';
	if (selSuprafata == 'interval' && (minima == '' || maxima == '')) err += ' - intervalul de suprafata al casei\n';
	if (zona == '') err += ' - zona preferata ("NU" daca nu conteaza)\n';
	if (alteZone == '') err += ' - alte zone acceptate ("NU" daca nu sunt)\n';
	if (pret == 'interval' && (minim == '' || maxim == '')) err += ' - intervalul de pret\n';
	if (err == '') return true;
	else
	{
		err = 'Nu ati completat urmatoarele campuri:\n\n'+err;
		alert(err);
		return false;
	}
}

function checkF7(form)
{
	selSuprafata = form.selSuprafata.value;
	minima = form.minima.value;
	maxima = form.maxima.value;
	supraf = form.supraf.value;
	zona = form.zona.value;
	alteZone = form.alteZone.value;
	pret = form.pret.value;
	minim = form.minim.value;
	maxim = form.maxim.value;
	err = '';
	if (selSuprafata == 'interval' && (minima == '' || maxima == '')) err += ' - intervalul de suprafata\n';
	else if (selSuprafata == 'aproximativ' && supraf == '') err += ' - suprafata aproximativa a terenului\n';
	if (zona == '') err += ' - zona preferata ("NU" daca nu conteaza)\n';
	if (alteZone == '') err += ' - alte zone acceptate ("NU" daca nu sunt)\n';
	if (pret == 'interval' && (minim == '' || maxim == '')) err += ' - intervalul de pret\n';
	if (err == '') return true;
	else
	{
		err = 'Nu ati completat urmatoarele campuri:\n\n'+err;
		alert(err);
		return false;
	}
}

function checkF8(form)
{
	obiect = form.obiect.value;
	localitate = form.localitate.value;
	judet = form.judet.value;
	pret = form.pret.value;
	detalii = form.detalii.value;
	agentii = form.agentii.selectedIndex;
	judete = getElementsByClass('alegeJudete',null,'input');
	judeteAlese = 0;
	for (j=0;j<judete.length;j++)
	{
		if (judete[j].checked) judeteAlese += 1;
	}
	prenume = form.prenume.value;
	nume = form.nume.value;
	email = form.email.value;
	tel = form.tel.value;
	apel = form.apel.value;
	plata = form.plata.value;
	err = '';
	if (localitate == '') err += ' - localitatea in care se afla imobilul\n';
	if (judet == 'selecteaza') err += ' - judetul in care se afla imobilul\n';
	if (pret == '') err += ' - pretul\n';
	if ((obiect == 'spatii birou' || obiect == 'spatiu comercial' || obiect == 'padure') && detalii == '') err += ' - detaliile despre anunt\n';
	if (agentii == 0) err += ' - destinatia anuntului\n';
	else if (agentii == 3)
	{
		if (judeteAlese == 0) err += ' - trebuie sa alegeti cel putin un judet in care sa se trimita anuntul\n';
		else if (judeteAlese > 10) err += ' - puteti alege cel mult 10 judete suplimentare in care sa se trimita anuntul\n';
	}
	if (prenume == '') err += ' - prenumele dumneavoastra\n';
	if (nume == '') err += ' - numele dumneavoastra\n';
	if (email == '') err += ' - adresa dumneavoastra de email\n';
	else if (!validEmail(email)) err += ' - adresa de email nu este corecta\n';
	if (tel == '') err += ' - numarul dumneavoastra de telefon\n';
	else if (tel.length != 10) err += ' - numarul de telefon trebuie sa fie format din 10 cifre\n';
	else if (!IsNumeric(tel)) err += ' - numarul de telefon trebuie sa contina numai cifre\n';
	if (apel == '') err += ' - intervalul orar in care puteti fi apelat\n';
	if (plata == 'selecteaza' && agentii > 1) err += ' - trebuie sa alegeti un mod de plata\n';
	else if (plata == 'sms' && agentii == 4) err += ' - nu puteti plati prin SMS pentru trimiterea anuntului in toata tara\n';
	if (err == '') return true;
	else
	{
		err = 'Nu ati completat urmatoarele campuri:\n\n'+err;
		alert(err);
		return false;
	}
}

function checkF9(form)
{
	localitate = form.localitate.value;
	judet = form.judet.value;
	detalii = form.detalii.value;
	prenume = form.prenume.value;
	nume = form.nume.value;
	email = form.email.value;
	tel = form.tel.value;
	apel = form.apel.value;
	plata = form.plata.value;
	err = '';
	if (localitate == '') err += ' - localitatea in care se afla imobilul\n';
	if (judet == 'selecteaza') err += ' - judetul in care se afla imobilul\n';
	if (prenume == '') err += ' - prenumele dumneavoastra\n';
	if (nume == '') err += ' - numele dumneavoastra\n';
	if (email == '') err += ' - adresa dumneavoastra de email\n';
	else if (!validEmail(email)) err += ' - adresa de email nu este corecta\n';
	if (tel == '') err += ' - numarul dumneavoastra de telefon\n';
	else if (tel.length != 10) err += ' - numarul de telefon trebuie sa fie format din 10 cifre\n';
	else if (!IsNumeric(tel)) err += ' - numarul de telefon trebuie sa contina numai cifre\n';
	if (apel == '') err += ' - intervalul orar in care puteti fi apelat\n';
	if (plata == 'selecteaza') err += ' - trebuie sa alegeti un mod de plata\n';
	if (err == '') return true;
	else
	{
		err = 'Nu ati completat urmatoarele campuri:\n\n'+err;
		alert(err);
		return false;
	}
}

function selectZona(id)
{
	document.getElementById(id).checked == 0 ? document.getElementById(id).checked = 1 : document.getElementById(id).checked = 0;
}

function IsNumeric(strString)
{
	var strValidChars = "0123456789";
	var strChar;
	var blnResult = true;
	if (strString.length == 0) return false;
	for (i = 0; i < strString.length && blnResult == true; i++)
	{
		strChar = strString.charAt(i);
		if (strValidChars.indexOf(strChar) == -1)
		{
			blnResult = false;
		}
	}
	return blnResult;
}