﻿    
    // Initialise js logging framework
    // ---------------------------------------------------------------------------------------------------------------------
    var log = log4javascript.getDefaultLogger();
    log4javascript.setEnabled(log4javascript_IsEnabled);
    // ---------------------------------------------------------------------------------------------------------------------

    // Generic DOM fns
    // ---------------------------------------------------------------------------------------------------------------------
    function getBrowserWidth()
    {
        var x;
        if (self.innerHeight) // all except Explorer
	        x = self.innerWidth;
        else if (document.documentElement && document.documentElement.clientHeight)// Explorer 6 Strict Mode
	        x = document.documentElement.clientWidth;
        else if (document.body) // other Explorers
	        x = document.body.clientWidth;
        return x;
    }

    function getBrowserHeight()
    {
        var y;
        if (self.innerHeight) // all except Explorer
	        y = self.innerHeight;
        else if (document.documentElement && document.documentElement.clientHeight)// Explorer 6 Strict Mode
	        y = document.documentElement.clientHeight;
        else if (document.body) // other Explorers
	        y = document.body.clientHeight;
        return y;
    }// ---------------------------------------------------------------------------------------------------------------------

    
    function fnInitializeTreeviewPanel()
    {
		var _show = getCookie("ShowTreeview");
		if(document.getElementById("treeviewcontainer") != null 
			&& _show != null && _show!="1")
		{
			toggleNav(false);
		}
	}

    // Catagory Treeview Switcher
    // ---------------------------------------------------------------------------------------------------------------------
    function toggleNav(showNav, dontSetCookie) 
    {
		//alert('toggleNav: ' + showNav);
		if (!dontSetCookie)
		{
			var today = new Date();   
			var expires = new Date();
			expires.setTime(today.getTime() + 1000*60*60*24*365);
			//alert(showNav + ':'+ expires);
			setCookie("ShowTreeview", showNav?1:0, expires);
		}
		if(showNav)
		{
			//show
			document.getElementById("treeviewexpando").style.display='none';
			document.getElementById("treeviewcol").style.display='block';
			document.getElementById("treeviewcontainer").style.display='block';
			document.getElementById("treeviewcontents").style.marginLeft="260px";
		}
		else
		{
			//hide
			document.getElementById("treeviewexpando").style.display='block';
			document.getElementById("treeviewcol").style.display='none';
			document.getElementById("treeviewcontainer").style.display='none';
			document.getElementById("treeviewcontents").style.marginLeft="33px";
      }
    }
    // ---------------------------------------------------------------------------------------------------------------------
    
    // need to set client side cookie to set display for treeview
    function setCookie(name, value, expire)
    {
		var cookiestr = name + "=" + escape(value) + ((expire == null) ? "" : ("; expires=" + expire.toGMTString()));
		//alert(cookiestr);
		document.cookie = cookiestr;
	}
	
	function getCookie(Name) 
	{
		var search = Name + "=";
		if (document.cookie.length > 0) 
		{ 
			// if there are any cookies      
			var offset = document.cookie.indexOf(search);
			if (offset != -1) 
			{ 
				// if cookie exists          
				offset += search.length;
				// set index of beginning of value         
				var end = document.cookie.indexOf(";", offset)          
				// set index of end of cookie value         
				if (end == -1)             
					end = document.cookie.length         
				return unescape(document.cookie.substring(offset, end))      
			}
		}
	}
    
    
    // AJAX Floating ProgressBar Code
    // ---------------------------------------------------------------------------------------------------------------------
    var fixed; 
    var theTop = getBrowserHeight() / 2; 
    var old = theTop;
    
    function OnLoadAJAXInit() {
      fixed = document.getElementById('AJAXupdateprogress');
      movefixed();
    }
    
    function movefixed() {
      theTop = getBrowserHeight() / 2;
    
      if (window.innerHeight) {
        pos = window.pageYOffset
      }
      else if (document.documentElement && document.documentElement.scrollTop) {
        pos = document.documentElement.scrollTop
      }
      else if (document.body) {
        pos = document.body.scrollTop
      }
      if (pos < theTop) pos = theTop;
      else pos += 0;
      if (pos == old) {
        fixed.style.top = pos + 'px';
        
        fixed.style.left = ((getBrowserWidth() / 2) - (246 / 2)) + 'px';
      }
      old = pos;
      temp = setTimeout('movefixed()',10);
    }
    // ---------------------------------------------------------------------------------------------------------------------
    
    
    // Mousewheel handler
    // ---------------------------------------------------------------------------------------------------------------------
    var scrollAllowed = true;
    function handle(delta) {
        // handle any wheel scroll here - for later use...
    }
    
    function processScrollEventMain(event)
    {
        log.info("Mousewheel event - element 1 ");

	    // Prevent default actions caused by mouse wheel.
	    var delta = 0;
	    if (!event) event = window.event;

        if(event.srcElement)
            log.info("src: " + event.srcElement.id);

	    if (event.wheelDelta) {
		    delta = event.wheelDelta/120; 
		    if (window.opera) delta = -delta;
	    } else if (event.detail) {
		    delta = -event.detail/3;
	    }
	    if (delta)
	    {
		    handle(delta);
		    if (scrollAllowed == false)
		    {
                if (event.preventDefault)
                        event.preventDefault();
                event.returnValue = false;
            }
        }
    }

    function StopMouseWheel()
    {
        log.info("Mousewheel stopped - element 1");
	    scrollAllowed = false;
    }
    
    function AllowMouseWheel()
    {
        log.info("Mousewheel allowed - element 1");
        scrollAllowed = true;
    }

    /* Initialization code. */
    // FF - event handler set for BUBBLING mode
    if (document.addEventListener) document.addEventListener('DOMMouseScroll', processScrollEventMain, false);
    // IE - cos IE      // window.onmousewheel = 
    document.onmousewheel = processScrollEventMain;
    // ---------------------------------------------------------------------------------------------------------------------
