var scrolling;
var viewModular;
var refreshing=0;



var Navigation = {
	activeNode:undefined,
	tabindex:new Array(),
	
	
	init: function() {
	
		this.activeNode = ($$("div#menu_nav .active")[0]);
		$$("div#menu_nav ul a").each(function(a) {
		
			Navigation.tabindex[a.tabIndex] = a;
		
		});
		
		
		$$("ul a").invoke("observe", "keyup", function(event) {Navigation.keyup(event, this) });
		
		
	},
				
	scrollBy: function() {
		$('menu_nav').scrollTop = $('menu_nav').scrollTop + offset;		
		BaseLayout.ajust();	
	},
	scrollBy: function(i) {
		if (this.pe) this.pe.stop();
		this.pe = new PeriodicalExecuter(function(pe) {
			  
			 $('menu_nav').scrollTop = $('menu_nav').scrollTop + i;	
			  BaseLayout.ajust();	
		}, 0.01);

		
	},	
	scrollStop: function() {
		
		this.pe.stop();

		
	},		
	scrollTop: function() {
		if (this.pe) this.pe.stop();
		this.pe = new PeriodicalExecuter(function(pe) {
			  if ($('menu_nav').scrollTop<=0) pe.stop();
			 $('menu_nav').scrollTop = $('menu_nav').scrollTop - 50;	
			  BaseLayout.ajust();	
		}, 0.01);

							
	},
	scrollBottom: function() {
		
		if (this.pe) this.pe.stop();
		this.pe = new PeriodicalExecuter(function(pe) {
			
			 if ($('menu_nav').scrollTop>=$('menu_nav').scrollHeight) pe.stop();
			 $('menu_nav').scrollTop = $('menu_nav').scrollTop + 50;	
			 BaseLayout.ajust();	
		}, 0.01);

							
	},
	
	openCloseNode: function (id, caller) {

		new Ajax.Request(caller.href+"&toolOnly=true", {
		  method: 'get'
		   
		});	
		
		var element = document.getElementById(id);
		if (element.className == "closed") {
			element.className='';
			
			
			element.className='opened';
			
			caller.up().addClassName("opened");
			caller.up().removeClassName("closed");
			
			var top = $(id).cumulativeOffset()[1]-230;						
			this.scrollTo (top,element.parentNode.offsetHeight);
						
		} else { 
					
			this.scrollBy ((element.offsetHeight)*-1);
			element.className='closed';
			caller.up().removeClassName("opened");
			caller.up().addClassName("closed");
					
					
		}	
		BaseLayout.ajust();
	
	},
	keyup: function (event,caller) {
		if(event.keyCode == Event.KEY_DOWN) {
			var i = caller.tabIndex+1;
			while (!this.isVisible(this.tabindex[i])) {
				i++;
			}
			this.tabindex[i].focus();
			
		}
		
		if(event.keyCode == Event.KEY_UP) {
			var i = caller.tabIndex-1;
			while (!this.isVisible(this.tabindex[i])) {
				i--;
			}
			this.tabindex[i].focus();
			
		}		
	},
	isVisible: function(a) {
		return !a.up().up().up().hasClassName("closed") ;
		
	},
	loadTool: function (caller) {
	
		if (this.activeNode) Element.removeClassName(this.activeNode, "active");
		this.activeNode = caller;
		Element.addClassName(caller, "active");
		if (document.getElementById('frame')) {
			document.getElementById("loading").style.display="block";
			document.getElementById('frame').src=caller.href+"&toolOnly=true";
		} 

	}
				
				 				
}; 
			
var BaseLayout = {
				
	ajust: function() {

	if(document.getElementById("navigation_up")!=null)
	{
		$("navigation_up").style.visibility=($('menu_nav').scrollTop) ? "visible" :"hidden";		
		$("navigation_down").style.visibility=($('menu_nav').scrollHeight -$('menu_nav').scrollTop > $('menu_nav').offsetHeight) ? "visible" :"hidden";			
	}
}		
}


function init() {
	Navigation.init();
}

			
Event.observe(window, "load", BaseLayout.ajust);
Event.observe(window, "load", init);
Event.observe(window, "resize", BaseLayout.ajust);
			


function getBrowser() {
	var sBrowser = navigator.userAgent;
	if (sBrowser.toLowerCase().indexOf('msie 5.0') > 0)return 'ie5';  
	if (sBrowser.toLowerCase().indexOf('msie 6.0') > 0) return 'ie6'; 
	if (sBrowser.toLowerCase().indexOf('msie 7.0') > 0) return 'ie7'; 
	if (sBrowser.toLowerCase().indexOf('firefox/2') > 0) return 'ff2';
	else					
	return;
}


function changeFontSize(change) {

	if (change!=0) new Ajax.Request("index.php?changeFontSize="+change, {method: 'get'});

	if (sessionValues['fontSize'] + change >= 10 && sessionValues['fontSize'] + change < 20) {
		sessionValues['fontSize'] = sessionValues['fontSize'] + change;
		
      
	

		if( document.styleSheets[2].cssRules ) {  
			var myStyle = document.createElement("style");  
			document.getElementsByTagName("head")[0].appendChild(myStyle);
			myStyle.setAttribute( "type", "text/css" );  
			myStyle = document.styleSheets[document.styleSheets.length-1];
			myStyle.insertRule("body {font-size: "+sessionValues['fontSize']+"px;}",0);
			myStyle.insertRule("td {font-size: "+sessionValues['fontSize']+"px;}",0);
			myStyle.insertRule("th {font-size: "+sessionValues['fontSize']+"px;}",0);
			myStyle.insertRule("input {font-size: "+sessionValues['fontSize']+"px;}",0);
			myStyle.insertRule("textarea {font-size: "+sessionValues['fontSize']+"px;}",0);	
					 
		} else {  
			if (getBrowser()=="ie6" || getBrowser()=="ie7") {			
					var toolStyleId=3;
				} else {					
					var toolStyleId=2;
			}	
			
			document.styleSheets[toolStyleId].addRule ("body", "font-size: "+ sessionValues['fontSize']+"px;");	
			document.styleSheets[toolStyleId].addRule ("td", "font-size: "+ sessionValues['fontSize']+"px;");
			document.styleSheets[toolStyleId].addRule ("th", "font-size: "+ sessionValues['fontSize']+"px;");
			document.styleSheets[toolStyleId].addRule ("input", "font-size: "+ sessionValues['fontSize']+"px;");
			document.styleSheets[toolStyleId].addRule ("textarea", "font-size: "+ sessionValues['fontSize']+"px;");
			
	
		}  

		
		BaseLayout.ajust();
		
	}
	return false;
}

