var c=new Array();
var x=false;
var cq=""; // current query
var lq=""; // last query
var ct="";

var init = 0;

var ftype = 'F';
function initSHWith(letype){
		ftype = letype;
		 
		 initSH();
	}

function initSH(){
	//window.status ='init';
	if ( init == 0 ) {
	if(!(navigator.userAgent.indexOf("Safari") >= 0 && navigator.userAgent.indexOf("412.2") >= 0)){
		if(navigator.userAgent.indexOf("SunOS sun4u") == -1){
//alert("init");			
			aE(document.searchForm.mots,"keyup",skuh,false);
			//if(getCookie("beSuggest"))
			//{
			//	hS();
			//}
			cX();
			if(window.addEventListener || window.attachEvent){
				rl();
			}
	}
	}
init = 1;
}
//alert("init ok");
}


function initSR(){
	if(!(navigator.userAgent.indexOf("Safari") >= 0 && navigator.userAgent.indexOf("412.2") >= 0)) {
		if(navigator.userAgent.indexOf("SunOS sun4u") == -1){
			var t=document.getElementById("tsb");
			var b=document.getElementById("bsb");
			if(t){
				aE(t,"keyup",skuh,false);
				aE(t,"blur",csh,false);}
				if(b){aE(b,"keyup",skuh,false);
				}
				if(getCookie("beSuggest")){
					hS();
				}
				cX();
				if(b && !getCookie("beSuggest")){
					srd(b.value,'bsb');
				}
				if(window.addEventListener || window.attachEvent){rl();
			}
		}
	}
} 
/**
 Load of xmlHttp object
 */
function cX(){
//	window.status ='init';
	try{
	x=new ActiveXObject("Msxml2.XMLHTTP");
}catch(e){
	try{
	x=new ActiveXObject("Microsoft.XMLHTTP");
}catch(E){
	x=false;
}
}
if(!x && typeof XMLHttpRequest!='undefined'){
	x=new XMLHttpRequest();
}
//alert(x);
} 



function skuh(e){
	var k;
	var t;
	if(window.event){
		k=window.event.keyCode;
		t=window.event.srcElement;
	}else{
		k=e.keyCode;t=e.target;
	}
	if((k>=49 && k<=221) || k==8 || k==32){
		srd(t.value,t.getAttribute("id"));
	}
} 

function srd(q,t){
	cq=q;
	ct=t;
}

function rl() {
//alert("rl");
//window.status=new Date().getMilliseconds();
	if(cq!=""){
		if(cq!=lq){
			gS(cq,ct);
			lq=cq;
		}
	}

setTimeout("rl()",1499);}
	
	
/**
 generate suggestion
 */	
function gS(qu,id){
	var q=csq(qu);
	//window.status ='q:'+ q;
	if(typeof c[q] != "undefined"){ 
		suggest(q,id,c[q]);
	}else{
	/*var s=ssc(q);
	if(s!=""){
		suggest(q,id,c[s]);
	}else
	{*/
	var sr="/communaute/suggest.php3?t="+id+"&ftype="+ftype+"&q="+escape(q);
	if(x){
		xld(q,id,sr);
	}else{
	window.hframe.location.replace(sr);
//}
}
}
} 


/**
Load suggestion
*/
function xld(q,id,u){
	//alert("xld");
	//window.status = 'state:'+x.readyState;
	
	if(x.readyState!=0)
	{
		x.onreadystatechange = function () {}
		x.abort();
	}
	x.open("GET",u,true);
	x.onreadystatechange=
		function() {
			if(x.readyState==4){
				var t=x.responseText;
				var r=new RegExp("Array(.*?);");
				
				var s=r.exec(t);
				//alert(t);
				if(s){
					//alert(s);
					//alert(s[1]);
					var ss=eval("new Array" + s[1]);
					suggest(q,id,ss);
				}else{
				//alert("2");
				suggest(q,id,null);
				}
			}
		}
	;
	x.send(null);
} 


function csq(qu) {
	var q=qu.toLowerCase();
	var j=0;
	var a=new RegExp("[a-z0-9]");
	for(var i=0;i<q.length;i++){
		if(a.exec(q.charAt(i))){
			j=i;break;
		}
	}
	q=q.substring(j);
	return q;
} 


function ssc(q){
	for(var i=q.length - 1;i>1;i--){
		if(c[q.substring(0,i)]==null){
			/*return q.substring(0,i);*/}
		}
	return "";
} 

function suggest(q,id,ss){
	
	if ( ss && ss.length>0 ) {
		if ( ss[ss.length-1] == '' ) {
			ss=  ss.slice( 0, ss.length-1) ;
		}
} else {
	//alert("suggest " + q +" "+id+" "+ss);
	return;
	}
	c[q]=ss;
	if(ss==null){
		zS(id);
		return;
	}
	if(id=="tsb"){
		var dsc=document.getElementById("dsuggs_box");
		dsc.style.visibility="visible";
	}
	if(id=="tsb" && !(document.getElementById("dsuggs_"+id))){
		var t=cst(id,ss);
		dsc.appendChild(t);
	}
	 
	var dsr=cshtml(id,ss);
	  
	var dstb=document.getElementById("dstb_"+id);
	 
	var odsr=document.getElementById("dsrow_"+id);
	 
	dstb.replaceChild(dsr,odsr);
	 
	/*var dst=document.getElementById("dsuggs_"+id);
	dst.style.visibility="visible";
	var dsti=document.getElementById("dstitle_"+id);
	dsti.style.visibility="visible";*/
	//alert("okf");
} 


function cst(id,ss){
	var t=document.createElement("table");
	t.setAttribute("id","dsuggs_"+id);
	t.setAttribute("width","500");
	t.className="dsuggs_tsb";
	t.setAttribute("border","0");
	var tb=document.createElement("tbody");
	tb.setAttribute("id","dstb_"+id);
	var tr=document.createElement("tr");
	tr.setAttribute("id","dstitle_"+id);
	var ttd;
	if(tr.addEventListener){
		ttd=document.createElement("th");
		ttd.setAttribute("colspan",3);
		ttd.setAttribute("align","left");
	}else{
	 var tag="<th align=left colspan=3></td>";
	 ttd=document.createElement(tag);
	}
	ttd.setAttribute("align","left");
	var ti=document.createTextNode("Search Suggestions:");
	ttd.appendChild(ti);
	var ltd=document.createElement("td");
	ltd.setAttribute("align","right");
	ltd.setAttribute("id","dsshl_"+id);
	ltd.setAttribute("nowrap","nowrap");
	ltd.className="texte";
	var a=document.createElement("a");
	a.setAttribute("href","/");
	a.setAttribute("id","dshidesl_"+id)
	a.className="texte";
	a.onmousedown=hS;
	a.onmouseup=hS;
	var at=document.createTextNode("Hide Suggestions");
	a.appendChild(at);
	ltd.appendChild(a);
	tr.appendChild(ttd);
	tr.appendChild(ltd);
	var dsr=document.createElement("tr");
	dsr.setAttribute("id","dsrow_"+id);
	dsr.className="dsrow";
	tb.appendChild(tr);
	tb.appendChild(dsr);
	t.appendChild(tb);
	return t;
} 
	
	
/**
 Create suggestion html
 */	
function cshtml(id,ss){
	var c=gnsc(id,ss);
	var mx = 10;
	var r=document.createElement("tr");
	r.setAttribute("id","dsrow_" + id);
	//r.className="dsrow";
	for(var i=1;i<=c;i++){
		var s=(ss.length > (i-1)*mx) ? (i-1)*mx : 0;
		var e=(ss.length > (i-1)*mx) ? (ss.length >= ((i-1)*mx)+mx)? ((i-1)*mx)+mx : ss.length : 0;
		//alert(s+'-'+e);
		var t=csc(ss,s,e,id,i);
		r.appendChild(t);
	}
	r.style.visibility="visible";
	return r;
} 

function gnsc(id,ss){
	return 2;
	/*var l=0;var s=0;var c;
	for(var i=0;i<ss.length;i++){
		if(ss[i].length>18){
			l++;
		}
		s+=ss[i].length;
	}
	c=(l >= 3) ? 2 : (l > 0) ? 3 : 4;
	c=(s/ss.length > 12) ? 2 : c; 
	alert(c);
	return c;*/
} 

/**
generate one suggestion
*/
function csc(ss,s,e,id,c){
	var td=document.createElement("td");
	td.className="texte";
	var ul=document.createElement("ul");
	for(var i=s; i<e; i++){
		var li=document.createElement("li");
		var a=document.createElement("a");
		var t=gtv(id);
		var ind = ss[i].indexOf(']');
		var url="/communaute/v1_detail_film.php3?lefilm="+ ss[i].substr(0,ind);
		//a.className="dslink";
		a.setAttribute("href",url);
		a.setAttribute("target","_blank");
		//a.onmousedown=uh;a.onmouseup=uh;
		//alert(ss[i]);
		var ttt = unescape(ss[i].substr(ind+1));
		
		var t=document.createTextNode(ttt);
		a.appendChild(t);
		li.appendChild(a);
		ul.appendChild(li);
		}
	td.appendChild(ul);
	return td;
}
 

function gtv(id){if(id=="hsb"){return"hs";}if(id=="tsb"){return "ts";}if(id=="bsb"){return "bs";}} 

function uh(e){var b=document.getElementById("tsb");if(b){rE(b,"blur",csh,false);}var t;if(window.event){t=window.event.srcElement;}else{t=e.target;}var u=t.getAttribute("href");location.href=u;return false;} 


function zS(id){var s=document.getElementById("dsuggs_"+id);if(s){s.style.visibility="hidden";}var t=document.getElementById("dstitle_"+id);if(t){t.style.visibility="hidden";}var r=document.getElementById("dsrow_"+id);if(r){r.style.visibility="hidden";}var b=document.getElementById("dsuggs_box");if(b){b.style.visibility="hidden";}return true;} 


function csh(e){
	var t;
	if(window.event){
		t=window.event.srcElement;
	}else{
	t=e.target;
	}
	zS(t.getAttribute("id"));
} 


function hS(e){
	var ids=new Array('hsb','bsb','tsb');
	for(var n=0;n<ids.length;n++){
		var sb=document.getElementById(ids[n]);
		if(sb){var tb=document.getElementById("dstb_"+ids[n]);
		var r=document.getElementById("dsrow_"+ids[n]);if(tb && r){tb.removeChild(r);}
		if(ids[n]=="tsb"){
			zS("tsb");
		}
		rE(sb,"keyup",skuh,false);
		if(ids[n]=='tsb'){rE(sb,"blur",csh,false);}if (ids[n] != 'tsb'){var p=document.getElementById("dsshl_" + ids[n]);
		var l=document.getElementById("dshidesl_" + ids[n]);var nl=document.createElement("a");nl.setAttribute("href","/");nl.setAttribute("id","dsshowsl_" + ids[n]);nl.onclick=sS;var lt=document.createTextNode("Show Suggestions");nl.appendChild(lt);p.replaceChild(nl,l);}}}setCookie("beSuggest","0",90);return false;
} 



function sS(e){var ids=new Array('hsb','bsb','tsb');for(var n=0;n<ids.length;n++){var sb=document.getElementById(ids[n]);if(sb){var r=document.createElement("tr");r.setAttribute("id","dsrow_"+ids[n]);r.className="dsrow";var tb=document.getElementById("dstb_"+ids[n]);if(tb){tb.appendChild(r);srd(sb.value,ids[n]);gS(sb.value, ids[n]);}aE(sb,"keyup",skuh,false);if(ids[n]=='tsb'){aE(sb,"blur",csh,false);}if(ids[n]!='tsb'){var p=document.getElementById("dsshl_" + ids[n]);var l=document.getElementById("dsshowsl_" + ids[n]);var nl=document.createElement("a");nl.setAttribute("href","/");nl.setAttribute("id","dshidesl_"+ids[n]);nl.onclick=hS;var lt=document.createTextNode("Hide Suggestions");nl.appendChild(lt);p.replaceChild(nl,l);}}}setCookie("beSuggest","0",-1);return false;}

/**
 Add event
*/
function aE(obj,eType,func,capt){
	if(obj.addEventListener){
		obj.addEventListener(eType,func,capt);
	}else if(obj.attachEvent){
		obj.attachEvent("on"+eType,func);
	}
} 

/**
 Remove event
 */
function rE(obj,eType,func,capt){
	if(obj.removeEventListener){
		obj.removeEventListener(eType,func,capt);
	}else{
	obj.detachEvent("on"+eType,func);
	}
}

