﻿function SEL() {
	
	// private properties
	// ==================
	var loginWindow;
	var currentMenuItem;
	
	// public functions
	// ================
	this.init = function() {
		initLoginWindow();		
		initNavigation();
		initSWFObjects();
	}

	// private functions
	// =================
	var toggleMenuItem = function(menuItem) {
		if (currentMenuItem != null) {
			bindMenuItemEvents(currentMenuItem);			
			if (currentMenuItem != menuItem) {
				$(currentMenuItem).toggleClass("main-nav-selected-item");
			}
			$(currentMenuItem.subMenu).addClass("hidden");
		}
		
		if (currentMenuItem != menuItem) {
			resetMenuItemEvents(menuItem);
			
			$(menuItem.subMenu).removeClass("hidden");
					
			currentMenuItem = menuItem;
			
		} else {
			currentMenuItem = null;
		}		
	}
	var bindMenuItemEvents = function(menuItem) {
		$(menuItem).bind('mouseover',function(event) {
			$(this).toggleClass("main-nav-selected-item");
		});
		$(menuItem).bind('mouseout', function(event) {
			$(this).toggleClass("main-nav-selected-item");
		});		
	}
	var resetMenuItemEvents = function(menuItem) {
		$(menuItem).unbind('mouseover');
		$(menuItem).unbind('mouseout');
	}
	var initNavigation = function() {
		var menuItems = $("#main-nav > LI");

		for (var i = 0; i < menuItems.length; i++) {
			var subMenu = $(menuItems[i]).find("UL");
			if (subMenu[0] != null) {
				menuItems[i].subMenu = subMenu[0];
				$(subMenu[0]).addClass("hidden");
			}
			$(menuItems[i]).click(function() {
				toggleMenuItem(this);
			});
		
			bindMenuItemEvents(menuItems[i]);
		}		
				
		if ($("#login-status").val() == "0") {
			var loginButtonHolder = $("#login-button-holder");
			
			loginButtonHolder.subMenu = loginWindow;
				
			bindMenuItemEvents(loginButtonHolder);
			$(loginButtonHolder).click(function() {
				toggleMenuItem(loginButtonHolder);
				loginWindow.find('input:first').focus();
				return false;
			});
			if (loginWindow.visible) {
				toggleMenuItem(loginButtonHolder);
			}			
		}
	}
	var initLoginWindow = function() {
		loginWindow = $("#login-window");
		loginWindow.visible = true;
		
		if ($("#login-window-status").val() == "1") {
			showLoginWindow();
			
		} else {
			hideLoginWindow();
		}
	}
	var showLoginWindow = function() {
		$(loginWindow).removeClass('hidden');
		loginWindow.find('input:first').focus();
		loginWindow.visible = true;
	}
	var hideLoginWindow = function() {
		$(loginWindow).addClass('hidden');
		loginWindow.visible = false;
	}
	var initSWFObjects = function() {
		var currentRegionId = $("#current-region-id").val();
		if (currentRegionId == null ) {
			currentRegionId = -1;			
		}
		
		var reloadUrl = window.location.href;
		var reloadUrlPieces = new Array();
		reloadUrlPieces = reloadUrl.split("/");
		reloadUrlPieces.splice(0, 3);
		
		if (reloadUrlPieces[0].toLowerCase() == "nwv" || reloadUrlPieces[0].toLowerCase() == "ov" || reloadUrlPieces[0].toLowerCase() == "mwv" || reloadUrlPieces[0].toLowerCase() == "zwv") {
			reloadUrlPieces.splice(0, 1);
			reloadUrl = "/" + reloadUrlPieces.join("/");
		
		} else {
			reloadUrl = "/" + reloadUrlPieces.join("/");
		}
		
		var flashvariables = {};
		flashvariables.regionId = currentRegionId;
		flashvariables.reloadUrl = reloadUrl;
		
		var parameters = {};
		parameters.wmode = "opaque";
		parameters.allowScriptAccess = "always";
		
		var attributes = {};

		swfobject.embedSWF("/assets/swf/sel_header.swf", "portal", "900", "300", "9.0.0", "/includes/swfobject/expressInstall.swf", flashvariables, parameters, attributes);
	}


	// help functions
	// ==============
	var getChildElementsByTagName = function(parentElement, tagName) {
		var result = [];
		for (var i = 0; i < parentElement.children.length; i++) {
			if (parentElement.children[i].tagName == tagName) result.push(parentElement.children[i]);
		}
		return result;
	}
}


// global variables
// ================
var sel;

$(document).ready(function() {	
	sel = new SEL();
	sel.init();
	
	sel.jpagers = $("body").jpager({
		pageBreakSelector : "content-page-break",
		previousButtonText : "Vorige",
		previousLabelText : "Vorige",
		nextButtonText : "Volgende",
		nextLabelText : "Volgende"	
	});
	
	sel.jipe = $(".jipe-content").jipe({
		cancelButtonText : "annuleer",
		updateButtonText : "wijzigen",
		updateErrorText : "Error: de inhoud wijzingen konden niet toegepast worden, als dit probleem zich blijft voordoen gelieve dan een administrator te contacteren.",
		openFunction : function() {
			sel.jpagers.destroy();
		},
		closeFunction : function() {
			sel.jpagers = $("body").jpager({
				pageBreakSelector : "content-page-break",
				previousButtonText : "Vorige",
				previousLabelText : "Vorige",
				nextButtonText : "Volgende",
				nextLabelText : "Volgende"	
			});
		}
	});
	
	$(".delete-button").click(function() {
		return confirm("Bent u zeker dat u deze delete actie wil uitvoeren?");
	});
	
	// focus first input field
	$("input:visible:enabled:first").focus();
});
