﻿
// File = Main/Includes/Footer/NavBar.js

/// <reference name="MicrosoftAjax.js" />"

// Register the namespace for the controls
Type.registerNamespace("NBNodes");
    
// Define Button control

//
// Define control properties 
//

NBNodes.NBNode = function(element){
    NBNodes.NBNode.initializeBase(this, [element]);
    this._pageUrl = null;
    this._nodeId = null;
}

//
// Create the prototype for the control.
//

NBNodes.NBNode.prototype = {
    initialize : function(){
        NBNodes.NBNode.callBaseMethod(this, "initialize");
        
        // Define event delegates
        this._onclickDelegate = Function.createDelegate(this, this._onClick);
        this._onmouseoverDelegate = Function.createDelegate(this, this._onMouseover);
        this._onmouseoutDelegate = Function.createDelegate(this, this._onMouseout); 
        
        // Add event handlers
        $addHandlers(this.get_element(),
            { 'click' : this._onClick, 'mouseover' : this._onMouseover, 'mouseout' : this._onMouseout},
                this);
                
       // Set the initial button state
        this._setInitialNodeState(); 
   },
  
  dispose : function(){
        // Remove event handlers
        $clearHandlers(this.get_element());
        
        NBNodes.NBNode.callBaseMethod(this, "dispose");
    },
    
    //
    // Event delegates
    //
    
    _onClick : function(e){
        e.stopPropagation();
        var pageFullUrl = this._getPageFullUrl();
        if ( pageFullUrl != null){
			location.href = pageFullUrl;
        }
  },
  
  _onMouseover : function(e){
        var elem = this.get_element();
        if (!Sys.UI.DomElement.containsCssClass(elem, "NBNodeCurrent")){
            elem.style.cursor = "pointer";
             Sys.UI.DomElement.removeCssClass(elem, "NBNodeNormal");
             Sys.UI.DomElement.addCssClass(elem, "NBNodeOver");
        }
        
        e.stopPropagation();
  },
  
  _onMouseout : function(e){
        var elem = this.get_element();
        if (!Sys.UI.DomElement.containsCssClass(elem, "NBNodeCurrent")){
            elem.style.cursor = "default";
            Sys.UI.DomElement.removeCssClass(elem, "NBNodeOver");
            Sys.UI.DomElement.addCssClass(elem, "NBNodeNormal");
        }
        
        e.stopPropagation();
  },   
    
   //
   // Control properties
   //
   
  // pageUrl
  get_pageUrl : function(){
    return this._pageUrl;
  },
  
  set_pageUrl : function(value){
    this._pageUrl = value;
  },
  
  // nodeId
  get_nodeId : function(){
    return this._nodeId;
  },
  
  set_nodeId : function(value){
    this._nodeId = value;
  },
  
  //
  // General methods
  //
  
  _setInitialNodeState : function(){
        var elem = this.get_element();
        var pageUrl = this.get_pageUrl();
        elem.style.cursor = "default"; 
        if (pageUrl == CurrentPageName)
            Sys.UI.DomElement.addCssClass(elem, "NBNodeCurrent"); 
        else
            Sys.UI.DomElement.addCssClass(elem, "NBNodeNormal");
    },
    
    _getPageFullUrl : function(){
        var nodeId = this.get_nodeId();
        var pageUrl = this.get_pageUrl();
        if ((pageUrl == null) || (nodeId == null))
            return null;
        
        var pageDir;
        var isBidPage = (nodeId == "btnIncBids") || (nodeId == "btnDecBids");
        if ((isBidPage) && (UserRoleName == "ConfirmedMembers"))
            pageDir = ConfirmedMembersPagesDir;
        else
            pageDir = MainPagesDir;     
        
        if ((AppDir == null) || (pageDir == null))
            return null;
        
        return AppDir + pageDir + pageUrl;
    }
 } 
  
// Register Node as a control
NBNodes.NBNode.registerClass("NBNodes.NBNode", Sys.UI.Control);


// Setup buttons
Sys.Application.add_init(
    function(){
        // Get all div elements on the page
        var oSpans = document.getElementsByTagName("span");
        var spanNode, pageUrl;
        for(var i=0;i<oSpans.length;i++){
            spanNode = oSpans[i];
            pageUrl = spanNode.getAttribute("nbNodePageUrl");
            if (pageUrl != null){
                var nodeId = spanNode.getAttribute("nbNodeId");
                if ((UserRoleName == "Main") || (nodeId != "MemberRegistration")){
                    $create(NBNodes.NBNode, { pageUrl : pageUrl, nodeId : nodeId }, null, null, spanNode);
                }     
                else{
                    Sys.UI.DomElement.setVisible(spanNode.parentNode, false);
                }                         
           }
        }
    }
);
                
// End of script
if (typeof(Sys) != 'undefined')
    Sys.Application.notifyScriptLoaded();
    		