var last = 0;
var loading_div = false;
var currently_loading = 0;
var playlist2show = false;
var globalPage = false;
var content_div = false;

/** Seiten, die gecached werden sollen */
var pageInfo = false;
var pageDiscog = false;
var pageLinks = false;
var pageContact = false;

function ChangeBoxDisplay(BoxID) {
	if (last != 0) {
		ToChange = $(last);
		ToChange.style.display = "none";

		if (BoxID != last) {
			ToChange = $(BoxID);
			ToChange.style.display = "block";
			last = BoxID;
		}
		else {
			last = 0;
		}
	}

	else {
		ToChange = $(BoxID);
		ToChange.style.display = "block";
		last = BoxID;
	}
}

function LoadingStart()
{
	if (!loading_div)
	{
		loading_div = $('loading');
	}
	currently_loading = currently_loading + 1;
	loading_div.innerHTML = 'Loading...';
	loading_div.style.display = 'block';
}

function LoadingDone(xmlHttp)
{
	currently_loading = currently_loading - 1;
	loading_div.innerHTML = 'Loading Done.';
	// Nur ausblenden, wenn nichts mehr geladen wird
	if (currently_loading == 0)
	{
		loading_div.style.display = 'none';
	}

	// Seite ggf cachen
	if (globalPage == 'info')
	{
		pageInfo = xmlHttp.responseText;
	}
	else if (globalPage == 'discog')
	{
		pageDiscog = xmlHttp.responseText;
	}
	else if (globalPage == 'links')
	{
		pageLinks = xmlHttp.responseText;
	}
	else if (globalPage == 'contact')
	{
		pageContact = xmlHttp.responseText;
	}
}


function LoadPLCallBack()
{
	LoadingDone();
	ShowPL(playlist2show);
	var toshow = $('box' + playlist2show);
	toshow.scrollTo();
}

/**
* Eine Playlist direkt laden
*/
function LoadPL(plid)
{
	playlist2show = plid;
	LoadPage('playlists', LoadPLCallBack);
}

/**
* Lädt eine Seite aus dem Cache
* nur für statische Seiten
*/
function LoadPageFromCache(pagecontent)
{
	if (!content_div)
	{
		content_div = $('content');
	}
	content_div.innerHTML = pagecontent;
}

/**
* Lädt eine Seite vom Server
*/
function LoadPage(ngepage, callback)
{
	globalPage = ngepage;
	var url = false;
	if (ngepage == 'info')
	{
		// Versuche zuerst die Seite aus dem Cache zu laden
		if (pageInfo)
		{
			LoadPageFromCache(pageInfo);
		}
		else
		{
			url = 'load.php?type=page&page=info';
		}
	}
	else if(ngepage == 'discog')
	{
		// Versuche zuerst die Seite aus dem Cache zu laden
		if (pageDiscog)
		{
			LoadPageFromCache(pageDiscog);
		}
		else
		{
			url = 'load.php?type=page&page=discog';
		}
	}
	else if(ngepage == 'dates')
	{
		url = 'load.php?type=page&page=dates';
	}
	else if(ngepage == 'playlists')
	{
		url = 'load.php?type=page&page=playlists';
	}
	else if(ngepage == 'guestbook')
	{
		url = 'load.php?type=page&page=guestbook';
	}
	else if(ngepage == 'links')
	{
		// Versuche zuerst die Seite aus dem Cache zu laden
		if (pageLinks)
		{
			LoadPageFromCache(pageLinks);
		}
		else
		{
			url = 'load.php?type=page&page=links';
		}
	}
	else if(ngepage == 'contact')
	{
		// Versuche zuerst die Seite aus dem Cache zu laden
		if (pageContact)
		{
			LoadPageFromCache(pageContact);
		}
		else
		{
			url = 'load.php?type=page&page=contact';
		}
	}
	else
	{
		url = 'load.php?type=page&page=news';
	}
	
	if (!callback)
	{
		callback = LoadingDone;
	}

	/* Nur was machen, wenn url nicht false ist */
	if (url)
	{
		LoadingStart();
		new Ajax.Updater('content', url, {asynchronous: true, onComplete: callback});
	}
}

function ShowPL(plid)
{
	plid_box = $('box' + plid);
	if (plid_box.innerHTML == 'Not loaded yet.')
	{
		plid_box.innerHTML = 'Loading...';
		new Ajax.Updater('box' + plid, 'load.php?type=playlist&id=' + plid, '{asynchronous: true}');
	}
	ChangeBoxDisplay('box' + plid);
}

function gb(InputName, method)
{
	Input = document.getElementsByName(InputName);
	if (method == "select")
	{
		Input[0].style.borderColor = "#808080";
		Input[0].style.color = "#000000";
	}
	else {
		Input[0].style.borderColor = "#C0C0C0";
		Input[0].style.color = "#808080";
	}
}

function CheckForm()
{
	var FormName = document.getElementsByName('form[name]');
	var FormEmail = document.getElementsByName('form[email]');
	var FormMessage = document.getElementsByName('form[message]');
	
	var FormNameRegExp = new RegExp("[^ ]{3,}");
	var FormEmailRegExp = new RegExp("^[A-za-z0-9-_\.]{1,}@[A-za-z0-9-_\.]{3,}\.[a-z]{2,5}$");
	var FormMessageRegExp = new RegExp("[^ ]{10,}", "m");
	
	if(!FormNameRegExp.test(FormName[0].value))
	{
		alert("Your Name must be at least 3 characters long");
		return false;
	}
	else if(!FormEmailRegExp.test(FormEmail[0].value))
	{
		alert("Your Email must be of the format 'webmaster@djnge.de'");
		return false;
	}
	else if(!FormMessageRegExp.test(FormMessage[0].value))
	{
		alert("Your Message must be at least 10 characters long");
		return false;
	}
	else
	{
		return true;
	}
}


