﻿/// <reference name="MicrosoftAjax.js"/>

Type.registerNamespace("Cornerstone");

Cornerstone.CalculatorControl = function(element) {
    Cornerstone.CalculatorControl.initializeBase(this, [element]);
    this._loanamount;
    this._rate;
    this._term;
    this._payment;
    this._type;
}

Cornerstone.CalculatorControl.prototype = {
    get_loanamount: function()
    {
        return this._loanamount;
    },
    set_loanamount: function(value)
    {
        this._loanamount = value;
    },
    get_rate: function()
    {
        return this._rate;
    },
    set_rate: function(value)
    {
        this._rate = value;
    },
    get_term: function()
    {
        return this._term;
    },
    set_term: function(value)
    {
        this._term = value;
    },
    get_payment: function()
    {
        return this._payment;
    },
    set_payment: function(value)
    {
        this._payment = value;
    },
    get_type: function()
    {
        return this._type;
    },
    set_type: function(value)
    {
      this._type = value;  
    },

    initialize: function() {
        Cornerstone.CalculatorControl.callBaseMethod(this, 'initialize');
        
        var _onKeyUpHandler = Function.createDelegate(this, this.onKeyUp);
        var _onKeyDownHandler = Function.createDelegate(this, this.onKeyDown);
        var _onButtonClickHandler = Function.createDelegate(this, this.onButtonClick);
        
        $addHandler(this.get_element(), "click", _onButtonClickHandler);
        
        $addHandlers(this._rate, 
        {
            "keyup": _onKeyUpHandler,
            "keydown": _onKeyDownHandler
        }, this);
        
        $addHandlers(this._payment, 
        {
            "keyup": _onKeyUpHandler,
            "keydown": _onKeyDownHandler
        }, this);
        
        $addHandlers(this._loanamount, 
        {
            "keyup": _onKeyUpHandler,
            "keydown": _onKeyDownHandler
        }, this);
        
        $addHandlers(this._term, 
        {
            "keyup": _onKeyUpHandler,
            "keydown": _onKeyDownHandler
        }, this);
        
        // Add custom initialization here
    },
    dispose: function() {        
        $clearHandlers(this.get_element());
        
        //Add custom dispose actions here
        Cornerstone.CalculatorControl.callBaseMethod(this, 'dispose');
    },
    
    onButtonClick: function()
    {
        if (this._rate.value == "" || this._rate.value == "Loan Rate %")
        {
            alert("Rate must be entered.");
        }
        else
        {
            var sb = new Sys.StringBuilder("/calculator_results.aspx?");
            
            if (this._rate.value != "" && this._rate.value != "Loan Rate %")
            {
                sb.append("rate=");
                sb.append(this._rate.value.replace("%", ""));
                sb.append("&");
            }
            
            if (this._loanamount.value != "" && this._loanamount.value != "Amount Requested $")
            {
                sb.append("amount=");
                sb.append(this._loanamount.value.replace("$", ""));
                sb.append("&");
            }
            
            if (this._payment.value != "" && this._payment.value != "Payment $")
            {
                sb.append("payment=");
                sb.append(this._payment.value);
                sb.append("&");
            }
            
            if (this._term.value != "" && this._term.value != "Terms in Months")
            {
                sb.append("term=");
                sb.append(this._term.value);
                sb.append("&");
            }
            
            if (this._type != "")
            {
                sb.append("type=");
                sb.append(this._type);
            }
        
            document.location.href = sb.toString();
        }
    },
    onKeyUp: function(e)
    {
        //alert(e.keyCode);
    },
    onKeyDown: function(e)
    {
        if (e.keyCode == Sys.UI.Key.enter)
        {
            e.preventDefault();
            
            this.onButtonClick();
        }
    }
}
Cornerstone.CalculatorControl.registerClass('Cornerstone.CalculatorControl', Sys.UI.Control);

if (typeof(Sys) !== 'undefined') Sys.Application.notifyScriptLoaded();
