var contentSearch= new Array("content:PAGINE","news:NEWS","press:PRESS","Esami_di_laboratorio:ESAMI","Glossario:GLOSSARIO","Educational:EDUCATIONAL");

//var sRootPath='/WorkingFolder/deploy/avanzi/';
$(document).ready(function(){

		// Risultato ricerca normale
		if ($('#risultati_ricerca').is('div')){
			var stext=GetUrlParam('searchText');
			var mode=GetUrlParam('mode');
			if(stext!=''){
				var arrayWord=ritornaWordSearch(stext,mode);
				searchPage(arrayWord,stext,'#risultati_ricerca',false);
			}
		}

		if ($('#risultati_ricerca_servizi').is('div')){
			var stext=GetUrlParam('searchText');
			var mode=GetUrlParam('mode');

			contentSearch= new Array("serviziom:SERVIZI");
			if(stext!=''){
				var arrayWord=ritornaWordSearch(stext,mode);
				searchPage(arrayWord,stext,'#risultati_ricerca_servizi',false);
			}
		}

		// Risultato ricerca medici
		if ($('#risultati_ricerca_medici').is('div')){
			var sede=GetUrlParam('searchSede');
			var dipartimento=GetUrlParam('searchDipartimento');
			var mode=GetUrlParam('mode');

			var stext = sede + ' ' + dipartimento;

			contentSearch= new Array("medico:MEDICI");
			if(stext!=''){
				var arrayWord=ritornaWordSearch(stext,mode);
				searchPage(arrayWord,stext,'#risultati_ricerca_medici',false);
			}
		}
	/*if ($('#risultati_ricerca_medici').is('div')){
			var sede=GetUrlParam('searchSede');
			var dipartimento=GetUrlParam('searchDipartimento');
			var mode=GetUrlParam('mode');
			contentSearch= new Array("medico:MEDICI");
			var stext = sede + ' ' + dipartimento;
			if(stext!=''){
				var arrayWord=ritornaWordSearch(sede,mode);
				var arrayWord2=ritornaWordSearch(dipartimento,mode);
				searchPageSedeDipartimento(arrayWord,arrayWord2,stext,'#risultati_ricerca_medici');
			}
		}
*/
//WIKI!!!


		// Risultato ricerca esami
		if ($('#risultati_ricerca_esami').is('div')){
			var stext=GetUrlParam('searchText');
			var mode=GetUrlParam('mode');

			contentSearch= new Array("Esami_di_laboratorio:ESAMI");
			if(stext!=''){
				var arrayWord=ritornaWordSearch(stext,mode);
				searchPage(arrayWord,stext,'#risultati_ricerca_esami',true);
			}
		}

		// Risultato ricerca esami
		if ($('#risultati_ricerca_glossario').is('div')){
			var stext=GetUrlParam('searchText');
			var mode=GetUrlParam('mode');

			contentSearch= new Array("Glossario:GLOSSARIO");
			if(stext!=''){
				var arrayWord=ritornaWordSearch(stext,mode);
				searchPage(arrayWord,stext,'#risultati_ricerca_glossario',true);
			}
		}

		// Risultato ricerca educaional
		if ($('#risultati_ricerca_educational').is('div')){
			var stext=GetUrlParam('searchText');
			var mode=GetUrlParam('mode');

			contentSearch= new Array("Educational:EDUCATIONAL");
			if(stext!=''){
				var arrayWord=ritornaWordSearch(stext,mode);
				searchPage(arrayWord,stext,'#risultati_ricerca_educational',true);
			}
		}
});




function invia(){

  	var a=document.getElementById("search_form");
	if (a.searchText.value!='' && a.searchText.value!='Keyword'){
	  a.submit();
	  return true;
	  }else{
		  alert("Inserire una parola da ricercare!")
		    return false;
	  }
}

function inviaBoxHome(formName){

        var a=document.getElementById(formName);
        if (a.searchText.value!='' && a.searchText.value!='Keyword'){
          a.submit();
          return true;
          }else{
                  alert("Inserire una parola da ricercare!")
                    return false;
          }
}

function inviaServizi(){

  	var a=document.getElementById("search_servizi_form");
	if (a.searchText.value!='' && a.searchText.value!='Keyword'){
	  a.submit();
	  return true;
	  }else{
		  alert("Inserire una parola da ricercare!")
		    return false;
	  }
	
	
}


function inviaFormIndex(args){


  	var a=document.getElementById(args);
	if (a.searchText.value!='' && a.searchText.value!='Keyword'){
	  a.submit();
	  return true;
	  }else{
		  alert("Inserire una parola da ricercare!")
		    return false;
	  }
	
	
}
function inviaMedici(){

  	var a=document.getElementById("search_medici_form");
	if ((a.searchSede.value!='' && a.searchSede.value!='Keyword') ||
	    (a.searchDipartimento.value!='' && a.searchDipartimento.value!='Keyword')) {
	  	a.submit();
	  	return true;
	  }else{
		  alert("Seleziona una delle due ricerche!!")
		    return false;
	  }
}

function ritornaWordSearch(wordname,mode){

	wordname = wordname.replace(/[+]+/g,' ');
	var wordtrim=wordname.replace(/[\s]+/g,'').toLowerCase();


	if(wordtrim.indexOf("tag:")>=0|| wordtrim.indexOf("tags:")>=0||mode=='tags' || wordtrim.indexOf("news:")>=0||mode=='press' || wordtrim.indexOf("news:")>=0||mode=='press' || wordtrim.indexOf("page:")>=0 ){
		 var f=0;
		contentSearch= new Array();
		if((wordtrim.indexOf("tag:")>=0|| wordtrim.indexOf("tags:")>=0||mode=='tags')){
			contentSearch[f]="tags:TAGS";
			wordname=wordname.replace("tags:","");
			wordname=wordname.replace("tag:","");
			f++;
		}
		if(wordtrim.indexOf("news:")>=0||mode=='news'){
			contentSearch[f]="news:NEWS";
			wordname=wordname.replace("news:","");
			f++;
		}
		if(wordtrim.indexOf("page:")>=0 || mode=='all'){
				contentSearch[f]="content:PAGINE";
				wordname=wordname.replace("page:","");
				f++;
			}
		if(wordtrim.indexOf("press:")>=0 || mode=='all'){
				contentSearch[f]="press:PRESS";
				wordname=wordname.replace("press:","");
				f++;
			}
		if(wordtrim.indexOf("madico:")>=0 || mode=='all'){
				contentSearch[f]="medico:MEDICI";
				wordname=wordname.replace("medico:","");
				f++;
			}
		if(wordtrim.indexOf("madico:")>=0 || mode=='all'){
				contentSearch[f]="serviziom:SERVIZI";
				wordname=wordname.replace("serviziom:","");
				f++;
			}
	}

	var testString = wordname;
	testString = testString.replace( /^\s+|\s+$/g ,'').replace( /\s+/g,' ');
	var arr = testString.split(' ');
	var arrnew=new Array();
	var c=0;
	for(i=0;i<arr.length;i++) {
		//alert(arr[i]);
	var word=arr[i];
		if (word.length>2) {
			word = word.toUpperCase();
			if (!stopword(word)) {
			arrnew.push(wordRootIT(word));
			}
	  	}
	  }
	  	return arrnew;
	}


function stopword (word) {
	      var stopWord= new Array(
	      					   "GLI","DEL","DAI","DAL","NEL","NEI","SUL","SUI","SULLA","SULLE","SUGLI","NEGLI","DALLE","DEI","UNO","UNA",
	                           "NELLO","NELLA","NELLE","DEGLI","DELLE","DALLO","DALLA","DAGLI","DELLA","ALLO","AGLI","ALLA",
	                           "ALLE","TRA","FRA","PER","COI","CON","CHI","CHE","DELL","DALL"
	                           );

	      for (j=0;j<stopWord.length;j++){
	          if (stopWord[j]==word){
		           return true;
		           }
		      }
	      return false;
	  }

  function  wordRootIT ( word) {
	      if (word.endsWith("HI") || word.endsWith("HE")) {
	          word = word.substring(0,word.length-2);
	      }
	      if (word.endsWith("A") || word.endsWith("E") ||
	          word.endsWith("I") || word.endsWith("O") ||
	          word.endsWith("U")) {
	          word = word.substring(0,word.length-1);
	      }
	      word=word + "_";
	      return word;
	  }


function searchPage(arrayWord,textoriginal,idappend,isWiki){
	textoriginal=textoriginal.replace(/\+/ig," ");
	var z=0;
	var pageArray = new Array();
	var html='';
	var htmlheader='';
 	var y=0;

 	var risultati 		= new Array();
	var contents 		= new Array();
	var contentLabels 	= new Array();

	//popola l'array con le pagine
	
	if(!isWiki){
  $.ajax({
       type: "GET",
       url: sRootPath+"search/search.xml",
       dataType: 'xml',
       async:false,
       success: function(msg){
		 	$(msg).find("page").each(function(){
				 		var idpage = $(this).attr('id');
				 		var linkpage=	$(this).attr('htmlpath');
				 		if(linkpage=='/it/News/data.xml'){
				 			linkpage='/it/cdi/listanews/dettaglionews.html?page=1&idnews='+$(this).attr('idxml');
				 		}
				 		if(linkpage=='/it/Press/data.xml'){
				 			linkpage='/it/cdi/listapress/dettagliopress.html?page=1&idnews='+$(this).attr('idxml');
				 		}

				 		var namepage=	$(this).attr('nomepagina').replace(/_/g," ");
				 		var count=0;
				 		idpage=parseInt(idpage)+1000;
						pageArray[idpage] = new pageReferences(namepage,linkpage,idpage);
					});
				}
    });
  }else{
	$.ajax({
       type: "GET",
       url: sRootPath+"searchwiki/search.xml",
       dataType: 'xml',
       async:false,
       success: function(msg){
		 	$(msg).find("page").each(function(){
				 		var idpage = $(this).attr('id');
				 		var linkpage=	$(this).attr('htmlpath');
				 		var namepage=	$(this).attr('nomepagina').replace(/_/g," ");
				 		var count=0;
				 		idpage=parseInt(idpage)-1000;
						pageArray[idpage] = new pageReferences(namepage,linkpage,idpage);
					});
				}
    });
}
    $(idappend).html("<h1>Risultati della ricerca</h1><h2>Hai cercato: "+textoriginal+"</h2><p class=\"loading\">Loading...<img src=\"/www.cdi.it/img/loading.gif\"/></p>");
      var k=0;
      for(var i=0;i<contentSearch.length;i++){
										contents[i]	= contentSearch[i].split(":")[0]+'';
										contentLabels[i] = contentSearch[i].split(":")[1]+'';
										//alert(contentLabels[i]);
										// istanzia l'array per il tipo di contenuto
										risultati[contents[i]+''] = new Array();
										//alert("istanziato array risultati["+contents[i]+"]");
									}
    	for(var i=0;i<arrayWord.length;i++){
    			k=i;
    			var VOCABOLO=arrayWord[i].charAt(0);
    			var ctrlVoc=VOCABOLO.charCodeAt();
    			if (!isNaN(VOCABOLO) ){
    				VOCABOLO="A";
    				}
    				
    				if( ctrlVoc>=65 && ctrlVoc<=90){
    					
    					
    				
    			
    				if(isWiki){
    		$.ajax({
			       type: "GET",
			       url: sRootPath+"searchwiki/"+VOCABOLO+"-searchindex.xml",
			       dataType: 'xml',
			       async:false,
			       success:function(msg){
			       	var keyselected=arrayWord[k]
									$(msg).find("Key").filter("[key="+keyselected+"]").each(function(){

						 				var id 			= $(this).attr('id');
						 				id=parseInt(id)-1000;
								 		var n			=$(this).attr('n');
								 		var text		=$(this).attr('text');
								 		var count		= 0;
								 		var newtxt		= "";
								 		var keycontent 	= ""+$(this).attr('content');

													// inserisci i risultati solo se prensenti nei tipi di contenuto
													//alert("cerco se "+keycontent+" è nell'array "+contents);

													if(isInArray(keycontent,contents))
													{

														if(risultati[keycontent+''][id]+"" !='undefined' && risultati[keycontent+''].length>0){
												 			if(!isNaN(risultati[keycontent+''][id].rating)){
												 				count=risultati[keycontent+''][id].rating;
												 				newtxt=risultati[keycontent+''][id].texthtml;
												 			}
												 		}

												//controlla che non esista già il risultato


												if(!isInArray(id+'', risultati[keycontent+'']))
												{
												//alert("aggiungo id:"+id);
												// aggiungi ai risultati l'item wordText
												risultati[keycontent+''][id] = new wordText(count+1+parseInt(n),text,newtxt,id,textoriginal);
												}

											}
									});	//end filtro




			       	},
			       complete: function(msg){

			       	}//end chiamata success
				});// end ajax content

}else{
    		$.ajax({
			       type: "GET",
			       url: sRootPath+"search/"+VOCABOLO+"-searchindex.xml",
			       dataType: 'xml',
			       async:false,
			       success:function(msg){
			       	var keyselected=arrayWord[k]

									$(msg).find("Key").filter("[key="+keyselected+"]").each(function(){

						 				var id 			= $(this).attr('id');
						 				id=parseInt(id)+1000;
								 		var n			=$(this).attr('n');
								 		var text		=$(this).attr('text');
								 		var count		= 0;
								 		var newtxt		= "";
								 		var keycontent 	= ""+$(this).attr('content');

													// inserisci i risultati solo se prensenti nei tipi di contenuto
													//alert("cerco se "+keycontent+" è nell'array "+contents);

													if(isInArray(keycontent,contents))
													{

														if(risultati[keycontent+''][id]+"" !='undefined' && risultati[keycontent+''].length>0){
												 			if(!isNaN(risultati[keycontent+''][id].rating)){
												 				count=risultati[keycontent+''][id].rating;
												 				newtxt=risultati[keycontent+''][id].texthtml;
												 			}
												 		}

												//controlla che non esista già il risultato


												if(!isInArray(id+'', risultati[keycontent+'']))
												{
												//alert("aggiungo id:"+id);
												// aggiungi ai risultati l'item wordText
												risultati[keycontent+''][id] = new wordText(count+1+parseInt(n),text,newtxt,id,textoriginal);
												}

											}
									});	//end filtro




			       	},
			       complete: function(msg){

			       	}//end chiamata success
				});// end ajax content
}
}
   				}
		   		for(var i=0;i<contents.length;i++)
								{
									if(risultati[contents[i]].length!=0){
										$(idappend).append("<h3>"+contentLabels[i]+"</h3>");
										}

										risultati[contents[i]].sort(sortByRating);

										var count=0;
										var exit=false;

					      			for (var item in risultati[contents[i]]) {

					      				var resultItem = risultati[contents[i]][item];

								      /*if(resultItem.rating+""!='undefined'){

									     		alert(contents[i]);
										  }*/
								      	if(resultItem.rating+""!='undefined' ||pageArray[resultItem.idpage]+""!='undefined' ){
								      			//alert(resultItem.idpage+"-"+contents[i]);
								      		y++;
								      		count++;
								      		
								      		$(idappend).append('<div class="risultato"><div><h4><a href="'+pageArray[resultItem.idpage].htmlpath+'" >'+pageArray[resultItem.idpage].pagename+'<!-- RATING: ' + resultItem.rating+'--> </a></h4><p> '+ resultItem.texthtml+'</p></div></div>');
								      		if(count==10){
									      		break;
									      	}
										}
						 				if(exit){break;}
						 			}
					 				if(exit){break;}
					 			}
								//}// end for content

								if(y==0){
								  $(idappend).append('Nessun risultato per: '+textoriginal);
								}
			       	$(".loading").remove();

} // end searchpage











/*
function searchPageSedeDipartimento(arrayWord,arrayWord2,textoriginal,idappend){
	textoriginal=textoriginal.replace(/\+/ig," ");
	var z=0;
	var pageArray = new Array();
	var html='';
	var htmlheader='';
 	var y=0;
 	var risultati= new Array();
 	var risultati1= new Array();
 	var risultati2= new Array();
	var contents= new Array();
	var contentLabels 	= new Array();

	//popola l'array con le pagine
	
	
  $.ajax({
       type: "GET",
       url: sRootPath+"search/search.xml",
       dataType: 'xml',
       async:false,
       success: function(msg){
		 	$(msg).find("page").each(function(){
				 		var idpage = $(this).attr('id');
				 		var linkpage=	$(this).attr('htmlpath');
				 		if(linkpage=='/it/News/data.xml'){
				 			linkpage='/it/cdi/listanews/dettaglionews.html?page=1&idnews='+$(this).attr('idxml');
				 		}
				 		if(linkpage=='/it/Press/data.xml'){
				 			linkpage='/it/cdi/listapress/dettagliopress.html?page=1&idnews='+$(this).attr('idxml');
				 		}

				 		var namepage=	$(this).attr('nomepagina').replace(/_/g," ");
				 		var count=0;
				 		idpage=parseInt(idpage)+1000;
						pageArray[idpage] = new pageReferences(namepage,linkpage,idpage);
					});
				}
    });
  
    $(idappend).html("<h1>Risultati della ricerca</h1><h2>Hai cercato: "+textoriginal+"</h2><p class=\"loading\">Loading...<img src=\"/www.cdi.it/img/loading.gif\"/></p>");
      var k=0;
      for(var i=0;i<contentSearch.length;i++){
										contents[i]	= contentSearch[i].split(":")[0]+'';
										contentLabels[i] = contentSearch[i].split(":")[1]+'';
										//alert(contentLabels[i]);
										// istanzia l'array per il tipo di contenuto
										risultati[contents[i]+''] = new Array();
										risultati1[contents[i]+''] = new Array();
										risultati2[contents[i]+''] = new Array();
										//alert("istanziato array risultati["+contents[i]+"]");
									}
    	for(var i=0;i<arrayWord.length;i++){
    			k=i;
    			var VOCABOLO=arrayWord[i].charAt(0);
    			var ctrlVoc=VOCABOLO.charCodeAt();
    			if (!isNaN(VOCABOLO) ){
    				VOCABOLO="A";
    				}
    				if( ctrlVoc>=65 && ctrlVoc<=90){
	    		$.ajax({
			       type: "GET",
			       url: sRootPath+"search/"+VOCABOLO+"-searchindex.xml",
			       dataType: 'xml',
			       async:false,
			       success:function(msg){
			       	var keyselected=arrayWord[k]
									$(msg).find("Key").filter("[key="+keyselected+"]").each(function(){
						 				var id 			= $(this).attr('id');
						 				id=parseInt(id)+1000;
								 		var n			=$(this).attr('n');
								 		var text		=$(this).attr('text');
								 		var count		= 0;
								 		var newtxt		= "";
								 		var keycontent 	= ""+$(this).attr('content');
								 		//console.log("id:"+id+" stext"+keyselected);
													if(isInArray(keycontent,contents))
													{
														if(risultati1[keycontent+''][id]+"" !='undefined' && risultati1[keycontent+''].length>0){
												 			if(!isNaN(risultati1[keycontent+''][id].rating)){
												 				count=risultati1[keycontent+''][id].rating;
												 				newtxt=risultati1[keycontent+''][id].texthtml;
												 			}
												 		}
												if(!isInArray(id+'', risultati1[keycontent+'']))
												{
												risultati1[keycontent+''][id] = new wordText(count+1+parseInt(n),text,newtxt,id,textoriginal);
												}
											}
									});	
			       	},
			       complete: function(msg){

			       	}//end chiamata success
					});// end ajax content
				}
   		}
   		for(var i=0;i<arrayWord2.length;i++){
    			k=i;
    			var VOCABOLO=arrayWord2[i].charAt(0);
    			var ctrlVoc=VOCABOLO.charCodeAt();
    			if (!isNaN(VOCABOLO) ){
    				VOCABOLO="A";
    				}
    				if( ctrlVoc>=65 && ctrlVoc<=90){
	    		$.ajax({
			       type: "GET",
			       url: sRootPath+"search/"+VOCABOLO+"-searchindex.xml",
			       dataType: 'xml',
			       async:false,
			       success:function(msg){
			       	var keyselected=arrayWord2[k]
									$(msg).find("Key").filter("[key="+keyselected+"]").each(function(){
						 				var id 			= $(this).attr('id');
						 				id=parseInt(id)+1000;
								 		var n			=$(this).attr('n');
								 		var text		=$(this).attr('text');
								 		var count		= 0;
								 		var newtxt		= "";
								 		var keycontent 	= ""+$(this).attr('content');
								 		//console.log("id:"+id+" stext"+keyselected);
													if(isInArray(keycontent,contents))
													{
														if(risultati2[keycontent+''][id]+"" !='undefined' && risultati2[keycontent+''].length>0){
												 			if(!isNaN(risultati2[keycontent+''][id].rating)){
												 				count=risultati2[keycontent+''][id].rating;
												 				newtxt=risultati2[keycontent+''][id].texthtml;
												 			}
												 		}
												if(!isInArray(id+'', risultati2[keycontent+'']))
												{
												risultati2[keycontent+''][id] = new wordText(count+1+parseInt(n),text,newtxt,id,textoriginal);
												}
											}
									});	
			       	},
			       complete: function(msg){

			       	}//end chiamata success
					});// end ajax content
				}
   		}
   	
   		
		   		for(var i=0;i<contents.length;i++)
								{
										for (var item in risultati1[contents[i]]) {
										//	console.log("---"+risultati1[contents[i]][item].idpage)
   										if(isInArrayObj(risultati1[contents[i]][item],risultati2[contents[i]])){
   											
   											//alert(risultati1[contents[i]][item]);
   											risultati[contents[i]].push(risultati1[contents[i]][item]);
   										}
   									}		
									if(risultati[contents[i]].length!=0){
										$(idappend).append("<h3>"+contentLabels[i]+"</h3>");
										}
										risultati[contents[i]].sort(sortByRating);
										var count=0;
										var exit=false;

					      			for (var item in risultati[contents[i]]) {

					      				var resultItem = risultati[contents[i]][item];
								      	if(resultItem.rating+""!='undefined' ||pageArray[resultItem.idpage]+""!='undefined' ){
								      		y++;
								      		count++;
								      		
								      		$(idappend).append('<div class="risultato"><div><h4><a href="'+pageArray[resultItem.idpage].htmlpath+'" >'+pageArray[resultItem.idpage].pagename+'<!-- RATING: ' + resultItem.rating+'--> </a></h4><p> '+ resultItem.texthtml+'</p></div></div>');
								      		if(count==10){
									      		break;
									      	}
										}
						 				if(exit){break;}
						 			}
					 				if(exit){break;}
					 			}
								//}// end for content

								if(y==0){
								  $(idappend).append('Nessun risultato per: '+textoriginal);
								}
			       	$(".loading").remove();

} // end searchpage

*/



function sortByRating(a, b) {
    var x = a.rating;
    var y = b.rating;
    return ((x > y) ? -1 : ((x < y) ? 1 : 0));
}

function wordText(rating,texthtml,newtxt,idpage,textoriginal) {
    this.rating = rating;   
    this.idpage = idpage;
  
    if(this.texthtml==undefined || this.texthtml.length==0){
  	  this.texthtml =texthtml;
 		}
  }
    
function pageReferences(pagename,htmlpath,idpage) {
    this.pagename = pagename;
    this.htmlpath =htmlpath;
    this.idpage = idpage;
}


//Generics Method
Array.prototype.inArray = function (value) {
    var i;
    for (i=0; i < this.length; i++) {
      if (this[i] === value) {
        return true;
      }
    }
    return false;
  };

String.prototype.trim = function(str){return
(this.replace(/^[\s\xA0]+/, "").replace(/[\s\xA0]+$/, ""))}

String.prototype.endsWith = function(str)
{return (this.match(str+"$")==str)}


String.prototype.startsWith = function(str)
{return (this.match("^"+str)==str)}

function GetUrlParam(paramName){
  var oRegex = new RegExp( '[\?&]' + paramName + '=([^&]+)', 'i' ) ;
  var oMatch = oRegex.exec( window.top.location.search ) ;
  if ( oMatch && oMatch.length > 1 )
    return decodeURIComponent( oMatch[1] ) ;
  else
    return '' ;
}

function isInArray(needle, haystack)
{
	var result = false;
	for (i in haystack)
	{
		if(needle==haystack[i]){
			result= true;
			break;
		}
	}
	return result;
}
function isInArrayObj(needle, haystack)
{
	var result = false;
	if(needle=='undefined' || haystack=='undefined'){
			return result;
	}
	for (i in haystack)
	{
		if(needle.idpage==haystack[i].idpage){
			return true;
		}
	}
	return result;
}



