var ajax = new sack();
var part;
var loading = false;
var stack = new Array();

var fader;


function showContent()	// Displaying content in the content <div>
{
	//document.getElementById('loader').style.display = 'none';
	part.innerHTML = ajax.response;	// ajax.response is a variable that contains the content of the external file
	
	if(part.id == 'content'){
		try{
			pageTracker._trackPageview(ajax.requestFile);
		}catch(err){}
	}
	
	loading = false;
	
	blurUrls();
	
	if(document.getElementById('tekst') && part.id == 'content'){
		tinyMCE.execCommand('mceAddControl', true, 'tekst');
	}
	
	if(document.getElementById('tekst_en') && part.id == 'content'){
		tinyMCE.execCommand('mceAddControl', true, 'tekst_en');
	}
	
	if(document.getElementById('tekst_en_div')){
		document.getElementById('tekst_en_div').style.display = 'none';
	}
	
	//alert(tinyMCE.idCounter);
	
	try{
		Sortable.create('fragmentList', {handles:$$('#fragmentList li')});
	}
	catch(err){}
	
	checkLine();
}

function resetMCEcounter(){
	tinyMCE.idCounter=0;
}

function checkLine(){
	if(stack[0]){
		//loading = false;
		getAjaxFile(stack[0], stack[1]);
	}
}

function showWaitMessage(tekst)
{
	var divLoader = document.createElement('div');
	divLoader.className = 'loader' + part.id;
	divLoader.innerHTML = '<br /><br />' + tekst;
	
	part.innerHTML = '';
	part.appendChild(divLoader);
	
}

function loadPage(fileName, tmpPart, showLoading)
{
	if(!loading){
		loading = true;
		
		tinyMCE.execCommand('mceRemoveControl', false, 'tekst');
		tinyMCE.execCommand('mceRemoveControl', false, 'tekst_en');
		resetMCEcounter();
		
		//ajax.resetData();
		ajax.vars = new Object();
		
		if(stack[2]){
			var tmp1 = stack[2];
			var tmp2 = stack[3];
			stack = new Array();
			stack[0] = tmp1;
			stack[1] = tmp2;
		}
		else{
			stack = Array();
		}
		
		part = document.getElementById(tmpPart);
		
		ajax.requestFile = fileName;	// Specifying which file to get
		ajax.onCompletion = showContent;	// Specify function that will be executed after file has been found
		/*ajax.onError = function(){
							ajax.reset();
							alert('reset!');
						};*/
						
		if(showLoading)
			ajax.onLoading = showWaitMessage('Wordt geladen');	// Action when AJAX is loading the file
		ajax.runAJAX();		// Execute AJAX function
	}
	else{
		if(!(stack[0])){
			stack[0] = fileName;
			stack[1] = tmpPart;
		}
		else{
			stack[2] = fileName;
			stack[3] = tmpPart;
		}
	}
}

function getAjaxFile(fileName, tmpPart){
	loadPage(fileName, tmpPart, true);
}

function newCollection(){
	if(dir = prompt('Geef de nieuwe collectie een naam', '')){
		getAjaxFile('?page=editor&edit=pictures&dir=' + dir + '&new', 'content');
	}
}

function deleteImage(fileName)
{
	if(!loading && confirm("Weet je zeker dat je deze foto wilt verwijderen? Dit is definitief!")){
		loading = true;
		ajax.vars = new Object();
		stack = Array();
		
		ajax.requestFile = fileName;	// Specifying which file to get
		
		ajax.onCompletion = function(){
			document.getElementById('exampleImage').style.display = 'none';
			document.getElementById('exampleImage').childNodes[1].src = '';
			loading = false;
		}	// Specify function that will be executed after file has been found
		
		ajax.onLoading = function(){
			document.getElementById('exampleImage').style.display = 'none';
		}	// Action when AJAX is loading the file
		
		ajax.runAJAX();		// Execute AJAX function
	}
}

function deletePicture(fileName)
{
	if(!loading){
		loading = true;
		ajax.vars = new Object();
		stack = Array();
		
		ajax.requestFile = fileName;	// Specifying which file to get
		
		ajax.onCompletion = function(){
			loading = false;
			checkLine();
			//getAjaxFile('?page=editor&edit=editorMenu&dir=' + dir, 'editorMenu');
		}	// Specify function that will be executed after file has been found
		
		ajax.onLoading = function(){
			//document.getElementById('exampleImage').style.display = 'none';
		}	// Action when AJAX is loading the file
		
		ajax.runAJAX();		// Execute AJAX function
	}
}

function rotatePicture(fileName)
{
	if(!loading){
		loading = true;
		ajax.vars = new Object();
		stack = Array();
		
		ajax.requestFile = fileName;	// Specifying which file to get
		
		ajax.onCompletion = function(){
			loading = false;
			checkLine();
			//getAjaxFile('?page=editor&edit=editorMenu&dir=' + dir, 'editorMenu');
		}	// Specify function that will be executed after file has been found
		
		ajax.onLoading = function(){
			//document.getElementById('exampleImage').style.display = 'none';
		}	// Action when AJAX is loading the file
		
		ajax.runAJAX();		// Execute AJAX function
	}
}

function deleteMessage(id, pageId)
{
	if(!loading && confirm("Weet je zeker dat je dit bericht wilt verwijderen? Dit is definitief!")){
		loading = true;
		ajax.vars = new Object();
		stack = Array();
		
		ajax.requestFile = '?page=guestbook&action=delete&id=' + id;	// Specifying which file to get
		
		ajax.onCompletion = function(){
			//document.getElementById('message' + id).style.display = 'none';
			loading = false;
			stack = Array();
		}	// Specify function that will be executed after file has been found
		
		ajax.onLoading = function(){
			//document.getElementById('message' + id).style.display = 'none';
			document.getElementById('message' + id).style.opacity = '1.0';
			fader = setInterval('fadeOutMessage("' + id + '", "' + pageId + '");', 100);
		}	// Action when AJAX is loading the file
		
		ajax.runAJAX();		// Execute AJAX function
	}
}

function fadeOutMessage(id, pageId)
{
	var message = document.getElementById('message' + id);
	var opacity = parseFloat(message.style.opacity);
	
	if(opacity == 0.2){
		clearInterval(fader);
		message.style.visibility = 'hidden';
		loadPage('?page=guestbook&id=' + pageId, 'content', false);
	}
	else{
		message.style.opacity = (opacity - 0.1);
	}
}

function changeSequenceMusic(element, listId)
{
	if(!loading){
		
		var swapwith = 0;
		var seq = '';
		var listObjects = document.getElementById(listId).getElementsByTagName('li');
		for(var k=0; k < listObjects.length; k++){
			seq += listObjects[k].id;
			if(k != listObjects.length-1)
				seq += ',';
		}
	
		loading = true;
		ajax.vars = new Object();
		stack = Array();
		
		ajax.requestFile = '?page=media&action=changesequence&sequence=' + seq;	// Specifying which file to get
		
		ajax.onCompletion = function(){
			loading = false;
		}
		
		ajax.onLoading = function(){
		}	// Action when AJAX is loading the file
		
		ajax.runAJAX();		// Execute AJAX function
	}
	
	
}

function deleteNews(id)
{
	if(!loading && confirm("Weet je zeker dat je dit nieuws wilt verwijderen? Dit geldt voor de Nederlandse en Engelse inhoud!")){
		loading = true;
		ajax.vars = new Object();
		stack = Array();
		
		ajax.requestFile = '?page=news&action=delete&id=' + id;	// Specifying which file to get
		
		ajax.onCompletion = function(){
			loading = false;
			stack = Array();
			getAjaxFile('?page=home', 'content');
			getAjaxFile('?page=home&part=footer', 'footer');
		}	// Specify function that will be executed after file has been found
		
		ajax.onLoading = function(){
		}	// Action when AJAX is loading the file
		
		ajax.runAJAX();		// Execute AJAX function
	}
}

function deleteMusic(id)
{
	if(!loading && confirm("Weet je zeker dat je dit muziek-fragment wilt verwijderen? Dit geldt voor de Nederlandse en Engelse inhoud!")){
		loading = true;
		ajax.vars = new Object();
		stack = Array();
		
		ajax.requestFile = '?page=media&part=music&action=delete&id=' + id;	// Specifying which file to get
		
		ajax.onCompletion = function(){
			loading = false;
			stack = Array();
			getAjaxFile('?page=media&part=music', 'content');
		}	// Specify function that will be executed after file has been found
		
		ajax.onLoading = function(){
		}	// Action when AJAX is loading the file
		
		ajax.runAJAX();		// Execute AJAX function
	}
}

function deleteCollection(id)
{
	if(!loading && confirm("Weet je zeker dat je deze collectie wilt verwijderen? Dit is definitief!")){
		loading = true;
		ajax.vars = new Object();
		stack = Array();
		
		ajax.requestFile = '?page=media&part=pictures&action=delete&id=' + id;	// Specifying which file to get
		
		ajax.onCompletion = function(){
			loading = false;
			stack = Array();
			getAjaxFile('?page=media&part=pictures', 'content');
			getAjaxFile('?page=home&part=footer', 'footer');
		}	// Specify function that will be executed after file has been found
		
		ajax.onLoading = function(){
		}	// Action when AJAX is loading the file
		
		ajax.runAJAX();		// Execute AJAX function
	}
}

function deleteMovie(id)
{
	if(!loading && confirm("Weet je zeker dat je deze video wilt verwijderen? Dit is definitief!")){
		loading = true;
		ajax.vars = new Object();
		stack = Array();
		
		ajax.requestFile = '?page=media&part=movies&action=delete&id=' + id;	// Specifying which file to get
		
		ajax.onCompletion = function(){
			loading = false;
			stack = Array();
			getAjaxFile('?page=media&part=movies', 'content');
			getAjaxFile('?page=media&part=footer', 'footer');
		}	// Specify function that will be executed after file has been found
		
		ajax.onLoading = function(){
		}	// Action when AJAX is loading the file
		
		ajax.runAJAX();		// Execute AJAX function
	}
}

function postForm(fileName, tmpPart, done)
{
	if(!loading){
		loading = true;
		stack = Array();
		part = document.getElementById(tmpPart);
		
		var elements = document.getElementById('formToPost');
		for(var no=0;no<elements.length;no++){
			elemNodeName = elements[no].nodeName;
			elemNodeName = elemNodeName.toLowerCase();
			if(	elemNodeName == 'input'
				|| elemNodeName == 'textarea'
				|| elemNodeName == 'select'
				|| elemNodeName == 'option'){
					ajax.setVar(elements[no].name, elements[no].value);
					//alert(elements[no].name + " - " + elements[no].value);
			}
		}
		
		ajax.requestFile = fileName;	// Specifying which file to get
		ajax.onCompletion = showContent;	// Specify function that will be executed after file has been found
		ajax.onLoading = showWaitMessage('Wordt opgeslagen');	// Action when AJAX is loading the file
		ajax.runAJAX();		// Execute AJAX function
		
		stack[0] = done;
		stack[1] = tmpPart;
	}
}

function initAjax()
{	
	part = document.getElementById('content');
}

function blurUrls()
{
	var links = document.getElementsByTagName('a');
	for(var no=0;no<links.length;no++){
		if(links[no].className != 'hid' && links[no].className != 'btnNumber' && links[no].className != 'youtubebutton')
			links[no].onfocus = links[no].blur;
	}
}

function loadAll()
{
	initAjax();
	blurUrls();
	
	getAjaxFile('?page=home', 'content');
	getAjaxFile('?page=home&part=footer','footer');
	getAjaxFile('?page=media&part=examples','examples');
	getAjaxFile('?page=media&part=demo', 'demo');
}

window.onload = loadAll;
