/**
 * @author Chad Seeger
 * Represents the Email "ActiveDiddio" Form
 */

dojo.provide("diddio.ForgotPasswordForm");
dojo.require("dojo.widget.HtmlWidget");
dojo.require("dojo.validate.*");

dojo.widget.defineWidget("diddio.widget.ForgotPasswordForm",dojo.widget.HtmlWidget,	
	function(){
		this._ioBindObj;
	}, 
	// properties and methods
	{
		// parameters
	
		// settings
		templatePath: dojo.uri.dojoUri("../diddio/ForgotPasswordForm.html"),
		templateCssPath: dojo.uri.dojoUri("../diddio/ForgotPasswordForm.css"),
		
		// methods
		handleSendClick: function(){
		    var emailAddress = "";
		    emailAddress = this.emailAddress.value;

            //guard clause on invalid email
		    var isValidEmail = dojo.validate.isEmailAddress(emailAddress);
		    if(!isValidEmail){
		        this.handleInvalidEmail();
		        return;
		    }
		    this.submitEmail(emailAddress);
		},
		handleCancelClick: function(){
            var dlg = dojo.widget.byId("forgotPassword");
            this.emailAddress.value = "";
            this.submitStatus.innerHTML = "";
            this.emailError.innerHTML = "&nbsp;";
            dlg.hide();
        },
		handleInvalidEmail: function(){
		    this.emailError.innerHTML = "Enter a Valid Email";
		},
		clearInvalidEmailStatusOnFocus: function(){
		    this.emailError.innerHTML = "&nbsp;";
		},
		submitEmail: function(emailAddress){
			var JSONparamObject = {"METHOD":"ConfirmPassword","ARGLIST":[emailAddress]};
			var paramObject = {"params":[JSONparamObject],"method":"RequestPublic","id":1};		
	
			var self = this;
			this._ioBindObj = dojo.io.bind(
				{
					url: "../../srvcTW/srvcTW.ashx?rpc",
					method: "POST",
					postContent: dojo.json.serialize(paramObject),
					mimetype: "text/json",
					handle: function (type, callbackObj){
						if(type=="load"){
							var result = callbackObj.result;
							if(result.RESULT == "Request has been sent"){
                                //Display "sent" status
                                self.submitStatus.innerHTML = "Reminder Sent Successfully!";
                            }
                            if(result.RESULT == "Fail"){
                                if(result.ERROR[0] == "e-Mail address not recognised")
                                    self.submitStatus.innerHTML = "Email address not recognised.";
                            }
                            dojo.lang.setTimeout(dojo.lang.hitch(self, self.handleCancelClick), 3000);
						}else if(type == "error"){
								alert("Error sending Reminder " + type);
						}else{
								dojo.debug("an unhandled error occurred in dojo.io.bind");
						}
				}/*,
					sync: true*/
				}
			);
		}
	}
);
