
var feedback = $Class({
    $init:function(obj)
    {
        this.elLink = obj.elLink;
        this.elLayer = obj.elLayer;
        this.elLayer.style.display = "none";
        
        this.oMessages = $('fbPop_mess');
		this.oCheckBox_email = $('fbPop_appear_email');
		this.oMail = $('fbPop_email');
		this.oHidden_mail = $('fbPop_hidden_email');
		this.oDicType = $('fbPop_dicType');
		this.oSubmit = $('fbPop_submit');
		this.oCancel = $('fbPop_cancel');
		this.resultLayer = $('fbPop_ok');
		this.resultLayer.style.display = "none";
		this.okBtn = $('fbPop_okButton');
		
        this._bindEvents();
    },
    _setInfo:function()
    {
    	// 设置初始状态
		this.oMessages.value = '';
		this.oMessages.focus();
		this.oCheckBox_email.checked = true;
		this.oMail.style.display = "";
		this.oMail.style.color = '#999999';
        if(this.oHidden_mail.value != ''){
			this.oMail.value = this.oHidden_mail.value;
		}
		if(this.oCheckBox_email.value == ''){
			this.oMail.value = SPS.text('SEND_FEEDBACK_EMAIL');
		}
    },
    _bindEvents:function()
    {
    	$Fn(this._handlers.linkClick, this).attach(this.elLink, "click");
        $Fn(this._handlers.cancleClick, this).attach(this.oCancel, "click");
        $Fn(this._handlers.setEmail, this).attach(this.oCheckBox_email, "click");
        $Fn(this._handlers.changeEmail, this).attach(this.oMail, "click");
        $Fn(this._handlers.submitClick, this).attach(this.oSubmit, "click");
        $Fn(this._handlers.okClick, this).attach(this.okBtn, "click");
    },
    
    _handlers:{
        linkClick:function(e)
        {
            SPS.layer.show(this.elLayer, true);
            this._setInfo();
            e.stop();
        },
        cancleClick:function(e)
        {
            SPS.layer.hide(true);
            e.stop();
        },
        setEmail:function()
        {
    		if(this.oMail){
    			this.oCheckBox_email.checked ? this.oMail.style.display = 'block' : this.oMail.style.display = 'none';
    		}
    	},
    	submitClick:function(e)
    	{
    		// message����Ϊ��
    		if (this.oMessages==null || this.oMessages.value =='') 
    		{
    			this.oMessages.focus();
    			alert('Please write your message before submitting feedback. Thank you!');
    			e.stop();
    			return;
    		}
    
    		// mail����Ϊ��
    		if(this.oCheckBox_email.checked)
    		{
    			if(this.oMail == null || this.oMail.value == '' || this.oMail.value == SPS.text('SEND_FEEDBACK_EMAIL'))
    			{
    				if(!confirm('Are you sure you don\'t want to give your email address? It will only be used to notify you of related updates.'))
    				{
    					e.stop();
    					return;
    				}
    			}
    		}
    		//需要重写Ajax请求
    		var oAjax = $Ajax('submitFeedback.nhn',{
    			onload: $Fn(function(res){
    				var info = !!(res.text());
    				if(info){
    					$Element(this.elLayer).hide();
                        SPS.layer.show(this.resultLayer, true, true);
                    }else{
    					alert('commit failure, please try it again！');
    				}
    			}, this).bind()
    		});
    
    		if(this.oCheckBox_email.checked)
    		{
    			oAjax.request({'message': this.oMessages.value,'email': this.oMail.value,'dicType': this.oDicType.value,'typeOfFeedBack': 'FEEDBACK'});
    		}
    		else
    		{
    			oAjax.request({ 'message': this.oMessages.value,'dicType': this.oDicType.value,'typeOfFeedBack': 'FEEDBACK' });
    		}
    		
    		e.stop();
    	},
    	okClick:function(e)
        {
            SPS.layer.hide();
            e.stop();
        },
        changeEmail:function()
        {
    		if(this.oMail.value == SPS.text('SEND_FEEDBACK_EMAIL'))
    		{
    			this.oMail.value = '';
    			this.oMail.style.color = '';
    		}
    	}
    }
	
});

SPS.DOMLoad.attach(function(){
    var fd = new feedback({
        elLink:$$("div.footer_e ul li",$("footer"))[3],
        elLayer:$("fbPop_form")
    });
});



