/*
**
**	Do to on document ready
** 
**/

$(document).ready(function() {

/*
 *
 * reposition for styling - paddings and margins used
 * 
 */
    //if diffrent header height needs diffrent margins for AjaxNav
	repositionAjaxNav();
	//footer elements dynamic with same margin-left
	centerFooter();
	//if no AjaxNav Header margin-bottom only 15px else 69px
	repositionContent();
    //$(document).append('<!-- Replaced by Js -->');	
    
    //sometime flash dont run - but replacing helps - but -ie...
    try{
    // tmp = $('#wpcumuluswidgetcontent').html();
    // $('#wpcumuluswidgetcontent').html(tmp);
    } catch (e){}
/*
*	online Buchung tabnav toggle
*/
	$("#tab1, #tab2").click(function(){
			$("#minoptions").show()
			$("#maxoptions").hide();
			$("#tab1").addClass("act");
			$("#tab2").removeClass("act");
	});
    if ( $("#tab2.disabled").length == 0) {
        $("#tab2").click(function(){
            $("#minoptions").hide();
			$("#maxoptions").show();
			$("#tab1").removeClass("act");
			$("#tab2").addClass("act");
        });
	}

/*
 *   offer in list - as Tagungspauschalen togle for infoboxes
 */
	
	$('.offers_as_list .navText1').click(function(){
		$(this).parents('.offers_as_list').children('.offerContent').toggle('norm');
		$(this).toggleClass("offer_closed","");
	});
		
	$('.offers_as_list .offerContent').toggle('slow');
	$('.offers_as_list .navText1').toggleClass("offer_closed","");

	
/*
 *	Load Google map
 */
	

// function GBrowserIsCompatible() {}
	//google.load("maps", "2");

try{
  if (GBrowserIsCompatible()) {
    var map = new GMap2(document.getElementById('map_canvas'));
	//			  var map = new google.maps.Map2(document.getElementById("map_canvas"));
	//			  map.setCenter(new google.maps.LatLng(clat, clong), zoom);
   
	var marker = new GMarker(new GLatLng(mlat,mlong));
    map.setCenter(new GLatLng(clat,clong), zoom);
    //map.addControl(new GSmallMapControl());
    map.addOverlay(marker);
    //if (mhtml.length > '')
    //    marker.openInfoWindowHtml(mhtml);
  }
}
catch(e){

}
/*	
 *	start googlemap iframe?
 */
//	initialize();
	
  
/*
 * 
 * create ajax subnav
 *
 */   
    $("#ajaxSubmenu a").click(function() {
   		var url = $(this).attr("href"); // ("href").substring(1);
//   		alert($(this).attr("href"));
   		if (! $(this).parent().hasClass('current') ){
   			$("#col1_content").children().addClass("loading");
   			getContent(url);
   			setCur('#ajaxSubmenu',$(this).parent().parent());
      		$(this).blur();
   		}
   		return false;
	});
 	//get active Tab from url
 	getActTab();
 		
/*
 * Vertical center for angebote detailseite ... not needed :(
    
    if ( $('#offerImageGallery').length > 0)
        if ( $('#offerImageGallery').parent().height() > $('#offerImageGallery').height() ) {
            pad = Math.round(($('#offerImageGallery').parent().height() - $('#offerImageGallery').height()) / 2) ;
            $('#offerImageGallery').parent().height( $('#offerImageGallery').height());
            $('#offerImageGallery').parent().css('padding-top', pad +'px');
            $('#offerImageGallery').parent().css('padding-bottom', pad +'px');            
        } 
*/
    
}); // DOM - Ready ENDE


/*
 * 
 * Need to restart Slidshow after Ajax Loading 
 */


/*sezt im ajaxtabmenu den current status*/
function setCur (tabContainer,newCur){
	$(tabContainer).find('.current').toggleClass('current');
	$(newCur).toggleClass('current');	
}
    
function getContent(url) {

if ( url.indexOf(".html") !=-1 )
	newUrl = url.replace(/\.html/, "/ajax.html");
else if ( url.indexOf("?id=") !=-1 )
	newUrl =  url+"&type=999";
else
	newUrl =  url+"?type=999";

	$.ajax({
		//erweitere aufzurufenden Link fuer realurl :)
		url: newUrl,
		//url.replace(/\.html/, "/ajax.html"),
		//url: url+"&type=999",
		
		//wenn es geklappt hat
		success: function(html) {
		   $("#col1_content").html($(html).find('#col1_content').html());
				
			    repositionAjaxNav();
			    repositionContent();
				$('.offers_as_list .navText1').click(function(){
					$(this).parents('.offers_as_list').children('.offerContent').toggle('norm');
					$(this).toggleClass("offer_closed","");
				});
					
				$('.offers_as_list .offerContent').toggle('slow');
				$('.offers_as_list .navText1').toggleClass("offer_closed","");
	   			$("#col1_content").children().removeClass("loading");
	   			
	   			if ( document.getElementById('fader') ){ 
	   				initializeGallery();
	   			}
		   $("#col1_content").fadeIn();
		}
	});
}


/*
 * 
 * populate number of nights - online Buchung
 *
 */
function populateNights(){
    var dmy = $('#checkInTextBox').val().split('.');
    
	$('#checkInDate').val(dmy[0]);
	$('#checkInMonth').val(dmy[1]);
	$('#checkInYear').val(dmy[2]);
		
//	alert(""+ $('#checkInDate').val() + " "+ $('#checkInMonth').val() +""+ $('#checkInYear').val() );
	
	function parseDate(str) {
	    var dmy = str.split('.');
	              //  jahr      monat     tag
	    return new Date(dmy[2], dmy[1]-1, dmy[0]);
	}

	function daydiff(first, second) {
	    return (second-first)/(1000*60*60*24);
	}
	$("#numberOfNights").val(daydiff(parseDate($('#checkInTextBox').val()), parseDate($('#checkOutTextBox').val())));
}
 
 
 
/*
 * 
 * Center Footer Navigation 
 * 
 * 
 */
function centerFooter(){
	 var i = $(".footer_bottom_nav_element").size();
	 var max = $("#footer_margins").width() - $("#footer_left").width()-20; //10px rand lassen
	 var elementsWidth = 0;
 
	 $(".footer_bottom_nav_element").each(function(){
		 //remove default padding
		 $(this).css("padding-left","0px")
		 		.css("padding-right","0px");
		 //calc all elements width
		 elementsWidth += $(this).width();
	 });
	 var newpadding = Math.round((max-elementsWidth)/(i)) -1;
     //set new Padding
	 var index = 0;
	 $(".footer_bottom_nav_element").each(function(){
		 index ? $(this).css("margin-left",newpadding) : "" ;
        // alert($(this).css("margin-left"));
		 index ++;
	 });
}

 
/*
 * select active tab from uri
 * 
 */ 
function getActTab(){
	var urlid = jQuery.url.param('id');
	if ( urlid != null ) {
		$("#tabs").tabs('select', '#tab-' + urlid);
	} else {
		var urlname = jQuery.url.attr('file');
		if (urlname != null) {
			urlname = urlname.substr(0,urlname.length-5);
			var tabs = $("#tabs .tablinks");
			for (var i = tabs.length - 1; i >= 0; i--){
				var t = tabs[i].title.toLowerCase();
				t = t.replace(/ \/ /g,'-')
					 .replace(/\/ /g,'-')
					 .replace(/ \//g,'-')
					 .replace(/\//g,'-')
					 .replace(/ +/,' ')
					 .replace(/ /,'-');
				t=escape(t).replace(/%E4/g,'ae')
						.replace(/%F6/g,'oe')
						.replace(/%FC/g,'ue')
						.replace(/%DF/g,'ss');				
				if (t == urlname.toLowerCase()) {
			     urlid = tabs[i].rel;
			     $("#tabs").tabs('select', '#tab-' + urlid);
			   }
			}
		} 
	}
}	 
 
function repositionAjaxNav(){
	var headerHeight = $('#page_content_header').height();
	var headerPadding =parseInt($('#page_content_header').css("padding-top"));
	
	var marginTop = headerHeight+headerPadding+headerPadding;
		
	if (headerHeight > 0){
		$('#ajaxSubmenu').css("margin-top", marginTop+"px");
		$('#ajaxSubmenu').css("top","45px");	
	} else {
		$('#ajaxSubmenu').css("margin-top","5px");
		$('#ajaxSubmenu').css("top","0px");		
	}
	$('#ajaxSubmenu').fadeIn();
}

function repositionContent()
{/*
							  newHeight = 10;
							  
							  ajHeight = 0;
							  if ( $('#ajaxSubmenu').length > 0 ){ 
								ajHeight = parseInt($('#ajaxSubmenu').height()) + parseInt($('#ajaxSubmenu').css('margin-top')) - 1;
							  }
							  hHeight = 0;
							  if ( $('#page_content_header').length > 0 ){
								hHeight = parseInt($('#page_content_header').height());
							  }
							  
							  newHeight += ajHeight + hHeight; 
							  
							  $('#col1_content').css("padding-top",newHeight);
	*/						  
	
		if ( $('#ajaxSubmenu').length == 0 && $('#page_content_header').length > 0 ){
							  $('#page_content_header').css("margin-bottom","15px");
							  $('#content_container').css("margin-top","15px");
		} else
		if ( $('#ajaxSubmenu').length == 0 && $('#page_content_header').length == 0 ){
							  $('#content_container').css("margin-top","0px");
		} else
		if ( $('#ajaxSubmenu').length > 0 && $('#page_content_header').length == 0 ){
							  $('#content_container').css("margin-top","31px");
		}
}


//Adding CENTER function to jQuery
jQuery.fn.center = function () {
    this.css("position","absolute");
    this.css("top", ( $(window).height() - this.height() ) / 2+$(window).scrollTop() + "px");
    this.css("left", ( $(window).width() - this.width() ) / 2+$(window).scrollLeft() + "px");
    return this;
}

//ie 5,6 dont like atob!?
function base64_decode (data) {
    // +   original by: Tyler Akins
    // +   improved by: Thunder.m
    // +      input by: Aman Gupta
    // +   improved by: Kevin van Zonneveld
    // -    depends on: utf8_decode

    // mozilla has this native
    // - but breaks in 2.0.0.12!
    //if (typeof this.window['btoa'] == 'function') {
    //    return btoa(data);
    //}
 
    var b64 = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
    var o1, o2, o3, h1, h2, h3, h4, bits, i = 0, ac = 0, dec = "", tmp_arr = [];
 
    if (!data) {
        return data;
    }
 
    data += '';
 
    do {  // unpack four hexets into three octets using index points in b64
        h1 = b64.indexOf(data.charAt(i++));
        h2 = b64.indexOf(data.charAt(i++));
        h3 = b64.indexOf(data.charAt(i++));
        h4 = b64.indexOf(data.charAt(i++));
 
        bits = h1<<18 | h2<<12 | h3<<6 | h4;
 
        o1 = bits>>16 & 0xff;
        o2 = bits>>8 & 0xff;
        o3 = bits & 0xff;
 
        if (h3 == 64) {
            tmp_arr[ac++] = String.fromCharCode(o1);
        } else if (h4 == 64) {
            tmp_arr[ac++] = String.fromCharCode(o1, o2);
        } else {
            tmp_arr[ac++] = String.fromCharCode(o1, o2, o3);
        }
    } while (i < data.length);
 
    dec = tmp_arr.join('');
    //not implemented, data decoded in php
    //dec = this.utf8_decode(dec);
 
    return dec;
}