﻿Default = Class.create();
Default.prototype =
{
    // initialize data members
    initialize : function()
    {
        // for login user
        this.m_username = $("username");
        this.m_password = $("password");
        this.m_login = $("login");

        if (this.m_login != null)
        {            
            this.m_username.focus();
            //this.bindEnterKey(this.m_username, this.m_login);
            //this.bindEnterKey(this.m_password, this.m_login);
            this.m_login.onclick = this.userLoginClick.bind(this);
        }
        else
        {
            this.m_byname=$("organizationName");
            this.m_byname.focus();
        }

        // for staff search
        this.bindButtonClick($("staffNameSearch"), $("staffName"), "Search/StaffListBySearch.aspx?SearchType=Name&KeyValue=");
        this.bindButtonClick($("staffKeywordsSearch"), $("staffKeywords"), "Search/StaffKeywordSearch.aspx?Keyword=");
        
        var selectArray = $$("#staffCityRow select");
        if (selectArray.length > 0)
            this.bindButtonClick($("staffCitySearch"), selectArray[0], "Search/StaffListBySearch.aspx?SearchType=City&KeyValue=");

        // for organization search
        this.bindButtonClick($("organizationNameSearch"), $("organizationName"), "Search/LibraryListBySearch.aspx?SearchType=Name&KeyValue=");
        this.bindButtonClick($("organizationKeywordsSearch"), $("organizationKeywords"), "Search/OrgKeywordSearch.aspx?keyword=");

        selectArray = $$("#organizationCityRow select");
        if (selectArray.length > 0)
            this.bindButtonClick($("organizationCitySearch"), selectArray[0], "Search/LibraryListBySearch.aspx?SearchType=City&KeyValue=");
            
        // for project search
        this.bindButtonClick($("projectNumberSearch"), $("projectNumber"), "Search/ProjectSearchByNumber.aspx?KeyValue=");
        /*selectArray = $$("#projectCityRow select");
        if (selectArray.length > 0)
            this.bindButtonClick($("projectCitySearch"), selectArray[0], "Search/ProjectSearchByCity.aspx?KeyValue=");
            */
        this.bindButtonClick($("projectNameSearch"), $("projectName"), "Search/ProjectSearchByName.aspx?KeyValue=");
        this.bindButtonClick($("projectKeywordsSearch"), $("projectKeywords"), "Search/ProjectSearchByKeywords.aspx?KeyValue=");
    },

    // user login click
    userLoginClick : function()
    {
       var userName=this.m_username.value.replace(/\s/g,"");
       var pwd=this.m_password.value.replace(/\s/g,"");
       if(userName=="" && pwd=="") {
           alert('Please input user name and password!');
           return; }
       else if(userName=="" ) {
           alert('Please input user name!');
           return ; }
       else if(pwd=="") {
           alert('Please input password!');
           return; }
        _Default.UserLogin(this.m_username.value, this.m_password.value, this.userLoginClickCallback.bind(this));
    },

    // a callback for user login
    // userId : user id if login successful, otherwise Constant.INVALID_USER_ID
    userLoginClickCallback :function(userId)
    {
        if (userId.value > 0)
            window.location = "Login/PickHat.aspx?from=login&user=" + userId.value;
        else
            alert("User name or password error, please try again!");
    },
    
    // binds click event for a button
    bindButtonClick : function(button, textbox, targetUrl)
    {
        if (button != null)
        {
            this.bindEnterKey(textbox, button);
            button.onclick = this.buttonClickCallback.bind(this, textbox, targetUrl);
        }
    },
    
    // a callback function for user click button
    buttonClickCallback : function(textbox, targetUrl)
    {
  
        var value = null;
        if (textbox.tagName == "INPUT")
        {
            value = textbox.value;
            value = value.replace(new RegExp("(^[\\s]*)|([\\s]*$)", "g"), "");
            //过滤url特殊字符           
            var valueArray=value.split('');
            var returnStr="";
           
            for(var i=0;i<valueArray.length;i++)
            {
                switch(valueArray[i])
                {
                    case '%':valueArray[i]='%25';break;
                    case '#':valueArray[i]='%23';break;
                    case '&':valueArray[i]='%26';break;
                    case '+':valueArray[i]='%2B';break;
                    case '/':valueArray[i]='%2F';break;
                    case '!':valueArray[i]='%21';break;
                    case '$':valueArray[i]='%24';break;
                    case '@':valueArray[i]='%40';break;
                    case '?':valueArray[i]='%3F';break;
                    case '<':valueArray[i]='%3C';break;
                    case '=':valueArray[i]='%3D';break;
                    case '>':valueArray[i]='%3E';break;                   
                    default: break;
                }
            }
           
                for(var j=0;j<valueArray.length;j++)
                {
                   returnStr=returnStr+valueArray[j];
                }
           value=returnStr;

        }
        else if (textbox.tagName == "SELECT")
            {
            value = textbox.options[textbox.selectedIndex].text;
             value = value.replace(new RegExp("(^[\\s]*)|([\\s]*$)", "g"), "");             
             //过滤url特殊字符           
            var valueArray=value.split('');
            var returnStr="";
           
            for(var i=0;i<valueArray.length;i++)
            {
                switch(valueArray[i])
                {
                    case '%':valueArray[i]='%25';break;
                    case '#':valueArray[i]='%23';break;
                    case '&':valueArray[i]='%26';break;
                    case '+':valueArray[i]='%2B';break;
                    case '/':valueArray[i]='%2F';break;
                    case '!':valueArray[i]='%21';break;
                    case '$':valueArray[i]='%24';break;
                    case '@':valueArray[i]='%40';break;
                    case '?':valueArray[i]='%3F';break;
                    case '<':valueArray[i]='%3C';break;
                    case '=':valueArray[i]='%3D';break;
                    case '>':valueArray[i]='%3E';break;                   
                    default: break;
                }
            }
           
                for(var j=0;j<valueArray.length;j++)
                {
                   returnStr=returnStr+valueArray[j];
                }
           value=returnStr;

            }

        if (value.length > 0 && value != null)
            window.location = targetUrl + value;
        else if(textbox.tagName == "INPUT")
            alert("Please Input!");
    },

    // bind enter key
    bindEnterKey : function(input, button)
    {
        if (navigator.appName == 'Netscape')
        {
            return;
            // input.onkeydown = this.inputKeydown4Firefox.bindAsEventListener(this, button);
        }
        else
        {
            input.onkeydown = this.inputKeydown4IE.bindAsEventListener(this, button);
        }
    },

    // for firefox
    inputKeydown4Firefox : function(eventObject, button)
    {
        if (eventObject.keyCode == 13)
            button.onclick();
    },

    // for ie
    inputKeydown4IE : function(eventObject, button)
    {
        if (event.keyCode == 13)
            button.onclick();
    }
    
    
}