/**	Dropdown Plugin for jQuery. v1.0*	Developed by Intera GmbH for Budget Car Hire*	http://intera.de*/var stationDetails = new Object( {	// these information will be loaded dynamically and cached in this object });(function($){    $.fn.selectBox = function(options) {        return this.each(function(){            /*config loading / preset definition*/            var entries = options && typeof(options.entries) != 'undefined' ? options.entries : "8";            var moBgColor = options && typeof(options.moBgColor) != 'undefined' ? options.moBgColor : "#F5F7FB";            var moFgColor = options && typeof(options.moFgColor) != 'undefined' ? options.moFgColor : "#FF9800";            var showDetails = options && typeof(options.showDetails) != 'undefined' ? options.showDetails :false;			var dropOffSelectCo = options && typeof(options.dropOffSelectCo) != 'undefined' ? options.dropOffSelectCo : {'US':'', 'CA':''}; // use object for performant "query"            var checkCBR = options && typeof(options.checkCBR) != 'undefined' ? options.checkCBR : "#etacountry";	            var xSelect = $(this);            xSelect.hide();			xSelect.wrap('<div class="select_replace" style="width:279px"></div>'); //use this as new "parent"   		  			//xSelect.show();            xSelect = xSelect.parent();            xSelect.append( '<div class="display" style="width:254px;"></div><div class="options" style="display:none;overflow:hidden;position:absolute;z-index:100;"><ul></ul></div>' );			if(showDetails) {				xSelect.append('<div class="stationDetails" style="display:none;"></div>')			}            xSelect.find( '.display' ).text( xSelect.find('option:selected').text())            var xOptions = xSelect.find( 'div.options' );            	       			/*the multiplicatior 25 has to be set analogue to the LI line-height from CSS*/            xOptions.css({ "height": (entries * 25 ), width: xSelect.width() });            xSelect.click( function(e){				//				if( $(this).find('div.options:hidden').length )				{					$('div.options:visible').hide();										xOptions.html(''); //empty					xOptions.html(						$(this).find('select').html() 					);					// this iframe is needed. #hack #ie6					// xOptions.append('<!-- [if lte IE 6.5]><iframe></iframe><![endif] -->');					// convert OPTION to LI tags					xOptions.find('option').each(function(){						if($(this).attr('value') != "")						{							$(this).replaceWith(								'<li ccode="' + $(this).attr('value') + '" fc="'+ ($(this).text()).toLowerCase().slice(0,1) +'">' + $(this).text() + '</li>'							);						} else						{							$(this).replaceWith("<strong>" + $(this).text() + "</strong>")						}											});					if(showDetails) {					// add ul for correct DOM						xOptions.wrapInner('<ul></ul>');					}					// THEN convert optgroups to strongs + uls 					xOptions.find('optgroup').each(function(){						$(this).replaceWith(							"<strong>" + $(this).attr('label') + "</strong>" + 							'<ul>' + $(this).html() + '</ul>'						)					}); 										// this div is needed. #hack #ie6					xOptions.wrapInner('<div class="ieFix" style="overflow:auto;height:'+ (entries*25)  +'px;position:relative;"></div>');						/*					 *	hide list entries that are not part of CBR-Rentals					 */					var dd_id = '#' + ($(this).find('select').attr('id'));					if( dd_id  != checkCBR && dd_id.indexOf('location') > 0 && gUSCAcrossBorderAllowed == true )					{											_cbr = ( $(checkCBR).val().substr(0,2) ).toUpperCase();																	if( _cbr in dropOffSelectCo )						{ // do it this way to avoid glitches by the :not(s) selector							xOptions.find('li').hide();							xOptions.find('li[ccode^="' + _cbr + '"]').show();						}					}										// this iframe is needed. #hack #ie6					if ( $.browser.msie &&  $.browser.version < 7 ) {						xOptions.append('<iframe></iframe>');					}										xOptions.show();					/* mark active entry and scroll to it */					xFindNode = xOptions.find('li:contains(' + xSelect.find('.display').text()+ ')')					xOptions.find('div').scrollTop(0)					off = xFindNode.offset();					if ( off.top != 0 ){						xTop = xOptions.find('div').offset();	                    	xOptions.find('div').scrollTop(  off.top - xTop.top );					}					xFindNode.css({						backgroundColor: moBgColor,						color: moFgColor					});										$.fn.selectBox.openOptions(e);									} else				{					xOptions.hide();				}				/* */								$(this).find('div.options:visible li').mouseover(function(){					$(this).siblings().trigger('mouseout')					$(this).css({ backgroundColor:moBgColor, color:moFgColor })										/*show details-div*/					xStationDetails = $(this).parents('div.select_replace').find('div.stationDetails')										xStationDetails.css({						display: 'block',						position: "absolute",						width: xOptions.width(),						backgroundColor:'#fff',						'float':'right',						marginLeft: ( xOptions.width() ),						zIndex:1000					});										xStationDetails.html( 						stationDetails[$(this).attr('ccode')]					)				});				$(this).find('div.options li').mouseout(function(){					$(this).css({ backgroundColor:"", color:"" })					$(this).parents('div.select_replace').find('div.stationDetails').hide()									});				$(this).parents().find( 'div.options li' ).mousedown(function(){					var xText = $(this).text();					var xVal = $(this).attr('ccode');					$(this).parents('div').prev('div.display:eq(0)').text( xText );					//					$(this).parents('div').prevAll('select').val(xVal).trigger('change');					$(this).parents('div.select_replace').find('select option[value="'+xVal+'"]').attr("selected", "selected");										$(this).parents('div.select_replace').find('select').val(xVal).trigger('change');										// check for CBR-Countries					if( xVal in dropOffSelectCo )					{						$('#ettcountry_ro').show();						$('#ettcountry_ro a').trigger('click');					}					$(this).parents('div.select_replace').find('div.stationDetails').hide()					$('div.options:visible').hide();				});            });                   });	};    	$.fn.selectBox.createDropDowns = function(_select)	{			}	$.fn.selectBox.scrollToEntry = function()	{	}    	$.fn.selectBox.openOptions = function(e)	{		$.fn.selectBox.bindKeys();		$(document).mouseup(close)		 	}		$.fn.selectBox.closeOptions = function()	{		$(document).unbind('keydown');	}	$.fn.selectBox.closeDetails = function()	{	}		$.fn.selectBox.bindKeys = function(e){			$(document).keydown(function(e){			/*			 *	The keydown-event needs to be unbound before binding it to avoid double 			 *	bindings of the same event which causes strange behaviours on keysearching			 *	the entries of the options.			*/						var xOptions = $('div.options:visible');							if( !xOptions.length ){				return;			}			var xUl = xOptions.find( 'ul' )			var xFirst = xUl.firstChild;			var xLast = xUl.lastChild;						var evtobj = window.event ? event : e //distinguish between IE's explicit event object (window.event) and Firefox's implicit.			var key = evtobj.charCode ? evtobj.charCode : evtobj.keyCode;					if( key >= 48 && key <= 122 ) // is a alphabetical character			{				var a=String.fromCharCode(key).toLowerCase();//				try{console.log(key + "|" + a)}catch(e){}				xFindNode = $('div.options:visible li[fc=' + a + ']:first');				xFindNode.trigger('mouseover').siblings().trigger('mouseout');				xOptions.scrollTop(0);				xOptions.find('div').scrollTop(0)				var xo = xFindNode.offset();//				try{console.log("xo.top: " + xo.top)}catch(e){}//				try{console.log("xTop.top: " + xTop.top)}catch(e){}								xOptions.find('div').scrollTop(  (xo.top) - xTop.top );							/*					if ((xo.top - xTop.top) >= 200  )					xOptions.find('div').scrollTop(  (xo.top) - xTop.top );				if ((xo.top) <= -200  )					xOptions.find('div').scrollTop(  (-1)*( (xo.top) + xTop.top ));			*/			}			else			{				e.preventDefault();				return false;			}		});		}    	var close = function(e){		elem = $(safeReturnElement(e)).attr('class');		if (				elem == "ieFix" || 			elem == "select_replace" ||			elem == "display"	)		{ return; }				var xOptions = $('.options:visible');		if( xOptions.length || (e.type == "keyup" && e.keyCode != 27 ) ){			$('.stationDetails').hide();			xOptions.hide();			return;		} 		$('.stationDetails').hide();	}    })(jQuery);function safeReturnElement(e) {	var targ;	if (!e) var e = window.event;	if (e.target) targ = e.target;	else if (e.srcElement) targ = e.srcElement;	if (targ.nodeType == 3) // defeat Safari bug		targ = targ.parentNode;			return targ;}