// Questa libreria gestire ed esegue la ricerche utilizzando Dojo per la chiamata AJAX...e renderizza nel TAG apposito il risultato della ricerca
var traccia=false;
var SearchJSON={
	query: "",   //la query di ricerca
	nmax: 5,  //la default Numero di documenti da Ritornare
  fieldret:"oggetto,sezione,data_creazione,foto,abstract", // il valore di default dei campi che ritornerà la funzione
  ordby:"data_search", // [Opz] Il campo secondo cui verrà ordinata la ricerca JSON
  pag:"", // [Opz] la pagina da visualizzare
  vista:"", // [Opz] la vista su cui eseguire la ricerca
  link:false,   // [Opz] se True allora il risultato JSON restituirà anche il LINK dei Singoli Entries
  layer:"", // il Layer <DIV> sul quale verrà scritto il risultato della Ricerca 
	widget:"risultati", // [Opz] il widget Dijit Dialog da visualizzare 
  showpages: 5,
	init: function( settings ){ 
                 if (settings.vista) this.vista=settings.vista                   // ovverride nome vista
		if (settings.nmax) this.nmax=settings.nmax;             // override Entries Max per Pagina
		if (settings.fieldret) this.fieldret=settings.fieldret;    // override campi di ritorno
	                if (settings.ordby) this.ordby=settings.ordby;        // override del campo su cui verrà eseguito l'ordinamento
                  if (settings.pag) this.pag=settings.pag;                  // override del numero di pagina da restituire
                  if (settings.vista) this.vista=settings.vista;              // override della vista su cui cercare
                  if (settings.link) this.link=settings.link;                     // override del parametro link
                  if (settings.layer) this.layer=settings.layer;           // override del layer di destinazione 
                  if (settings.widget) this.widget=settings.widget;           // override del layer di destinazione 
  },
	
	load_search: function(q){
               dojo.byId("AjaxLoader").style.display = "block";
		this.query=q;
                  dojo.xhrGet({
                     url : "../GdSearch?OpenAgent&charset=UTF-8",
                     content: {query:this.query,nmax:this.nmax,fieldret:this.fieldret,ordby:this.ordby,pag:this.pag,vista:this.vista,link:this.link},
                     handleAs : "json",
                     preventCache:true,
                     load : function(response, ioArgs) {
                              SearchJSON.render(response)
                                  },
                    error : function(response, ioArgs) {
                          console.debug("Problemi nel contattare la GDsearch AJAX");   // caso in cui la chiamata AJAX entra in Errore
                         dojo.byId("AjaxLoader").style.display = "none";
                      }
                  });
	},
	
render: function(response) {
    dojo.byId("AjaxLoader").style.display = "none";

    var test=dojo.query(".risricerca")[0]
  //  dijit.byId(this.widget).hide()
	  // la render functions scorre il vettore JSON ritornato dalla query JSON di ricerca e ne scrive il contenuto in una nuova contentpane...
    id_layer=test;
   // id_layer=dojo.byId(this.layer)
    var risposta="";
    var hrisposta="";
    id_layer.innerHTML="";

    if (response.errore){
       id_layer.innerHTML+="<h1>Nessun Documento Trovato</h1>"
     }
     else {
       
        inizio=response.header[0].pagina - SearchJSON.showpages;
        fine=response.header[0].pagina + SearchJSON.showpages;
        if (inizio<1) inizio=1; 
        if (fine>response.header[0].pagine) fine=response.header[0].pagine;
        hrisposta+="<ul class=\"head_risultati\">"
        hrisposta+="<li class=\"head_query\"> Chiave di Ricerca: "+response.header[0].query+"</li>"
        hrisposta+="</ul>"
        hrisposta+="<ul class=\"head_pagina\">"
        hrisposta+="<li class=\"intestazione\"> Pagina: "+response.header[0].pagina+" di "+response.header[0].pagine+"</li>"
          for (i=inizio;i<=fine;i++) {
           if (i==response.header[0].pagina){
              hrisposta+="<li class=\"sel\"><a href=\"javascript:SearchJSON.gotopage("+(i)+")\">";
               if ((i==inizio)&&(inizio!=1)) {hrisposta+="precedenti"}else{hrisposta+=i}
              hrisposta+="</a></li>";
           }else{
              hrisposta+="<li><a href=\"javascript:SearchJSON.gotopage("+i+")\">";
                 if ((i==inizio)&&(inizio!=1)) {hrisposta+="precedenti"}else if
             ((i==fine)&&(fine!=response.header[0].pagine)) {hrisposta+="seguenti"}else{hrisposta+=i}
              hrisposta+="</a></li>";
           }
         }
        hrisposta+="</ul>"
      //  risposta+="<ul class=\"head_records\">"
      //  risposta+="<li class=\"totrec\"> Pagine: "+response.header[0].records+"</li>"
      //  risposta+="</ul>" // chiudo ul della sezione head_risultati
        risposta+="<h1 class=\"titolo\">Risultati ricerca</h1>"

        var val_return=this.fieldret.split(",")
        risposta+="<ul class=\"contenuti\">"
        for (i=0;i<response.entries.length;i++) {
         risposta+="<ul>\n<li class=\"riga\">" // parte richiesta da Giuseppe Grasso in data 29 Maggio
           for(j=0;j<val_return.length;j++){
             risposta+="<ul>"                            // parte richiesta da Giuseppe Grasso in data 29 Maggio
              if ((j==0) &&(response.entries[i].url)){
                 risposta+="<li class=\"url\"><a href=\""+response.entries[i].url+"\">"+response.entries[i][val_return[j]]+"</a></li>"
               }
               else{ 
               //   risposta+="<li class=\""+val_return[j]+" \">"+response.entries[i][val_return[j]]+"</li>"
                            if  (val_return[j]=="foto") {  
                                   if (response.entries[i].foto == "") {
                                       //BF se manca la foto mette una immagine blank
                                       risposta += "<li class=\"foto\">"+"<img src=\"http://www.tennisitaliano.it/foto-tennis/blank.gif\"></img>"+"</li>" 
                                   } else {
                                       risposta += "<li class=\"foto\">"+"<img src=\"../resources/"+response.entries[i].url+"-"+response.entries[i].foto+"/$file/thumb1.jpg"+"\"></img>"+"</li>" 
                                   }

                             } else { risposta+="<li class=\""+val_return[j]+" \">"+response.entries[i][val_return[j]]+"</li>" }
              }    
             risposta+="</ul>"  // parte richiesta da Giuseppe Grasso in data 29 Maggio
           }
         risposta+="</li></ul>" // parte richiesta da Giuseppe Grasso in data 29 Maggio
        }
       risposta+="</ul>"
       id_layer.innerHTML+=hrisposta+risposta+hrisposta;
     }
  // dijit.byId(this.widget).show()
   pageTracker._trackPageview('ricerca/risultati/'+response.header[0].query);
   LoadAdvFrame();  // Reload dei banner

},
gotopage: function(number){
   this.pag=number
   this.load_search(this.query)

}
} //end SearchJSONObject
