$.ajaxSetup({
	contentType: "application/x-www-form-urlencoded; charset=utf-8"
});

// History Enabling
(function($)
{
	var origContent = "";
	
	// Funktion um alle ajax responsed zu killen
	var lastAjaxCall = null;

	function loadContent(hash) 
	{
		if(hash != "") 
		{			
			// textareas entfernen - Bug ausbessren von den loosern..
			$('textarea').each(function()
			{
				var name = $(this).attr("id");
				if (CKEDITOR.instances[name]) {
  					delete CKEDITOR.instances[name];
   				}
			});
		
			// needed for history
			if (origContent == "") { origContent = $('#content').html(); }
			
			// write something on content that news page is not loaded
			$('#content').html(
				"<img src='/images/design/loading.gif' style='display: block; margin: auto;' alt='Loading...' />"
			);
			
			// check if '?' is in hash
			var qchecker = hash.split("=");
			if (typeof qchecker[1] == "undefined") 
				var pagecheck = hash;
			else
				var pagecheck = qchecker[0].substring(1);
			
			$('#menu ul li').removeClass("active");	
			$('#menu div a.button_normal').removeClass("active");
				
			var s1 = '#menu ul li a[href="#'+pagecheck+'"]';
			var s2 = 'a[href="#'+pagecheck+'"]';
			
			// if main menu was clicked
			if ($(s1).parent().hasClass('openable'))
			{
				$(s1).parent().addClass("active");
			}
			else if ($(s1).parent().parent().parent().hasClass('openable'))
			{
				$(s1).parent().addClass("active");
				$(s1).parent().parent().parent().addClass("active");
			}
			else if ($(s2).hasClass('button_normal'))
			{
				$(s2).addClass("active");
			}
			
			// Load page
			$.ajax({
				url: $page_order(hash),
				cache: false,
				beforeSend: function(jqXHR) {
					if (lastAjaxCall != null)
						lastAjaxCall.abort();
   					lastAjaxCall = jqXHR;
  				},
				success: function(data)
				{
       				$('#content').html(data);
       				loadScripts("#content");
      			},
      			error: function(xhr, ajaxOptions, thrownError){ $("#content").load("pages/error-pagenotfound.php"); } 
      		});
      		
      		// load ajax request for bbclone
			$.post("../bbclonecount.php", { hash : pagecheck });
		}
		else {
			// load first page
			loadContent("home");
		}
	}
	
	// Create Page Mapping
	var $page_order = function(page)
	{	
		var p = "";
		if (page.indexOf("?") != -1)
		{
			t = page.split("?");
			p = "?"+t[1];
		}
	
		if (page.indexOf("home") != -1) 										return "pages/home.php"+p;
		else if (page.indexOf("profile") != -1) 								return "pages/profil.php"+p;
		else if (page.indexOf("profil-competition-add") != -1) 					return "pages/profil-competition-add.php"+p;
		else if (page.indexOf("profil-competition-edit") != -1) 				return "pages/profil-competition-edit.php"+p;
		else if (page.indexOf("profil-erfolge-add") != -1) 						return "pages/profil-erfolge-add.php"+p;
		else if (page.indexOf("profil-erfolge-edit") != -1) 					return "pages/profil-erfolge-edit.php"+p;
		else if (page.indexOf("partner-search") != -1) 							return "pages/partner-search.php"+p;
		else if (page.indexOf("partner-add") != -1) 							return "pages/partner-add.php"+p;
		else if (page.indexOf("vereine") != -1) 								return "pages/vereine.php"+p;
		else if (page.indexOf("verein-add") != -1) 								return "pages/vereine-add.php"+p;
		else if (page.indexOf("verein-edit") != -1) 							return "pages/vereine-edit.php"+p;
		else if (page.indexOf("verein-details") != -1) 							return "pages/vereine-details.php"+p;
		else if (page.indexOf("verein-mine") != -1) 							return "pages/vereine-mine.php"+p;
		else if (page.indexOf("verein-members") != -1) 							return "pages/vereine-members.php"+p;
		else if (page.indexOf("verein-couple-add") != -1) 						return "pages/vereine-couple-add.php"+p;
		else if (page.indexOf("verein-couple-edit") != -1) 						return "pages/vereine-couple-edit.php"+p;
		else if (page.indexOf("verein-formation-add") != -1) 					return "pages/vereine-formation-add.php"+p;
		else if (page.indexOf("verein-formation-edit") != -1) 					return "pages/vereine-formation-edit.php"+p;
		else if (page.indexOf("register") != -1) 								return "pages/register.php"+p;
		else if (page.indexOf("about") != -1) 									return "pages/about_"+$('#lang').html()+".php"+p;
		else if (page.indexOf("news-add") != -1) 								return "pages/news-add.php"+p;
		else if (page.indexOf("news-edit") != -1) 								return "pages/news-edit.php"+p;
		else if (page.indexOf("news-detail") != -1) 							return "pages/news-detail.php"+p;
		else if (page.indexOf("news-archiv") != -1) 							return "pages/news-archiv.php"+p;
		else if (page.indexOf("lostpw") != -1) 									return "pages/lostpassword.php"+p;
		else if (page.indexOf("settingsperson") != -1) 							return "pages/settings-person.php"+p;
		else if (page.indexOf("settingspassword") != -1) 						return "pages/settings-password.php"+p;
		else if (page.indexOf("settingslang") != -1) 							return "pages/settings-lang.php"+p;
		else if (page.indexOf("settingsemail") != -1) 							return "pages/settings-email.php"+p;
		else if (page.indexOf("messages") != -1) 								return "pages/messages.php"+p;
		else if (page.indexOf("message-add") != -1) 							return "pages/messages-add.php"+p;
		else if (page.indexOf("message-detail") != -1) 							return "pages/messages-detail.php"+p;
		else if (page.indexOf("friends") != -1) 								return "pages/friends.php"+p;
		else if (page.indexOf("imprint") != -1) 								return "pages/imprint.php"+p;
		else if (page.indexOf("terms") != -1) 									return "pages/imprint-terms_"+$('#lang').html()+".php"+p;
		else if (page.indexOf("privacypolicity") != -1) 						return "pages/imprint-privacypolicity.php"+p;
		else if (page.indexOf("competitions") != -1) 							return "pages/competitions.php?archive=0"+p;
		else if (page.indexOf("comparchiv") != -1) 								return "pages/competitions.php?archive=1"+p;
		else if (page.indexOf("competition-details") != -1) 					return "pages/competitions-details.php"+p;
		else if (page.indexOf("competition-edit") != -1) 						return "pages/competitions-edit.php"+p;
		else if (page.indexOf("competition-add") != -1) 						return "pages/competitions-add.php"+p;
		else if (page.indexOf("competition-announce") != -1) 					return "pages/competitions-announce.php"+p;
		else if (page.indexOf("myevents") != -1) 								return "pages/events-myevents.php"+p;
		else if (page.indexOf("events") != -1) 									return "pages/events.php"+p;
		else if (page.indexOf("event-details") != -1) 							return "pages/events-details.php"+p;
		else if (page.indexOf("event-add") != -1) 								return "pages/events-add.php"+p;
		else if (page.indexOf("event-edit") != -1) 								return "pages/events-edit.php"+p;
		else if (page.indexOf("workersearch") != -1) 							return "pages/workersearch_"+$('#lang').html()+".php"+p;
		else if (page.indexOf("adsearch") != -1) 								return "pages/adsearch_"+$('#lang').html()+".php"+p;
		else if (page.indexOf("search") != -1) 									return "pages/search.php"+p;
		else if (page.indexOf("admin-orrv") != -1) 								return "pages/admin-orrv.php"+p;
		else if (page.indexOf("admin-clubs") != -1) 							return "pages/admin-clubs.php"+p;
		else if (page.indexOf("admin-members") != -1) 							return "pages/admin-members.php"+p;
		else if (page.indexOf("admin-newsletter") != -1) 						return "pages/admin-newsletter.php"+p;
		else if (page.indexOf("admin-ads") != -1) 								return "pages/admin-ads.php"+p;
		
		return "pages/error-pagenotfound.php";
	}
		
	$(document).ready(function() 
	{	
		// initialize history
		$.history.init(loadContent);
		
		// load scripts for site
		loadScripts("");
		
		$('#menu ul li a').click(function(e) 
		{
			var url = $(this).attr('href');
			url = url.replace(/^.*#/, '');
			$.history.load(url);
			
			// Prevent the default click behavior
			return false;
		});
		
	});
	
	// load jquery scripts
	function loadScripts(area) 
	{
		// click behavior		
		$(area+' a[href^=#]').click(function(e)
		{
			var url = $(this).attr('href');
			url = url.replace(/^.*#/, '');
			$.history.load(url);
	
			// Prevent the default click behavior.
			return false;
		});
		
		// special links 
		$(area+" a[rel=loadtocontent]").click(function()
		{  
			$("#content").html("<img src='/images/design/loading.gif' style='display: block; margin: auto;' alt='Loading...' />");
			
			// Load page in box
			$.ajax({
				url: $(this).attr("href"),
				cache: false,
				success: function(data) { $('#content').html(data); },
				error: function(xhr, ajaxOptions, thrownError){
					$("#content").html("Error");
				} 
			});		
			
			return false;
		});
		
		// special links form
		$(area+" form[rel=loadtocontent]").submit(function()
		{ 
			$("#content").html("<img src='/images/design/loading.gif' style='display: block; margin: auto;' alt='Loading...' />");
			
			// FORM ABSENDEN BEHANDELN
			var options = { target: '#content' };
			
			$(this).ajaxSubmit(options);
			return false;
		});
	}
})(jQuery);
