﻿$Dom().nameSpace('QA');
QA.funs = (function(){
	var qa = {
		qna_answ_tab : $('qna_answ_tab'),
		qna_ques : $('qna_ques'),
		qa_mini : $('mini_sear_qna'),
		qa_info : $('qa_info'),

		// 【登录页面】
		iframe : $('loginFrame')
	};

	// 【好问妙答】展开与关闭
	var _qna_answ_tab = function(){
		var tabs = qa.qna_answ_tab.getElementsByTagName('li'),
				tabs_title = qa.qna_answ_tab.getElementsByTagName('h4'),
				openTab = null, title;

		for(var i = 0, len = tabs.length; i < len; i++){
			title = $Dom(tabs_title[i]).getFirstChild();
			if($Dom(tabs[i]).hasClass('tab_open')){
				openTab = tabs[i];
			}

			// 展开后可以链接中的href
			$EVENT(title).addEvent('click', function(evt){
				var thisTab = this.parentNode.parentNode;

				if($Dom(thisTab).hasClass('tab_close')){
					$EVENT().preventDefault(evt);
				}
			});

			// 绑定tab的展开事件
			$EVENT(tabs[i]).addEvent('click', function(){
				if($Dom(this).hasClass('tab_close')){
					$Dom(this).replaceClass('tab_close', 'tab_open');
					$Dom(openTab).replaceClass('tab_open', 'tab_close');
					openTab = this;
				}
			});
		}
	};

	// 【好评/差评】
	var _review_answ = function(){
	        if(!qa.qna_answ_tab) return;

			var regard_good = $Dom(qa.qna_answ_tab).getElementsByClassName('regard_good'),
					regard_bad = $Dom(qa.qna_answ_tab).getElementsByClassName('regard_bad');

			// 点击【好评/差评】时执行
			function __regard(sTag, target, newClass, fn){
				var oldClass;
				//没有登陆用户不能进行好评差评
				if(typeof sLoginUserId == "undefined" || sLoginUserId == "")
				{
					var	iframe_doc = qa.iframe.contentWindow.document,
						login = iframe_doc.getElementById('loginid');

					 alert(sLoginMessage);
					login.focus();
					 return;
				}

				if(/^no_/.test(sTag.className)){
					return;
				}
//				if(sTag.parentNode.getAttribute('regard') ==  'reviewed'){
//					alert('You have commented！');
//					return;
//				}
//				sTag.parentNode.setAttribute('regard', 'reviewed');
				oldClass = target.className;
				__get_regard_num(sTag);
//				$Dom(target).replaceClass(oldClass, newClass);
//				$EVENT(target).removeEvent('click', fn);
			};

			// 【好评/差评】计数
			function __get_regard_num(sTag){
				var boardId = document.getElementById("boardId").value;
				var questionId = sTag.parentNode.getAttribute("questionId");
				var answerId = sTag.parentNode.getAttribute("answerId");
				var goodYn = sTag.className.indexOf("good") > -1 ? 1 : 0;
				//Ajax submit
				var owner = this;
				var option = {
				        onload: $Fn(_callbackRegard, owner).bind(sTag)
                       };
				var ajax = Ajax(regardUrl, option);
       			ajax.request({questionId: questionId, answerId: answerId, goodYn: goodYn, boardId: boardId});

			};

			var _callbackRegard = function(sTag, res){
				var ajaxResult = res.text();
                		if(ajaxResult == 1){
                			var con = $Dom(sTag).getNextSibling().innerHTML,
					num = parseInt(con.match(/\d+/)[0]);
					num++;
					$Dom(sTag).getNextSibling().innerHTML = '('+num+')';
                }else{
                	alert(decodeURIComponent(ajaxResult));
                }
			}

			for(var i = 0, len = regard_good.length; i < len; i++ ){
				// 【好评】绑定事件
				$EVENT(regard_good[i]).addEvent('click', function(evt){
					var fn = arguments.callee,
								thisBad = $Dom(this.parentNode).getElementsByClassName('regard_bad')[0];
					__regard(this, thisBad, 'no_regard_bad', fn);
					$EVENT().stopEvent(evt);
				});

				// 【差评】绑定事件
				$EVENT(regard_bad[i]).addEvent('click', function(evt){
					var fn = arguments.callee,
							thisGood = $Dom(this.parentNode).getElementsByClassName('regard_good')[0];
					__regard(this, thisGood, 'no_regard_good', fn);
					$EVENT().stopEvent(evt);
				});
			}
	};

	// 超出最大字符时提示
	var _submitQuestion = function(){
		var	en = /^[a-zA-Z0-9,.]*\s*[a-zA-Z0-9,.]*$/,
			zh = /^[\u2E80-\u9FFF]+$/,
			len = qa.qna_ques.value.length,
			maxLen = 200;

		if(en.test(qa.qna_ques.value)){
			if(len > maxLen){
				alert('The maximum title length is 100 Chinese characters or 200 English letters.');
				return false;
			}
		}else if(zh.test(qa.qna_ques.value)){
//			len = len*2;
			if(len > (maxLen/2)){
				alert('The maximum title length is 100 Chinese characters or 200 English letters.');
				return false;
			}
		}else{
			var mix = 0;
			for(var i = 0; i  < len; i++){
				en.test(qa.qna_ques.value.charAt(i)) ? mix++ : mix+=2;
			}
			if(mix > maxLen){
				alert('The maximum title length is 100 Chinese characters or 200 English letters.');
				return false;
			}
		}
		return true;
	};

	return{
			init : function(){
				var btn_answ = $('btn_answ');
				if(btn_answ){
					$EVENT(btn_answ).addEvent('click', function(evt){
						 document.domain="nciku.com";
						 if(typeof sLoginUserId == "undefined" || sLoginUserId == "") {
							var	iframe_doc = qa.iframe.contentWindow.document,
								login = iframe_doc.getElementById('loginid');

                        			       	 alert(sLoginMessage);
							login.focus();
                               				 $EVENT().stopEvent(evt);
                               				 return;
                        			}
						if(typeof duplicate != "undefined" && duplicate =="duplicate") {
							alert(duplicateMessage);
							$EVENT().stopEvent(evt);
							return;
						}
						var answ_box = $('answ_box');
						$Dom(answ_box).setStyle('display', 'block');
						$("NBOARD_IFRAME").setAttribute("src", editorUrl);
						//setInterval("dyniframesize('NBOARD_IFRAME');",200);
						setTimeout(function(){
							$Dom(qa.qa_mini).setStyle('display', 'block');
							$Dom(qa.qa_info).setStyle('display', 'none');
						}, 0);
						
						$Dom(this).setStyle('display', 'none');
						$EVENT().stopEvent(evt);
					});
				}

				// 清空【我要提问】中默认信息
				if(!qa.qna_ques) return;
				$EVENT(qa.qna_ques).addEvent('click', function(){
					if(this.value == this.defaultValue) {
					this.value = '';
					}
					$Dom(this).setStyle('color', '#000');
				});
			},
			review_answ : function(){
				_review_answ();		// 【好评/差评】
			},
			qna_answ_tab : function(){
				_qna_answ_tab();	// 【好问妙答】展开与关闭
			},
			submitQuestion : _submitQuestion
	}
})();


