/*================
GENERALS
*///================

var nVer = navigator.appVersion;
var nAgt = navigator.userAgent;
var browserName  = navigator.appName;
var fullVersion  = ''+parseFloat(navigator.appVersion); 
var majorVersion = parseInt(navigator.appVersion,10);
var nameOffset,verOffset,ix;

if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
	fullVersion = nAgt.substring(verOffset+5);
} 
if ((ix=fullVersion.indexOf(";"))!=-1) fullVersion=fullVersion.substring(0,ix);
if ((ix=fullVersion.indexOf(" "))!=-1) fullVersion=fullVersion.substring(0,ix);

var window_width = $(window).width();
var window_height = $(window).height();

function browser_abm (xy) {
	if(xy == 'w')
		return window_width = $(window).width();
	else 
		return window_height = $(window).height();	
}

/*---- TOOLTIPS PRODUCTLISTING ----*/
	hppic = new Array(41);
	tppic = new Array(41);
	function toggle_ttip(i,o) {
		if (hppic[i] == 1 && o == 'over'){
			window.clearTimeout(tppic[i]);
		}
		if(o == 'over') {		
			hppic[i] = 1;
			$('#sizeTooltip_'+i).slideDown('fast');	
		}
		if(hppic[i] == 1 && o == 'out') {
			tppic[i]=window.setTimeout('untoggle_ttip('+i+');hppic['+i+']="0";',3000);	
		}
	}
	function untoggle_ttip(i){		
		$('#sizeTooltip_'+i).slideUp('slow');
	}
	/*---- TOOLTIPS PRODUCTLISTING ----*/
		
	/*---- MODALWINDOWS ----*/ 
	var modal_id;
	var safety = '';
	
	$(document).ready(function(){
		$('#activate_msg').click(function(){      
			  modal_id = $(this).attr('name');
			  show_modal(modal_id); 
		});
		
		$('#msg-close').click(function(){
			close_modal();
		});
	});
	
	//THE FUNCTIONS	
	function show_modal(mod_id,file,w,h,scrolling){	
		var scrOfY = 0;  
		if( typeof( window.pageYOffset ) == 'number' ) {  
			scrOfY = window.pageYOffset;  
		} else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {  
			scrOfY = document.body.scrollTop;  
		} else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {   
			scrOfY = document.documentElement.scrollTop;    
		}  
		modal_id = mod_id;
		
		$('#black').css({ 'display' : 'block', opacity : 0, 'height' : $('#container').outerHeight()+'px'});
		$('#black').fadeTo(500,0.3);
		
		var addleft = 0;
		
		if(w) var mwidth=w; else var mwidth=920;
		if(h) var mheight=h; else var mheight=500;
		if(!scrolling) var scrolling='auto';
		
		if(file && (check_file(file) == 'swf' || file.indexOf('.youtube') >= 0)) {
			if(w) var mwidth=w; else var mwidth=480;
			if(h) var mheight=h; else var mheight=272;
			//safety = document.getElementById('msg-content').innerHTML;
			document.getElementById('msg-content').style.padding = '0px';
			var str;
			str = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=5,0,0,0" width="'+mwidth+'" height="'+mheight+'">';
			str += '<param name="movie" value="'+file+'" id="productMovie">';
			str += '<param name="quality" value="high">';
			str += '<param name="linkfromdisplay" value="true">';
			str += '<param name="javascriptid" value="mpl">';
			str += '<param name="usekeys" value="false">';
			str += '<param name="bgcolor" value="#ffffff">';
			str += '<param name="wmode" value="opaque">';
			str += '<embed src="'+file+'" name="productMovie" width="480" height="272" quality="high" pluginspage="http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash" type="application/x-shockwave-flash" wmode="opaque">';
			str += '</embed>';
			str += '</object>';
			document.getElementById('msg-content').innerHTML = str;
		} else if(mod_id == 'tennislive.php') {
				document.getElementById('msg-content').style.padding = '0px';
				document.getElementById('msg-content').innerHTML = '<iframe height="310" width="792" src="'+modal_id+'" scrolling="auto" frameborder="0" class="modal_frame"></iframe>';
		} else if (modal_id.indexOf('popup_content') >= 0) {	
			//safety = document.getElementById('msg-content').innerHTML;
			document.getElementById('msg-content').style.padding = '0px';
			document.getElementById('msg-content').innerHTML = '<iframe height="'+mheight+'" width="'+mwidth+'" src="'+modal_id+'" scrolling="'+scrolling+'" frameborder="0" class="modal_frame"></iframe>';
			addleft = -5;		
		} else if (modal_id.indexOf('http') >= 0 || modal_id.indexOf('.php') >= 0 || modal_id.indexOf('.html') >= 0) {	
			//safety = document.getElementById('msg-content').innerHTML;
			document.getElementById('msg-content').style.padding = '0px';
			document.getElementById('msg-content').innerHTML = '<iframe height="500" width="960" src="'+modal_id+'" scrolling="auto" frameborder="0" class="modal_frame"></iframe>';
			addleft = -10;
		} else {
			safety = document.getElementById(modal_id).innerHTML;
			document.getElementById('msg-content').innerHTML = safety;
			document.getElementById('msg-content').style.padding = '10px';
			document.getElementById(modal_id).innerHTML='';
		}
    
		var modal_height = $('#msg').outerHeight();
		var modal_width = $('#msg').outerWidth();
		var top = scrOfY+((window_height-modal_height)/2);
		var left = ((window_width-modal_width)/2)+addleft;		
		
		if((fullVersion && (fullVersion.indexOf('6.') != -1)) || nAgt.indexOf("Opera") != -1) {	 //Opera verhält sich ähnlich zu IE6
			$('#msg').css({'top' : top , 'left' : left, 'width' : 900});
			$('#msg-close').css({'left' : 885});
		} else {
			$('#msg').css({'top' : top , 'left' : left});
		}
		$('#msg').fadeIn(500);
	}
	
	function check_file(file_name) {		
		// Dateiendung
		var extension = file_name.split('.');
		extension = extension[extension.length - 1];
		
		return extension;
	}
	
	/*---- MODALWINDOWS ----*/
	
	/*---- TOOLTIPS ----*/
	var TTIPC;
	function openHelpTTIP(popupCompName, evt) {
		if(safety == '') {
			var scrOfY = 0;
			if( typeof( window.pageYOffset ) == 'number') { scrOfY = window.pageYOffset; } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) { scrOfY = document.body.scrollTop; } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {	scrOfY = document.documentElement.scrollTop; }  
									
			var evt = (evt) ? evt : ((window.event) ? window.event : ""); 
			
			if(evt.clientX) {
				var tempX = (evt.clientX)-330;
				var tempY = scrOfY+(evt.clientY)-20; 
			} else if (evt.pageX) {
				var tempX = (evt.pageX)-330;
				var tempY = scrOfY+(evt.pageY)-20;
			}
			if(tempX < 0) {	tempX = 30;	}	
			
			
			//close_modal();
			modal_id = popupCompName;
			
			safety = document.getElementById(modal_id).innerHTML;
			document.getElementById('msg-content').innerHTML = safety;
			document.getElementById(modal_id).innerHTML=''; 
			
			if((fullVersion && (fullVersion.indexOf('6.') != -1)) || nAgt.indexOf("Opera") != -1) { //Opera verhält sich ähnlich zu IE6
				$('#msg').css({'top' : tempY , 'left' : tempX, 'width' : 350});
				$('#msg-close').css({'left' : 335});
			} else {
				$('#msg').css({'top' : tempY , 'left' : tempX});
			}		
			
			$('#msg').fadeIn(500); 
			TTIPC = window.setTimeout('close_modal(\''+popupCompName+'\')',25000); 
		}
	}
		
	function close_modal(){
		if(modal_id) {
			$('#black').fadeOut(500);
			$('#msg').fadeOut(500);
			window.clearTimeout(TTIPC); 
			if(document.getElementById(modal_id)) {
				document.getElementById(modal_id).innerHTML=safety;
			}
			window.setTimeout('unset_msg()',600);
		}
		
	}
	function unset_msg (){document.getElementById('msg-content').innerHTML=''; modal_id=''; safety='';}
	/*---- TOOLTIPS ----*/
	
	/*---- CHECK SIZE ----*/	
	function checksize(size_id) {
		var sn = 'select'+size_id.id;
		var cn = size_id.parentNode.childNodes.length;
		

		if(document.getElementById('smart_submit')){
			document.getElementById('smart_submit').disabled=false;
			document.getElementById('choose_size').style.display="none";
		}

		for(var i=0; i<cn; i++) {
			if(size_id.parentNode.childNodes[i].id) {
				var id = size_id.parentNode.childNodes[i];
				var id2 = 'select'+size_id.parentNode.childNodes[i].id;
				if(id.id == size_id.id) {
					size_id.className='size-click';
				} else {
					id.className='size';
				}
				
				if(id2 == sn) {
					document.getElementById(sn).style.display='block';
					document.getElementById('prod_selected_inf').style.display='block';
				} else {
					document.getElementById(id2).style.display='none';
				}
			}
		}		
	}
	/*---- CHECK SIZE ----*/

/**
* hoverIntent r5 // 2007.03.27 // jQuery 1.1.2+
*/
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY;};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev]);}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev]);};var handleHover=function(e){var p=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(p&&p!=this){try{p=p.parentNode;}catch(e){p=this;}}if(p==this){return false;}var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);}if(e.type=="mouseover"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob);},cfg.interval);}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob);},cfg.timeout);}}};return this.mouseover(handleHover).mouseout(handleHover);};})(jQuery);
/* =========================================================
// jquery.innerfade.js
// ========================================================= */
(function($){$.fn.fadeteaser=function(options){var settings;return this.each(function(){$.fadeteaser(this,options);});};$.stop_mainteaser=function(teaser_sm){var mainchilds=$('#mainpics').children();var parent=$(teaser_sm).parent();var childs=parent.children();for(var i=0;i<childs.length;i++){$(childs[i]).removeClass();$(childs[i]).addClass('inactiv');$(mainchilds[i]).fadeOut('slow');}
$(teaser_sm).addClass('activ');$('#mainp'+teaser_sm.id.substring((teaser_sm.id.length)-1,(teaser_sm.id.length))).fadeIn('slow');settings.slide_timer='no';}
$.fadeteaser=function(container,options){settings={'animationtype':'fade','speed':'normal','type':'sequence','timeout':2000,'containerheight':'auto','runningclass':'activ','children':null,'slide_timer':'yes'};if(options)
$.extend(settings,options);if(settings.children===null){var elements=$(container).children();var elements2=$('#mainswitch').children();}else{var elements=$(container).children(settings.children);var elements2=$('#mainswitch').children(settings.children);}
if(elements.length>1){$(container).css('position','relative').css('height',settings.containerheight).addClass(settings.runningclass);for(var i=0;i<elements.length;i++){$(elements[i]).css('z-index',String(elements.length-i)).css('position','absolute').hide();};if(settings.type=="sequence"){setTimeout(function(){$.fadeteaser.next(elements,elements2,settings,1,0);},settings.timeout);$(elements[0]).show();}else if(settings.type=="random"){var last=Math.floor(Math.random()*(elements.length));setTimeout(function(){do{current=Math.floor(Math.random()*(elements.length));}while(last==current);$.fadeteaser.next(elements,elements2,settings,current,last);},settings.timeout);$(elements[last]).show();}else if(settings.type=='random_start'){settings.type='sequence';var current=Math.floor(Math.random()*(elements.length));setTimeout(function(){$.fadeteaser.next(elements,elements2,settings,(current+1)%elements.length,current);},settings.timeout);$(elements[current]).show();}else{alert('fadeteaser-Type must either be \'sequence\', \'random\' or \'random_start\'');}}};$.fadeteaser.next=function(elements,elements2,settings,current,last){if(settings.slide_timer=='yes'){if(settings.animationtype=='slide'){$(elements[last]).slideUp(settings.speed);$(elements[current]).slideDown(settings.speed);}else if(settings.animationtype=='fade'){$(elements[last]).fadeOut(settings.speed);$(elements[current]).fadeIn(settings.speed,function(){removeFilter($(this)[0]);});$(elements2[last]).removeClass('activ');$(elements2[last]).addClass('inactiv');$(elements2[current]).addClass('activ');}else
alert('fadeteaser-animationtype must either be \'slide\' or \'fade\'');if(settings.type=="sequence"){if((current+1)<elements.length){current=current+1;last=current-1;}else{current=0;last=elements.length-1;}}else if(settings.type=="random"){last=current;while(current==last)
current=Math.floor(Math.random()*elements.length);}else
alert('fadeteaser-Type must either be \'sequence\', \'random\' or \'random_start\'');setTimeout((function(){$.fadeteaser.next(elements,elements2,settings,current,last);}),settings.timeout);}};})(jQuery);function removeFilter(element){if(element.style.removeAttribute){element.style.removeAttribute('filter');}}
/* =========================================================
// jquery.autocomplete.js
// ========================================================= */
;(function($){$.fn.extend({autocomplete:function(urlOrData,options){var isUrl=typeof urlOrData=="string";options=$.extend({},$.Autocompleter.defaults,{url:isUrl?urlOrData:null,data:isUrl?null:urlOrData,delay:isUrl?$.Autocompleter.defaults.delay:10,max:options&&!options.scroll?10:150},options);options.highlight=options.highlight||function(value){return value;};options.formatMatch=options.formatMatch||options.formatItem;return this.each(function(){new $.Autocompleter(this,options);});},result:function(handler){return this.bind("result",handler);},search:function(handler){return this.trigger("search",[handler]);},flushCache:function(){return this.trigger("flushCache");},setOptions:function(options){return this.trigger("setOptions",[options]);},unautocomplete:function(){return this.trigger("unautocomplete");}});$.Autocompleter=function(input,options){var KEY={UP:38,DOWN:40,DEL:46,TAB:9,RETURN:13,ESC:27,COMMA:188,PAGEUP:33,PAGEDOWN:34,BACKSPACE:8,SPACE:32};var $input=$(input).attr("autocomplete","off").addClass(options.inputClass);var timeout;var previousValue="";var cache=$.Autocompleter.Cache(options);var hasFocus=0;var lastKeyPressCode;var config={mouseDownOnSelect:false};var select=$.Autocompleter.Select(options,input,selectCurrent,config);var blockSubmit;$.browser.opera&&$(input.form).bind("submit.autocomplete",function(){if(blockSubmit){blockSubmit=false;return false;}});$input.bind(($.browser.opera?"keypress":"keydown")+".autocomplete",function(event){hasFocus=1;lastKeyPressCode=event.keyCode;switch(event.keyCode){case KEY.UP:event.preventDefault();if(select.visible()){select.prev();}else{onChange(0,true);}
selectCurrent();break;case KEY.DOWN:event.preventDefault();if(select.visible()){select.next();}else{onChange(0,true);}
selectCurrent();break;case KEY.PAGEUP:event.preventDefault();if(select.visible()){select.pageUp();}else{onChange(0,true);}
break;case KEY.PAGEDOWN:event.preventDefault();if(select.visible()){select.pageDown();}else{onChange(0,true);}
break;case options.multiple&&$.trim(options.multipleSeparator)==","&&KEY.COMMA:case KEY.TAB:case KEY.RETURN:selectCurrent();break;case KEY.ESC:select.hide();break;case KEY.SPACE:select.hide();default:clearTimeout(timeout);timeout=setTimeout(onChange,options.delay);break;}}).focus(function(){hasFocus++;}).blur(function(){hasFocus=0;if(!config.mouseDownOnSelect){hideResults();}}).click(function(){if(hasFocus++>1&&!select.visible()){onChange(0,true);}}).bind("search",function(){var fn=(arguments.length>1)?arguments[1]:null;function findValueCallback(q,data){var result;if(data&&data.length){for(var i=0;i<data.length;i++){if(data[i].result.toLowerCase()==q.toLowerCase()){result=data[i];break;}}}
if(typeof fn=="function")fn(result);else $input.trigger("result",result&&[result.data,result.value]);}
$.each(trimWords($input.val()),function(i,value){request(value,findValueCallback,findValueCallback);});}).bind("flushCache",function(){cache.flush();}).bind("setOptions",function(){$.extend(options,arguments[1]);if("data"in arguments[1])
cache.populate();}).bind("unautocomplete",function(){select.unbind();$input.unbind();$(input.form).unbind(".autocomplete");});function selectCurrent(){var selected=select.selected();if(!selected)
return false;var v=selected.result;previousValue=v;if(lastKeyPressCode==KEY.RETURN){if(options.multiple){var words=trimWords($input.val());if(words.length>1){var seperator=options.multipleSeparator.length;var cursorAt=$(input).selection().start;var wordAt,progress=0;$.each(words,function(i,word){progress+=word.length;if(cursorAt<=progress){wordAt=i;return false;}
progress+=seperator;});words[wordAt]=v;v=words.join(options.multipleSeparator);}
v+=options.multipleSeparator;}}
$input.val(v);if(lastKeyPressCode==KEY.RETURN){hideResultsNow();}
$input.trigger("result",[selected.data,selected.value]);return true;}
function onChange(crap,skipPrevCheck){if(lastKeyPressCode==KEY.DEL){select.hide();return;}
var currentValue=$input.val();if(!skipPrevCheck&&currentValue==previousValue)
return;previousValue=currentValue;currentValue=lastWord(currentValue);if(currentValue.length>=options.minChars){$input.addClass(options.loadingClass);if(!options.matchCase)
currentValue=currentValue.toLowerCase();request(currentValue,receiveData,hideResultsNow);}else{stopLoading();select.hide();}};function trimWords(value){if(!value)
return[""];if(!options.multiple)
return[$.trim(value)];return $.map(value.split(options.multipleSeparator),function(word){return $.trim(value).length?$.trim(word):null;});}
function lastWord(value){if(!options.multiple)
return value;var words=trimWords(value);if(words.length==1)
return words[0];var cursorAt=$(input).selection().start;if(cursorAt==value.length){words=trimWords(value)}else{words=trimWords(value.replace(value.substring(cursorAt),""));}
return words[words.length-1];}
function autoFill(q,sValue){if(options.autoFill&&(lastWord($input.val()).toLowerCase()==q.toLowerCase())&&lastKeyPressCode!=KEY.BACKSPACE){$input.val($input.val()+sValue.substring(lastWord(previousValue).length));$(input).selection(previousValue.length,previousValue.length+sValue.length);}};function hideResults(){clearTimeout(timeout);timeout=setTimeout(hideResultsNow,200);};function hideResultsNow(){var wasVisible=select.visible();select.hide();clearTimeout(timeout);stopLoading();if(options.mustMatch){$input.search(function(result){if(!result){if(options.multiple){var words=trimWords($input.val()).slice(0,-1);$input.val(words.join(options.multipleSeparator)+(words.length?options.multipleSeparator:""));}
else{$input.val("");$input.trigger("result",null);}}});}};function receiveData(q,data){if(data&&data.length&&hasFocus){stopLoading();select.display(data,q);autoFill(q,data[0].value);select.show();}else{hideResultsNow();}};function request(term,success,failure){if(!options.matchCase)
term=term.toLowerCase();var data=cache.load(term);if(data&&data.length){success(term,data);}else if((typeof options.url=="string")&&(options.url.length>0)){var extraParams={timestamp:+new Date()};$.each(options.extraParams,function(key,param){extraParams[key]=typeof param=="function"?param():param;});$.ajax({mode:"abort",port:"autocomplete"+input.name,dataType:options.dataType,url:options.url,data:$.extend({q:lastWord(term),limit:options.max},extraParams),success:function(data){var parsed=options.parse&&options.parse(data)||parse(data);cache.add(term,parsed);success(term,parsed);}});}else{select.emptyList();failure(term);}};function parse(data){var parsed=[];var rows=data.split("\n");for(var i=0;i<rows.length;i++){var row=$.trim(rows[i]);if(row){row=row.split("|");parsed[parsed.length]={data:row,value:row[0],result:options.formatResult&&options.formatResult(row,row[0])||row[0]};}}
return parsed;};function stopLoading(){$input.removeClass(options.loadingClass);};};$.Autocompleter.defaults={inputClass:"ac_input",resultsClass:"ac_results",loadingClass:"ac_loading",minChars:1,delay:400,matchCase:false,matchSubset:true,matchContains:false,cacheLength:10,max:100,mustMatch:false,extraParams:{},selectFirst:true,formatItem:function(row){return row[0];},formatMatch:null,autoFill:false,width:0,multiple:false,multipleSeparator:", ",highlight:function(value,term){return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)("+term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi,"\\$1")+")(?![^<>]*>)(?![^&;]+;)","gi"),"<strong>$1</strong>");},scroll:true,scrollHeight:180};$.Autocompleter.Cache=function(options){var data={};var length=0;function matchSubset(s,sub){if(!options.matchCase)
s=s.toLowerCase();var i=s.indexOf(sub);if(options.matchContains=="word"){i=s.toLowerCase().search("\\b"+sub.toLowerCase());}
if(i==-1)return false;return i==0||options.matchContains;};function add(q,value){if(length>options.cacheLength){flush();}
if(!data[q]){length++;}
data[q]=value;}
function populate(){if(!options.data)return false;var stMatchSets={},nullData=0;if(!options.url)options.cacheLength=1;stMatchSets[""]=[];for(var i=0,ol=options.data.length;i<ol;i++){var rawValue=options.data[i];rawValue=(typeof rawValue=="string")?[rawValue]:rawValue;var value=options.formatMatch(rawValue,i+1,options.data.length);if(value===false)
continue;var firstChar=value.charAt(0).toLowerCase();if(!stMatchSets[firstChar])
stMatchSets[firstChar]=[];var row={value:value,data:rawValue,result:options.formatResult&&options.formatResult(rawValue)||value};stMatchSets[firstChar].push(row);if(nullData++<options.max){stMatchSets[""].push(row);}};$.each(stMatchSets,function(i,value){options.cacheLength++;add(i,value);});}
setTimeout(populate,25);function flush(){data={};length=0;}
return{flush:flush,add:add,populate:populate,load:function(q){if(!options.cacheLength||!length)
return null;if(!options.url&&options.matchContains){var csub=[];for(var k in data){if(k.length>0){var c=data[k];$.each(c,function(i,x){if(matchSubset(x.value,q)){csub.push(x);}});}}
return csub;}else
if(data[q]){return data[q];}else
if(options.matchSubset){for(var i=q.length-1;i>=options.minChars;i--){var c=data[q.substr(0,i)];if(c){var csub=[];$.each(c,function(i,x){if(matchSubset(x.value,q)){csub[csub.length]=x;}});return csub;}}}
return null;}};};$.Autocompleter.Select=function(options,input,select,config){var CLASSES={ACTIVE:"ac_over"};var listItems,active=-1,data,term="",needsInit=true,element,list;function init(){if(!needsInit)
return;element=$("<div/>").hide().addClass(options.resultsClass).css("position","absolute").appendTo(document.body);list=$("<ul/>").appendTo(element).mouseover(function(event){if(target(event).nodeName&&target(event).nodeName.toUpperCase()=='LI'){active=$("li",list).removeClass(CLASSES.ACTIVE).index(target(event));$(target(event)).addClass(CLASSES.ACTIVE);}}).click(function(event){$(target(event)).addClass(CLASSES.ACTIVE);select();input.form.submit();return false;}).mousedown(function(){config.mouseDownOnSelect=true;}).mouseup(function(){config.mouseDownOnSelect=false;});if(options.width>0)
element.css("width",options.width);needsInit=false;}
function target(event){var element=event.target;while(element&&element.tagName!="LI")
element=element.parentNode;if(!element)
return[];return element;}
function moveSelect(step){listItems.slice(active,active+1).removeClass(CLASSES.ACTIVE);movePosition(step);var activeItem=listItems.slice(active,active+1).addClass(CLASSES.ACTIVE);if(options.scroll){var offset=0;listItems.slice(0,active).each(function(){offset+=this.offsetHeight;});if((offset+activeItem[0].offsetHeight-list.scrollTop())>list[0].clientHeight){list.scrollTop(offset+activeItem[0].offsetHeight-list.innerHeight());}else if(offset<list.scrollTop()){list.scrollTop(offset);}}};function movePosition(step){active+=step;if(active<0){active=listItems.size()-1;}else if(active>=listItems.size()){active=0;}}
function limitNumberOfItems(available){return options.max&&options.max<available?options.max:available;}
function fillList(){list.empty();var max=limitNumberOfItems(data.length);for(var i=0;i<max;i++){if(!data[i])
continue;var formatted=options.formatItem(data[i].data,i+1,max,data[i].value,term);if(formatted===false)
continue;var li=$("<li/>").html(options.highlight(formatted,term)).addClass(i%2==0?"ac_even":"ac_odd").appendTo(list)[0];$.data(li,"ac_data",data[i]);}
listItems=list.find("li");if(options.selectFirst){listItems.slice(0,1).addClass(CLASSES.ACTIVE);active=0;}
if($.fn.bgiframe)
list.bgiframe();}
return{display:function(d,q){init();data=d;term=q;fillList();},next:function(){moveSelect(1);},prev:function(){moveSelect(-1);},pageUp:function(){if(active!=0&&active-8<0){moveSelect(-active);}else{moveSelect(-8);}},pageDown:function(){if(active!=listItems.size()-1&&active+8>listItems.size()){moveSelect(listItems.size()-1-active);}else{moveSelect(8);}},hide:function(){element&&element.hide();listItems&&listItems.removeClass(CLASSES.ACTIVE);active=-1;},visible:function(){return element&&element.is(":visible");},current:function(){return this.visible()&&(listItems.filter("."+CLASSES.ACTIVE)[0]||options.selectFirst&&listItems[0]);},show:function(){var offset=$(input).offset();element.css({width:typeof options.width=="string"||options.width>0?options.width:$(input).width(),top:offset.top+input.offsetHeight,left:offset.left}).show();if(options.scroll){list.scrollTop(0);list.css({maxHeight:options.scrollHeight,overflow:'auto'});if($.browser.msie&&typeof document.body.style.maxHeight==="undefined"){var listHeight=0;listItems.each(function(){listHeight+=this.offsetHeight;});var scrollbarsVisible=listHeight>options.scrollHeight;list.css('height',scrollbarsVisible?options.scrollHeight:listHeight);if(!scrollbarsVisible){listItems.width(list.width()-parseInt(listItems.css("padding-left"))-parseInt(listItems.css("padding-right")));}}}},selected:function(){var selected=listItems&&listItems.filter("."+CLASSES.ACTIVE);return selected&&selected.length&&$.data(selected[0],"ac_data");},emptyList:function(){list&&list.empty();},unbind:function(){element&&element.remove();}};};$.fn.selection=function(start,end){if(start!==undefined){return this.each(function(){if(this.createTextRange){var selRange=this.createTextRange();if(end===undefined||start==end){selRange.move("character",start);selRange.select();}else{selRange.collapse(true);selRange.moveStart("character",start);selRange.moveEnd("character",end);selRange.select();}}else if(this.setSelectionRange){this.setSelectionRange(start,end);}else if(this.selectionStart){this.selectionStart=start;this.selectionEnd=end;}});}
var field=this[0];if(field.createTextRange){var range=document.selection.createRange(),orig=field.value,teststring="<->",textLength=range.text.length;range.text=teststring;var caretAt=field.value.indexOf(teststring);field.value=orig;this.selection(caretAt,caretAt+textLength);return{start:caretAt,end:caretAt+textLength}}else if(field.selectionStart!==undefined){return{start:field.selectionStart,end:field.selectionEnd}}};})(jQuery);
