/**	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) {       	//var 	noSelectBox = false;		isIE6 = ($.browser.msie && parseFloat( $.browser.version ) < 7 );		isMobile = false;	brwser=(navigator.userAgent+navigator.vendor+window.opera);if(/android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i.test(brwser)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i.test(brwser.substr(0,4))){isMobile=true};				if( isIE6 || isMobile ) {			return false;		}	        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()+ ')');					if( xFindNode.length > 0 ) {						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');					/*					console.log( "gCrossBorderActive  : " + gCrossBorderActive )					console.log( "ccode  : " + xVal )					console.log( "ccode.length  : " + xVal.length )					*/					if( xVal.length < 4 && !gCrossBorderActive ) {						$('div.select_replace:has(#ettcountry)').hide()					}					if( xVal.length == 4 ) {						$('div.select_replace:has(#ettcountry)').show()					}										$(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;}
