
var lastHash = "";
var breadCrumb = "";
var wrapperMovies = new Array();
var doReload = false;
var postLoginAction = false;
var userdetailDisplayGuestbook = false;
var callbackApplication = "";
var currentFlash = "";
var $loggedOut = false;
var playSong = false;

function inject(params)
{
	doReload = false;
	
	if(params)
	{
		/* Flash Navi Charset Hack */
		if(params.substr(0,1) == '#')
			params = params.substr(1);
		
		/* Instead of doing a XmlHttpRequest, redirect the browser to the root dir
		 * and attach the params to the url
		 */
		if(linkPrefix !='')
		{
			location.replace('/#'+ params);
		}
		else
		{
			new Ajax.Request(params, {
  				asynchronous: true,
  				evalScripts: true,
  				onComplete: function(transport) {
    				if (401 == transport.status)
    				{
    					
    					login();
    				}
    				else if(404 == transport.status)
      				{
      					location.replace('/404');
      				}
    				else
    				{
    					$('gradient').update(transport.responseText);
    					if (loggedOut == false)
						{
							closePopups();
							closeGlossar();	
						}
						else
						{
							loggedOut = false;
						}
      				}
      				
  				}
			});
		}
	}
}


function poll()
{
	currentHash = window.location.hash;
	if(currentHash == lastHash)
		return;
	lastHash = currentHash;
	var injector = currentHash.substr(1);
	inject(injector);
}

function reload()
{
	if(doReload == true)
	{
		doReload = false;
		if(window.location.hash != '')
		{
			lastHash = '##';
			poll();
		}
		else
		{
			self.location.reload();
		}
	}
}



/*****************************************************************/
/********* Navigations Scripte + Wrapper *************************/
/*****************************************************************/

/*function updateLoginStatusNavigation(status,nick) {
	thisMovie("navigationWrapperApp").updateLoginStatus(status,nick);
}*/

function sendDataToFlashWrapperFromJsBoxNavigation (value,key) {
/* keys: alert:'0' ; content:'1' ; error:'2' ; login:3 ; logout:4 */
	if(thisMovie("navigationApp"))
		thisMovie("navigationApp").sendDataToFlashFromJsBox(value, key);
}

function setHighlightNavigation(mainId,subId) {
	if(thisMovie("navigationApp"))
		thisMovie("navigationApp").setHighlightNavigation(mainId,subId);
}

function setBreadCrumb(htmlStr) {
	breadCrumb = htmlStr;
}

function forceBreadCrumb() {

	if(thisMovie("navigationApp"))
		thisMovie("navigationApp").setBreadCrumb(breadCrumb);
}

function loadHtmlContent(action) {
	window.location.hash = action;
	lastHash = '#'+action;
	setHighlightNavigation(action);
	inject(action);
}

function setFlashHeight(param) {
  if(param==56) {
			document.getElementById("navigationApp").height = "56px";
			document.getElementById("navigationDiv").style.height = "56px";
		} else {
			naviStatus = true;
			if(breadCrumb)
			{
				forceBreadCrumb();
			}
			paramPX = param + "px";

			document.getElementById("navigationApp").height = paramPX;
			document.getElementById("navigationDiv").style.height = paramPX;
		}
}

function closeNavigation() {
	if(thisMovie("navigationApp"))
		thisMovie("navigationApp").closeNavigation();
}

function loadMyGuestbook()
{
	window.location.hash = 'steckbrief';
	lastHash = '#steckbrief';
	userdetailDisplayGuestbook = true;
	setHighlightNavigation('steckbrief');
	inject('steckbrief');
}

/*****************************************************************/
/********* Content Scripte ***************************************/
/*****************************************************************/

function sendDataToFlashWrapperFromJsBox (value,key) {
/* keys: alert:'0' ; content:'1' ; error:'2' ; login:3 ; logout:4 */
	thisMovie("gameWrapperApp").sendDataToFlashFromJsBox(value, key);
}
/*
function openPopup (txt,key) {
	alert("hash: "+txt+" | key: "+key);
	updateWrapper();
	
	if(key == '3'){
    sendDataToFlashWrapperFromJsBox ("ich bin eine Antwort von der loginBox",'3');
  }
	if(key == '4'){
    sendDataToFlashWrapperFromJsBox ("ich bin eine Antwort von der logoutBox",'4');
  }
	if(key == '2'){
    sendDataToFlashWrapperFromJsBox ("ich bin eine Antwort von der errorBox",'2');
  }
  if(key == '1'){
    sendDataToFlashWrapperFromJsBox ("ich bin eine Antwort von der contentBox",'1');
  }
  if(key == '0'){
    sendDataToFlashWrapperFromJsBox ("ich bin eine Antwort von der alertBox",'0');
  }

	return;
}
*/

function playSongPreview() {
	if(thisMovie("songApp"))
		thisMovie("songApp").playAudio();
}

function stopSongPreview() {
	if(thisMovie("songApp"))
		thisMovie("songApp").stopAudio();
}

function songPreview(){
	if(playSong == false) 
	{
		playSong = true;
		alert('Spielt!');
		playSongPreview();
	} 
	else 
	{
		playSong = false;
		alert('Stoppt!');
		stopSongPreview();
	}
}

/*****************************************************************/
/********* Allgemeine Funktionen *********************************/
/*****************************************************************/

function updateWrapper() {
	wrapperMovies.each(
		function(wrapperMovie)
		{
			try
			{
				if(thisMovie(wrapperMovie))
				{
					thisMovie(wrapperMovie).updateWrapper();
				}
			}
			catch(e)
			{
				void(0);
			}
		}
	);

}

function thisMovie(movieName) {
    if (navigator.appName.indexOf("Microsoft") != -1) {
        return window[movieName];
    } else {
        return document[movieName];
    }
}

function registerWrapper(wrapperName)
{
	
	if (!wrapperMovies.exists(wrapperName))
		wrapperMovies.push(wrapperName);

}

function setCallback(cba, id)
{
	callbackApplication = cba;
	currentFlash = id;
}

function doCallback(key,value)
{
	try
	{
		if(thisMovie(callbackApplication))
			thisMovie(callbackApplication).sendDataToFlashFromJsBox(value, key);
	}
	catch(e)
	{
		void(0);
	}
}

function doCloseCallback()
{
	try
	{
		if(thisMovie(callbackApplication))
		{		
			thisMovie(callbackApplication).sendDataToFlashFromJsBox(callbackValue, callbackKey);
			reload();
		}
	}
	catch(e)
	{
		void(0);
	}
}

window.onload = function() 
{
	 poll();
     setInterval(poll, 1000);
}
