// Menu
$(document).ready(function(){
	$('li', '.cms_toolbar').hover(
		function() { 
			$('ul', this).fadeIn('fast', function() {
				$(this).css('opacity', 0.8);
			});
			
		},
		function() { 
			$('ul', this).fadeOut('fast');
		}
	);
});


function loadSection(sectionid, lang) {
	showLoading();
	$.ajax({
		url: "ajax/getSection.php?sectionid=" + sectionid + "&lang=" + lang,
		success: function(data) {
			$("#section_" + sectionid).html(data);
			hideLoading();
		}
	});
}

function editCms() {
	showLoading();
	showEditArea();
	$.ajax({
		url: "ajax/processCms.php?action=edit",
		success: function(data) {
			$("#cms_edit").html(data);
			hideLoading();
		}
	});
}

function updateCms(form) {
	if (!checkCmsUpdate()) {
		showMessage("Kan niet opgeslagen worden", "info");
		return false;
	}
	
	showLoading();
	postVars = makePostString(form);
	$.ajax({
		type: "POST",
		url: "ajax/processCms.php?action=update",
		data: postVars,
		success: function(data) {
			if (data == 1) {
				showMessage("Opgeslagen", "check");
			} else {
				showMessage("Fout bij opslaan", "error");
				handleError(data);
			}
			hideEditArea();
			hideLoading();
			location.reload(true);
		}
	});
}

function checkCmsUpdate() {
	return true;
}

function selectPage(id, lang) {
	document.location = "index.php?pid=" + id + "&lang=" + lang;
}

function newPage() {
	showLoading();
	showEditArea();
	$.ajax({
		url: "ajax/processPage.php?action=new",
		success: function(data) {
			$("#cms_edit").html(data);
			hideLoading();
		}
	});
}

function newPageInNewLang(id, lang) {
	showLoading();
	$.ajax({
		url: "ajax/processPage.php?action=insertNewLang&id=" + id + "&lang=" + lang,
		success: function(data) {
			if (data == 1) {
				showMessage("Pagina aangemaakt in nieuwe taal", "check");
			} else {
				showMessage("Fout bij aanmaken van pagina in nieuwe taal", "error");
				handleError(data);
			}
			hideLoading();
			location.reload(true);
		}
	});
}

function editPage(id, lang) {
	showLoading();
	showEditArea();
	$.ajax({
		url: "ajax/processPage.php?action=edit&id=" + id + "&lang=" + lang,
		success: function(data) {
			$("#cms_edit").html(data);
			hideLoading();
		}
	});
}

function insertPage(form) {
	if (!checkPageInsert()) {
		showMessage("Kan niet opgeslagen worden", "info");
		return false;
	}
	showLoading();
	postVars = makePostString(form);
	$.ajax({
		type: "POST",
		url: "ajax/processPage.php?action=insert",
		data: postVars,
		success: function(data) {
			/*
			if (data == 1) {
				showMessage("Opgeslagen", "check");
			} else {
				showMessage("Fout bij opslaan", "error");
				handleError(data);
			}
			*/
			hideEditArea();
			hideLoading();
			location.reload(true);
		}
	});
}

function checkPageInsert() {
	return true;
}

function updatePage(id, lang, form) {
	if (!checkPageUpdate()) {
		showMessage("Kan niet opgeslagen worden", "info");
		return false;
	}
	showLoading();
	postVars = makePostString(form);
	$.ajax({
		type: "POST",
		url: "ajax/processPage.php?action=update&id=" + id + "&lang=" + lang,
		data: postVars,
		success: function(data) {
			if (data == 1) {
				showMessage("Opgeslagen", "check");
			} else {
				showMessage("Fout bij opslaan", "error");
				handleError(data);
			}
			hideEditArea();
			hideLoading();
			location.reload(true);
		}
	});
}

function checkPageUpdate() {
	return true;
}

function editSetting(module) {
	showLoading();
	showEditArea();
	$.ajax({
		url: "ajax/processSetting.php?action=edit&module=" + module,
		success: function(data) {
			$("#cms_edit").html(data);
			hideLoading();
		}
	});
}

function updateSetting(module, form) {
	if (eval("typeof check" + module + "SettingUpdate == 'function'")) {
		if (eval("!check" + module + "SettingUpdate()")) {
			showMessage("Kan niet opgeslagen worden", "info");
			return false;
		}
	}
	showLoading();
	postVars = makePostString(form);
	$.ajax({
		type: "POST",
		url: "ajax/processSetting.php?action=update&module=" + module,
		data: postVars,
		success: function(data) {
			if (data == 1) {
				showMessage("Opgeslagen", "check");
			} else {
				showMessage("Fout bij opslaan", "error");
				handleError(data);
			}
			hideEditArea();
			hideLoading();
		}
	});
}

function newModuleLink(sectionid, lang, selectedmodule, selectedmoduleid) {
	showLoading();
	showEditArea();
	$.ajax({
		url: "ajax/processModuleLink.php?action=new&sectionid=" + sectionid + "&lang=" + lang + "&selectedmodule=" + selectedmodule + "&selectedmoduleid=" + selectedmoduleid,
		success: function(data) {
			$("#cms_edit").html(data);
			hideLoading();
		}
	});
}

function editModuleLink(id, lang, selectedmodule, selectedmoduleid) {
	showLoading();
	showEditArea();
	$.ajax({
		url: "ajax/processModuleLink.php?action=edit&id=" + id + "&lang=" + lang + "&selectedmodule=" + selectedmodule + "&selectedmoduleid=" + selectedmoduleid,
		success: function(data) {
			$("#cms_edit").html(data);
			hideLoading();
		}
	});
}

function insertModuleLink(sectionid, lang, form) {
	module = form.elements['modulename'].value;
	if (eval("typeof check" + module + "Insert == 'function'")) {
		if (eval("!check" + module + "Insert()")) {
			showMessage("Kan niet opgeslagen worden", "info");
			return false;
		}
	}
	showLoading();
	postVars = makePostString(form);
	$.ajax({
		type: "POST",
		url: "ajax/processModuleLink.php?action=insert&sectionid=" + sectionid + "&lang=" + lang,
		data: postVars,
		success: function(data) {
			if (data == 1) {
				showMessage("Opgeslagen", "check");
			} else {
				showMessage("Fout bij opslaan", "error");
				handleError(data);
			}
			hideEditArea();
			hideLoading();
			loadSection(sectionid, lang);
		}
	});
}

function updateModuleLink(id, lang, sectionid, form) {
	module = form.elements['modulename'].value;
	if (eval("typeof check" + module + "Update == 'function'")) {
		if (eval("!check" + module + "Update()")) {
			showMessage("Kan niet opgeslagen worden", "info");
			return false;
		}
	}
	showLoading();
	postVars = makePostString(form);
	$.ajax({
		type: "POST",
		url: "ajax/processModuleLink.php?action=update&id=" + id + "&lang=" + lang,
		data: postVars,
		success: function(data) {
			if (data == 1) {
				showMessage("Opgeslagen", "check");
			} else {
				showMessage("Fout bij opslaan", "error");
				handleError(data);
			}
			hideEditArea();
			hideLoading();
			loadSection(sectionid, lang);
		}
	});
}

function draftModuleLink(id, lang, sectionid, form) {
	module = form.elements['modulename'].value;
	if (eval("typeof check" + module + "Draft == 'function'")) {
		if (eval("!check" + module + "Draft()")) {
			showMessage("Kan niet opgeslagen worden", "info");
			return false;
		}
	}
	showLoading();
	postVars = makePostString(form);
	$.ajax({
		type: "POST",
		url: "ajax/processModuleLink.php?action=draft&id=" + id + "&lang=" + lang,
		data: postVars,
		success: function(data) {
			if (data == 1) {
				showMessage("Opgeslagen", "check");
			} else {
				showMessage("Fout bij opslaan", "error");
				handleError(data);
			}
			hideEditArea();
			hideLoading();
			loadSection(sectionid, lang);
		}
	});
}

function deleteModuleLink(id, lang, sectionid) {
	var r = confirm("Weet u zeker dat u dit item wilt verwijderen?");
	if (r == true) {
		showLoading();
		$.ajax({
			type: "POST",
			url: "ajax/processModuleLink.php?action=delete&id=" + id + "&lang=" + lang,
			success: function(data) {
				if (data == 1) {
					showMessage("Verwijderd", "check");
				} else {
					showMessage("Fout bij verwijderen", "error");
					handleError(data);
				}
				hideEditArea();
				hideLoading();
				loadSection(sectionid, lang);
			}
		});
	}
}

function moveModuleLink(id, lang, sectionid, direction) {
	showLoading();
	$.ajax({
		type: "POST",
		url: "ajax/processModuleLink.php?action=move&id=" + id + "&lang=" + lang + "&direction=" + direction,
		success: function(data) {
			if (data == 1) {
				showMessage("Verplaatst", "check");
			} else {
				showMessage("Fout bij verplaatsen", "error");
				handleError(data);
			}
			hideLoading();
			loadSection(sectionid, lang);
		}
	});
}

function editModuleSettings(module) {
	showLoading();
	showEditArea();
	$.ajax({
		url: "ajax/processModule.php?action=editSettings&module=" + module,
		success: function(data) {
			$("#cms_edit").html(data);
			hideLoading();
		}
	});
}

function updateModuleSettings(module, form) {
	showLoading();
	postVars = makePostString(form);
	$.ajax({
		type: "POST",
		url: "ajax/processModule.php?action=updateSettings&module=" + module,
		data: postVars,
		success: function(data) {
			if (data == 1) {
				showMessage("Opgeslagen", "check");
			} else {
				showMessage("Fout bij opslaan", "error");
				handleError(data);
			}
			hideEditArea();
			hideLoading();
		}
	});
}

function showEditArea() {
	$("#cms_editwrapper").fadeIn('fast', function() {
		$("#cms_editwrapper").css('opacity', 0.5);
	});
	$("#cms_editclose").fadeIn('fast');
	$("#cms_edit").fadeIn('fast');
	
	$("#cms_editwrapper").height($(window).height()-90);
	$("#cms_edit").height($(window).height()-140);
}

function hideEditArea() {
	document.getElementById("cms_edit").innerHTML = "";
	
	$("#cms_editwrapper").fadeOut('fast');
	$("#cms_editclose").fadeOut('fast');
	$("#cms_edit").fadeOut('fast');
}

function showMessage(message, type) {
	if (type == "info") {
		message = "<p style=\"margin:0px; padding:0px; color:#fff;\"><img src=\"img/icons/information.png\" alt=\"Info\" /> " + message + "</p>";
	} else if (type == "check") {
		message = "<p style=\"margin:0px; padding:0px; color:#fff;\"><img src=\"img/icons/accept.png\" alt=\"Check\" /> " + message + "</p>";
	} else if (type == "error") {
		message = "<p style=\"margin:0px; padding:0px; color:#fff;\"><img src=\"img/icons/error.png\" alt=\"Warning\" /> " + message + "</p>";
	}
	
	document.getElementById("cms_message").innerHTML = message;
	$("#cms_message").fadeIn("fast", function() {
		$("#cms_message").css('opacity', 0.8);
	});
	setTimeout("hideMessage();", 3000);
}

function hideMessage() {
	$("#cms_message").fadeOut("slow", function() {
			$("#cms_message").innerHTML = "";
		}
	);
}

function showLoading() {
	document.getElementById("cms_loading").innerHTML = "<img src=\"img/ajax-loader.gif\" alt=\"Loading...\" />";
	$("#cms_loading").show();
}

function hideLoading() {
	document.getElementById("cms_loading").innerHTML = "";
	$("#cms_loading").hide();
}

function handleError(message) {
	showLoading();
	$.ajax({
		type: "POST",
		url: "ajax/sendErrorReport.php",
		data: "message=" + encodeURIComponent(message),
		success: function(data) {
			hideLoading();
			alert("Helaas is er een onbekende fout opgetreden. Er is een technisch rapport van de fout gesuurd naar GMWEB en zij zullen hier zo snel mogelijk naar kijken. Voor aanvullende invormatie of vragen kunt u mailen met info@gmweb.nl");
			location.reload(true);
		}
	});
}

function makePostString(form) {
	postVars = "";
	for (var i = 0; i < form.elements.length; i++) {
		if (form.elements[i].className == "editor") {
			var editor = tinyMCE.getInstanceById(form.elements[i].id);
			value = editor.getContent();
		} else {
			value = form.elements[i].value;
		}
		
		// Add to varstring if checked
		if (form.elements[i].type == "radio") {
			if (form.elements[i].checked == true) {
				postVars += form.elements[i].name + "=" + encodeURIComponent(value) + "&";
			}
		} else if (form.elements[i].type == "checkbox") {
			if (form.elements[i].checked == true) {
				postVars += form.elements[i].name + "=" + encodeURIComponent(value) + "&";
			} else {
				postVars += form.elements[i].name + "=&";
			}
		} else {
			postVars += form.elements[i].name + "=" + encodeURIComponent(value) + "&";
		}
	}
	
	return postVars;
}
