ForgetPwdDialog = new function() {
	//常用
	var $D = YAHOO.util.Dom,
	    $E = YAHOO.util.Event,
	    $  = $D.get;
	//dialog的實例
    var dialog = null;
    var paoEmail = null;
    var forgotPwdCount = 1;
    //dialog參數
    var config = {
	      fixedcenter: true,
	      visible: true,
	      draggable: false,
	      close: true,
	      modal: true,
	      hideaftersubmit    : false,
		  postmethod         : "async",
		  constraintoviewport: true,
		  effect:{effect:YAHOO.widget.ContainerEffect.FADE, duration: 0.2} //動畫效果
	}
	var makeHtml = function(){
	     var htmlString = '<div class="con_box"  align="left">'+
                          '<p>'+getText("content1")+'</p><span id="pwdFmActionErr" style="color:red"></span>'+
                          '<form id="passwordForm" name="passwordForm">'+
                          '<table style="margin:6px 0;" >'+
                          '	<tr>'+
                          '  	<td rowspan="2" style="padding:0 10px 0 0;"><img id="fpwdCode" src="../Captcha.jpg" align="absmiddle" /></td>'+
                          '  	<td><p>'+getText("content5")+
                          '    		<input name="userProfile.email" type="text" class="input_width_narrow" id="userProfile.email" />'+
                          '			<br/><span id="userProfile.email_FieldError" style="color:red"></span>'+
                          '  		</p>'+
                          '		</td>'+
                          '  	<td>&nbsp;</td>'+
                          '	</tr>'+
                          '	<tr>'+
                          '  	<td>'+getText("content6")+
                          '    		<input name="imageCode" type="text"  id="imageCode" /></td>'+
                          '  	<td> <p class="btn_send"><a id="sendDialog" href="#" class="btn_green"><span>'+getText("content2")+'</span></a></p></td>'+
                          '	</tr>'+
                          '	<tr>'+
				          '		<td>&nbsp; </td>'+
						  '		<td><span id="imageCode_FieldError" style="color:red"></span></td>'+
				          '	</tr>'+
                          '</table>'+
						  '</form>'+
					      '<p>'+getText("content3")+'<a href="mailto:'+paoEmail+'" class="bluelink">'+paoEmail+'</a><br />'+getText("content4")+'</p>'+
					    '</div>';
		return htmlString;
	}
	var getText = function(key){
		return (new E104RD.utils.ResourceBundle("ForgetPwdDialog.MSG", E104RD.utils.Locale.getDefault()).getString(key));
	}
	var reloadImage = function(){
		$("fpwdCode").src = "../Captcha.jpg#"+forgotPwdCount;
		if ($("regImgCode")){
			$("regImgCode").src = "../Captcha.jpg#"+forgotPwdCount;
		}
		forgotPwdCount ++;
	}
    var createDialog = function(){
    	dialog = new YAHOO.widget.Dialog("fgtPwdDiv", config);
    	dialog.setHeader(getText("title"));
        dialog.setBody(makeHtml());
        dialog.render(document.body);
        //送出
        $E.on("sendDialog", "click", function(){
           MessageCleaner.clearActionErrors('pwdFmActionErr');
	       MessageCleaner.clearFieldErrors('passwordForm');
           var af = new MessageMoveAfterResult();
           var afCodeErr = new ExecFuncAfterResult(AfterResult.AFTER_FIELD_ERRORS, reloadImage);
	       var oConfig = {
	           target: "../User/UserJsonAction_forgetPwdJson.action",
	           form: "passwordForm",
	           dialog: dialog,
	           afterResults: [af, afCodeErr],
	           msgAreaId:{actionErrArea: "pwdFmActionErr"}
	       }
		   var as = new AjaxSender(oConfig);
		       as.addFVRule("userProfile.email", FV_Type.Required.INPUT, {errstr:getText("required1")});
		       as.addFVRule("userProfile.email", FV_Type.Format.EMAIL, {errstr:getText("required3")});
		       as.addFVRule("imageCode", FV_Type.Required.INPUT, {errstr:getText("required2")});
		       as.send();
	        });
    }
	
	return {
		
		
		getInstance : function() {
			return ForgetPwdDialog;
		},
		
		show : function() {
			if (dialog==null){
			  createDialog();
			}
			//$("userProfile.email_FieldError").innerHTML = "";
			//$("imageCode_FieldError").innerHTML = "";
			MessageCleaner.clearActionErrors('pwdFmActionErr');
	    	MessageCleaner.clearFieldErrors('passwordForm');
	    	dialog.form.reset();
			dialog.forceBringToTop();
			dialog.show();
		},
		setSystemMail: function(email){
			paoEmail = email;
		},
		
		MSG_zh_TW : {
			title : "密碼協助",
			content1: "請輸入您用來登入帳戶的電子郵件位址，我們會將密碼寄到您的信箱。",
			content2: "送出",
			content3: "＊如果您忘記您所登錄的E-mail信箱，請與客服人員聯繫",
			content4: "我們將會以最適切的方式協助您。",
			content5: "请输入您的邮件：",
			content6: "请输入左側認證碼：",
			required1: "空值：E-mail 為必填欄位!",
			required2: "您輸入的認證碼不正確，請重新輸入。",
			required3: "您輸入的郵件地址不正確，請重新輸入。"
		}, 
		MSG_zh_CN : {
			title : "取回密码",
			content1: "请输入您用来登入帐户的电子邮件地址，我们会将密码寄到您的信箱。",
			content2: "提交",
			content3: "＊如果您忘记您所登录的E-mail信箱，请与客服人员联系",
			content4: "我们将会以最适当的方式协助您。",
			content5: "请输入您的邮件：",
			content6: "请输入左侧验证码：",
			required1:"空值：E-mail 为必填字段!",
            required2:"您输入的验证码不正确，请重新输入。",
            required3:"您输入的邮件地址不正确，请重新输入。"
		},
		MSG_en_US : {
			title : "Forgot password?",
			content1: "Please enter your email address, we'll send the password to it.",
			content2: "Send",
			content3: "＊If you forget your email address, please contact to us.",
			content4: "We'll assist you ."
		}
	}
}


/**
 * 如同Javascript的Alert的對話方塊，只有一個確定鈕
 */
(function () {
	YAHOO.widget.AlertDialog = function (el, inputText, func, param) {
	   var execFunc = function(){
	   	 if(func==null){
    		alert('AlertDialog.execFunc Error: func is required');
    	 }else if(typeof func === "function"){
    	 	if (param){
    	 	  func.call(this, param);
    	 	}else{
    	 	  func.call(this);	
    	 	}	
    	 }else{
    		alert('AlertDialog.execFunc Error: func not Fuunction');
    	 }
	   }
	   var getText = function(key){
	       return (new E104RD.utils.ResourceBundle("YAHOO.widget.AlertDialog.MSG", E104RD.utils.Locale.getDefault()).getString(key));
	   }
	   var config = {
	   	  width: "500px",
	      fixedcenter: true,
	      visible: false,
	      draggable: false,
	      close: false,
	      modal: true,
		  constraintoviewport: true,
		  effect:{effect:YAHOO.widget.ContainerEffect.FADE, duration: 0.2}, //動畫效果
		  buttons: [ { text:"<span>" + getText("submit") + "</span>" ,handler: function(){
		  	 this.destroy();
		  	 if (func){
		  	   execFunc();
		  	 }
		  } }]
	   }
	   YAHOO.widget.Dialog.superclass.constructor.call(this, 
            el, config);
       this.setHeader(getText("title"));
       this.setBody(inputText);
       this.render(document.body);
       this.forceBringToTop();
       this.show();
	}
	  YAHOO.extend(YAHOO.widget.AlertDialog, YAHOO.widget.Dialog, {});
	  YAHOO.widget.AlertDialog.MSG_zh_TW = {
	       title : "提示訊息",
		   submit : "確定"
	   };
	  YAHOO.widget.AlertDialog.MSG_zh_CN = {
	       title : "提示讯息",
		   submit : "确定"
	   }
	  YAHOO.widget.AlertDialog.MSG_en_US = {
	       title : "Prompt message",
		   submit : "Submit"
	   }
}());


/**
 * 如同Javascript的Confirm的對話方塊，只有一個確定鈕，一個取取消鈕
 */
(function () {
	YAHOO.widget.ConfirmDialog = function (el, inputText, func, params) { 
	   var execFunc = function(){
	   	 if(func==null){
    		alert('ConfirmDialog.execFunc Error: func is required');
    	 }else if(typeof func === "function") {
		 	if (params == null) {
				func.call(this);
			} else {
				if (params instanceof Array) {
					var funcString = "func.call(this";
					for (var i = 0; i < params.length; i++) {
						funcString += ", params[" + i + "]";
					}
					funcString += ")";
					
					eval(funcString);
				} else {
					func.call(this, params);
				}
			}
			
			/*
    	 	if (param1 != undefined){
    	 	   func.call(this, param1);
    	 	}else{
    		   func.call(this);
    	 	}
			*/
			
    		this.destroy(); 	
    	 }else{
    		alert('ConfirmDialog.execFunc Error: func not Fuunction');
    	 }
	   }
	   
	   var getText = function(key){
	       return (new E104RD.utils.ResourceBundle("YAHOO.widget.ConfirmDialog.MSG", E104RD.utils.Locale.getDefault()).getString(key));
	   }
	   var config = {
	      width: "500px",
	      fixedcenter: true,
	      visible: false,
	      draggable: false,
	      close: false,
	      modal: true,
		  constraintoviewport: true,
		  effect:{effect:YAHOO.widget.ContainerEffect.FADE, duration: 0.2},
		  buttons: [ { text:"<span>" + getText("submit") + "</span>", handler: execFunc },
		             { text:"<span>" + getText("cancel") + "</span>", handler: this.destroy}]
	   }
	   YAHOO.widget.Dialog.superclass.constructor.call(this, 
            el, config);
       this.setHeader(getText("title"));
       this.setBody(inputText);
       this.render(document.body);
       this.forceBringToTop();
       this.show();
	}
	  YAHOO.extend(YAHOO.widget.ConfirmDialog, YAHOO.widget.Dialog, {});
	  YAHOO.widget.ConfirmDialog.MSG_zh_TW = {
	       title : "詢問訊息",
		   submit : "確定",
		   cancel : "取消"
	   };
	  YAHOO.widget.ConfirmDialog.MSG_zh_CN = {
	       title : "询问讯息",
		   submit : "确定",
		   cancel : "取消"
	   }
	  YAHOO.widget.ConfirmDialog.MSG_en_US = {
	       title : "Asked message",
		   submit : "Submit",
		   cancel : "Cancel"
	   }
}());


/**
 * 如同Javascript的Confirm的對話方塊，只有一個確定鈕，一個取取消鈕
 */
(function () {
	YAHOO.widget.ConfirmDialog2 = function (el, inputText, func, params) { 
	   var execFunc = function(){
	   	 if(func==null){
    		alert('ConfirmDialog.execFunc Error: func is required');
    	 }else if(typeof func === "function") {
		 	if (params == null) {
				func.call(this);
			} else {
				if (params instanceof Array) {
					var funcString = "func.call(this";
					for (var i = 0; i < params.length; i++) {
						funcString += ", params[" + i + "]";
					}
					funcString += ")";
					
					eval(funcString);
				} else {
					func.call(this, params);
				}
			}
			
			/*
    	 	if (param1 != undefined){
    	 	   func.call(this, param1);
    	 	}else{
    		   func.call(this);
    	 	}
			*/
			
    		this.destroy(); 	
    	 }else{
    		alert('ConfirmDialog.execFunc Error: func not Fuunction');
    	 }
	   }
	   
	   var getText = function(key){
	       return (new E104RD.utils.ResourceBundle("YAHOO.widget.ConfirmDialog2.MSG", E104RD.utils.Locale.getDefault()).getString(key));
	   }
	   var config = {
	      width: "500px",
	      fixedcenter: true,
	      visible: false,
	      draggable: false,
	      close: false,
	      modal: true,
		  constraintoviewport: true,
		  effect:{effect:YAHOO.widget.ContainerEffect.FADE, duration: 0.2},
		  buttons: [ { text:"<span>" + getText("submit") + "</span>", handler: execFunc },
		             { text:"<span>" + getText("cancel") + "</span>", handler: this.destroy}]
	   }
	   YAHOO.widget.Dialog.superclass.constructor.call(this, 
            el, config);
       this.setHeader(getText("title"));
       this.setBody(inputText);
       this.render(document.body);
       this.forceBringToTop();
       this.show();
	}
	  YAHOO.extend(YAHOO.widget.ConfirmDialog2, YAHOO.widget.Dialog, {});
	  YAHOO.widget.ConfirmDialog2.MSG_zh_TW = {
	       title : "詢問訊息",
		   submit : "继续",
		   cancel : "取消"
	   };
	  YAHOO.widget.ConfirmDialog2.MSG_zh_CN = {
	       title : "提示讯息",
		   submit : "继续",
		   cancel : "取消"
	   }
	  YAHOO.widget.ConfirmDialog2.MSG_en_US = {
	       title : "Asked message",
		   submit : "Submit",
		   cancel : "Cancel"
	   }
}());
