/**
 * 弹出式的用户留言
 */
nhn.guestMsg = (function(){
	var BG_value = '',
		oBG = null,
		oFbPop_form,
		oFbPop_ok,
		oMessages,
		oCheckBox_email,
		oMail,
		oHidden_mail,
		oDicType,
		oSubmit,
		oCancel,
		OK;
		var $form = null;
		var $msg = null;
		
		var foggy = new nhn.Foggy({
			showDuration : 500, 
			showOpacity : nhn.Effect.linear(0.3), 
			hideDuration : 500, 
			hideOpacity : nhn.Effect.linear(0), 
			zIndex : 32000 
		}).attach({
			show : function() {
				//console.log('show');
			},
			
			hide : function() {
				//console.log('hide');
			}
		});
		jindo.$Element(foggy.getFog()).css({
			position: "absolute",
			top: "0",
			left: "0",
			backgroundColor:"#000",
			opacity:0
		});

	var createBG_fadeOut = function(evt) {
		evt = evt || window.event;
		

		if(foggy) {
			$form.show();
			oMessages.value="";
			var pos = setFeedback_position(oFbPop_form);
			$form.css({
				left: pos.left+"px",
				top: pos.top+"px"
			});
			
			foggy.show(oFbPop_form);

			if(oHidden_mail.value != ''){
				oMail.value = oHidden_mail.value;
			}

			if(oHidden_mail.value == ''){
				oMail.value = SPS.text('SEND_FEEDBACK_EMAIL');
			}
		}
		evt.preventDefault ? evt.preventDefault() : evt.returnValue = false;
	};

	// 关闭背景与留言信息
	var closeBG = function(evt,elem) {
		var evt = evt || window.event;
		if(foggy && elem) {
			jindo.$Element(elem).hide();
			foggy.hide();
		}
		evt.preventDefault ? evt.preventDefault() : evt.returnValue = false;
	};

	// 提交后显示提示信息的位置(AJAX)
	/**
	 *	参数说明：
	 *		url: AJAX请求地址
	 *		AJAX请求参数：
	 *			oAjax.request({
	 *				'mess': oMessages.value, // textarea中输入的信息
	 *				'email': oMail.value	//	用户输入的email内容
	 *			});
	 *		服务端返回值：
	 *			正确：true；错误：false
	 */
	var setSubmit_position = function(evt){
		var evt = evt || window.event;

		// message不能为空
		if (oMessages==null || oMessages.value =='') {
			oMessages.focus();
			alert('Please write your message before submitting feedback. Thank you!');
			return false;
		}

		// mail不能为空
		if(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.'))
    				{
    					return;
    				}
    			}
		}
		
		$form.hide();

		var oAjax = $Ajax('/feedback.php',{
			onload: function(res) {
				var info = !!(res.text());
				if(info) {
					$msg.show();
					oFbPop_ok.style.left = setFeedback_position(oFbPop_ok).left + 'px';
					oFbPop_ok.style.top = setFeedback_position(oFbPop_ok).top + 'px';
					oFbPop_ok.style.zIndex = '32002';
				}else{
					alert('commit failure, please try it again!');
				}
			}
		});

		if(oCheckBox_email.checked){
			oAjax.request({'message': oMessages.value,'email': oMail.value,'dicType': oDicType.value,'typeOfFeedBack': 'FEEDBACK'});
		}else{
			oAjax.request({ 'message': oMessages.value,'dicType': oDicType.value,'typeOfFeedBack': 'FEEDBACK' });
		}

		evt.preventDefault ? evt.preventDefault() : evt.returnValue = false;
	};

	// 获取页面相关信息的坐标
	var setFeedback_position = function(elem){
		var x = document.documentElement.clientWidth || document.body.clientWidth,
			y = document.documentElement.clientHeight || document.body.clientHeight,
			scroll_y = document.documentElement.scrollTop || document.body.scrollTop;

		return{
			left: elem ? (x/2 - elem.offsetWidth/2) : -99999,
			top: elem ? (y/2 - elem.offsetHeight/2 + scroll_y) : -99999
		}
	};

	// 对于具体内容的设置
	var setEmail = function(){
		this.checked ? oMail.style.display = 'block' : oMail.style.display = 'none';
	};
	var changeEmail = function() {
		if(this.value==SPS.text('SEND_FEEDBACK_EMAIL')){
			this.value = '';
			this.style.color = '';
		}
	}
	return{
		init: function(id,vBG){
			
			BG_value = '';
			oBG = null;
			oFbPop_form = $('fbPop_form');
			oFbPop_ok = $('fbPop_ok');
			oMessages = $('mess');
			oCheckBox_email = $('appear_email');
			oMail = $('footemail');
			oHidden_mail = $('hidden_email');
			oDicType = $('dicType');
			oSubmit = $('feedsub');
			oCancel = $('cancel');
			OK = $('ok');
			
			$form = jindo.$Element(oFbPop_form);
			$msg = jindo.$Element(oFbPop_ok);
			
			var oFeedBack = document.getElementById(id);
			if(oMail.value=="") {
				oMail.value = SPS.text('SEND_FEEDBACK_EMAIL');
			}
			BG_value = vBG;
			oFeedBack.onclick = createBG_fadeOut;
			oCheckBox_email.onclick = setEmail;
			oMail.onclick = changeEmail;
			oSubmit.onclick = setSubmit_position;

			OK.onclick = function(evt){
				closeBG(evt,oFbPop_ok);
			}

			oCancel.onclick = function(evt){
				closeBG(evt,oFbPop_form);
			}
		}
	}
})();



