﻿var kopieerVerplaatsPaginaId = 0;
var paginalijst = null;
var moduleId = null;
var contextmenu = null;
var dragModuleuniqueID;
var dragModuleDockZoneID;
var dragModuleDockIndex;
var targetParent;
var geselecteerdDock;
var dockAchtergrondkleur;
var moduleTitel = "";
var websiteMenuSelectedItem;

function ZetServisionGebruikersgroepen(sender, args) {
	var tree = $find(sender.get_id());
	var melding = document.getElementById(sender.get_id().replace("RadTreeView", "Div"));
	var nodes = tree.get_nodes();
	var retval = "";
	if (tree != undefined && melding != undefined) {
		for (var i = 0; i < nodes.get_count(); i++) {
			var node = tree.get_nodes().getNode(i);
			if (node.get_checked())
				retval += (retval == "" ? "" : ", ") + node.get_text();
		}
		melding.innerHTML = retval == "" ? "Iedereen" : retval;
	}
}

function ClientNodeCheckedGebruikergroepen(sender, args) {
	var node = args.get_node();
	var tree = $find(sender.get_id());
	var melding = document.getElementById(sender.get_id().replace("RadTreeView", "Div"));
	if (tree != undefined) {
		var nodes = tree.get_nodes();
		var retval = "";
		if (node.get_text().toLowerCase() == "beheerders") {
			for (var i = 1; i < nodes.get_count(); i++) {
				if (node.get_checked()) {
					tree.get_nodes().getNode(i).set_checked(false);
					tree.get_nodes().getNode(i).set_enabled(false);
				} else {
					tree.get_nodes().getNode(i).set_enabled(true);
				}
			}
		}
		for (var i = 0; i < nodes.get_count(); i++) {
			var node = tree.get_nodes().getNode(i);
			if (node.get_checked())
				retval += (retval == "" ? "" : ", ") + node.get_text();
		}
		if (melding != undefined) {
			melding.innerHTML = retval;
			melding.style.visibility = melding.innerHTML == "" ? "hidden" : "visible";
		}
	}
}

function gaNaarPagina(sender, eventArgs) {
	GetRadWindowManager().closeActiveWindow();
	StuurAjaxRequest("ganaarpagina:" + eventArgs.get_item().get_value());
}

function RadWindowKopieerVerplaatsClientShow(sender, eventArgs) {
	sender.set_title(moduleTitel);
	var scrollTop = document.body.scrollTop;
	if (scrollTop == 0) {
		if (window.pageYOffset)
			scrollTop = window.pageYOffset;
		else scrollTop = (document.body.parentElement) ? document.body.parentElement.scrollTop : 0;
	}
	sender.moveTo(0, scrollTop);
	var listBoxItem = paginalijst.findItemByValue(huidigepaginaId);
	if (listBoxItem != undefined) {
		listBoxItem.select();
		listBoxItem.scrollIntoView();
		listBoxItem.ensureVisible();
	}
}

function KopieerVerplaatsModuleClientSelectedIndexChanged(sender, eventArgs) {
	kopieerVerplaatsPaginaId = eventArgs.get_item().get_value();
	var verplaatsknop = document.getElementById("ctl00_RadWindowKopieerVerplaats_C_Verplaatsknop");
	if (verplaatsknop != undefined)
		verplaatsknop.disabled = kopieerVerplaatsPaginaId == huidigepaginaId;
}

function KopieerVerplaatsRadListBoxClientLoad(sender, eventArgs) {
	paginalijst = sender;
}

function KopieerVerplaatsModuleClick(sender) {
	var windowManager = GetRadWindowManager();
	windowManager.closeActiveWindow();
	if (kopieerVerplaatsPaginaId != undefined && moduleId != undefined) {
		if (kopieerVerplaatsPaginaId != 0 && moduleId != null)
			StuurAjaxRequest(sender.value.toLowerCase() + "module:" + moduleId + "$" + kopieerVerplaatsPaginaId);
	}
}

function BackupClientContextMenuItemClicked(sender, eventArgs) {
	var node = eventArgs.get_node();
	var item = eventArgs.get_menuItem();
	var menu = item.get_menu();
	if (item.get_value() == "open")
		window.open(node.get_value());
}

function HaalTabId() {
	var hash = document.location.hash.replace("#", "");
	if (hash.length > 0) {
		var vars = hash.split("=");
		if (vars.length == 2) {
			var var1 = vars[0].replace(" ", "");
			var var2 = vars[1].replace(" ", "");
			if (var1.toLowerCase() == "tabid")
				StuurAjaxRequest("ganaarpagina:" + var2);
		}
	}
}

function ModuleContentMenuClientShowing(sender, EventArgs) {
	var target = EventArgs.get_targetElement();
	var matchString = "_ContentPlaceHolder1_";
	var contextmenu = sender;
	if (target != undefined && contextmenu != undefined) {
		var x = 0;
		targetParent = target;
		while (targetParent.id.indexOf(matchString) == -1) {
			x++;
			targetParent = targetParent.parentNode;
			if (x > 500) break;
		}
		var targetId = targetParent.id;
		var moduleIdIndex = targetId.indexOf(matchString);
		if (moduleIdIndex != -1) {
			moduleId = targetId.substr(moduleIdIndex + matchString.length);
			moduleId = moduleId.substring(0, moduleId.indexOf("_"));
			var dock = $find("ctl00_ContentPlaceHolder1_" + moduleId);
			if (dock != undefined) {
				if (geselecteerdDock != undefined && geselecteerdDock.get_uniqueID() != dock.get_uniqueID())
					ResetDockSelectie();
				var dockContainer = dock.get_contentContainer();
				dockAchtergrondkleur = dockContainer.style.backgroundColor;
				geselecteerdDock = dock;
				dockContainer.style.backgroundColor = "#FFEEBC";
				moduleTitel = dock.get_title();
				var dockIsCollapsed = dock.get_collapsed();
				var toonVerbergMenuItem = contextmenu.findItemByValue("toonverberg");
				if (toonVerbergMenuItem != undefined)
					toonVerbergMenuItem.set_text(dockIsCollapsed ? "Toon" : "Verberg");
			}
			var infoItem = contextmenu.get_items().getItem(0);
			if (infoItem != undefined)
				infoItem.set_text(moduleTitel);
			contextmenu.trackChanges();
			var wijzigMenuItem = contextmenu.findItemByText("Wijzig");
			if (wijzigMenuItem != undefined)
				wijzigMenuItem.set_value(moduleId);
			contextmenu.commitChanges();
		}
	}
}

function ModuleContentMenuClientHidden(sender, EventArgs) {
	ResetDockSelectie();
}

function ResetDockSelectie() {
	if (geselecteerdDock != undefined)
		geselecteerdDock.get_contentContainer().style.backgroundColor = dockAchtergrondkleur;
}

function ModuleContextMenu_ItemClicking(sender, EventArgs) {
	var menuItem = EventArgs.get_item();
	var contextmenu = sender;
	var moduleID;
	var wijzigMenuItem = contextmenu.findItemByText("Wijzig");
	if (wijzigMenuItem != undefined)
		moduleID = wijzigMenuItem.get_value();
	if (menuItem.get_value() == "menutitel")
		sender.close();
	if (menuItem.get_text() == "Verwijder") {
		contextmenu.hide();
		EventArgs.set_cancel(true);
		if (confirm("Wilt u module '" + moduleTitel + "' verwijderen?"))
			StuurAjaxRequest("verwijdermodule:" + moduleId);
	}
	if (menuItem.get_text() == "Toon" || menuItem.get_text() == "Verberg") {
		contextmenu.hide();
		EventArgs.set_cancel(true);
		ToonVerberg(moduleId, menuItem.get_text() == "Verberg");
	}
	if (menuItem.get_text() == "Wijzig") {
		contextmenu.hide();
		EventArgs.set_cancel(true);
		StuurAjaxRequest("wijzigmodule:" + menuItem.get_value());
	}
	if (menuItem.get_text() == "Dupliceer") {
		contextmenu.hide();
		EventArgs.set_cancel(true);
		StuurAjaxRequest("dupliceermodule:" + moduleID);
	}
	if (menuItem.get_text() == "Kopieer of verplaats...") {
		contextmenu.hide();
		EventArgs.set_cancel(true);
		var windowManager = GetRadWindowManager();
		windowManager.open(null, "RadWindowKopieerVerplaats");
	}
}

function DockPositionChanging(sender, EventArgs) {
	dragModuleuniqueID = sender.get_uniqueID();
	dragModuleDockZoneID = sender.get_dockZoneID();
	dragModuleDockIndex = sender.get_index();
}

function isRightClick(e) {
	var rightclick;
	if (!e)
		var e = window.event;
	if (e.which)
		rightclick = (e.which == 3);
	else if (e.button)
		rightclick = (e.button == 2);
	return rightclick;
}

function toonDockZones(toon) {
	var toppane = document.getElementById("ctl00_ContentPlaceHolder1_toppane");
	if (toppane != undefined) {
		toppane.style.paddingTop = toon ? "12px" : "0px";
		toppane.style.paddingBottom = toon ? "12px" : "0px";
	}
	var bottompane = document.getElementById("ctl00_ContentPlaceHolder1_bottompane");
	if (bottompane != undefined) {
		bottompane.style.paddingTop = toon ? "12px" : "0px";
		bottompane.style.paddingBottom = toon ? "12px" : "0px";
	}
	var leftpane = document.getElementById("ctl00_ContentPlaceHolder1_leftpane");
	if (leftpane != undefined) {
		leftpane.style.paddingTop = toon ? "12px" : "0px";
		leftpane.style.paddingBottom = toon ? "12px" : "0px";
	}
	var contentpane = document.getElementById("ctl00_ContentPlaceHolder1_contentpane");
	if (contentpane != undefined) {
		contentpane.style.paddingTop = toon ? "12px" : "0px";
		contentpane.style.paddingBottom = toon ? "12px" : "0px";
	}
	var rightpane = document.getElementById("ctl00_ContentPlaceHolder1_rightpane");
	if (rightpane != undefined) {
		rightpane.style.paddingTop = toon ? "12px" : "0px";
		rightpane.style.paddingBottom = toon ? "12px" : "0px";
	}
}

//Roep de webservice alleen aan als het dockpanel daadwerkelijk is verplaatst
function DockPositionChanged(sender, EventArgs) {
	if (dragModuleuniqueID == sender.get_uniqueID()) {
		if (dragModuleDockZoneID != sender.get_dockZoneID() || dragModuleDockIndex != sender.get_index()) {
			var andereZone = dragModuleDockZoneID != sender.get_dockZoneID();
			var andereIndex = dragModuleDockIndex != sender.get_index();
			if (andereZone || andereIndex) {
				var moduleId = dragModuleuniqueID.substring(dragModuleuniqueID.lastIndexOf("$") + 1);
				var doelPane = sender.get_dockZoneID().substring(sender.get_dockZoneID().lastIndexOf("_") + 1);
				PortalWebService.VerplaatsModule(moduleId, doelPane, sender.get_index(), sender.get_id(), OnCompleteVerplaatsModule);
			}
		}
	}
}

function OnCompleteVerplaatsModule(arg) {
	var module = document.getElementById(arg.ModuleClientContentID);
	if (module != undefined) {
		if (arg.Linkermarge != undefined)
			module.style.marginLeft = arg.Linkermarge + "px";
		if (arg.Rechtermarge != undefined)
			module.style.marginRight = arg.Rechtermarge + "px";
		var flashmodule = document.getElementById('flash_' + arg.ModuleID);
		if (flashmodule != undefined && arg != undefined) {
			if (arg.Breedte != undefined) {
				flashmodule.width = arg.Breedte - arg.Linkermarge - arg.Rechtermarge;
				if (arg.Flashvideohoogte != undefined) {
					flashmodule.height = arg.Flashvideohoogte;
				}
			}
		}
	}
	var witruimte = document.getElementById(arg.ModuleClientWitruimteID);
	if (witruimte != undefined) {
		if (arg.Bovenmarge != undefined) {
			witruimte.style.height = arg.Bovenmarge + "px";
			witruimte.title = arg.Tooltip;
		}
	}
}

//Toggle de toon/verberg-status (functie)
function ToonVerberg(moduleID, collapsed) {
	var checkBoxWijzigmodus = document.getElementById(_checkboxwijzigmodus);
	var dock = $find("ctl00_ContentPlaceHolder1_" + moduleID);
	if (dock != undefined) {
		dock.set_collapsed(collapsed);
		if (!checkBoxWijzigmodus.checked)
			dock.set_visible(!collapsed);
		var toonverbergcommand = dock.getCommand('toon-verberg');
		if (toonverbergcommand != undefined) {
			toonverbergcommand.set_state(!collapsed ? 1 : 2);
			PortalWebService.ToonVerbergModule(moduleId, !collapsed);
		}
	}
}

//Toggle de toon/verberg-status (eventhandler)
function ToonVerbergModule(sender, EventArgs) {
	var moduleId = sender.get_id().substring(sender.get_id().lastIndexOf("_") + 1);
	var toonverbergcommand = sender.getCommand("toon-verberg");
	var dock = $find("ctl00_ContentPlaceHolder1_" + moduleId);
	if (dock != undefined) {
		var dockIsCollapsed = dock.get_collapsed();
		var toggleCommandState = toonverbergcommand.get_state();
		dock.set_collapsed(!dockIsCollapsed);
		toonverbergcommand.set_state(dockIsCollapsed ? 1 : 2);
		PortalWebService.ToonVerbergModule(moduleId, dockIsCollapsed);
	}
}

function SchakelWijzigmodus() {
	StuurAjaxRequest("ganaarpagina:");
}

function Paginakeuze(sender, args) {
	StuurAjaxRequest("ganaarpagina:" + args.get_item().get_value());
}

function DockDragEnd(sender, EventArgs) {
	toonDockZones(false);
}

function SetHandleDock(dock, args) {
	var checkBoxWijzigmodus = document.getElementById(_checkboxwijzigmodus);
	if (checkBoxWijzigmodus != undefined) {
		if (!checkBoxWijzigmodus.checked) {
			dock.set_handle(dock.get_contentContainer());
			if (Telerik.Web.UI.RadDock.prototype.oldDragStart == undefined) {
				Telerik.Web.UI.RadDock.prototype.oldDragStart = Telerik.Web.UI.RadDock.prototype.onDragStart;
				Telerik.Web.UI.RadDock.prototype.onDragStart = function(dragArgs) {
					if (isRightClick(args.ownerEvent))
						return false;
					else this.oldDragStart(dragArgs);
				}
			}
		}
	}
}

function DockDragStart(sender, EventArgs) {
	CtrlIngedrukt = false;
	toonDockZones(true);
	var contextmenu = $find(_contextmenu);
	if (contextmenu != undefined)
		contextmenu.hide();
}