Array.prototype.contains = function(obj) {
	var i, listed = false;
	for (i=0; i<this.length; i++) {
		if (this[i] === obj) {
			listed = true;
			break;
		}
	}
	return listed;
};

SONNEGG = {
	Layout: {
		
		init: function() {
			this.initAcc();
			this.initMainNav();
			this.initLangNav();
		},
		
		initAcc: function() {
			jQuery('#accordion').accordion({
				header: "h3",
				fillSpace: true
			});
		},
		
		initLangNav: function() {
			var availableLangCont = jQuery('div.availableLang');
			
			jQuery('.currentLang').mouseenter(function(){
				if(!availableLangCont.is(":animated"))
					availableLangCont.slideDown('slow');	
			});
			
			jQuery('#containerLangNav').mouseleave(function(){	
				availableLangCont.slideUp('slow');
			});
		},
		
		initMainNav: function(){
			jQuery("ul#mainNavList").superfish().find('ul').bgIframe({opacity:false});
			jQuery("ul#mainNavList li:last-child ul.subNav").css('left', '-85px');
		},
		
		quickAnfrage: function(lang) {
			if( lang=='de' ) {
				langLabel_month = new Array("Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
				langLabel_nights_single = 'Nächtigung';
				langLabel_nights_multi = 'Nächtigungen';
			}
			else {
				langLabel_month = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
				langLabel_nights_single = 'Night';
				langLabel_nights_multi = 'Nights';
			}
			
			today = new Date();			
			// days
			var dayOptionsHtml = '';
			for( i=1; i<=31; i++ ) {
				if( i==today.getDate() ) { daySelected = ' selected="selected"'; }
				else { daySelected = ''; }
				
				dayOptionsHtml = dayOptionsHtml + "\n"+'<option value="'+i+'"'+daySelected+'>'+i+'</option>';
			}
			jQuery("#quickAnfrage_D1").html(dayOptionsHtml);
			
			// month
			var monthOptionsHtml = '';
			for( i=1; i<=12; i++ ) {
				if( i==today.getMonth()+1 ) { monthSelected = ' selected="selected"'; }
				else { monthSelected = ''; }
				
				monthOptionsHtml = monthOptionsHtml + "\n"+'<option value="'+i+'"'+monthSelected+'>'+langLabel_month[i-1]+'</option>';
			}
			jQuery("#quickAnfrage_D2").html(monthOptionsHtml);
			
			// nights
			var nightsOptionsHtml = '';
			for( i=1; i<=21; i++ ) {
				if( i==1 ) { labelNight = langLabel_nights_single; }
				else { labelNight = langLabel_nights_multi; }
				
				if( i==7 ) { nightSelected = ' selected="selected"'; }
				else { nightSelected = ''; }
				
				nightsOptionsHtml = nightsOptionsHtml + "\n"+'<option value="'+i+'"'+nightSelected+'>'+i+' '+labelNight+'</option>';
			}
			jQuery("#quickAnfrage_D3").html(nightsOptionsHtml);
			
		},
		
		quickAnfragePauschalen: function(lang) {
			if( lang=='de' ) {
				langLabel_month = new Array("Jan", "Feb", "Mar", "Apr", "Mai", "Jun", "Jul", "Aug", "Sep", "Okt", "Nov", "Dez");
			}
			else {
				langLabel_month = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
			}
			
			today = new Date();			
			// days
			var dayOptionsHtml = '';
			for( i=1; i<=31; i++ ) {
				if( i==today.getDate() ) { daySelected = ' selected="selected"'; }
				else { daySelected = ''; }
				
				dayOptionsHtml = dayOptionsHtml + "\n"+'<option value="'+i+'"'+daySelected+'>'+i+'</option>';
			}
			jQuery("#quickAnfragePauschalen_D1").html(dayOptionsHtml);
			
			// month
			var monthOptionsHtml = '';
			for( i=1; i<=12; i++ ) {
				if( i==today.getMonth()+1 ) { monthSelected = ' selected="selected"'; }
				else { monthSelected = ''; }
				
				monthOptionsHtml = monthOptionsHtml + "\n"+'<option value="'+i+'"'+monthSelected+'>'+langLabel_month[i-1]+'</option>';
			}
			jQuery("#quickAnfragePauschalen_D2").html(monthOptionsHtml);
			
		},
		
		zimmerAnfrage: function(lang) {
			if( lang=='de' ) {
				langLabel_month = new Array("Januar", "Februar", "M&auml;rz", "April", "Mai", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember");
				langLabel_nights_single = 'Nächtigung';
				langLabel_nights_multi = 'Nächtigungen';
			}
			else {
				langLabel_month = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
				langLabel_nights_single = 'Night';
				langLabel_nights_multi = 'Nights';
			}
			
			today = new Date();			
			// days
			var preSelectedDay = SONNEGG.Misc.getURLParam(location.href, 'D1');
			var dayOptionsHtml = '';
			for( i=1; i<=31; i++ ) {
				if( preSelectedDay!='' ) {
					if( i==preSelectedDay ) { daySelected = ' selected="selected"'; }
					else { daySelected = ''; }
				}
				else {
					if( i==today.getDate() ) { daySelected = ' selected="selected"'; }
					else { daySelected = ''; }
				}
				
				dayOptionsHtml = dayOptionsHtml + "\n"+'<option value="'+i+'"'+daySelected+'>'+i+'</option>';
			}
			jQuery("#roomSearch_D1").html(dayOptionsHtml);
			
			// month
			var preSelectedMonth = SONNEGG.Misc.getURLParam(location.href, 'D2');
			var monthOptionsHtml = '';
			for( i=1; i<=12; i++ ) {
				if( preSelectedMonth!='' ) {
					if( i==preSelectedMonth ) { monthSelected = ' selected="selected"'; }
					else { monthSelected = ''; }
				}
				else {
					if( i==today.getMonth()+1 ) { monthSelected = ' selected="selected"'; }
					else { monthSelected = ''; }
				}

				
				monthOptionsHtml = monthOptionsHtml + "\n"+'<option value="'+i+'"'+monthSelected+'>'+langLabel_month[i-1]+'</option>';
			}
			jQuery("#roomSearch_D2").html(monthOptionsHtml);
			
			// nights
			var preSelectedNights = SONNEGG.Misc.getURLParam(location.href, 'D3');
			var nightsOptionsHtml = '';
			for( i=1; i<=21; i++ ) {				
				if( i==1 ) { labelNight = langLabel_nights_single; }
				else { labelNight = langLabel_nights_multi; }
				
				if( preSelectedNights!='' ) {
					if( i==preSelectedNights ) { nightSelected = ' selected="selected"'; }
					else { nightSelected = ''; }
				}
				else {
					if( i==7 ) { nightSelected = ' selected="selected"'; }
					else { nightSelected = ''; }
				}

				nightsOptionsHtml = nightsOptionsHtml + "\n"+'<option value="'+i+'"'+nightSelected+'>'+i+' '+labelNight+'</option>';
			}
			jQuery("#roomSearch_D3").html(nightsOptionsHtml);
			
		},
		resultFrame: function(lang) {
			
			if( lang=='en' ) { queryLang = '&LG=1'; }
			else { queryLang = ''; }
			
			var currentUri = location.href;
			var currentQueryStr = currentUri.substr(currentUri.indexOf("?"));
			var searchType = SONNEGG.Misc.getURLParam(location.href, 'queryType');
			
			if( searchType=='package' ) {
				var capCornFrameSrc = 'http://www.capcorn.net/QueryPackage'+currentQueryStr+queryLang;
			}
			else {
				var capCornFrameSrc = 'http://www.capcorn.net/Query'+currentQueryStr+queryLang;
			}
			document.write('<iframe name="resultFrame" id="resultFrame" width="100%" height="2000" src="'+capCornFrameSrc+'" frameborder="0"></iframe>');
		}

	},
	Misc: {
		getURLParam: function(srch, strParamName) {
			var strReturn = "";
			var strHref = srch;
			if ( strHref.indexOf("?") > -1 ){
				var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
				var aQueryString = strQueryString.split("&");
				for ( var iParam = 0; iParam < aQueryString.length; iParam++ ){
					if ( aQueryString[iParam].indexOf(strParamName.toLowerCase() + "=") > -1 ) {
						var aParam = aQueryString[iParam].split("=");
						strReturn = aParam[1];
						break;
					}
				}
			}
			return unescape(strReturn);
		}
	}
}