$(document).ready(function(){
	
	var lang = 'ger';
	var nav = '';
	var actual_url = null;

	var delay = 250;
	
	// http://benalman.com/code/projects/jquery-hashchange/examples/bug-chrome-back-button/
	// http://benalman.com/projects/jquery-hashchange-plugin/
	// Set the browser title.
	function set_title( i ) {
	  document.title = document.title.replace( /\s*\d*$/, '' ) + ' ' + i;
	}
	
	// Add new history entries by changing window.location.hash, in an
	// asynchronous loop.
	function add_history_entries( start, end ) {
	  (function loopy(){
	    window.location.hash = '#' + start;
	    set_title( start );
	    ++start <= end && setTimeout( loopy, delay );
	  })();
	};
	
	$.fn.actual_url = function() {

		actual_url = window.location.hash.substr(1);
		
		if (!actual_url)
			actual_url = "rheingold";

		return actual_url;
	}
	
	// SWITCH LANGUAGE FUNCTION
	$.fn.changeLan = function(params){
		var defaults = {
			name: 'rheingold/welcome',
			lang: 'ger'
		}
		
		if(params) $.extend(defaults, params);
		
		// reload main content
		if (isSubsection(defaults.name))
			replaceContent(defaults.name, defaults.lang, false);
		else
			replaceContent(getMainsection(defaults.name), defaults.lang, true);
		
		// reload sub menu
		replaceSubMenu(getMainsection(defaults.name), defaults.lang, false);
		
		// reload header
   		$('#rheingold_contact_information').empty().append(getContent('header', defaults.lang)).fadeIn(300);
   		
   		// reload booking button
   		//$('#rheingold_book').empty().append(getContent('booking_btn', defaults.lang)).fadeIn(300);
   		$('#rheingold_book a').attr('href', '../online_booking_'+defaults.lang+'.html');
   		$('#rheingold_book a img').attr('src', '../img/order_btn_'+defaults.lang+'_no.png').hover(
	      function () {
	        $(this).attr('src', '../img/order_btn_'+defaults.lang+'_mo.png');
	      }, 
	      function () {
	        $(this).attr('src', '../img/order_btn_'+defaults.lang+'_no.png');
	      });
   		
   		// reload footer
   		$('#rheingold_footer').empty().append(getContent('footer', defaults.lang)).fadeIn(300);
		$("#footer_impressum").click(function(ev){
			theWindow=window.open('/dynamic.ger.php?name=impressum&lang=ger',
			'Rheingold_Impressum','width=900,height=450,resizable=no,location=no,toolbar=no,personalbar=no,scrollbars=yes,status=no,top=50,left=100');
			theWindow.focus();
			//ev.preventDefault();
			return false;
		});
		// Simulate click for 'location and arrival' button
		$("#rheingold_footer #footer_way").click(function(){
				replaceContent('contact/way', lang, false);
				replaceSubMenu('contact', lang, false);
		});
   		
		
		// reload main menu
		$(".rheingold_navigation li div").each(function(){
			var c = $(this).attr("class");
			$('.'+c).attr('name','').css('background-image','url(../img/nav/'+defaults.lang+'/btn_'+c+'_no.png)');
			$('.'+c).attr('id', c+"_"+defaults.lang);
			$('.'+c).parent().attr('class', 'li_'+c+'_'+defaults.lang);
			//$(".a_"+c).removeClass('disabled');
        });
        
   		// set mouse over/active state for main navigation
   		$("."+getMainsection(defaults.name)).attr('name','active').css('background-image','url(../img/nav/'+defaults.lang+'/btn_'+getMainsection(defaults.name)+'_mo.png)');
   		// disable click funcion for active menu point
   		$(".a_"+getMainsection(defaults.name)).addClass('disabled');
   		
   		//alert(defaults.name);
   		// set MO/active state for sub_menu if sub section can be read from hash
		if(isSubsection(name))
		{
			$(".rheingold_sub_navigation li div."+getSubsection(name)).attr('name','active')
			.css('background-image','url(../img/sub_nav/'+defaults.lang+'/btn_'+$(this).attr('class')+'_mo.png)');
			// disable click funcion for active sub menu point
			$(".rheingold_sub_navigation li div."+getSubsection(name)+" a").addClass('disabled');
		}
		else
		{
			$(".rheingold_sub_navigation li div:first").attr('name','active')
			.css('background-image','url(../img/sub_nav/'+defaults.lang+'/btn_'+$(this).attr('class')+'_mo.png)');
			// disable click funcion for first sub menu point
			$(".rheingold_sub_navigation li div:first a").addClass('disabled');
			// relaod other sub menu points
			$(".rheingold_sub_navigation li div:not(:first)").each(function() {
				$(this).css('background-image', 'url(../img/sub_nav/'+defaults.lang+'/btn_'+$(this).attr('class')+'_no.png)');
			});			
		}
   		
   		// add 'id' to main nav, to apply css for menu with different languages
   		$('.rheingold_navigation').attr('id', 'nav_'+defaults.lang);
   		
   		// change active state of link in meta navigation
   		$('#rheingold_language a').removeClass('act');
   		$('#rheingold_language_'+defaults.lang).addClass('act');
   		
   		//window.location.hash = defaults.name;
   		//location.replace(true);
   		if (defaults.name)
   		{
   			//http://www.interaktionsdesigner.de/2009/01/25/spas-mit-locationhash-und-jquery/
   			//add_history_entries(defaults.name);
   			//window.location.replace("#" + defaults.name);
   			/*$(location).attr("hash", defaults.name);
   			if($(location).attr("hash"))
   				$("a[hash="+$(location).attr("hash")+"]").click();
   			return false;*/
   		}
   		$.preloadCssImages();
	};
	
	// Initialize scrollbar
	var oScrollbar = $('#scrollbar');
	oScrollbar.tinyscrollbar({sizethumb: 30, size: 375});

   //$(function () {
		// menu functionality
		$('.rheingold_navigation li div, .rheingold_sub_navigation li div').hover(function(){
			var cls = $(this).attr("class");
			// main nav or sub nav?
			nav = ($(this).parent().parent().parent().hasClass("rheingold_navigation") ? 'nav' : 'sub_nav');
				
			$(this).css('background-image','url(../img/'+nav+'/'+lang+'/btn_'+cls+'_mo.png)');
		},function(){
			var cls = $(this).attr("class");
			nav = ($(this).parent().parent().parent().hasClass("rheingold_navigation") ? 'nav' : 'sub_nav');
			
			if ($(this).attr('name') != "active")
				$(this).css('background-image','url(../img/'+nav+'/'+lang+'/btn_'+cls+'_no.png)');
		});

		// Menu/Sub-menu ajax content loader	
		function getContent(name, lang) {
	    	var val = null;
		    $.ajax({
		    	type: "GET",
		        async: false,
		        global: true,
		        url: 'dynamic.'+lang+'.php',
		        dataType: 'script',
		        data: "name="+name+"&lang="+lang,
		        success: function (data) {
		        	val = data;
		        },
		        complete: function() {
					//
	   			}
		    });
		    return val;
		};
		
		function isSubsection(str) {
		  // string is trimmed
		  str = str.replace(/^\s+|\s+$/g, '');
		  if (str.search(/^(\w+)\/+(\w+)$/gi) != -1)
		  	return true;
		  else
		  	return false;
		}
	
		function getSubsection(str)
		{
			return str.replace(/^\w+\//g, "");
		}
		
		function getMainsection(str)
		{
			return str.replace(/\/\w+/g, "");
		}
		
		function replaceSubMenu(name, lang, first_active)
		{
			$(".rheingold_sub_navigation").fadeOut(300, function() {
				$(this).empty().append(getContent("sub_"+name, lang)).fadeIn(300, function () {
			        // set fist sub menu point as active
			        if (first_active == true)
			        {
						$(".rheingold_sub_navigation li div:first").attr('name','active').css('background-image','url(../img/sub_nav/'+lang+'/btn_'+$(".rheingold_sub_navigation li div:first").attr('class')+'_mo.png)');
						// disable click funcion for first sub menu point
						$(".rheingold_sub_navigation li div:first a").addClass('disabled');
						// relaod other sub menu points
						$(".rheingold_sub_navigation li div:not(:first)").each(function() {
							$(this).css('background-image', 'url(../img/sub_nav/'+lang+'/btn_'+$(this).attr('class')+'_no.png)');
						});
			        }
					else
					{
						$(".rheingold_sub_navigation li div."+name).attr('name', 'active').css('background-image','url(../img/sub_nav/'+lang+'/btn_'+name+'_mo.png)');;
						$(".rheingold_sub_navigation li ."+name+" a").addClass('disabled');
						
						$(".rheingold_sub_navigation li div:not([name='active'])").each(function() {
								$(this).css('background-image', 'url(../img/sub_nav/'+lang+'/btn_'+$(this).attr('class')+'_no.png)');
						});
						//alert(".rheingold_sub_navigation li div."+name);	
					}
					
					// initialize clicks for sub menu after reloading
			        $(".rheingold_sub_navigation li a:not(.disabled)").live('click', function(){
			        	name = ((this.hash.substr(1) == '') ? window.location.hash.substr(1) : this.hash.substr(1));
			            replaceContent(name, lang, false);
			        }); 
			        
			        $('.rheingold_sub_navigation li div').hover(function(){
						var cls = $(this).attr("class");
						$(this).css('background-image','url(../img/sub_nav/'+lang+'/btn_'+cls+'_mo.png)');
					},function(){
						var cls = $(this).attr("class");						
						if ($(this).attr('name') != "active")
							$(this).css('background-image','url(../img/sub_nav/'+lang+'/btn_'+cls+'_no.png)');
					});
				});
			});
		}
		
		function replaceContent(name, lang, first_active)
		{
			// "name" parameter is important here and is used in dynamic code
			$("#rheingold_content .overview").fadeOut(300, function() {
				// match the pattern and cut it to section name if it's sub section
				var isSub = isSubsection(name);
				name = (isSub ? getSubsection(name) : name);
				
				$(this).empty().append(getContent(name, lang)).fadeIn(300, function () {
					// set all sections to passive
					$(".rheingold_sub_navigation li div[name='active']").each(function() {
						var c = $(this).attr("class");
						$('.'+c).attr('name','').css('background-image','url(../img/sub_nav/'+lang+'/btn_'+c+'_no.png)');
			        });
			        // update scrollbar
			        oScrollbar.update();
			        // change main menu active state only if user is switching between main sections
			        if (!isSub)
			        {
				        $(".rheingold_navigation li div[name='active']").each(function(){
							var c = $(this).attr("class");
							$('.'+c).attr('name','').css('background-image','url(../img/nav/'+lang+'/btn_'+c+'_no.png)');
							//$(".a_"+c).removeClass('disabled');
	            		});
	            		// set mouse over BG for main navigation
	            		$("."+name).attr('name','active').css('background-image','url(../img/nav/'+lang+'/btn_'+name+'_mo.png)');
	            		$(".a_"+name).addClass('disabled');
			        }
			        else
			        {
			        // set active state and bg_mo_img for actual section
						$("."+name).attr('name','active').css('background-image','url(../img/sub_nav/'+lang+'/btn_'+name+'_mo.png)');
						$(".a_"+name).addClass('disabled');
			        }
				});
			});		    
		    return 0;
		};
	                
        // Sub Menu functionality
        $(".rheingold_sub_navigation li a:not(.disabled)").live('click', function(){
        	name = ((this.hash.substr(1) == '') ? window.location.hash.substr(1) : this.hash.substr(1));
        	$(".rheingold_sub_navigation li a").removeClass('disabled');
            replaceContent(name, lang, false);
        });
        
        // Main Menu functionality        
        $(".rheingold_navigation li a:not(.disabled)").live('click', function(){
        	name = ((this.hash.substr(1) == '') ? window.location.hash.substr(1) : this.hash.substr(1));
        	$(".rheingold_navigation li a").removeClass('disabled');
            replaceContent(name, lang, true);
            replaceSubMenu(name, lang, true);
        });
        
        // set default active section (simulate click)
        $(".rheingold_menu .rheingold")
        .attr('name','active').css('background-image','url(../img/nav/'+lang+'/btn_rheingold_mo.png)');
        $(".rheingold_menu .a_rheingold").addClass('disabled');
        
        $(".rheingold_menu .welcome")
        .attr('name','active').css('background','url(../img/sub_nav/'+lang+'/btn_welcome_mo.png) no-repeat scroll 0px 0px transparent');
        $(".rheingold_menu .a_welcome").addClass('disabled');
    
    //footer with fluid height
	
	//var footerHeight = 100,
	//footerTop = -100,
		
	/*		function positionFooter() {
				footerHeight = $footer.height();
				footerTop = ($(window).scrollTop()+$(window).height()-footerHeight)+"px";
				
				if ( ($(document.body).height()+footerHeight) < $(window).height())
				{
					$footer.css({ position: "absolute", top: footerTop }) //.animate({ top: footerTop })
				}
				else
				{
					$footer.css({ position: "static" })
				}
			}*/
	
	function positionFooter() {
		$footer = $("#rheingold_footer");
		var docHeight = $(document.body).height() - $footer.height();
		//alert(docHeight); // 827 852
	
		if(docHeight < $(window).height()){
	    var diff = $(window).height() - docHeight - 35;
	    if (!$footer.length > 0) {
	      $("#footer").after('<div id="rheingold_footer"></div>');
	    }
	    //alert(diff);
	    if (diff > 100) // minimal height is 100px
	    	$footer.height(diff);
	    else
	    	$footer.height(100);
	  }
	}
	
	$(window).bind("load", function() {
		positionFooter();
	});
		
	$("#rheingold_language_eng").click(function(){
		$("body").changeLan({lang: "eng", name: $("body").actual_url()});
		lang = 'eng';
	});
	
	$("#rheingold_language_ger").click(function(){
		$("body").changeLan({lang: "ger", name: $("body").actual_url()});
		lang = 'ger';
	});
	
	$("#rheingold_language_rus").click(function(){
		$("body").changeLan({lang: "rus", name: $("body").actual_url()});
		lang = 'rus';
	});
	
	// Simulate click for 'location and arrival' button
	$("#rheingold_footer #footer_way").click(function(){
			replaceContent('contact/way', lang, false);
			replaceSubMenu('contact', lang, false);
	});
	
	$("#footer_impressum").click(function(ev){
		theWindow=window.open('/dynamic.ger.php?name=impressum&lang=ger',
		'Rheingold_Impressum','width=900,height=450,resizable=no,location=no,toolbar=no,personalbar=no,scrollbars=yes,status=no,top=50,left=50');
		theWindow.focus();
		//ev.preventDefault();
		return false;
	});
	
	/*.open({
	   	  href: '/dynamic.'+lang+'.php?name=impressum&lang='+lang,
	      width: 700,
	      height: 450,
	      scrollbars: false,
	      location: false,
	      resizable: false,
	      toolbar: false
	});*/
	
	$('#rheingold_book a img').attr('src', '../img/order_btn_ger_no.png').hover(
	  function () {
	    $(this).attr('src', '../img/order_btn_ger_mo.png');
	  }, 
	  function () {
	    $(this).attr('src', '../img/order_btn_ger_no.png');
	});
	
	$.preloadCssImages();
	
	/*$(window).bind("scroll resize", function() {
		positionFooter();	
	});*/
	//$(window).scroll(positionFooter).resize(positionFooter);
});
