// ne trebuie pentru a sti daca se editeaza sau se initializeza campuri de persoana fizica
var is_edit_tippersoanaPF = false;
// ne trebuie pentru a sti daca se editeaza sau se initializeza campuri de persoana juridica
var is_edit_tippersoanaPJ = false;
// ne trebuie pentru a sti daca se editeaza sau se initializeza campuri de persoana juridica cu utilizator PF
var is_edit_tippersoanaPJ_PF = false;
// ne trebuie pentru a sti daca se editeaza sau se initializeza campuri de persoana juridica cu utilizator PJ
var is_edit_tippersoanaPJ_PJ = false;
// pas de afisare pentru preturi
var pas_de_afisare_pf = 0;
var pas_de_afisare_pjpj = 0;
var pas_de_afisare_pjpf = 0;

// implicit caseta cu preturi se misca in sus si in jos odata cu pagina.
var is_deplasare_preturi = true;

// implicit nu afisam toate rezultatele
setCookie ("is_afiseazaTot", "nu");


// functie care ascunde div-ul cu campurile pentru formular, 
// afiseaza bara cu otpiunea aleasa si link-ul pentru editare 
// afiseaza divul cu urmatoare optiune din formular

// parametrii de intrare ai functiei sunt:
// id - id-ul div curent
// idnextid - id-ul div-ului urmator
// src_nextdiv_form - sursa html ce se va incarca in div-ul urmator

function Restrange (id, nextid, src_nextdiv_form) {
	
	// fac invizibil layerul cu ajax
	showHide (id, "ascunde");
	
	// fac vizibil layerul cu numele optiunii si link-ul pentru editare
	showHide ("edit_" + id, "afiseaza");
	
	if (nextid != '') {
		
		// fac vizibil containerul urmatorului layerul. 
		// cand venim cu clic pe "editare", sunt ascunse toate layerele de forma "container_..."  urmatoare layerului editat
		showHide ($(nextid).parentNode.getAttribute("id"), "afiseaza");
		
		// fac invizibil urmatorul layerul cu link-ul de editare
		// acesta ramane vizibil cand venim cu clic pe "editare" la pas anterior
		showHide ("edit_" + nextid, "ascunde");
		
		// fac vizibil urmatorul layerul cu ajax
		showHide (nextid, "afiseaza");
		
		// incarc cu sursa HTML pentru pasul urmator
		new Ajax.Request(
			src_nextdiv_form,
			{
		    	method: 'get',
			    asynchronous: false,
		    	onSuccess: function(transport){
					var response = transport.responseText || "Nu exista date!";
					$(nextid).update(response);
		    	},
				onFailure: function(){
					alert('A aparut o problema, va rugam sa incercati din nou!');
				}
			});
		
		// daca este nevoie, aducem in partea vizibila a ecranului caseta cu textul modificat
		autoScrollCasetaAsiguratori (nextid, "container_afiseaza_tarife_ext");

	}
}


// functie care afiseaza div-ul cu campurile pentru formular 
// si ascunde bara cu optiunea aleasa si link-ul pentru editare
function Afiseaza (id) {
	// fac vizibil layerul cu ajax	
	showHide (id, "afiseaza");
	
	// fac invizibil layerul cu numele optiunii si link-ul pentru editare
	showHide ("edit_" + id, "ascunde");
	
	// ascunde si initializeaza optiunile urmatoare
	stergeIstoriaNodului ($(id));
}


function stergeIstoriaNodului (id) {
	// ascunde si initializeaza optiunile urmatoare
	divCampUrmator = next (id.parentNode);
	while (divCampUrmator) {
        if (divCampUrmator.className != "clear" && divCampUrmator.style.visibility != "hidden" && divCampUrmator.style.display != "none") {
			showHide (divCampUrmator.getAttribute("id"), "ascunde");
		}
        divCampUrmator = next (divCampUrmator);
    }
}

function next (elem) {
    do {
        elem = elem.nextSibling;
    } while (elem && elem.nodeType != 1);
    return elem;                
}


// functie care afiseaza numele optiunii selectate in sman-ul din layerul restrans
function SeteazaValoare (id, valoare) {
	var id_span = $('optiune_' + id);
	
	// afiseaza valoarea setata in campul 'span'
	if (id_span) {
		id_span.innerHTML = valoare;
	}
}


// functie care afiseaza cele 2 formulare pentru PF si PJ
function ActiveazaTipPersoana () {
	if ($('tip_persoana_pf').checked) {
		// fac vizibil formularul pentru PF
		showHide ('campuri_pf', "afiseaza");
		
		// fac invizibil formularul pentru PJ
		showHide ('campuri_pj', "ascunde");
		
		if (!is_edit_tippersoanaPF) {
			is_edit_tippersoanaPF = true;
			
			showHide ('ajax_pf_leasing_deficiente_pensionar', "afiseaza");
			
			// incarc cu sursa HTML pentru pasul urmator
			new Ajax.Request(
				'_inc_ajax_pas1.php?url=pf-01-leasing-deficiente-pensionar',
				{
			    	method: 'get',
				    asynchronous: false,
			    	onSuccess: function(transport){
						var response = transport.responseText || "Nu exista date!";
						$('ajax_pf_leasing_deficiente_pensionar').update(response);
			    	},
					onFailure: function(){
						alert('A aparut o problema, va rugam sa incercati din nou!');
					}
				});
		}
		
		// Afisez lista asiguratorilor pentru care mai trebuie sa completeze date
		AfiseazaAsiguratori('pf', pas_de_afisare_pf);

		// Afisam preturile de la pasul curent, cu stergerea in prealabil a preturilor potential deja existente
		if (pas_de_afisare_pf > 0) {
			$('textPreturiComparate').update("");
			AfiseazaPret (pas_de_afisare_pf);
		} else
			$('textPreturiComparate').update("<span class='Empty'><img src='images/dureaza-doar-1-minut.gif' width='250' height='100' alt=''></span>");
	}
	
	else if ($('tip_persoana_pj').checked) {
		// fac vizibil formularul pentru PJ
		showHide ('campuri_pj', "afiseaza");
		
		// fac invizibil formularul pentru PF
		showHide ('campuri_pf', "ascunde");
		
		if (!is_edit_tippersoanaPJ) {
			is_edit_tippersoanaPJ = true;
			
			showHide ('ajax_pj_leasing_institutii', "afiseaza");
			
			// incarc cu sursa HTML pentru pasul urmator
			new Ajax.Request(
				'_inc_ajax_pas1.php?url=pj-01-leasing-institutii',
				{
			    	method: 'get',
				    asynchronous: false,
			    	onSuccess: function(transport){
						var response = transport.responseText || "Nu exista date!";
						$('ajax_pj_leasing_institutii').update(response);
			    	},
					onFailure: function(){
						alert('A aparut o problema, va rugam sa incercati din nou!');
					}
				});
		}
 		
		// Afisez lista asiguratorilor pentru care mai trebuie sa completeze date
		// si la fel preturile de la pasul curent
		if ($('pj_leasing_pf') != undefined && $('pj_leasing_pf').checked) {
			AfiseazaAsiguratori('pj_pf', pas_de_afisare_pjpf);
			
			// Afisam preturile de la pasul curent, cu stergerea in prealabil a preturilor potential deja existente
			if (pas_de_afisare_pjpf > 0) {
				$('textPreturiComparate').update("");
				AfiseazaPret (pas_de_afisare_pjpf);
			} else
				$('textPreturiComparate').update("<span class='Empty'><img src='images/dureaza-doar-1-minut.gif' width='250' height='100' alt=''></span>");
		} else {
			AfiseazaAsiguratori('pj_pj', pas_de_afisare_pjpj);
			
			// Afisam preturile de la pasul curent, cu stergerea in prealabil a preturilor potential deja existente
			if (pas_de_afisare_pjpj > 0) {
				$('textPreturiComparate').update("");
				AfiseazaPret (pas_de_afisare_pjpj);
			} else
				$('textPreturiComparate').update("<span class='Empty'><img src='images/dureaza-doar-1-minut.gif' width='250' height='100' alt=''></span>");
		}
	}
}


// functie care afiseaza cele 2 formulare pentru Persoana Juridica in functie de utilizator, PF sau PJ
function ActiveazaTipPJ (id) {
	
	if (id == "pf") {
		// fac vizibil formularul pentru PF
		showHide ('campuri_pj_pf', "afiseaza");
		
		// fac invizibil formularul pentru PJ
		showHide ('campuri_pj_pj', "ascunde");
		
		// fac invizibil layerul cu numele optiunii si afisez link-ul pentru editare
		showHide ('ajax_pj_leasing_institutii', "ascunde");
		showHide ('edit_ajax_pj_leasing_institutii', "afiseaza");
		
		if (!is_edit_tippersoanaPJ_PF) {
			is_edit_tippersoanaPJ_PF = true;
			
			if ($('ajax_pj_leasing_deficiente_pensionar_pf') != null) {
				// ascunde si initializeaza optiunile urmatoare
				// stergeIstoriaNodului ('ajax_pj_leasing_deficiente_pensionar_pf');
			}
			
			showHide ('ajax_pj_leasing_deficiente_pensionar_pf', "afiseaza");
			
			// incarc cu sursa HTML pentru pasul urmator
			new Ajax.Request(
				'_inc_ajax_pas1.php?url=pj-02-leasing-deficiente-pensionar',
				{
			    	method: 'get',
				    asynchronous: false,
			    	onSuccess: function(transport){
						var response = transport.responseText || "Nu exista date!";
						$('ajax_pj_leasing_deficiente_pensionar_pf').update(response);
			    	},
					onFailure: function(){
						alert('A aparut o problema, va rugam sa incercati din nou!');
					}
				});
		}
	}

	else if (id == "pj") {
		// fac vizibil formularul pentru PJ
		showHide ('campuri_pj_pj', 'afiseaza');
		
		// fac invizibil formularul pentru PF
		showHide ('campuri_pj_pf', 'ascunde');
		
		// fac invizibil layerul cu numele optiunii si afisez link-ul pentru editare
		showHide ('ajax_pj_leasing_institutii', "ascunde");
		showHide ('edit_ajax_pj_leasing_institutii', "afiseaza");
		
		if (!is_edit_tippersoanaPJ_PJ) {
			is_edit_tippersoanaPJ_PJ = true;
			
			if ($('ajax_pj_utilizare_pj') != null) {
				// ascunde si initializeaza optiunile urmatoare
				// stergeIstoriaNodului ('ajax_pj_utilizare_pj');
			}
			
			showHide ('ajax_pj_utilizare_pj', 'afiseaza');
			
			// incarc cu sursa HTML pentru pasul urmator
			new Ajax.Request(
				'_inc_ajax_pas1.php?url=pj-22-utilizare',
				{
			    	method: 'get',
				    asynchronous: false,
			    	onSuccess: function(transport){
						var response = transport.responseText || "Nu exista date!";
						$('ajax_pj_utilizare_pj').update(response);
			    	},
					onFailure: function(){
						alert('A aparut o problema, va rugam sa incercati din nou!');
					}
				});
		}
	}
}


// functia afiseaza sau ascunde un camp de formular
function showHide (id, stare) {
	if (stare == "ascunde") {
		$(id).style.display = 'none';
		$(id).style.visibility = 'hidden';
	} else {
		$(id).style.display = 'block';
		$(id).style.visibility = 'visible';
	}
}


// functia afiseaza sau ascunde un camp de formular si cand ascunde distruge continutul campului de formular
function showHideDestroy (camp, stare) {
	var id_container = "container_" + camp;
	var id_ajax = "ajax_" + camp;
	if (stare == "ascunde") {
		$(id_container).style.display = 'none';
		$(id_container).style.visibility = 'hidden';
		DestroyDiv (id_ajax);
	} else {
		$(id_container).style.display = 'block';
		$(id_container).style.visibility = 'visible';
	}
}


// functie care reseteaza continutul unui DIV
function DestroyDiv (id) {
	var divObj = $(id);
	
	// afiseaza valoarea setata in campul 'span'
	if (divObj) {
		divObj.innerHTML = "Se incarca ... ";
	}
}


// afiseaza preturile de la pasul 'pas'
function AfiseazaPret (pas, schimbValabilitate) {
	if ($('tip_persoana_pf').checked)
		pas_de_afisare_pf = pas;
	else {
		if ($('pj_leasing_pf').checked)
			pas_de_afisare_pjpf = pas;
		else
			pas_de_afisare_pjpj = pas;
	}
	
	if (pas == 0) {
		$('textPreturiComparate').update("<span class='Empty'><img src='images/dureaza-doar-1-minut.gif' width='250' height='100' alt=''></span>");
		showHide ('ContainerRezultateBtn', 'afiseaza');
	} else {
        // trimit la server cerere de afisare a tuturor preturilor atunci cand se schimba 6/12 luni din butonul din dreapta-sua.
        varSchimbValabilitate = (schimbValabilitate == "da") ? "calculeazaTot=1&" : "";
        
        // verificam daca in URL este setat GET['locatie'] cu valoarea 'agentie' si daca exista, 
		// transmitem acest parametru mai jos la scriptul 'compara_rezultate.php' 
		if (gup ('locatie') == 'agentii') {
        	var getLocatie = '&locatie=agentii';
       	} else {
       		var getLocatie = '';
		}
       	
		new Ajax.Request(
			'compara-rezultate.php?' + varSchimbValabilitate + 'pas=' + pas + '&nrRezultateVizibile=' + getNrRezultateVizibile () + getLocatie,
			{
		    	method: 'post',
			    parameters: $('form_tip_persoana').serialize(true),
		    	onSuccess: function(transport){
					var response = transport.responseText || "Nu exista date!";
					$('textPreturiComparate').update(response);
		    	},
				onFailure: function(){
					alert('A aparut o problema, va rugam sa incercati din nou!');
				}
			});
    }
}


// eveniment la clic pe butoanele de comanda
function comandaPolita (strBanca, strPret) {
	document.frmComanda.banca.value = strBanca;
	document.frmComanda.pret.value = strPret;
	document.frmComanda.submit();
}


// afiseaza asiguratorii pentru care trebuie completate campuri ca sa afisam preturi de la pasul 'pas'+1
function AfiseazaAsiguratori (tip_persoana, pas) {
	// alert ("tip pers: " + tip_persoana + ", pas = " + pas);
	
	// afisez sau ascund layerul infunctie de pasul curent
	if (pas == 0) {
		showHide ('container_afiseaza_tarife_ext', 'ascunde');
	} else {
		showHide ('container_afiseaza_tarife_ext', 'afiseaza');
	}
	
	// afisez asiguratorii pentru care mai trebuie introduse date pentru PF si PJ cu utilizator PF
	if (tip_persoana == 'pf' || tip_persoana == 'pj_pf') {
		if (pas == 1) {
			$('txt_lista_companii_asigurari').update("Asirom, BCR, Uniqa, Carpatica, Euroins, Astra, Groupama, Ardaf, Generali si Omniasig");
		}
		else if (pas == 2) {
			$('txt_lista_companii_asigurari').update("BCR, Uniqa, Carpatica, Euroins, Astra, Groupama, Ardaf, Generali si Omniasig");
		}
		else if (pas == 3) {
			$('txt_lista_companii_asigurari').update("Carpatica, Euroins, Astra, Groupama, Ardaf, Generali si Omniasig");
		}
		else if (pas == 4) {
			$('txt_lista_companii_asigurari').update("Groupama, Ardaf, Generali si Omniasig");
		}
		else if (pas == 5) {
			$('txt_lista_companii_asigurari').update("Ardaf, Generali si Omniasig");
		}
	}
	
	// afisez asiguratorii pentru care mai trebuie introduse date pentru PJ cu utilizator PJ
	else if (tip_persoana == 'pj_pj') {
		if (pas == 1) {
			$('txt_lista_companii_asigurari').update("Carpatica, Ardaf, Generali, Groupama, Asirom, Omniasig si Euroins");
		}
		else if (pas == 2) {
			$('txt_lista_companii_asigurari').update("Groupama, Asirom, Omniasig si Euroins");
		}
		else if (pas == 3) {
			$('txt_lista_companii_asigurari').update("Asirom, Omniasig si Euroins");
		}
		else if (pas == 4) {
			$('txt_lista_companii_asigurari').update("Omniasig si Euroins");
		}
	}
}


// Facem scroll automat astfel incat obiectul obj1Id sa fie aliniat in partea de jos a ecranului
// iar daca obiectul obj2Id este visibil, pe el il aliniem (va fi caseta cu asiguratorii ramasi de afisat)
function autoScrollCasetaAsiguratori (objUnuId, objDoiId) {
	hFereastra = getWindowHeight ();
	hTop = document.viewport.getScrollOffsets().top;
	
	objId = ($(objDoiId).style.visibility == "visible") ? objDoiId : objUnuId;
	objHeight = Element.getDimensions(objId).height;
	objTop = $(objId).cumulativeOffset().top;
	
	yBottomLayer = - (objTop + objHeight - hFereastra - hTop);
	if (yBottomLayer < 10) {
		window.scrollBy(0, 3);
		setTimeout("autoScrollCasetaAsiguratori('" + objUnuId + "', '" + objDoiId + "')", 10);
	}
}





/* codul este preluat si adaptat de la adresa de mai jos
http://netlinxinc.com/index.php?option=com_content&view=article&id=40:adding-options-to-select-element-using-prototype&catid=3:ajax&Itemid=2
functia primeste 2 parametrii: 
1. ID_ul SELECT-ului judet din care citeste valoarea selectata;
2. ID_ul SELECT-ului localitate pe care il populeaza cu date;
*/
function PopuleazaSelectLocalitati (ID_camp_judet, ID_camp_localitate) {
	var ID_judet = $F(ID_camp_judet);
	var url = '_afiseaza_localitati.php';
	var pars = 'ID_judet=' + ID_judet;
	
	var myAjax = new Ajax.Request(
		url, 
		{
			method: 'get', 
			parameters: pars, 
			onSuccess: function(transport) {
				var response = transport.responseText || "no response text";
				if(eval(response)) {
					var my_options = $A(eval(response));
					$A(my_options).each(function(s, index) {
						var tmp = $A(s);
						var opt = document.createElement('option');
						opt.text = tmp[1];
						opt.value = tmp[0];
						$(ID_camp_localitate).options.add(opt);
						if (tmp[2] == 1) {
							$(ID_camp_localitate).options[index].style.color = 'red';
						}
					});
				}
				else {
					alert ("este o eroare in codul AJAX pentru afisarea localitatilor")
				};
				
				// ascundem div-ul cu textul "Loading" si afisam div-ul cu selectul cu localitati
				$(ID_camp_localitate + "_loading").style.visibility = "hidden";
				$(ID_camp_localitate + "_loading").style.display = "none";
				$(ID_camp_localitate + "_select").style.visibility = "visible";
				$(ID_camp_localitate + "_select").style.display = "block";
			}
		});
}


function NuPermitemCampGol (ID_camp) {
	if ($(ID_camp).value == "") {
		alert ("Va rugam sa completati campul din formular.");
		return false;
	}
	return true;
}



function ValideazaSubcategorie (ID_camp) {
	var s = $(ID_camp).value
	
	if (parseInt(s) != s) {
		alert("Va rugam sa adaugati un numar intreg.");
		return false;
	}
	return true;
}


function AfiseazaBaraStare (valoare) {
	var ID_imagine = $('bara_stare_variabila');
	
	ID_imagine.src = 'images/bg-bara-stare-step-' + valoare + '.gif';
	$('procent_completare').update(valoare * 10);
}



function AfiseazaToateTarifele () {
	// vom avea mai putin de 20 de rezultate.
	for (i=1; i<=20; i++) {
		if ($("tarif_" + i) != null) {
			showHide ("tarif_" + i, "afiseaza");
		}
		if ($("bonus_" + i) != null) {
			showHide ("bonus_" + i, "afiseaza");
		}
	}

	// salvam informatia "afisare completa" intr-un cookie pe care il citim din php cand generam o noua simulare
	setCookie ("is_afiseazaTot", "da", 1);
	
	// anulam deplasarea casetei cu preturi odata cu scroll-ul vertical in pagina
	// folosind o variabila globala.
	is_deplasare_preturi = false;
	
	// schimbam textul si functia link-ului
	showHide ("linkAfiseazaToateTarifele", "ascunde");
	showHide ("linkAfiseazaPutineTarife", "afiseaza");
	
	// schimbam positionarea layerului 'slider' si il facem relativ
	$('slider').style.position = 'static';
}


function AfiseazaPutineTarife () {
	// vom afisa doar 8 rezultate (trebuie sa coincida cu numarul folosit in compara-rezultate.php)
	// Nr 8 e hardcodat si in compara_rezultate.php in 2 locuri.
	for (i=1; i<=20; i++) {
		if ($("tarif_" + i) != null) {
			showHide ("tarif_" + i, (i <= getNrRezultateVizibile ()) ? "afiseaza" : "ascunde");
		}
		if ($("bonus_" + i) != null) {
			showHide ("bonus_" + i, (i <= getNrRezultateVizibile ()) ? "afiseaza" : "ascunde");
		}
	}

	// salvam informatia "afisare completa" intr-un cookie pe care il citim din php cand generam o noua simulare
	setCookie ("is_afiseazaTot", "nu", 1);
	
	// activam deplasarea casetei cu preturi odata cu scroll-ul vertical in pagina
	// folosind o variabila globala.
	is_deplasare_preturi = true;
	
	// schimbam textul si functia link-ului (din nou)
	showHide ("linkAfiseazaToateTarifele", "afiseaza");
	showHide ("linkAfiseazaPutineTarife", "ascunde");
	
	// schimbam positionarea layerului 'slider' si il facem absolut, ca sa se poata misca pe verticala
	$('slider').style.position = 'absolute';
}


function setCookie (c_name, value, expiredays) {
	var exdate = new Date();
	exdate.setDate(exdate.getDate() + expiredays);
	document.cookie = c_name + "=" +escape(value) + ((expiredays==null) ? "" : ";expires=" + exdate.toGMTString());
}

function getCookie (c_name) {
	if (document.cookie.length>0) {
		c_start=document.cookie.indexOf(c_name + "=");
	  	if (c_start!=-1) {
		    c_start=c_start + c_name.length+1;
		    c_end=document.cookie.indexOf(";",c_start);
	    	if (c_end==-1) 
				c_end = document.cookie.length;
	    	return unescape(document.cookie.substring(c_start,c_end));
	    }
	}
	return "";
}




/*
functii specifice campurilor din formular, apelate din fisierul "_inc_ajax_pas1.php"
le-am pus aici deoarece pe IE nu merge daca sunt incluse in cadrul fiecarei secvente.
*/

// pf-01 leasing-deficiente-pensionar
function VerificaLeasingDeficientePensionar_PF () {
	// Daca bifeaza 'niciuna', celelalte nu mai pot fi bifate. 
	// Daca bifeaza una din celelalte 3 optiuni, 'niciuna' nu mai poate fi bifata.
	if ($("pf_pensionar").checked || $("pf_deficiente_locomotorii").checked || $("pf_masina_leasing").checked) {
		$("pf_pensionar").disabled = false;
		$("pf_deficiente_locomotorii").disabled = false;
		$("pf_masina_leasing").disabled = false;
		$("pf_niciuna_dintre_acestea").disabled = true;
	} else if ($("pf_niciuna_dintre_acestea").checked) {
		$("pf_pensionar").disabled = true;
		$("pf_deficiente_locomotorii").disabled = true;
		$("pf_masina_leasing").disabled = true;
		$("pf_niciuna_dintre_acestea").disabled = false;
	} else {
		$("pf_pensionar").disabled = false;
		$("pf_deficiente_locomotorii").disabled = false;
		$("pf_masina_leasing").disabled = false;
		$("pf_niciuna_dintre_acestea").disabled = false;
	}
}

function AfiseazaLeasingDeficientePensionar_PF () {
	var info_PF = "";
	
	if ($("pf_pensionar").checked) 
		info_PF += '<br/>- pensionar';
	
	if ($("pf_deficiente_locomotorii").checked) 
		info_PF += '<br/>- deficiente locomotorii';
	
	if ($("pf_masina_leasing").checked) 
		info_PF += '<br/>- masina in leasing';
	
	if ($("pf_niciuna_dintre_acestea").checked) 
		info_PF += '<br/>- niciuna dintre acestea';
	
	SeteazaValoare('pf_leasing_deficiente_pensionar', info_PF);
	
}


// pf-03 data-intrarii-valabilitate
function dateChanged_PF(calendar) {
	var set_value = document.getElementById("pf_data_intrarii_valabilitate");
	
	if (set_value) {
		// setam valoarea campului hidden din formular 
		set_value.value = calendar.currentDate.print('%d/%m/%Y');
		
		// afisam data selectata in layerul restrans
		SeteazaValoare('pf_data_intrarii_valabilitate', calendar.currentDate.print('%d/%m/%Y'));
		
		// restrangem layerul curent si afisam layerul urmator
		Restrange('ajax_pf_data_intrarii_valabilitate', 'ajax_pf_perioada_valabilitate', '_inc_ajax_pas1.php?url=pf-04-perioada-valabilitate');
		
		// populam selectul pentru perioada de valabilitate cu campurile corespunzatoare 
		// in functie de selectia facuta in campul "stare vehicul"
		genereazaPerioadaValabilitate ('pf_camp_stare_vehicul', 'pf_perioada_valabilitate');
		
		// afisam caseta cu asiguratorii ramasi
		AfiseazaAsiguratori('pf', 0);
		
		// schimbam procentul in bara de stare
		AfiseazaBaraStare (3);
		
		
	}
};


// pf-04 perioada-valabilitate 
// functia este utilizata pentru cele 3 optiuni din formular pentru PF, PJPF, PJPJ
function genereazaPerioadaValabilitate (id_camp_stare_vehicul, id_camp_perioada_valabilitate) {
	// daca vehiculul este "inmatriculat" sau "inregistrat" nu adaugam optiunea "1 luna"
	if ($(id_camp_stare_vehicul) != null) {
		if ($(id_camp_stare_vehicul).value == 'inmatriculat' || $(id_camp_stare_vehicul).value == 'inregistrat') {
			$(id_camp_perioada_valabilitate).options[0]=new Option("6 luni", "6", true, false);
			$(id_camp_perioada_valabilitate).options[1]=new Option("12 luni", "12", false, false);
			//$(id_camp_perioada_valabilitate).options[2]=null;
		} else {
			//$(id_camp_perioada_valabilitate).options[0]=new Option("1 luna", "1", true, false);
			$(id_camp_perioada_valabilitate).options[0]=new Option("6 luni", "6", true, false);
			$(id_camp_perioada_valabilitate).options[1]=new Option("12 luni", "12", false, false);
		}
	}
}


// genereaza campurile OPTION in select-ul cu categorii astfel:
// - daca este vehicul inregistrat sau in vederea inregistrarii afisam doar categoria "motorcicluri"
// - daca este vehicul inmatriculat sau in vederea inmatricularii afisam celelalte categorii
function GenereazaCategorii (nume_camp, id_select_populat) {
	$(id_select_populat).innerHTML = "";
	
	if ($(nume_camp).value == "inregistrat" || $(nume_camp).value == "in vederea inregistrarii") {
		var opt = document.createElement('option');
		opt.text = "Motocicluri inregistrate la primarie";
		opt.value = "motocicluri";
		$(id_select_populat).options.add(opt);
	} else {
		var opt = document.createElement('option');
		opt.text = "Autoturisme, inclusiv autoturisme de teren";
		opt.value = "autoturisme";
		$(id_select_populat).options.add(opt);
		
		var opt = document.createElement('option');
		opt.text = "Alte autovehicule: autoutilitare, autofurgonete";
		opt.value = "alte autovehicule";
		$(id_select_populat).options.add(opt);
		
		var opt = document.createElement('option');
		opt.text = "Autovehicule pentru transport";
		opt.value = "autovehicule transport";
		$(id_select_populat).options.add(opt);
		
		var opt = document.createElement('option');
		opt.text = "Motociclete, scutere, ATV-uri";
		opt.value = "motociclete, scuter, atv";
		$(id_select_populat).options.add(opt);
		
		var opt = document.createElement('option');
		opt.text = "Remorci / semiremorci";
		opt.value = "remorci / semiremorci";
		$(id_select_populat).options.add(opt);
		
		var opt = document.createElement('option');
		opt.text = "Tractoare rutiere";
		opt.value = "tractoare rutiere";
		$(id_select_populat).options.add(opt);
	} 
}


// pf-06 subcategorie
// afiseaza campurile pentru subcategorie in functie de tipul de categoria autovehiculului
function AfiseazaSubcategorie (id_camp_categorie, id_optiune_camp_subcategorie) {
	
	// alert ("daca scot alert-ul nu afiseaza numele subcategoriei.");
	
	// in functie de categoria selectata anterior sa ca completa automat unul din campurile:
	// "capacitate cilindrica", "masa maxima", sau "Numar persoane".
	if ($(id_camp_categorie) != null) {
		if ($(id_camp_categorie).value == 'autoturisme' || $(id_camp_categorie).value == 'motociclete, scuter, atv' || $(id_camp_categorie).value == 'motocicluri') {
			$(id_optiune_camp_subcategorie).innerHTML = 'Capacitate cilindrica (cmc)' + 
														 '<img src="poze/formular/inf2.gif" width="12" height="12" border="0" onMouseOver="return overlib(\'<img src=talon/5.gif>\',WRAP, VAUTO)"  onMouseOut="return nd()" vspace="2" hspace="3" align="absmiddle">';
		} else if ($(id_camp_categorie).value == 'alte autovehicule' || $(id_camp_categorie).value == 'autotractoare') {
			$(id_optiune_camp_subcategorie).innerHTML = 'Masa maxima (Kg)';
		} else if ($(id_camp_categorie).value == 'autovehicule transport') {
			$(id_optiune_camp_subcategorie).innerHTML = 'Numar persoane';
		} else if ($(id_camp_categorie).value == 'remorci / semiremorci') {
			$(id_optiune_camp_subcategorie).innerHTML = 'Masa (Kg)';
		} else if ($(id_camp_categorie).value == 'tractoare rutiere') {
			$(id_optiune_camp_subcategorie).innerHTML = 'Cilindree (CP)';
		}
	}
}


// pf-07 utilizare
// daca starea autovehiculului este "inregistrat" sau "inmatriculat", 
// pasul urmator este "bonus malus", altfel pasul urmator este "judet".
function AfiseazaCampulUrmatorDupaUtilizare_PF (id_camp_verificat) {
	if ($(id_camp_verificat) != null) {
		if ($(id_camp_verificat).value == 'inmatriculat' || $(id_camp_verificat).value == 'inregistrat') {
			Restrange('ajax_pf_utilizare', 'ajax_pf_bonusmalusnou', '_inc_ajax_pas1.php?url=pf-08-bonusmalusnou');
		} else {
			Restrange('ajax_pf_utilizare', 'ajax_pf_judet', '_inc_ajax_pas1.php?url=pf-09-judet');
		}
	}
}


// pf-09 judet
function AfiseazaLocalitatePF () {
	Restrange('ajax_pf_judet', 'ajax_pf_localitate', '_inc_ajax_pas1.php?url=pf-10-localitate');
	
	// afisez layerul cu localitatea
	$('container_pf_localitate').style.display = 'block';
	$('container_pf_localitate').style.visibility = 'visible';
	
	// populam selectul "pf_localitate" cu localitatile din judetul selectat
	PopuleazaSelectLocalitati('pf_judet', 'pf_localitate');
}


// pf-11 varsta si cnp
// verificam daca "cnp" are 13 caractere, apoi calculam varsta pe baza anului si a lunii din CNP 
function VerificaCNP_PF () {
	if ($('pf_cnp').value.length != 13) {
		alert ("Campul 'CNP' trebuie sa aiba 13 caractere.");
	} else {
		// extram anul, luna si ziua din CNP, apoi calculam varsta
		var cnp = $('pf_cnp').value;
		var varsta = CalculeazaVarstaDinCNP (cnp);
		
		// setez varsta pentru campul hidden din formular
		$('pf_varsta').value = varsta;
		
		SeteazaValoare('pf_cnp', 'CNP ' + $('pf_cnp').value + '<br>Varsta ' + varsta + ' ani');
		Restrange('ajax_pf_cnp', 'ajax_pf_serie_sasiu', '_inc_ajax_pas1.php?url=pf-12-serie-sasiu');
		AfiseazaPret(3);
		AfiseazaAsiguratori('pf', 3);
		AfiseazaBaraStare(8);
	}
}

// pf-12 serie sasiu
// verificam daca "seria sasiu" are intre 5 si 17 caractere, 
function VerificaSerieSasiu_PF () {
	if ($('pf_serie_sasiu').value.length < 5 || $('pf_serie_sasiu').value.length > 17) {
		alert ("Campul 'Serie sasiu' trebuie sa aiba intre 5 si 17 caractere.");
	} else {
		SeteazaValoare('pf_serie_sasiu', 'Serie sasiu<img src="poze/formular/inf2.gif" width="12" height="12" border="0" onMouseOver="return overlib(\'<img src=talon/2.gif>\',WRAP, VAUTO)"  onMouseOut="return nd()" vspace="2" hspace="3" align="absmiddle"> ' + $('pf_serie_sasiu').value); 
		Restrange('ajax_pf_serie_sasiu', 'ajax_pf_marca_auto', '_inc_ajax_pas1.php?url=pf-13-marca-auto');
		AfiseazaPret(4);
		AfiseazaAsiguratori('pf', 4);
		AfiseazaBaraStare(9);
	}
}


// pj-02 leasing-deficiente-pensionar
function VerificaLeasingDeficientePensionar_PJPF () {
	// Daca bifeaza 'niciuna', celelalte nu mai pot fi bifate. 
	// Daca bifeaza una din celelalte 3 optiuni, 'niciuna' nu mai poate fi bifata.
	if ($("pj_pensionar_pf").checked || $("pj_deficiente_locomotorii_pf").checked || $("pj_masina_leasing_pf").checked) {
		$("pj_pensionar_pf").disabled = false;
		$("pj_deficiente_locomotorii_pf").disabled = false;
		$("pj_masina_leasing_pf").disabled = false;
		$("pj_niciuna_dintre_acestea_pf").disabled = true;
	} else if ($("pj_niciuna_dintre_acestea_pf").checked) {
		$("pj_pensionar_pf").disabled = true;
		$("pj_deficiente_locomotorii_pf").disabled = true;
		$("pj_masina_leasing_pf").disabled = true;
		$("pj_niciuna_dintre_acestea_pf").disabled = false;
	} else {
		$("pj_pensionar_pf").disabled = false;
		$("pj_deficiente_locomotorii_pf").disabled = false;
		$("pj_masina_leasing_pf").disabled = false;
		$("pj_niciuna_dintre_acestea_pf").disabled = false;
	}
}

function AfiseazaLeasingDeficientePensionar_PJ_PF () {
	var info_PJ_PF = "";
	
	if ($("pj_pensionar_pf").checked) {
		info_PJ_PF += '<br/>- pensionar';
	}
	if ($("pj_deficiente_locomotorii_pf").checked) {
		info_PJ_PF += '<br/>- deficiente locomotorii';
	}
	if ($("pj_masina_leasing_pf").checked) {
		info_PJ_PF += '<br/>- masina in leasing';
	}
	
	if ($("pj_niciuna_dintre_acestea_pf").checked) 
		info_PJ_PF += '<br/>- niciuna dintre acestea';
	
	SeteazaValoare('pj_leasing_deficiente_pensionar_pf', info_PJ_PF);
}


// pj-04 data-intrarii-valabilitate
function dateChanged_PJPF(calendar) {
	var set_value = document.getElementById("pj_data_intrarii_valabilitate_pf");
	
	if (set_value) {
		// setam valoarea campului hidden din formular 
		set_value.value = calendar.currentDate.print('%d/%m/%Y');
		
		// afisam data selectata in layerul restrans
		SeteazaValoare('pj_data_intrarii_valabilitate_pf', calendar.currentDate.print('%d/%m/%Y'));
		
		// restrangem layerul curent si afisam layerul urmator
		Restrange('ajax_pj_data_intrarii_valabilitate_pf', 'ajax_pj_perioada_valabilitate_pf', '_inc_ajax_pas1.php?url=pj-05-perioada-valabilitate');
		
		// populam selectul pentru perioada de valabilitate cu campurile corespunzatoare 
		// in functie de selectia facuta in campul "stare vehicul"
		genereazaPerioadaValabilitate ('pj_camp_stare_vehicul_pf', 'pj_perioada_valabilitate_pf');
		
		AfiseazaAsiguratori('pj_pf', 0);

		AfiseazaBaraStare(3);
	}
}


// pj-08 utilizare
// daca starea autovehiculului este "inregistrat" sau "inmatriculat", 
// pasul urmator este "bonus malus", altfel pasul urmator este "judet".
function AfiseazaCampulUrmatorDupaUtilizare_PJPF (id_camp_verificat) {
	if ($(id_camp_verificat) != null) {
		if ($(id_camp_verificat).value == 'inmatriculat' || $(id_camp_verificat).value == 'inregistrat') {
			Restrange('ajax_pj_utilizare_pf', 'ajax_pj_bonusmalusnou_pf', '_inc_ajax_pas1.php?url=pj-09-bonusmalusnou');
		} else {
			Restrange('ajax_pj_utilizare_pf', 'ajax_pj_judet_pf', '_inc_ajax_pas1.php?url=pj-10-judet');
		}
	}
}


// pj-10 judet
function AfiseazaLocalitatePJPF (judet) {
	Restrange('ajax_pj_judet_pf', 'ajax_pj_localitate_pf', '_inc_ajax_pas1.php?url=pj-11-localitate');
	
	// afisez layerul cu localitatea
	$('container_pj_localitate_pf').style.display = 'block';
	$('container_pj_localitate_pf').style.visibility = 'visible';
	
	// populam selectul "pj_localitate_pf" cu localitatile din judetul selectat
	PopuleazaSelectLocalitati('pj_judet_pf', 'pj_localitate_pf');
}


// pf-12 varsta si cnp
// verificam daca "cnp" are 13 caractere, apoi calculam varsta pe baza anului si a lunii din CNP 
function VerificaCNP_PJPF () {
	if ($('pj_cnp_pf').value.length != 13) {
		alert ("Campul 'CNP' trebuie sa aiba 13 caractere.");
	} else {
		// extram anul, luna si ziua din CNP, apoi calculam varsta
		var cnp = $('pj_cnp_pf').value;
		var varsta = CalculeazaVarstaDinCNP (cnp);
		
		// setez varsta pentru campul hidden din formular
		$('pj_varsta_pf').value = varsta;
		
		SeteazaValoare('pj_cnp_pf', 'CNP ' + $('pj_cnp_pf').value + '<br>Varsta ' + varsta + ' ani');
		// $('optiune_pf_cnp').innerHTML = ;
		Restrange('ajax_pj_cnp_pf', 'ajax_pj_serie_sasiu_pf', '_inc_ajax_pas1.php?url=pj-13-serie_sasiu');
		AfiseazaPret(3);
		AfiseazaAsiguratori('pf', 3);
		AfiseazaBaraStare(8);
	}
}

// pj-13 serie sasiu
// verificam daca "seria sasiu" are intre 5 si 17 caractere, 
function VerificaSerieSasiu_PJPF () {
	if ($('pj_serie_sasiu_pf').value.length < 5 || $('pj_serie_sasiu_pf').value.length > 17) {
		alert ("Campul 'Serie sasiu' trebuie sa aiba intre 5 si 17 caractere.");
	} else {
		SeteazaValoare('pj_serie_sasiu_pf', 'Serie sasiu<img src="poze/formular/inf2.gif" width="12" height="12" border="0" onMouseOver="return overlib(\'<img src=talon/2.gif>\',WRAP, VAUTO)"  onMouseOut="return nd()" vspace="2" hspace="3" align="absmiddle"> ' + $('pj_serie_sasiu_pf').value); 
		Restrange('ajax_pj_serie_sasiu_pf', 'ajax_pj_marca_auto_pf', '_inc_ajax_pas1.php?url=pj-14-marca-auto');
		AfiseazaPret(4);
		AfiseazaAsiguratori('pf', 4);
		AfiseazaBaraStare(9);
	}
}


// pj-24 data-intrarii-valabilitate
function dateChanged_PJPJ(calendar) {
	var set_value = $("pj_data_intrarii_valabilitate_pj");
	
	if (set_value) {
		// setam valoarea campului hidden din formular 
		set_value.value = calendar.currentDate.print('%d/%m/%Y');
		
		// afisam data selectata in layerul restrans
		SeteazaValoare('pj_data_intrarii_valabilitate_pj', calendar.currentDate.print('%d/%m/%Y'));
		
		// restrangem layerul curent si afisam layerul urmator
		Restrange('ajax_pj_data_intrarii_valabilitate_pj', 'ajax_pj_perioada_valabilitate_pj', '_inc_ajax_pas1.php?url=pj-25-perioada-valabilitate');
		
		// populam selectul pentru perioada de valabilitate cu campurile corespunzatoare 
		// in functie de selectia facuta in campul "stare vehicul"
		genereazaPerioadaValabilitate ('pj_camp_stare_vehicul_pj', 'pj_perioada_valabilitate_pj');

		AfiseazaAsiguratori('pj_pj', 0);
		AfiseazaBaraStare(3);
	}
};


// pj-28 judet
function AfiseazaLocalitatePJPJ (judet) {
	Restrange('ajax_pj_judet_pj', 'ajax_pj_localitate_pj', '_inc_ajax_pas1.php?url=pj-29-localitate');
	
	// afisez layerul cu localitatea
	$('container_pj_localitate_pj').style.display = 'block';
	$('container_pj_localitate_pj').style.visibility = 'visible';
	
	// populam selectul "pj_localitate_pj" cu localitatile din judetul selectat
	PopuleazaSelectLocalitati('pj_judet_pj', 'pj_localitate_pj');
}


// pj-29 localitate
// daca starea autovehiculului este "inregistrat" sau "inmatriculat", 
// pasul urmator este "bonus malus", altfel pasul urmator este "marca auto".
function AfiseazaCampulUrmatorDupaLocalitate_PJPJ (id_camp_verificat) {
	if ($(id_camp_verificat) != null) {
		if ($(id_camp_verificat).value == 'inmatriculat' || $(id_camp_verificat).value == 'inregistrat') {
			Restrange('ajax_pj_localitate_pj', 'ajax_pj_bonus_malus_pj', '_inc_ajax_pas1.php?url=pj-30-bonus-malus');
		} else {
			Restrange('ajax_pj_localitate_pj', 'ajax_pj_marca_auto_pj', '_inc_ajax_pas1.php?url=pj-35-marca-auto');
		}
	}
}


// pj-34 serie sasiu
// verificam daca "seria sasiu" are intre 5 si 17 caractere, 
function VerificaSerieSasiu_PJPJ () {
	if ($('pj_serie_sasiu_pj').value.length < 5 || $('pj_serie_sasiu_pj').value.length > 17) {
		alert ("Campul 'Serie sasiu' trebuie sa aiba intre 5 si 17 caractere.");
	} else {
		SeteazaValoare('pj_serie_sasiu_pj', 'Serie sasiu<img src="poze/formular/inf2.gif" width="12" height="12" border="0" onMouseOver="return overlib(\'<img src=talon/2.gif>\',WRAP, VAUTO)"  onMouseOut="return nd()" vspace="2" hspace="3" align="absmiddle"> ' + $('pj_serie_sasiu_pj').value); 
		Restrange('ajax_pj_serie_sasiu_pj', '', '');
		AfiseazaPret(5);
		showHide('container_afiseaza_tarife_ext', 'ascunde');
		AfiseazaBaraStare(10);
	}
}




function getWindowHeight() {
    if (document.compatMode == 'CSS1Compat' && !window.opera) {
      // Strict Mode && Non Opera
      return document.documentElement.clientHeight;
    } else if (navigator.userAgent.indexOf('AppleWebKit') != -1){
      // Safari
      return window.innerHeight;
    } else {
      // other
      return document.body.clientHeight;
    }
}

// functia intoarce numarul de linii care estimam ca au loc pe ecran in f de rezolutie.
// am alocat 100px pe inaltime pentru fiecare asigurator
function getNrRezultateVizibile () {
	var height = getWindowHeight ();
	if (height < 140) return 1;
	if (height < 240) return 2;
	if (height < 340) return 3;
	if (height < 440) return 4;
	if (height < 540) return 5;
	if (height < 640) return 6;
	if (height < 740) return 7;
	return 8;
}


// calculeaza varsta din CNP. functia primeste ca argument CNP-ul
function CalculeazaVarstaDinCNP (cnp) {
	var an = cnp.substring(1, 3);
	var luna = cnp.substring(3, 5);
	var zi = cnp.substring(5, 7);
	
	// formatam cu 4 cifre anul citit din CNP, in functie de prima cifra din CNP
	var primaCifraCNP = cnp.substring(0,1);
	an = FormateazaAnulDinCNP (primaCifraCNP, an);
	
	var dataNasterii = zi + '/' + luna + '/' + an;
	
	now = new Date();
	bD = dataNasterii.split ('/');
	if (bD.length==3) {
		born = new Date(bD[2], bD[1]*1-1, bD[0]);
		varsta = Math.floor((now.getTime() - born.getTime()) / (365.25 * 24 * 60 * 60 * 1000));
		return varsta;
	}
}


// formatam cu 4 cifre anul citit din CNP, in functie de prima cifra din CNP
// 1 / 2 - nascuti intre 1 ianuarie 1900 si 31 decembrie 1999
// 3 / 4 - nascuti intre 1 ianuarie 1800 si 31 decembrie 1899
// 5 / 6 - nascuti intre 1 ianuarie 2000 si 31 decembrie 2099
// 7 / 8 - pentru personale straine rezidente in Romania.
// 9 - pentru persoanele straaine.
function FormateazaAnulDinCNP (primaCifraCNP, an) {
	if (primaCifraCNP >= 1 && primaCifraCNP <= 2) {
		varsta_an = (an * 1) + 1900;
	} else if (primaCifraCNP >= 3 && primaCifraCNP <= 4) {
		varsta_an = (an * 1) + 1800;
	} else if (primaCifraCNP >= 5 && primaCifraCNP <= 6) {
		varsta_an = (an * 1) + 2000;
	} else if (primaCifraCNP >= 7 && primaCifraCNP <= 9) {
		// persoanele straine nu stim cand sunt nascute in functie de prima cifra asa ca ii consideram nascuti intre 1900-1999
		varsta_an = (an * 1) + 1900;
	}
	return varsta_an;
}


// Get URL Parameters
// An easy way to parse the query string in your URL to grab certain values.
function gup (name) {
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}