if (!ask) var ask = {};
if (!ask.nav) ask.nav = {};

ask.nav.ResetDialogController = {
    sendPassword: function() {
        var form = document.getElementById("resetPasswdForm");
        var newpasswd = form.NewPasswd.value;
        var confirmpasswd = form.ConfirmPasswd.value;
        var mystuffemail =document.getElementById("emailAddress").innerHTML;
        var mystuffKey = $F('mystuffKey');

        newpasswd.value = '';
        confirmpasswd.value = '';
        
        if (newpasswd.length == 0 && confirmpasswd.length == 0) {
            this.displayError(GlobalNav.Messages.mystuffFPass);
            return;
        } else if (confirmpasswd.length == 0) {
            this.displayError(GlobalNav.Messages.mystuffFCPass);
            return;
        }
        var pw = $('NewPasswd').value;
        if(pw.length < 6 || pw.length > 32) {
            this.displayError(GlobalNav.Messages.mystuffsFPass);
            return;
        }

        if(pw != $('ConfirmPasswd').value) {
            this.displayError(GlobalNav.Messages.mystuffFCCPass);
            return;
        }

        if (typeof EncodeBase64 == 'undefined') {
            // The JS library containing EncodeBase64 isn't found.  Most likely cause: MyStuff server
            // is down.
            alert('An error has occurred when attempting to sign in.  Please try again later.');
            return;
        }

        // Encrypt password and set dummy password in its place.
        form.crep.value = EncodeBase64(MD5($('NewPasswd').value));
        var crepPasswd = form.crep.value;  
        var dummyPW = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; //32 x
        $('NewPasswd').value = dummyPW.substring(0, $('NewPasswd').value.length);
        $('ConfirmPasswd').value = $('NewPasswd').value;

        document.domain = "ask.com";

        var myStuffResetAPIParams = "key=" + mystuffKey + "&crep=" + crepPasswd;
        var req = new JSONscriptRequest(ask.nav.ResetDialogController.buildRequest("resetpassword", 'ask.nav.ResetDialogController.ResetDialogCallback',myStuffResetAPIParams));
        req.makeRequest();
        return;
        
    },

    buildRequest: function(service, callback, parameters) {
        var HOST = 'http://'+GlobalNav.Constants.myStuffDomain+'/service/api/';
        var GENERAL_PARAMS = 'output=json&total=30&userApp=GlobalNav&callback=';

        return HOST + service + '?' + GENERAL_PARAMS + callback + (parameters? '&' + parameters : '');
    },

     ResetDialogCallback: function(data) {
        if(data!=null && data.status == 'success') {      
           var formDiv = document.getElementById("resetPasswdForm");
           var thanksDiv = document.getElementById("confirmPassword");

           formDiv.style.display ="none";
           thanksDiv.style.display = "block";

          } else {
            try {
                var errorCode = data.element.errMsg;
                this.displayError(errorCode);
            } catch(e) { // If any of the property is null
               this.displayError('Unknown error has occured.  Please Try again.');
            }
        }
    },

    displayError: function(err) {
        if($('mystufferrorMessage') != null) {
            var errorMessage = $('mystufferrorMessage');
            errorMessage.innerHTML = err;
            a10.element.show(errorMessage);
            a10.element.show('mystufferrorMessageIcon');
            $('mystufferrorMessage').style.display= "block";
            if($('passwdsendEmail') !=  null){
            $('passwdsendEmail').style.marginTop= "37px";
            if(a10.browser.isIE6()){
            $('passwdsendEmail').style.marginTop = "93px";
            }
          }
        }
    }


};
