/**
 * Kaaterskil
 *
 * @category	Kaaterskil
 * @package		Htdocs_Js
 * @copyright	Copyright (c) 2008 Kaaterskil Management, LLC
 * @version		$Id: km.js,v 1.4 2010/07/02 22:17:59 Blair Exp $
 */

/**
 * Onload
 */
window.onloadListeners = [];
window.addOnloadListener = function(listener){
	var count = window.onloadListeners.length;
	window.onloadListeners[count] = listener;
};

window.onload = function(){
	for(var i = 0; i < window.onloadListeners.length; i++){
		var obj = window.onloadListeners[i];
		obj.init();
	}
};

/**
 * Onload Handler
 */
OnLoadHandler = function(){};
OnLoadHandler.prototype = {
	init : function(){
		if(window.location.href.indexOf('content') != -1){
			tinyMCE.init({
				theme : 'advanced',
				mode : 'exact',
				elements : 'excerpt, full_text',
				height : '400',
				width : '600',
				theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect,fontselect,fontsizeselect",
				theme_advanced_buttons2 : "cut,copy,paste,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code,|,forecolor,backcolor",
				theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,|,print,|,fullscreen",
				theme_advanced_toolbar_location : 'top',
				theme_advanced_toolbar_align : 'left',
				theme_advanced_statusbar_location : 'bottom',
				theme_advanced_resizing : true,
				plugins : 'save,print,fullscreen,advlist',
				theme_advanced_buttons3_add : 'save,print,fullscreen',
				fullscreen_new_window : true,
				fullscreen_settings : {
					theme_advanced_path_location : 'top'
				}

			});
		}
	}
};
window.addOnloadListener(new OnLoadHandler());

/**
 * Menu Handler
 * 
 * @param array navbarIds
 */
KM_MenuHandler = function(navbarIds){
	this.navbars = navbarIds;
};
KM_MenuHandler.prototype = {
	navbars : [],
	
	init : function(){
		for(var i = 0; i < this.navbars.length; i++){
			var e = $(this.navbars[i]);
			if(e){
				this.setMenu(e);
			}
		}
	},
	
	setMenu : function(ep){
		var children = ep.getElementsByTagName('li');
		for(var i = 0; i < children.length; i++){
			this.setIEClassName(children[i]);
			//this.setPosition(children[i]);
			//this.setBehavior(children[i]);
		}
	},
	
	setPosition: function(ep){
		for(var i = 0; i < ep.childNodes.length; i++){
			var e = ep.childNodes[i];
			
			if(e.nodeName.toLowerCase() == 'ul'){
				var p = Element.getCoords(ep);
				var o = parseInt(ep.style.paddingLeft) > 20 
						? parseInt(ep.style.paddingLeft) : 0;
				var x = p.left;
				var y = p.top + ep.offsetHeight;
				
				Element.setCoords(e, x, y);
				e.style.display = 'block';
			}
		}//end for
	},
	
	setBehavior: function(ep){
		ep.onmouseover = function(){
			for(i = 0; i < this.childNodes.length; i++){
				var e = this.childNodes[i];
				
				if(e.nodeName.toLowerCase() == 'ul'){
					e.style.visibility = 'visible';
					e.style.zIndex = 30000;
				}
			}//end for
		};
		
		ep.onmouseout = function(){
			for(i = 0; i < this.childNodes.length; i++){
				var e = this.childNodes[i];
				
				if(e.nodeName.toLowerCase() == 'ul'){
					e.style.visibility = 'hidden';
					e.style.zIndex = 0;
				}
			}//end for
		};
	},
	
	setIEClassName: function(child){
		child.onmouseover = function(){
			this.className += ' km_hover';
		};
		child.onmouseout = function(){
			this.className = this.className.replace(new RegExp(' km_hover\\b'), '');
		};
	},
	
	arrangeMenus: function(menuID, containerID, adminTest){
		var items = 0;
		var computedWidth = 0;
		var totalSpace = 0;
		var padding = 0;
		var totalWidth = 600;
		
		var ec = document.getElementById(menuID);	
		if(ec){
			for(var i = 0; i < ec.childNodes.length; i++){
				var e = ec.childNodes[i];
				
				if(e.nodeName.toLowerCase() == 'li'){
					computedWidth += e.offsetWidth;
					items++;
				}
			}
			
			if(!adminTest){
				var et = document.getElementById(containerID);
				if(et.currentStyle){
					totalWidth = parseInt(et.offsetWidth);
				}else{
					totalWidth = parseInt(
									window.getComputedStyle(et, null).width);
				}
			}
			
			totalSpace	= totalWidth + computedWidth;
			padding		= Math.floor(totalSpace / items / 2, 0);
			
			for(var i = 0; i < ec.childNodes.length; i++){
				var e = ec.childNodes[i];
				
				if(e.nodeName.toLowerCase() == 'li'){
					e.style.paddingLeft		= padding + 'px';
					e.style.paddingRight	= padding + 'px';
					
					for(var j = 0; j < e.childNodes.length; j++){
						var eu = e.childNodes[j];
						
						if(eu.nodeName.toLowerCase() == 'ul'){
							var p = Element.getCoords(e);
							var o = padding > 20 ? padding - 20 : 0;
							var x = p.left + o - 1;
							var y = p.top + e.offsetHeight;
							
							//adjust for IE box model rendering
							if(BrowserSniffer.isIE 
									&& BrowserSniffer.majorVer < 7){
								p.w = e.offsetParent.offsetParent.offsetWidth - 6;
								x = p.left + o - p.w;
							}
							
							Element.setCoords(eu, x, y);
							
							if(BrowserSniffer.isIE){
								this.setIEClassName(eu);
							}
						}
					}//end for
				}
			}//end for
		}
	}
};

var menuHandler = new KM_MenuHandler(['nav_public']);
window.addOnloadListener(menuHandler);
