/**
 *  author:	Timothy Groves - http://www.brandspankingnew.net
 *	version: 2.1.3 - 2007-07-19
 */
if (typeof(bsn)=="undefined") _b=bsn={};

if(typeof(_b.Autosuggest)=="undefined") _b.Autosuggest={};
else alert("Already set!");
_b.AutoSuggest=function(id,param){
if(!document.getElementById) return 0;
this.fld=_b.DOM.gE(id);
if(!this.fld) return 0;

this.sInp="";this.nInpC=0;this.aSug=[];this.iHigh=0;
this.oP=param ? param : {};
var k,def={minchars:1,meth:"get",varname:"input",className:"autosuggest",timeout:2500,delay:0,offsety:-5,shownoresults:true,noresults:"Sonuç yok!",maxheight:250,cache:true,maxentries:25,multisuggest:true};
for(k in def){
	if(typeof(this.oP[k])!=typeof(def[k])) this.oP[k]=def[k];
}
var p=this;
this.fld.onkeypress=function(ev){return p.onKeyPress(ev);};
this.fld.onkeyup=function(ev){return p.onKeyUp(ev);};
this.fld.setAttribute("autocomplete","off");
};
_b.AutoSuggest.prototype.onKeyPress=function(ev){
var key=(window.event) ? window.event.keyCode : ev.keyCode;
var RETURN=13;var TAB=9;var ESC=27;var SEMICOLON=186;var bubble=1;
switch(key){
case RETURN:
	if(this.aSug.length!=0){this.setHighlightedValue();bubble=false;}
	else{
		if(this.fld.value.length>0){
			if(typeof(this.oP.callback)=="function") this.oP.callback({id:this.fld.value,value:this.fld.value});
			bubble=false;
		}
		else bubble=true;
	}
break;
case ESC:this.clearSuggestions();break;
}
return bubble;
};
_b.AutoSuggest.prototype.onKeyUp=function(ev){
var key=(window.event) ? window.event.keyCode : ev.keyCode;
var ARRUP=38;var ARRDN=40;var bubble=1;
switch(key){
case ARRUP:this.changeHighlight(key);bubble=0;break;
case ARRDN:this.changeHighlight(key);bubble=0;break;
default:
	var new_value=this.fld.value.split(/[;]+/ig);
	this.getSuggestions(new_value[new_value.length-1]);
}
return bubble;
};
_b.AutoSuggest.prototype.getSuggestions=function(val){
if(val==this.sInp) return 0;
_b.DOM.remE(this.idAs);
this.sInp=val;
if(val.length<this.oP.minchars){this.aSug=[];this.nInpC=val.length;return 0;}
var ol=this.nInpC;
this.nInpC=val.length ? val.length : 0;
var l=this.aSug.length;
if(this.nInpC>ol && l && l<this.oP.maxentries && this.oP.cache){
	var arr=[];
	for(var i=0;i<l;i++){
		if(this.aSug[i].value.substr(0,val.length).toLowerCase()==val.toLowerCase() || this.aSug[i].info.substr(0,val.length).toLowerCase()==val.toLowerCase()){arr.push(this.aSug[i]);}
	}
	this.aSug=arr;
	if(this.aSug.length<l){var pointer=this;var input=this.sInp;clearTimeout(this.ajID);this.ajID=setTimeout(function(){pointer.doAjaxRequest(input)},this.oP.delay);}else{this.createList(this.aSug);}
	return false;
}
else{var pointer=this;var input=this.sInp;clearTimeout(this.ajID);this.ajID=setTimeout(function(){pointer.doAjaxRequest(input)},this.oP.delay);}
return false;
};
_b.AutoSuggest.prototype.doAjaxRequest=function(input){
var new_value=this.fld.value.split(/[;]+/ig);
if(input!=new_value[new_value.length-1]) return false;
var pointer=this;
if(typeof(this.oP.script)=="function") var url=this.oP.script(encodeURIComponent(this.sInp));
else var url=this.oP.script+this.oP.varname+"="+encodeURIComponent(this.sInp);
if(!url) return false;
var meth=this.oP.meth;var input=this.sInp;
var onSuccessFunc=function(req){pointer.setSuggestions(req,input)};
var onErrorFunc=function(status){};
var myAjax=new _b.Ajax();
myAjax.makeRequest(url,meth,onSuccessFunc,onErrorFunc);
};
_b.AutoSuggest.prototype.setSuggestions=function(req,input){
var new_value=this.fld.value.split(/[;]+/ig);
if(input!=new_value[new_value.length-1]) return false;
this.aSug=[];
if(this.oP.json){
	var jsondata=eval('('+req.responseText+')');
	for(var i=0;i<jsondata.results.length;i++){
		this.aSug.push({'id':jsondata.results[i].id,'value':jsondata.results[i].value,'info':jsondata.results[i].info,'photo':jsondata.results[i].photo,'photo_width':jsondata.results[i].photo_width});
	}
}
else{
	var xml=req.responseXML;
	var results= xml.getElementsByTagName('results')[0].childNodes;
	for(var i=0;i<results.length;i++){
		if(results[i].hasChildNodes()) this.aSug.push({'id':results[i].getAttribute('id'),'value':results[i].childNodes[0].nodeValue,'info':results[i].getAttribute('info')});
	}
}
this.idAs="as_"+this.fld.id;
this.createList(this.aSug);
};
_b.AutoSuggest.prototype.createList=function(arr){
var pointer=this;
_b.DOM.remE(this.idAs);
this.killTimeout();
if(arr.length==0 && !this.oP.shownoresults) return false;
var div=_b.DOM.cE("div",{id:this.idAs,className:this.oP.className});	
var hcorner=_b.DOM.cE("div",{className:"as_corner"});
var hbar=_b.DOM.cE("div",{className:"as_bar"});
var header=_b.DOM.cE("div",{className:"as_header"});
header.appendChild(hcorner);
header.appendChild(hbar);
div.appendChild(header);
var ul=_b.DOM.cE("ul",{id:"as_ul"});
for(var i=0;i<arr.length;i++){
	var val=arr[i].value;var val2=arr[i].info;var st=val.toLowerCase().indexOf(this.sInp.toLowerCase());var st2=val2.toLowerCase().indexOf(this.sInp.toLowerCase());
	if(st!=-1){
		var output=val.substring(0,st)+"<em>"+val.substring(st,st+this.sInp.length)+"</em>"+val.substring(st+this.sInp.length);var output2=val2;
	}
	else{
		var output=val;var output2=val2.substring(0,st2)+"<em>"+val2.substring(st,st2+this.sInp.length)+"</em>"+val2.substring(st2+this.sInp.length);
	}
	if(val!=val2){output=output2+" ("+output+")";}
	var span=_b.DOM.cE("span",{},output,true);var image=_b.DOM.cE("img",{src:arr[i].photo,width:arr[i].photo_width,border:"0"});
	image.removeAttribute("height");span.insertBefore(image,span.childNodes[0]);
	var a=_b.DOM.cE("a",{href:"javascript:void(0);"});var tl=_b.DOM.cE("span",{className:"tl"}," ");var tr=_b.DOM.cE("span",{className:"tr"}," ");
	a.appendChild(tl);a.appendChild(tr);a.appendChild(span);a.name=i+1;
	a.onclick=function(){pointer.setHighlightedValue();return false;};
	a.onmouseover=function(){pointer.setHighlight(this.name);};
	var li=_b.DOM.cE("li",{},a);ul.appendChild(li);
}
if(arr.length==0 && this.oP.shownoresults){
	var li=_b.DOM.cE("li",{className:"as_warning"},this.oP.noresults);ul.appendChild(li);
}
div.appendChild(ul);
var fcorner=_b.DOM.cE("div",{className:"as_corner"});var fbar=_b.DOM.cE("div",{className:"as_bar"});
var footer=_b.DOM.cE("div",{className:"as_footer"});footer.appendChild(fcorner);footer.appendChild(fbar);div.appendChild(footer);
var pos=_b.DOM.getPos(this.fld);div.style.left=pos.x+"px";div.style.top=(pos.y+this.fld.offsetHeight+this.oP.offsety)+"px";
div.style.width=this.fld.offsetWidth+"px";div.onmouseover=function(){pointer.killTimeout()};div.onmouseout=function(){pointer.resetTimeout()};document.getElementsByTagName("body")[0].appendChild(div);
this.iHigh=0;var pointer=this;this.toID=setTimeout(function(){pointer.clearSuggestions()},this.oP.timeout);
};
_b.AutoSuggest.prototype.changeHighlight=function(key){	
var list=_b.DOM.gE("as_ul");if(!list) return false;var n;
if(key==40) n=this.iHigh+1;else if(key==38) n=this.iHigh-1;
if(n>list.childNodes.length) n=list.childNodes.length;
if(n<1) n=1;this.setHighlight(n);
};
_b.AutoSuggest.prototype.setHighlight=function(n){
var list=_b.DOM.gE("as_ul");if(!list) return false;if(this.iHigh>0) this.clearHighlight();this.iHigh=Number(n);list.childNodes[this.iHigh-1].className="as_highlight";this.killTimeout();
};
_b.AutoSuggest.prototype.clearHighlight=function(){
var list=_b.DOM.gE("as_ul");if(!list) return false;if(this.iHigh>0){list.childNodes[this.iHigh-1].className="";this.iHigh=0;}
};
_b.AutoSuggest.prototype.setHighlightedValue=function(){
if(this.iHigh){
	var all_values=this.fld.value.split(/[;]+/ig);all_values.pop();all_values.push(this.aSug[this.iHigh-1].value);
	if(this.oP['multisuggest']){var semicolon=';';}else{var semicolon='';}
	this.sInp=this.fld.value=all_values.join(';')+semicolon;this.fld.focus();
	if(this.fld.selectionStart) this.fld.setSelectionRange(this.sInp.length,this.sInp.length);
	if(typeof(this.oP.callback)=="function") this.oP.callback(this.aSug[this.iHigh-1]);this.clearSuggestions();
}
};
_b.AutoSuggest.prototype.killTimeout=function(){clearTimeout(this.toID);};
_b.AutoSuggest.prototype.resetTimeout=function(){clearTimeout(this.toID);var pointer=this;this.toID=setTimeout(function(){pointer.clearSuggestions()},1000);};
_b.AutoSuggest.prototype.clearSuggestions=function(){
this.killTimeout();this.aSug=[];var ele=_b.DOM.gE(this.idAs);var pointer=this;
if(ele){var fade=new _b.Fader(ele,1,0,250,function(){_b.DOM.remE(pointer.idAs)});}
};
if(typeof(_b.Ajax)=="undefined") _b.Ajax={};
_b.Ajax=function(){this.req={};this.isIE=false;};
_b.Ajax.prototype.makeRequest=function(url,meth,onComp,onErr){
if(meth!="POST") meth="GET";this.onComplete=onComp;this.onError=onErr;var pointer=this;
if(window.XMLHttpRequest){this.req=new XMLHttpRequest();this.req.onreadystatechange=function(){pointer.processReqChange()};this.req.open("GET",url,true);this.req.send(null);}
else if(window.ActiveXObject){this.req=new ActiveXObject("Microsoft.XMLHTTP");if(this.req){this.req.onreadystatechange=function(){pointer.processReqChange()};this.req.open(meth,url,true);this.req.send();}}
};
_b.Ajax.prototype.processReqChange=function(){if(this.req.readyState==4){if(this.req.status==200){this.onComplete(this.req);}else{this.onError(this.req.status);}}};
if(typeof(_b.DOM)=="undefined") _b.DOM={};
_b.DOM.cE=function(type,attr,cont,html){
var ne=document.createElement(type);if(!ne) return 0;for(var a in attr) ne[a]=attr[a];var t=typeof(cont);
if(t=="string" && !html) ne.appendChild(document.createTextNode(cont));else if(t=="string" && html) ne.innerHTML=cont;else if(t=="object") ne.appendChild(cont);return ne;
};
_b.DOM.gE=function(e){
var t=typeof(e);
if(t=="undefined")return 0;
else if(t=="string"){var re=document.getElementById(e);if(!re) return 0;else if(typeof(re.appendChild)!="undefined") return re;else return 0;}
else if(typeof(e.appendChild)!="undefined") return e;
else return 0;
};
_b.DOM.remE=function(ele){var e=this.gE(ele);if(!e) return 0;else if(e.parentNode.removeChild(e)) return true;else return 0;};
_b.DOM.getPos=function(e){
var e=this.gE(e);var obj=e;var curleft=0;
if(obj.offsetParent){while(obj.offsetParent){curleft+=obj.offsetLeft;obj=obj.offsetParent;}}else if(obj.x) curleft+=obj.x;
var obj=e;var curtop=0;
if(obj.offsetParent){while(obj.offsetParent){curtop+=obj.offsetTop;obj=obj.offsetParent;}}else if(obj.y) curtop+=obj.y;
return {x:curleft,y:curtop};
};
if(typeof(_b.Fader)=="undefined") _b.Fader={};
_b.Fader=function(ele,from,to,fadetime,callback){	
if(!ele) return 0;
this.e=ele;this.from=from;this.to=to;this.cb=callback;this.nDur=fadetime;this.nInt=50;this.nTime=0;var p=this;this.nID=setInterval(function(){p._fade()},this.nInt);
};
_b.Fader.prototype._fade=function(){
this.nTime+=this.nInt;var ieop=Math.round(this._tween(this.nTime,this.from,this.to,this.nDur)*100);var op=ieop/100;
if(this.e.filters){try{this.e.filters.item("DXImageTransform.Microsoft.Alpha").opacity=ieop;}catch(e){this.e.style.filter='progid:DXImageTransform.Microsoft.Alpha(opacity='+ieop+')';}}else{this.e.style.opacity=op;}
if(this.nTime==this.nDur){clearInterval(this.nID);if(this.cb!=undefined) this.cb();}
};
_b.Fader.prototype._tween=function(t,b,c,d){return b+((c-b)*(t/d));};