﻿
// File = Main/Includes/Buttons/Buttons.js

/// <reference name="MicrosoftAjax.js" />"

// Global variables
var MainPagesDir = "Farsi/Main/";
var MembersPagesDir = "Farsi/Main/Members/";
var ConfirmedMembersPagesDir = "Farsi/Main/Members/ConfirmedMembers/";
var AppDir, CurrentPageName, UserRoleName;

// Register the namespace for the controls
Type.registerNamespace("MainButtons");
    
// Define Button control

//
// Define control properties 
//

MainButtons.Button = function(element){
    MainButtons.Button.initializeBase(this, [element]);
    this._pageUrl = null;
    this._buttonId = null;
}

//
// Create the prototype for the control.
//

MainButtons.Button.prototype = {
    initialize : function(){
        MainButtons.Button.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._setInitialButtonState(); 
   },
  
  dispose : function(){
        // Remove event handlers
        $clearHandlers(this.get_element());
        
        MainButtons.Button.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, "MainButtonCurrent")){
            elem.style.cursor = "pointer";
             Sys.UI.DomElement.removeCssClass(elem, "MainButtonNormal");
             Sys.UI.DomElement.addCssClass(elem, "MainButtonOver");
        }
        
        e.stopPropagation();
  },
  
  _onMouseout : function(e){
        var elem = this.get_element();
        if (!Sys.UI.DomElement.containsCssClass(elem, "MainButtonCurrent")){
            elem.style.cursor = "default";
            Sys.UI.DomElement.removeCssClass(elem, "MainButtonOver");
            Sys.UI.DomElement.addCssClass(elem, "MainButtonNormal");
        }
        
        e.stopPropagation();
  },   
    
   //
   // Control properties
   //
   
  // pageUrl
  get_pageUrl : function(){
    return this._pageUrl;
  },
  
  set_pageUrl : function(value){
    this._pageUrl = value;
  },
  
  // buttonId
  get_buttonId : function(){
    return this._buttonId;
  },
  
  set_buttonId : function(value){
    this._buttonId = value;
  },
  
  //
  // General methods
  //
  
  _setInitialButtonState : function(){
        var elem = this.get_element();
        var pageUrl = this.get_pageUrl();
        elem.style.cursor = "default"; 
        if (pageUrl == CurrentPageName)
            Sys.UI.DomElement.addCssClass(elem, "MainButtonCurrent"); 
        else
            Sys.UI.DomElement.addCssClass(elem, "MainButtonNormal");
    },
    
    _getPageFullUrl : function(){
        var buttonId = this.get_buttonId();
        var pageUrl = this.get_pageUrl();
        if ((pageUrl == null) || (buttonId == null))
            return null;
        
        if (buttonId == "btnMFT")
            return pageUrl;
            
        var pageDir;
        var isBidPage = (buttonId == "btnIncBids") || (buttonId == "btnDecBids");
        if ((isBidPage) && (UserRoleName == "ConfirmedMembers"))
            pageDir = ConfirmedMembersPagesDir;
        else
            pageDir = MainPagesDir;     
        
        if ((AppDir == null) || (pageDir == null))
            return null;
        
        return AppDir + pageDir + pageUrl;
    }
 } 
  
// Register Button as a control
MainButtons.Button.registerClass("MainButtons.Button", Sys.UI.Control);

// Initialize global variables
Sys.Application.add_init(
    function(){
        CurrentPageName = document.getElementById("ctl00_txtCurrentPageName").value;
        AppDir = document.getElementById("ctl00_txtAppDir").value;
        UserRoleName = document.getElementById("ctl00_txtUserRoleName").value;
    }
);

// Setup buttons
Sys.Application.add_init(
    function(){
        // Get all div elements on the page
        var oDivs = document.getElementsByTagName("div");
        var divNode, pageUrl;
        for(var i=0;i<oDivs.length;i++){
            divNode = oDivs[i];
            pageUrl = divNode.getAttribute("mainButtonPageUrl");
            if (pageUrl != null){
                var buttonId = divNode.getAttribute("mainButtonId");
                $create(MainButtons.Button, { pageUrl : pageUrl, buttonId : buttonId }, null, null, divNode); 
           }
        }
    }
);
                
// End of script
if (typeof(Sys) != 'undefined')
    Sys.Application.notifyScriptLoaded();
    		