/**
* Copyright (C), 2007, Sina 
* 
* 播客留言板前台js脚本
* 
* 历  史:
* <作者>          <时间>          <版本>       <说明>
* lijunjie			2007-05-20       1.0			  创建
* 
* $Id：advice_list.js 2007-05-20 lijunjie$
*/


var g_page;			//当前的页码
var g_totalPage = 1;	//总页数,初始为1页
var g_wordCount = 250;	//允许的最大留言字数
var g_pageNumCount = 6;	//页脚上最多显示的页号数
//留言信息翻页
function goPage(page){
	//检查页号，确保正确
	try{	
	page = parseInt(page);
	if(isNaN(page)){
		page = 1;
	}
	if(page<1) return;	//防止0页死循环
	if(page > g_totalPage){ goPage(g_totalPage); return;}
	if(page < 1){ goPage(1); return;}

	var http = new Http();
	var data = {};
	http.async = true;
	http.sURL = "advice_action.php";
	g_page = page;	//保存到显示结果时使用

	data['action'] = "goPage";
	data['page'] = page;
	http.addURLParam(data);
	http.post(receiveGoPage);
	}catch(e){
		showMessage(e.message);
	}
}
//接收发送翻页结果
function receiveGoPage(http){
	if(http.readyState == 4 && http.status == 200 ){	//发送成功
		refreshPageContent(http.responseXML);
	}else if(http.readyState == 4){	//发送失败
		//alert("http翻页异常！上线前注释掉该行！");
	}
}
//刷新翻页内容
function refreshPageContent(doc){

	//解析请求到的xml对象
	var TotalPageCount;		//文章总页数
	var tmp_content;		//文章内容
	var tmp_pageNav = "";	//页脚
	var tmp_content = "";	//所有留言内容
	var arr_pageList;		//显示的页号数组

	var uid			= "";	//用户id
	var user_ip		= "";	//ip地址
	var content		= "";	//留言内容
	var answer		= "";	//回复
	var submit_time = "";	//提交时间

	var i;
	var arr_totalPageCount = doc.getElementsByTagName("total_count");
	var arr_message = doc.getElementsByTagName("message");	
	
	TotalPageCount 	= document.all?arr_totalPageCount[0].text:arr_totalPageCount[0].textContent;
	TotalPageCount 	= TotalPageCount==0?1:TotalPageCount;
	g_totalPage = TotalPageCount;
	arr_pageList = getPageArr(g_page,TotalPageCount,g_pageNumCount);
	var pageListLen = arr_pageList.length;
	var prePage,nextPage;
	prePage = g_page<=1?1:g_page-1;
	nextPage = g_page>=TotalPageCount?TotalPageCount:g_page+1;
	//循环生成页脚数组
	tmp_pageNav += '<li class="li5"><a href="javascript:void(0)" onclick="goPage(this.parentNode.nextSibling.getElementsByTagName(\'INPUT\')[0].value)"><img src="http://image2.sina.com.cn/vblog/images/feedback/ct_fenye_3.gif" title="去你想去的页面" /></a></li>';
	tmp_pageNav += '<li class="li4">看第';
	tmp_pageNav += 	'	  <INPUT  name="pageNo"  type="text" />';
	tmp_pageNav += 	'		页</li>';


	tmp_pageNav += '<li class="li3"><a href="javascript:void(0)" onclick ="goPage('+nextPage+')"><img src="http://image2.sina.com.cn/vblog/images/feedback/ct_fenye_2.gif" title="下一页" /></a></li>';
	tmp_pageNav += '<li class="pagenum">';
	var endPageNum = arr_pageList[pageListLen-1];

	if(pageListLen > 0){
		 for(i = arr_pageList[0];i<=endPageNum;i++){ 
			 if(i==g_page){	//当前页没有链接
				tmp_pageNav += '<span>'+ i+'</span> ';
			 }else{		//非当前页
				tmp_pageNav += '<a href="javascript:void(0)" onclick ="goPage('+i+')">'+i+'</a> ';//	 
			 }
		 }
	 }
	tmp_pageNav += '</li>';
	tmp_pageNav += 	'<li class="li2"><a href="javascript:void(0)" onclick ="goPage('+prePage+')"><img src="http://image2.sina.com.cn/vblog/images/feedback/ct_fenye_1.gif" title="上一页" /></a></li>';			
	tmp_pageNav += 	'<li class="li1">共 '+TotalPageCount+' 页，当前第 '+g_page+' 页</li>';

	//循环生成留言内容
	var len = arr_message.length;
	
	var pageNav1 = $('pageNav1');
	var pageNav2 = $('pageNav2');
	pageNav1.innerHTML = tmp_pageNav;
	if(len>10){
		pageNav2.innerHTML = tmp_pageNav;
		$("bottom_faq_btn_post").style.display = "";
	}else{
		pageNav2.innerHTML = ""; 
		$("bottom_faq_btn_post").style.display = "none";
	}

	for(i = 0 ;i < len;i++){
		if(document.all){
			uid			= arr_message[i].getElementsByTagName('uid').item(0).text;	//用户id
			user_ip		= arr_message[i].getElementsByTagName('user_ip').item(0).text;	//ip地址
			content		= arr_message[i].getElementsByTagName('content').item(0).text;	//留言内容
			answer		= arr_message[i].getElementsByTagName('answer').item(0).text;	//回复
			submit_time = arr_message[i].getElementsByTagName('submit_time').item(0).text;	//提交时间		
		}else{
			uid			= arr_message[i].getElementsByTagName('uid').item(0).textContent;	//用户id
			user_ip		= arr_message[i].getElementsByTagName('user_ip').item(0).textContent;	//ip地址
			content		= arr_message[i].getElementsByTagName('content').item(0).textContent;	//留言内容
			answer		= arr_message[i].getElementsByTagName('answer').item(0).textContent;	//回复
			submit_time = arr_message[i].getElementsByTagName('submit_time').item(0).textContent;	//提交时间	
		}


		tmp_content += '<div class="faq_list">';
			tmp_content += '<div class="bg">';
				tmp_content += '<div class="wen"><img src="http://image2.sina.com.cn/vblog/images/feedback/faq_icon_ask.gif" />';
				tmp_content +=	uid;
				tmp_content += '</div>';
				tmp_content += '<div class="wen_info wordwrap">';
				tmp_content +=	content;
				tmp_content += '</div>';
				tmp_content += '<div class="line"></div>';
				tmp_content += '<div class="line_img"><img src="http://image2.sina.com.cn/vblog/images/feedback/faq_icon_corn.gif" /></div>';
				tmp_content += '<div class="da"><img src="http://image2.sina.com.cn/vblog/images/feedback/faq_icon_answer.gif" />';	
				tmp_content +=	'新浪播客为您服务';				
				tmp_content += '</div>';	
				tmp_content += '<div class="da_info wordwrap">';
				tmp_content +=	answer;	
				tmp_content += '</div>';
			tmp_content += '</div>';
		tmp_content += '</div>';
		if(i<len-1 ){
			tmp_content += '<div class="faq_backtop"><a href="#top"><img src="http://image2.sina.com.cn/vblog/images/feedback/faq_btn_top.gif" /></a></div>';
		}

	}

	var allContent = $('allContent');
	allContent.innerHTML = tmp_content;
}
//返回一个需要显示的页号的数组
//@page:当前是第几页
//@pageCount:一共多少页
//@showPageCnt:最多显示多少个页号
function getPageArr(page,pageCount,showPageCnt){
	var firstPage,lastPage,i;
	var pageArr = new Array();

	if(pageCount<=showPageCnt){
		firstPage = 1;
		lastPage = pageCount;
	}else if(pageCount<page+Math.floor(showPageCnt/2)){
		firstPage =  pageCount - showPageCnt+1;
		lastPage = pageCount;
	}else{
		firstPage = page - Math.floor(showPageCnt/2);
		lastPage = page + Math.ceil(showPageCnt/2)-1;
	}
	if(page <= Math.floor(showPageCnt/2)){
		firstPage = 1;		
		lastPage = pageCount<showPageCnt?pageCount:showPageCnt;
	}
	for(i = firstPage ;i <=lastPage ; i++){
		pageArr.push(i);
	}
	return pageArr;
}



/*=======================留言信息发送部分=========================*/
//发送留言
function sendMessage(){
	//无效留言，不能发送
	if(!checkMessage()){return false;}
	//防止重复点击
	sendEnable(false);	
	//发送留言
	var http = new Http();
	http.async = true;
	http.sURL = "advice_action.php";
	//需要提交的数据
	var data = {};
	data['action'] = "sendMessage";
	data['uid'] = trim($('uid').value);//用户名
	data['pwd'] = trim($('pwd').value);//用户密码
	data['content'] = trim($('content').value);//留言内容
	data['checkCode'] = $('checkCode').value;//校验码
	//alert(data['checkCode']);
	data['isAnonymity'] = $('isAnonymity').checked?'1':'0';//校验码
	http.addPostParam(data);

	//alert(http.sParams);
try{		
	http.post(receiveSendResult);	}catch(e){showMessage(e.message);}
}

//接收发送结果
function receiveSendResult(http){
	if(http.readyState == 4 && http.status == 200 ){	//发送成功
		showSendResult(http.responseText);
	}else if(http.readyState == 4){	//发送失败
		showMessage("发送失败，请重发！");
		sendEnable(true);
	}
}

//显示发送结果 
function showSendResult(obj_js){
	try{
		eval("var result =" + obj_js + ";");
		var txt = result['ret'];
		if(txt == 0){
			var content = $('content');
			content.value = "";
			$("wordCount").innerHTML = g_wordCount;
			showMessage("恭喜您，留言提交成功！我们的编辑人员正在进行整理与解答：）");
			setAnonymity();
		}else if(txt == 1){	//验证码错误
			showMessage('验证码错误,请重新输入验证码:）');
		}else if(txt == 2){	//用户名或密码错误
			showMessage('用户名或密码错误，您可以匿名发表留言:）');
			setAnonymity();
		}else{
			showMessage('出现异常，您可以稍后重试。');
			setAnonymity();
		}
	}catch(e){
		showMessage(obj_js);
		setAnonymity();
		//showMessage("提交失败！");
	}
	sendEnable(true);
}
//是否匿名
function isAnonymity(chk){
    var islogin = $("islogin");

    if(islogin.value=="1"){
        if(chk.checked){
            $("nickname_0").style.display="";
            $("nickname_1").style.display="none";
        }else{
            $("nickname_0").style.display="none";
            $("nickname_1").style.display="";
        }
    }else{
       	var uid = $("uid");
       	var pwd = $("pwd");
        if(chk.checked){
            $("showLoginSpan").style.display="none";
            uid.value = "新浪网友";
            pwd.value = "";
            uid.disabled = "disabled";
            pwd.disabled = "disabled";
        }else{
            $("showLoginSpan").style.display="";
            uid.value = "新浪会员名";
            pwd.value = "";
            uid.disabled = "";
            pwd.disabled = "";
        }
    }
}
//发送按钮是否有效
function sendEnable(bCanSend){
	var sendButton = $("btnSend");
	if(bCanSend){
		sendButton.disabled = "";
		//try{
		refreshCheckCode();	//同时刷新验证码
		//}catch(e){showMessage(e.message);}
	}else{
		sendButton.disabled = "disabled";
	}
}

//默认匿名
function setAnonymity(){
    if($("isAnonymity").checked){
    if($("islogin").value=='1'){
        return true;
    }
    }
        showLoginNameByCookie();
    /*
	$("isAnonymity").checked = true;
	$("uid").value	= "新浪网友";
	$("pwd").value	= "";
	$("uid").disabled = "disabled";
	$("pwd").disabled = "disabled";
    */
}
//页面信息检查
function checkMessage(){
	var content = $('content');		//留言内容文本域
	var checkCode = $('checkCode');		//验证码文本域
	if (trim(content.value) == ''){
		content.value = "";
		showMessage('忘记填写留言内容？请输入留言：）');
		return false;
	}
	if (getStringLen(trim(content.value)) > g_wordCount){
		showMessage('留言字数超过限制，请重新填写：）');
		return false;
	}	
	if (trim(content.value) == ''){
		content.value = "";
		showMessage('忘记填写留言内容？请输入留言：）');
		return false;
	}
	if (trim(checkCode.value) == ''){
		checkCode.value = "";
		showMessage('忘记填写验证码？请输入验证码：）');
		return false;
	}	
	//todo:other validate

	return true;
}
/**
  *输入字数检查
  */
 function refreshWordCount(textarea){
	writeLeave(textarea, $("wordCount"), g_wordCount);
} 
//刷新验证码
function refreshCheckCode(){

	try{
		var checkCode = $('checkCode');
		var imgPanel = $('imgCheckCode');
		var i = parseInt(Math.random()*10)+parseInt(Math.random()*10);
		var str = '<img src="http://control.video.sina.com.cn/app/checknum/chknum.php?r='+i+'" width="50" height="19">';

		imgPanel.innerHTML = str;
		checkCode.value = "";	//清空验证码文本框
	}catch(e){showMessage(e.message);}

}

var g_timer;
function showMessage(msg){
	var msgPanel = $('msgPanel');
	msgPanel.innerHTML = msg;
	msgPanel.parentNode.style.display = "";
	try{clearTimeout(g_timer);}catch(e){}
	g_timer = setTimeout("hidMessage()",60000);	//隔一定时间，提示信息自动消失
}

function hidMessage(){
	var msgPanel = $('msgPanel');
	msgPanel.innerHTML = '';
	msgPanel.parentNode.style.display = "none";
}

function UrlEncode(str){ 
  var ret=""; 
  var strSpecial="!\"#$%&'()*+,/:;<=>?[]^`{|}~%"; 
  for(var i=0;i<str.length;i++){ 
   var chr = str.charAt(i); 
    var c=str2asc(chr); 
    if(parseInt("0x"+c) > 0x7f){ 
      ret+="%"+c.slice(0,2)+"%"+c.slice(-2); 
    }else{ 
      if(chr==" ") 
        ret+="+"; 
      else if(strSpecial.indexOf(chr)!=-1) 
        ret+="%"+c.toString(16); 
      else 
        ret+=chr; 
    } 
  } 
  return ret; 
} 
function UrlDecode(str){ 
  var ret=""; 
  for(var i=0;i<str.length;i++){ 
   var chr = str.charAt(i); 
    if(chr == "+"){ 
      ret+=" "; 
    }else if(chr=="%"){ 
     var asc = str.substring(i+1,i+3); 
     if(parseInt("0x"+asc)>0x7f){ 
      ret+=asc2str(parseInt("0x"+asc+str.substring(i+4,i+6))); 
      i+=5; 
     }else{ 
      ret+=asc2str(parseInt("0x"+asc)); 
      i+=2; 
     } 
    }else{ 
      ret+= chr; 
    } 
  } 
  return ret; 
} 

function showLoginNameByCookie(change){
    if(change==true) return;
    var c,uniqueid,nickname,sHTML;
    c =new Cookie(false);
    uniqueid = c.getValue('VBLOG_USERID');
    if(uniqueid){
        nickname = UrlDecode(c.getValue('VBLOG_NICKNAME'));
        sHTML='<input type="checkbox" name="isAnonymity" id ="isAnonymity" onclick="isAnonymity(this);" value="1"/>匿名';
        sHTML+='<input type=hidden name=islogin id="islogin" value="1">';
        sHTML+='<input type=hidden name=uid id ="uid" value="">';
        sHTML+='<input type=hidden name=pwd id ="pwd" value="">';
        sHTML+='<input type=hidden name=uniqueid value="'+uniqueid+'">';
        sHTML+='<input type=hidden name=nickname value="'+nickname+'">';
        sHTML+='&nbsp;&nbsp; <span id="nickname_1">'+nickname+'</span><span id=nickname_0 style="display:none">新浪网友</span>';
        sHTML+='&nbsp;&nbsp;';
    }else{
        sHTML='<input type="checkbox" name="isAnonymity" id ="isAnonymity" onclick="isAnonymity(this);" value="1"/>匿名';
        sHTML+='<input type=hidden name=islogin id="islogin" value="0">';
        sHTML+='<span id="showLoginSpan">&nbsp;&nbsp;登录名：<input type="text" class="fm1" disabled="disabled"  name="uid" id ="uid" onclick="if(this.value==\'新浪会员名\') this.value=\'\';" value="新浪网友" onblur="if(this.value==\'\') this.value=\'新浪会员名\';" />';
        sHTML+='&nbsp;&nbsp;密码：<input type="password" class="fm1"  name="pwd" disabled="disabled"  id ="pwd"/></span>';
    }
    $("ss").innerHTML=sHTML;
}