// in acest fisier pun diverse functii utile pentru refresh-ul interfetei

/**
 * functie generica pentru a incarca o rubrica
 */
function genericLoad(divAfis, url, msg, sendMethod)
{   	
  var objA = document.getElementById(divAfis);
  
  objA.innerHTML = "";
  objA.innerHTML = msg;
  
  /**
   * in continuare incarcare prin ajax
   */
   dojo.io.bind({
				  url: url,
				  method: sendMethod,
				  load: function(type, data, evt) {objA.innerHTML = data;},
				  error: function(type, error) {objA.innerHTML = error.message;},
				  mimetype: "text/html"
				});
   
   return true;
}
function genericLoadCuTrigger(divAfis, url, msg, sendMethod, fct)
{   	
  var objA = document.getElementById(divAfis);
  
  objA.innerHTML = "";
  objA.innerHTML = msg;
  
  /**
   * in continuare incarcare prin ajax
   */
   dojo.io.bind({
				  url: url,
				  method: sendMethod,
				  load: function(type, data, evt) {objA.innerHTML = data;
				  								   eval(fct);
				   								  },
				  error: function(type, error) {objA.innerHTML = error.message;},
				  mimetype: "text/html"
				});
   
   return true;
}


/**
 * metoda folosita pentru a ascunde/arata un anumit div specificat
 */
function hideElement(visible, elem)
{
	var obj = document.getElementById(elem);
   	if(visibile)
	  obj.style.visibility = "hidden";
	else obj.style.visibility = "visible";
} 


/**
 * metoda folosita pentru a activa/dezactiva un element
 */
function disableElement(disabled, elem)
{
   var obj = document.getElementById(elem);	
   
   obj.disabled = disabled;
}

/**
 * metoda folosita pentru a dezactiva un obiect
 */
function disableObject(disabled, obj)
{
   obj.disabled = disabled;	
}



/**
 * metoda folosita pentru a incarca subcategoriile
 * accepta un sg parametru:
 * se indica daca randez ca select sau nu
 */
function loadSubcategoriiGeneric(id, selectField, divAfis)
{
   var url = "pages/loadSubcategorii.php";
   
   url+="?id=" + id + "&select=" + selectField; 
   if(id > 0)
     genericLoad(divAfis, url, messages.msgLoadSubcategorii, "GET");
   else document.getElementById(divAfis).innerHTML = "";
}
function loadSubcategorii()
{
   var frm = document.getElementById("frmCautareRecreatie");	
   var divAfis = "divAfisListaSubcategorii";
   var sel = frm.RID;
   var id = sel.options[sel.selectedIndex].value;

   loadSubcategoriiGeneric(id, false, divAfis);
}
function loadSubcategoriiSelect(id, divAfis)
{
   loadSubcategoriiGeneric(id, true, divAfis);	
}


/**
 * metoda folosita pentru a incarca pagina home
 */
function loadHomePage()
{
   var url = "pages/home.php";	
   var divAfis = "divAfisContinut";
   
   genericLoad(divAfis, url, messages.msgLoadActivitati, "GET");
}


/**
 * functie folosita pentru a realiza cautarea
 */
function searchAttraction(rsid)
{
    var frm = document.getElementById("frmCautareRecreatie");	
	
	var selP = frm.PID;
	var pid = selP.options[selP.selectedIndex].value;
	var selPS = frm.PSID;
	var psid = selPS.options[selPS.selectedIndex].value;
	var selRID = frm.RID;
	var rid = selRID.options[selRID.selectedIndex].value;

	searchAttractionGeneric(pid, psid, rid, rsid);
}
/**
 * metoda generica de cautare a unei atractii
 */
function searchAttractionGeneric(pid, psid, rid, rsid)
{
    var url = "pages/selectie.php?pid=" + pid + "&psid=" + psid + "&rid=" + rid + "&rsid=" + rsid;
	var destDiv = "divAfisContinut";
	var objA = document.getElementById(destDiv);
	
	objA.innerHTML = messages.msgSearch;
	
	/**
	 * in continuare incarc macheta pe mai multe pagini
	 */
	dojo.io.bind({url: url,
				  load: function(type, data, evt) {
					    							  /**
													   * aici construiesc layout de pagini multiple
													   */
					   								  layoutMultiple = new MultiplePagesLayout();
													  layoutMultiple.init();
													  var d = data.split('---@');
													  var nrPagini = eval(d[0]);
													  var nrClienti = eval(d[1]);
													  
													  layoutMultiple.setNrPoze(nrClienti);
													  
													  for(i = 2; i < nrPagini + 2; i++)
														layoutMultiple.addPage(d[i]);  
													
													  /**
													   * in continuare preiau butoanele
													   */
													  var buttons = d[nrPagini + 2];
													  												  
													  /**
													   * aici pregatesc ceea ce vreau sa afisez
													   */
													  var s = "<div id='divAfisTitluCautare'></div><div id='divAfisPagini'></div>" + buttons;
													  objA.innerHTML = s;			
													  layoutMultiple.setDivAfisTitlu('divAfisTitluCautare');
													  layoutMultiple.setDivAfisPages('divAfisPagini');	
													  layoutMultiple.setDivButtonB('divButtonBackward');
													  layoutMultiple.setDivButtonF('divButtonForward');
													  layoutMultiple.nextPage();					 								
				 								  },
      			  error: function(type, error) {objA.innerHTML = error.message;},
				  mimetype: "text/html"
				 });	
}


/**
 * functie apelata in momentul in care incarc informatiile despre un client
 */
function loadClientDetail(id)
{
   var url = "pages/vermelding.php?ad_id=" + id;
   var divAfis = "divAfisContinut";
   var objA = document.getElementById(divAfis);
   
   oldPage = objA.innerHTML;
   
   genericLoad(divAfis, url, messages.msgLoadClient, "GET");
}


/**
 * functii folosite pentru a putea sa ne deplasam inainte si inapoi in site
 */
/**
 * functie apelata pentru a afisa pagina precedenta
 */
function showLastPage(divMsg)
{
	if(oldPage.length > 0)
    	document.getElementById(divMsg).innerHTML = oldPage;

	layoutMultiple.setDivAfisPages("divAfisPagini");
	layoutMultiple.setDivButtonB("divButtonBackward");
	layoutMultiple.setDivButtonF("divButtonForward");	
}


/**
 * functie folosita pentru a valida formularul unui client
 */
function mailClient_Validator(theForm)
{

  if (theForm.Naam.value == "")
  {
    alert("Geef een waarde voor het veld Naam op.");
    theForm.Naam.focus();
    return (false);
  }

  if (theForm.Naam.value.length < 2)
  {
    alert("Geef ten minste 2 tekens in het veld Naam op.");
    theForm.Naam.focus();
    return (false);
  }

  if (theForm.Adres.value == "")
  {
    alert("Geef een waarde voor het veld Adres op.");
    theForm.Adres.focus();
    return (false);
  }

  if (theForm.Adres.value.length < 2)
  {
    alert("Geef ten minste 2 tekens in het veld Adres op.");
    theForm.Adres.focus();
    return (false);
  }

  if (theForm.Postcode.value == "")
  {
    alert("Geef een waarde voor het veld Postcode op.");
    theForm.Postcode.focus();
    return (false);
  }

  if (theForm.Postcode.value.length < 4)
  {
    alert("Geef ten minste 4 tekens in het veld Postcode op.");
    theForm.Postcode.focus();
    return (false);
  }

  if (theForm.Postcode.value.length > 4)
  {
    alert("Geef maximaal 4 tekens op in het veld Postcode.");
    theForm.Postcode.focus();
    return (false);
  }

  var checkOK = "0123456789-.";
  var checkStr = theForm.Postcode.value;
  var allValid = true;
  var decPoints = 0;
  var allNum = "";
  for (i = 0;  i < checkStr.length;  i++)
  {
    ch = checkStr.charAt(i);
    for (j = 0;  j < checkOK.length;  j++)
      if (ch == checkOK.charAt(j))
        break;
    if (j == checkOK.length)
    {
      allValid = false;
      break;
    }
    if (ch != ".")
      allNum += ch;
  }
  if (!allValid)
  {
    alert("Geef slechts cijfer tekens op in het veld Postcode.");
    theForm.Postcode.focus();
    return (false);
  }

  if (theForm.Plaats.value == "")
  {
    alert("Geef een waarde voor het veld Plaats op.");
    theForm.Plaats.focus();
    return (false);
  }

  if (theForm.Plaats.value.length < 2)
  {
    alert("Geef ten minste 2 tekens in het veld Plaats op.");
    theForm.Plaats.focus();
    return (false);
  }

  if (theForm.Telefoon.value == "")
  {
    alert("Geef een waarde voor het veld Telefoon op.");
    theForm.Telefoon.focus();
    return (false);
  }

  if (theForm.Telefoon.value.length < 10)
  {
    alert("Geef ten minste 10 tekens in het veld Telefoon op.");
    theForm.Telefoon.focus();
    return (false);
  }

  if (theForm.Email.value == "")
  {
    alert("Geef een waarde voor het veld Email op.");
    theForm.Email.focus();
    return (false);
  }

  if (theForm.Email.value.length < 6)
  {
    alert("Geef ten minste 6 tekens in het veld Email op.");
    theForm.Email.focus();
    return (false);
  }

  if (theForm.Vraag.value == "")
  {
    alert("Geef een waarde voor het veld Vraag op.");
    theForm.Vraag.focus();
    return (false);
  }

  if (theForm.Vraag.value.length < 2)
  {
    alert("Geef ten minste 2 tekens in het veld Vraag op.");
    theForm.Vraag.focus();
    return (false);
  }
  return (true);
}


/**
 * functie folosita pentru a trimite formularul clientului pe email
 */
function emailToCompany(divMsg, msg)
{
	var url = "pages/mailClient.php";
  	var frm = document.getElementById("frmEmailClientView");
    	
	if(!mailClient_Validator(frm))
	  return;
	
	url += "?id=" + frm.suggestie.value + "&Naam=" + frm.Naam.value + "&Adres=" + frm.Adres.value + "&Postcode=" + frm.Postcode.value + "&Postcode_2=" + frm.Postcode_2.value + "&Plaats=" + frm.Plaats.value + "&Telefoon=" + frm.Telefoon.value + "&Email=" + frm.Email.value + "&Vraag=" + frm.Vraag.value;
	
	genericLoad(divMsg, url, msg, "post");
}



/**
 * functie folosita pentru a incarca rubrica de contact
 */
function loadContact()
{
   var url = "pages/contact.php";
   var destDiv = "divAfisContinut";
   
   genericLoad(destDiv, url, messages.msgIncarcareContact, "GET");
}


/**
 * functie folosita pentru a incarca rubrica de uitleg
 */
function loadUitleg()
{
   var url = "pages/uitleg.php";
   var destDiv = "divAfisContinut";
   
   genericLoad(destDiv, url, messages.msgIncarcareUitleg, "GET");
}

/**
 * functie folosita pentru a incarca rubrica de adverteren
 */
function loadAdverteren()
{
   var url = "pages/adverteren.php";
   var destDiv = "divAfisContinut";
   
   genericLoad(destDiv, url, messages.msgIncarcareAdverteren, "GET");			 
}


/**
 * functie folosita pentru a incarca modulul de reclama
 */
function prepareAanmeldenSteps()
{
   var url = "pages/aanmelden.php";
   var destDiv = "divAfisContinut";
	
   dojo.io.bind({url: url,
				 load: function(type, data, evt) {layoutAanmelden.setProps(4, "divAanmelden");},
				 error: function(type, error) {document.getElementById(destDiv).innerHTML = error.message;},
				 mimetype: "text/html"});   	   	
}
function loadAanmelden()
{
   var url = "pages/aanmelden.php";
   var destDiv = "divAfisContinut";
   
   genericLoadCuTrigger(destDiv, url, messages.msgLoadAnnounceModule, "GET", "prepareAanmeldenSteps()");   
}


/**
 * functie folosita pentru a realiza cautarea oraselor din baza de date
 */
function cautareOrase()
{
   var url = "pages/zoekplaats.php";
   var frm = document.getElementById("frmCautarePlaats");
   var city = frm.zoekplaats.value;
   var destDiv = "divAfisContinut";
   
   url+="?city=" + city;
   
   genericLoad(destDiv, url, messages.msgSearchOrase, "GET");
}


/**
 * functie apelata in momentul in care incarc site-ul
 * accepta id-ul unei reclame. Daca acest id este -1 fac o incarcare normala de site
 */
function initSite(id)
{
  loadLocations();
  loadLocationsRaw();
  
  if(id == -1)
    loadHomePage();
  else loadClientDetail(id);
	
  disableElement(true, "PSID");
}

function selecttion() {
	if (document.frmCautareRecreatie.PID.value>0 || document.frmCautareRecreatie.RID.value>0) document.frmCautareRecreatie.submit(); 
}
