var xmlhttp;
var dove = '';
var cosa = '';
var azienda = '';
var ric_av_azienda = '';
var ric_av_jobtitle = '';
var funzione = '';
var settore = '';
var catlist = '';
var place_info = '';
var globcampo = '';
var timSugg;

function showHint(campo,obj){

	globcampo = campo;
	
	var box = document.getElementById('box');
	var box2 = document.getElementById('box2');
	var box3 = document.getElementById('box3');
	var box4 = document.getElementById('box4');
	var suggestion = document.getElementById('suggestion');
	var psuggestion = document.getElementById('psuggestion');
	var asuggestion = document.getElementById('asuggestion');
	var ric_av_asuggestion = document.getElementById('ric_av_asuggestion');
	
	cosa = getLast(document.getElementById('cosa').value);
	dove = getLast(document.getElementById('dove').value);
        
        if (obj){
            if (obj.getAttribute("id")=="cosa" && cosa.length<=2) {document.getElementById('box').style.display="none";clearTimeout(timSugg);return;}
            if (obj.getAttribute("id")=="dove" && dove.length<=2) {document.getElementById('box2').style.display="none";clearTimeout(timSugg);return;}
        }                     
        /*
	funzione = document.getElementById('funzione').value;
	settore = document.getElementById('settore').value;
	place_info = document.getElementById('place_info').value;    
        */
	azienda = document.getElementById('cerca_azienda') != null ? getLast(document.getElementById('cerca_azienda').value) : '';
	ric_av_azienda = document.getElementById('i193') != null ? getLast(document.getElementById('i193').value) : '';
	ric_av_jobtitle = document.getElementById('i203') != null ? getLast(document.getElementById('i203').value) : '';


    //catlist = getCatList();

    if( campo == 'cosa' || campo == 'funzione' || campo == 'settore' || campo == 'categorie'){
    var url="/include_hrweb/type_suggestion_module/mods_container/type_suggestion_wizmod/Dispatcher.php?callmode=job";
    url=url+"&cosa="+cosa;
    url=url+"&dove="+dove;
   
    url=url+"&funzione=all_funct"+funzione;
    url=url+"&settore=all_sett"+settore;
    url=url+"&place_info="+place_info;
    url=url+catlist;
    url=url+"&sid="+Math.random();
    
    }

	if( campo == 'dove'){
    var url="/include_hrweb/type_suggestion_module/mods_container/type_suggestion_wizmod/Dispatcher.php?callmode=place";
    url=url+"&cosa="+cosa;
    url=url+"&dove="+dove;
    url=url+"&funzione=all_funct"+funzione;
    url=url+"&settore=all_sett"+settore;
    url=url+catlist;
    url=url+"&sid="+Math.random();
    }

	if( campo == 'azienda'){
    var url="/include_hrweb/type_suggestion_module/mods_container/type_suggestion_wizmod/Dispatcher.php?callmode=company";
    url=url+"&cerca_azienda="+azienda;
    url=url+"&sid="+Math.random();
    }
    
    if( campo == 'scuola'){
    var url="/include_hrweb/type_suggestion_module/mods_container/type_suggestion_wizmod/Dispatcher.php?callmode=company&tipo=School";
    url=url+"&cerca_azienda="+azienda;
    url=url+"&sid="+Math.random();
    }

	if( campo == 'ric_av_azienda'){
    var url="/include_hrweb/type_suggestion_module/mods_container/type_suggestion_wizmod/Dispatcher.php?callmode=ric_av_company";
    url=url+"&cerca_azienda="+ric_av_azienda;
    url=url+"&sid="+Math.random();
    }

    if( campo == 'ric_av_jobtitle'){
        var url="/include_hrweb/type_suggestion_module/mods_container/type_suggestion_wizmod/Dispatcher.php?callmode=ric_av_jobtitle";
        url=url+"&cerca_jobtitle="+ric_av_jobtitle;
        url=url+"&sid="+Math.random();
    }
    /*
    xmlhttp=GetXmlHttpObject();

    if (xmlhttp==null)
      {
      alert ("Your browser does not support XMLHTTP!");
      return;
      }

    xmlhttp.onreadystatechange=stateChanged;
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null);
    */
    clearTimeout(timSugg);
    choose = obj.getAttribute('id')=="cosa" ? 0 : 1;
    timSugg = setTimeout('SendRequest("'+url+'","'+choose+'")',700);
} // end showHint();

var topcosa = 95;
var topdove = 95;
function SendRequest(url,choose){
    if (choose==0){
        var topul = document.getElementById("ricerca_cosa").clientHeight;
        topul = topul>48 ? topcosa = topcosa+25 : 95;
        document.getElementById("box").style.top=(topul)+"px";
    }else{
        var topul = document.getElementById("ricerca_dove").clientHeight;
        topul = topul>48 ? topdove = topdove+25 : 95;
        document.getElementById("box2").style.top=(topul)+"px";
    }
    xmlhttp=GetXmlHttpObject();

    if (xmlhttp==null){
      alert ("Your browser does not support XMLHTTP!");
      return;
    }

    xmlhttp.onreadystatechange=stateChanged;
    xmlhttp.open("GET",url,true);
    xmlhttp.send(null);
    if (document.getElementById('box').style.display=="none"){
        document.getElementById('box').style.display="block";
    }
    if (document.getElementById('box2').style.display=="none"){
        document.getElementById('box2').style.display="block";
    }
}

count_li = 0;
function creaBoxettino(name,cosa,choose){
    if (choose=='0'){
        if (controllaEsistenzaBoxettino(cosa)) {hide_element("box");return;};
        nodo = document.createElement("li");
        div  = document.createElement("div");
        a    = document.createElement("a");
        input= document.createElement("input");
        nodo.appendChild(document.createTextNode(cosa));
        nodo.className = "boxettino_ricerca";
        //nodo.setAttribute("class","boxettino_ricerca");
        nodo.setAttribute("id","li"+(count_li));
        div.className = "close_boxettino_ricerca";
        //div.setAttribute("style","font-size: 12px; font-weight: bold;position: absolute;top:2px;right:2px");
        a.setAttribute("href","javascript:eliminaBoxettino('li"+(count_li)+"')");
        a.appendChild(document.createTextNode("x"));
        input.setAttribute("name","cosa[]");
        input.setAttribute("type","hidden");
        input.setAttribute("value",cosa);
        div.appendChild(a);
        nodo.appendChild(div);
        nodo.appendChild(input);
    
        document.getElementById("ricerca_cosa").insertBefore(nodo,document.getElementById("input_cosa"));
        document.getElementById("cosa").value = "";
        document.getElementById("cosa").focus();
        hide_element("box");
    }else if (choose=='1'){
        if (controllaEsistenzaBoxettinoDove(cosa)) {hide_element("box2");return;};
        nodo = document.createElement("li");
        div  = document.createElement("div");
        a    = document.createElement("a");
        input= document.createElement("input");
        nodo.appendChild(document.createTextNode(cosa));
        nodo.className = "boxettino_ricerca";        
        nodo.setAttribute("id","li"+(count_li));
        div.className = "close_boxettino_ricerca";        
        a.setAttribute("href","javascript:eliminaBoxettinoDove('li"+(count_li)+"')");
        a.appendChild(document.createTextNode("x"));
        input.setAttribute("name","dove[]");
        input.setAttribute("type","hidden");
        input.setAttribute("value",cosa);
        div.appendChild(a);
        nodo.appendChild(div);
        nodo.appendChild(input);
        
        document.getElementById("ricerca_dove").insertBefore(nodo,document.getElementById("input_dove"));
        document.getElementById("dove").value = "";
        document.getElementById("dove").focus();
        hide_element("box2");
    }
    h1 = document.getElementById("sub_header_left").clientHeight;
    document.getElementById("sub_header_right").style.height = h1+"px";
    count_li++;
}

function eliminaBoxettino(id){
    del   = document.getElementById(id);
    document.getElementById("ricerca_cosa").removeChild(del);
}

function eliminaBoxettinoDove(id){
    del   = document.getElementById(id);
    document.getElementById("ricerca_dove").removeChild(del);
}

function controllaEsistenzaBoxettino(value){
    var box   = document.getElementsByName("cosa[]");
    for (a=0;a<box.length;a++){
        if (value==box[a].value){
            return true;
        }
    }
    return false;
}

function controllaEsistenzaBoxettinoDove(value){
    var box   = document.getElementsByName("dove[]");
    for (a=0;a<box.length;a++){
        if (value==box[a].value){
            return true;
        }
    }
    return false;
}

function GetXmlHttpObject(){
    if (window.XMLHttpRequest)
      {
      // code for IE7+, Firefox, Chrome, Opera, Safari
      return new XMLHttpRequest();
      }
    if (window.ActiveXObject)
      {
      // code for IE6, IE5
      return new ActiveXObject("Microsoft.XMLHTTP");
      }
    return null;
} // end GetXmlHttpObject();


function stateChanged()
{

// G.M.: prendo i riferimenti ai box 
var box = document.getElementById('box');
var suggestion = document.getElementById('suggestion');
var box2 = document.getElementById('box2');
var psuggestion = document.getElementById('psuggestion');
var box3 = document.getElementById('box3');
var asuggestion = document.getElementById('asuggestion');
var box4 = document.getElementById('box4');
var ric_av_asuggestion = document.getElementById('ric_av_asuggestion');

if (xmlhttp.readyState>0  )
  {
	if( globcampo == 'cosa' || globcampo == 'funzione' || globcampo == 'settore' || globcampo == 'categorie') {
	
    if( (box.style.visibility == 'hidden' || box.style.display == 'none')){
        box2.style.visibility = 'hidden'; // chiude div dove
         box.style.visibility = 'visible';
         box.style.display = 'block';

         }
    if( (box.style.visibility == 'visible') && (cosa.length < 1 ) ){
         box.style.visibility = 'hidden';
         //box.style.display = 'none';
         }
		 if (xmlhttp.readyState == 4 && xmlhttp.responseText != "" ) {
			 suggestion.innerHTML = xmlhttp.responseText;
		 }
		 else {
			 // G.M.: visualizzo un'animazione di elaborazione in corso
			 suggestion.innerHTML = "<div class='loading'><img src='gfx/loading.gif'>elaborazione in corso...</div>";
		 }
  }
  
  
  if(globcampo == 'dove'){
     if( (box2.style.visibility == 'hidden' || box2.style.display == 'none')){
              
         box.style.visibility = 'hidden'; // chiude div cosa
         box2.style.visibility = 'visible';
         box2.style.display = 'block';

         }
         if(
         (box2.style.visibility == 'visible') &&
         (dove.length < 1 ) ){
         box2.style.visibility = 'hidden';
         //box2.style.display = 'none';
         }
		 if (xmlhttp.readyState == 4 && xmlhttp.responseText != "" ) {
			 psuggestion.innerHTML = xmlhttp.responseText;
		 }
		 else {
			 // G.M.: visualizzo un'animazione di elaborazione in corso
			 psuggestion.innerHTML = "<div class='loading'><img src='gfx/loading.gif'>elaborazione in corso...</div>";
		 }
  }

  if(globcampo == 'azienda' || globcampo == 'scuola'){

     if( (box3.style.visibility == 'hidden' || box3.style.display == 'none')){
         box3.style.visibility = 'visible';
         box3.style.display = 'block';
         }
         if(
         (box3.style.visibility == 'visible') &&
         (azienda.length < 1 ) ){
         box3.style.visibility = 'hidden';
         //box3.style.display = 'none';
         }
		 if (xmlhttp.readyState == 4 && xmlhttp.responseText != "" ) {
			 asuggestion.innerHTML = xmlhttp.responseText;
		 }
		 else {
			 // G.M.: visualizzo un'animazione di elaborazione in corso
			 asuggestion.innerHTML = "<div class='loading'><img src='gfx/loading.gif'>elaborazione in corso...</div>";
		 }
  }

  if(globcampo == 'ric_av_azienda'){

	 box4.style.top = "111px";
     if( (box4.style.visibility == 'hidden' || box4.style.display == 'none')){
         box4.style.visibility = 'visible';
         box4.style.display = 'block';
         }
         if(
         (box4.style.visibility == 'visible') &&
         (ric_av_azienda.length < 1 ) ){
         box4.style.visibility = 'hidden';
         //box4.style.display = 'none';
         }
		 if (xmlhttp.readyState == 4 && xmlhttp.responseText != "" ) {
			 ric_av_asuggestion.innerHTML = xmlhttp.responseText;
		 }
		 else {
			 // G.M.: visualizzo un'animazione di elaborazione in corso
			 ric_av_asuggestion.innerHTML = "<div class='loading'><img src='gfx/loading.gif'>elaborazione in corso...</div>";
		 }
  }

  if(globcampo == 'ric_av_jobtitle'){

	 box4.style.top = "45px";
     if( (box4.style.visibility == 'hidden' || box4.style.display == 'none')){
         box4.style.visibility = 'visible';
         box4.style.display = 'block';
         }
         if(
         (box4.style.visibility == 'visible') &&
         (ric_av_jobtitle.length < 1 ) ){
         box4.style.visibility = 'hidden';
         //box4.style.display = 'none';
         }
		 if (xmlhttp.readyState == 4 && xmlhttp.responseText != "" ) {
			 ric_av_asuggestion.innerHTML = xmlhttp.responseText;
		 }
		 else {
			 // G.M.: visualizzo un'animazione di elaborazione in corso
			 ric_av_asuggestion.innerHTML = "<div class='loading'><img src='gfx/loading.gif'>elaborazione in corso...</div>";
		 }
  }

}
} //end stateChanged();


function testDuplicate(elems_string, elem){
  
 var myarray = elems_string.split(';');
    for (var i=0;i<=myarray.length;i++){
    if (myarray[i] == elem) {
      //alert('Non sono ammessi duplicati!..');
    return true;
    }
  
  }
  return false;
}

function setPlace(luoghi){
var dove = document.getElementById("dove");

var place_info = document.getElementById("place_info");
var psuggest = document.getElementById("psuggest");
//var luoghi = document.getElementById("luoghi");
   if(luoghi.value != ''){
    var parti = luoghi.split(',');
    psuggest.value = 1;
    if(!testDuplicate(dove.value, parti[0])){
    dove.value = getUtils(dove.value) + parti[0] + ';'; // Nome luogo
    place_info.value = parti[1]+','+parti[2]; // ID + tipo
    dove.focus();
    } // end testDuplicate()
  }
  
} // end setPlace();

function validatePlace(){

// Verifica se il campo "Dove" � stato caricato con un suggerimento o lasciato con testo incompleto ( != "" )
// FUNZIONE NON ATTIVA    
    dove = document.getElementById('dove');
    place_info = document.getElementById('place_info');


    if( (dove.value != "") && (place_info.value == "") ){

    var answer = confirm_graph('Non hai completato la scelta del luogo usando i suggerimenti! Scegli uno dei luoghi elencati accanto, oppure annulla la digitazione.');

        if(answer){
        setTimeout("document.getElementById('dove').focus();",1); // Riaffida il focus al campo. Trick for FF!..

        return false;
        }else{
        dove.value = '';

        return true;
        }
    }

    return true;

}

function getCatList(){

var cat
var string = "";
  var limit = document.getElementById("checknum");
  for(var i=0; i < limit.value; i++){
    cat = document.getElementById('cat_'+i);
        if(cat.checked == true){
        string = string + "&cat[]="+cat.value;
        }
  }
  return string;
}

function onLoadSettings(){

document.getElementById("cosa").value = '';
document.getElementById("dove").value = '';
document.getElementById("box").style.visibility ='hidden';
//document.getElementById("box").style.display = 'none';
document.getElementById("box2").style.visibility ='hidden';
//document.getElementById("box2").style.display = 'none';
document.getElementById("box3").style.visibility ='hidden';
//document.getElementById("box3").style.display = 'none';
document.getElementById("box4").style.visibility ='hidden';
//document.getElementById("box4").style.display = 'none';
}


function setField(val, fieldname){
// La funzione imposta il val nel campo fieldname

document.getElementById("jsuggest").value = '1';
var val_prev = document.getElementById(fieldname).value;
document.getElementById(fieldname).value = getUtils(val_prev) + val + ';';
document.getElementById(fieldname).focus();
show_block_element('suggest_indacator');

}


function setFieldNoConcat(val, fieldname){
// La funzione imposta il val nel campo fieldname

document.getElementById("jsuggest").value = '1';
var val_prev = document.getElementById(fieldname).value;
document.getElementById(fieldname).value = getUtils(val_prev) + val + ';';
document.getElementById(fieldname).focus();
show_block_element('suggest_indacator');

}



function setJob(cosa){
    document.getElementById("jsuggest").value = '1';
    var cosa_prev = document.getElementById("cosa").value;
    if(!testDuplicate(cosa_prev, cosa)){
        document.getElementById("cosa").value = getUtils(cosa_prev) + cosa + ';';
        document.getElementById("cosa").focus();
        show_block_element('suggest_indacator');
    }
    hide_element("box");
}


function setAzienda(cosa){

document.getElementById("jsuggest").value = '1';
var cosa_prev = document.getElementById("cosa").value;
if(!testDuplicate(cosa_prev, cosa+'[company]')){
document.getElementById("cosa").value = getUtils(cosa_prev) + cosa + '[company]' + ';';
//document.getElementById("is_azienda").value = '1'; // NON PIU' VALIDO
document.getElementById("cosa").focus();
show_block_element('suggest_indacator');
}

}


function setAssume(cosa){

document.getElementById("jsuggest").value = '1';
var cosa_prev = document.getElementById("cerca_azienda").value;
if(!testDuplicate(cosa_prev, cosa)){
document.getElementById("cerca_azienda").value = getUtils(cosa_prev) + cosa + ';';
//document.getElementById("is_azienda").value = '1'; // NON PIU' VALIDO
document.getElementById("cerca_azienda").focus();
}

}

function setRicAvAzienda(cosa){

//document.getElementById("jsuggest").value = '1';
var cosa_prev = document.getElementById("i193").value;
if(!testDuplicate(cosa_prev, cosa)){
document.getElementById("i193").value = getUtils(cosa_prev) + cosa + ';';
//document.getElementById("is_azienda").value = '1'; // NON PIU' VALIDO
document.getElementById("i193").focus();
}

}

function setRicAvJobtitle(cosa){

//document.getElementById("jsuggest").value = '1';
var cosa_prev = document.getElementById("i203").value;
if(!testDuplicate(cosa_prev, cosa)){
document.getElementById("i203").value = getUtils(cosa_prev) + cosa + ';';
//document.getElementById("is_azienda").value = '1'; // NON PIU' VALIDO
document.getElementById("i203").focus();
}

}

function getUtils(elems_string){
//La funzione prende una stringa di voci separate da ";"
//e la ripulisce dalla ultima voce incompleta (in fase di digitazione,
//e non terminante col ";")

var cosa_util;

  var elems = elems_string.split(';'); //intero contenuto precedente
  
  var last = elems.length;            //Cardinalit�
  
  if (last == '1') {
  
    cosa_util = "";
    }else{      //Prima voce digitata
      delete elems[last-1];               //Toglie la parte finale appena digitata
      cosa_util = elems.join(';');  //Ricollega gli elementi
    }
  return cosa_util;
  
}


function getLast(elems_string){
//La funzione accetta una stringa di elementi separati da ";"
//e ne estrae l'ultima parte, in fase di digitazione

var cosa_util = "";
var elems2 = new Array();
var last;

  elems2 = elems_string.split(';');  //intero contenuto precedente
  
  last = elems2.length;            //PROBLEMA!!!!
  
  if (last == '1') {                  //Prima digitazione
    cosa_util = elems2[0];
    }else{                            
      cosa_util = elems2[last-1];        //Parte finale appena digitata
    }
    
    return cosa_util;
}

function getFirst(elems_string){
//La funzione accetta una stringa di elementi separati da ";"
//e ne estrae l'ultima parte, in fase di digitazione

var cosa_util = "";
var elems2 = new Array();

  elems2 = elems_string.split(';');  //intero contenuto precedente
  cosa_util = elems2[0];
  return cosa_util;
}

