/*AUTHOR : Julien BOTTEMANNE (julien@domlike.net)DATE : 2006/07/16Visit my blog : www.domlike.netor contact me : julien@domlike.net*/// globale variable  Initialisation var Lines = new Array();var iLines = 0;var isLuckSearch = false;var timercount = 0;var timestart  = null;var logError = '';// handlervar myGlobalHandlers = {		onCreate: function(){			Element.show(AS_Result_ID_Activity);		},		onComplete: function() {			if(Ajax.activeRequestCount == 0){				SortLinesArray();				ShowLines();				Element.show(AS_Result_ID);				Element.hide(AS_Result_ID_Activity);			 }	 	}	};Ajax.Responders.register(myGlobalHandlers);function callLuck(){	isLuckSearch=true;	callSearch();}function callDomgle(){	isLuckSearch=false;	callSearch();}function callSearch(){	timestart   = new Date();	iLines = 0;	Lines = new Array();	logError = '';	GoogleToNotesSearch.init();		// Translate query to the choosen syntax	if (AS_Query_Syntax=='google')		userQuery = GoogleToNotesSearch.parse(document.search.SearchString.value)	else		userQuery = replaceString(document.search.SearchString.value,'&','AND')				//Create a Hash of the parameters	var a=$H(		{			SearchString: userQuery,			ag_doc_Count: AS_Agent_MaxDoc,			AS_Field_Name_1: AS_Field_Name_1,			AS_Field_Name_2: AS_Field_Name_2,			AS_Field_Name_3: AS_Field_Name_3,			AS_Field_Name_4: AS_Field_Name_4,			AS_Field_Name_5: AS_Field_Name_5		}	);	// Call each targeted db	var targetParams =a.toQueryString();	var viewPath = AS_Agent_Name+'?OpenAgent';	for (var i=0; i<AS_DB_Path.length; i++)	{		if(AS_Proxy=='yes'){			url=urlBase()+'/(proxy)?OpenAgent'			var params='';			params='urlToGet='+AS_SRV_Path[i]+AS_DB_Path[i]+viewPath+"&"+targetParams+'&rdm='+randomNumber();		}else{			var params=targetParams;			var url = AS_SRV_Path[i]+AS_DB_Path[i]+viewPath;		}		eval("var myAjax = new Ajax.Request( url, { method: 'get', parameters: params,onComplete: BuildLinesArray,onFailure: function(t) {logError+='Error : '+t.status+ ' -- '+t.statusText+' -- location : " + url +"<br>'} })");	}}function BuildLinesArray(originalRequest){	if(originalRequest.status==200){		try		{			var xmldoc = originalRequest.responseXML;			var root = xmldoc.documentElement;			results = root.getElementsByTagName("viewentry");			for (var i=0; i<results.length; i++)			{				Lines[iLines]=new Line(results[i].getElementsByTagName("entrydata"));				iLines++;			}		}catch (e){			logError+='XML parser error : Could not analyse results from one request<br>'		}	}}// Line object creationfunction Line(a){	for (var iProp=0; iProp<AS_Field_Name_Agt.length; iProp++)	{		macro="this."+AS_Field_Name_Agt[iProp]+"=getInnerText (a[iProp]);";		eval(macro);	}}// Sort resultsfunction SortLinesArray(){	Lines=Lines.sort(SortLines);}function SortLines(a,b){	A=eval('a.'+AS_Result_Sort_Column);	B=eval('b.'+AS_Result_Sort_Column);	if(AS_Result_Sort_Type=='des'){ return A>B?-1:A<B?1:0;}else{ return A>B?1:A<B?-1:0;}}//*********** getInnerText **************function getInnerText (node) {	if (typeof node.textContent != 'undefined') {		return node.textContent;	}else if (typeof node.innerText != 'undefined') {		return node.innerText;	}else if (typeof node.text != 'undefined') {		return node.text;	}else {		switch (node.nodeType) {		case 3:		case 4:			return node.nodeValue;		break;		case 1:		case 11:			var innerText = '';			for (var i = 0; i < node.childNodes.length; i++) {				innerText += getInnerText(node.childNodes[i]);			}			return innerText;			break;		default:			return '';		}	}}//************* ShowLines ***************// Display linesfunction ShowLines( ){if (isLuckSearch && Lines.length>0) {	window.location.href=Lines[0].url;	return;}var string = new Array();var iLines=0;var count=Lines.length;var newText  = '';//Delete all the linesDeleteLines();// Result Headerstring.push(AS_Result_Header);// Lines loop for (iLines=0; iLines<Lines.length; iLines++){	//Write the start row 	string.push(AS_Result_RowS);	// Columns loops	for (iCol=0; iCol < AS_Field_Name_Dsp.length; iCol++)	{		macro='AS_Result_ColS_'+(iCol+1);		string.push(eval(macro));		if (iCol==AS_Result_Link){				if (AS_New_Windows=='yes') 					target = 'target="blank"' 				else					 target = ''				string.push('<a href="'+Lines[iLines].url+'" '+target+'>');				macro = 'Lines[iLines].'+AS_Field_Name_Dsp[iCol];				string.push(eval(macro));				string.push('</a>');			}else{				macro = 'Lines[iLines].'+AS_Field_Name_Dsp[iCol];				string.push(eval(macro));		}		macro='AS_Result_ColE_'+(iCol+1);		string.push(eval(macro));	} // end for iCol loop		//Write the end row 	string.push(AS_Result_RowE);}string.push(AS_Result_Footer);var writestring = string.join('');$(AS_Result_ID).innerHTML=writestring;$(AS_Result_ID_NB).innerHTML=count;// Print Time Processvar timeend = new Date();var timedifference = timeend.getTime() - timestarttimeend.setTime(timedifference);var seconds_passed = timeend.getSeconds();var milliseconds_passed = timeend.getMilliseconds();$(AS_Result_ID_NB).innerHTML=count+' ('+seconds_passed+'.'+milliseconds_passed+' seconds)';// Print Error if neededif(logError!=''){		$(AS_LogError_ID).innerHTML='Search processing error :<br>'+logError;		Element.show(AS_LogError_ID);}}function DeleteLines(){	$(AS_Result_ID).innerHTML='';}function replaceString(sString, sReplaceThis, sWithThis) {     if (sReplaceThis != "" && sReplaceThis != sWithThis) {      var counter = 0;      var start = 0;      var before = "";      var after = "";      while (counter<sString.length) {        start = sString.indexOf(sReplaceThis, counter);        if (start == -1){         break;         } else {           before = sString.substr(0, start);           after = sString.substr(start + sReplaceThis.length, sString.length);           sString = before + sWithThis + after;           counter = before.length + sWithThis.length;          }        }      }   return sString;  }  function randomNumber() {	return (Math.floor((99999999) * Math.random()+1));}function urlBase() {var pathname = window.location.href;return pathname.substring(0,(pathname.indexOf('.nsf')+4)) ;}