﻿/// <reference path="../extjs_intellisense.js" />
var uin=0;//被访问者
var uid = 0;
var btnFlag = 1;
var IsGuestBookHost = "0";
var ReplayMsgId = 0;
var ReplayMsgTmpTxt = "";
var globalSpaceWebRoot = ".";

function StringBuffer()//新增字符串拼接类
{
    this._strings_= new Array;
}
StringBuffer.prototype.append=function(str)
{
    this._strings_.push(str);
};
StringBuffer.prototype.toString=function()
{
    return this._strings_.join("");
};
String.prototype.noharmcode= function ()
{
    return this.replace(/&/g, "%26").replace(/\+/g, "%2b");
}

//json类
function Json()
{
    this.jsonObj = new Array;
};
//增加一项
Json.prototype.add=function(uType,time,content)
{
    var item = eval('({u:\"'+uType+'\",t:\"'+time+'\",c:\"'+content+'\"})');
    this.jsonObj.push(item);

};
//删除一项
Json.prototype.del = function(i)
{
    this.jsonObj.splice(i,1);
}
//从字符串获取json
Json.prototype.getFromStr = function(str)
{
    this.jsonObj = eval(str);
}
//转数据串
Json.prototype.toString=function()
{
    var jsonObj = this.jsonObj;
    var str = "[";	
    for(var i in jsonObj)
    {
        str += ",{";
        var strTep = "";
        for(var j in jsonObj[i])
        {
            strTep += ","+j.toString()+":\""+jsonObj[i][j]+"\"";
        
        }
        str += strTep.replace(',','');
        str += "}";
    }
    str+="]";
    str = str.replace(',','');
    return str;
};
//获取长度
Json.prototype.getLength = function()
{
    var jsonObj = this.jsonObj;
    var l = jsonObj.length;
    return l;
}
//字符串转JSON
String.prototype.toJson = function()
{   
    var obj = new Json();
    obj.getFromStr(this.toString());
    return obj;
}
var isIE6 = false;

$(document).ready(function()
{
    var url=document.location.href;    
    //给uin赋值
    var urls=url.split('/');    
    uin = urls[3];  
    if(isNaN(uin))
    {
        uin=QueryString("uin");
    }    
    try
    {    
        checkIsHost();
    }
    catch(ee)
    {
        getMsgList();
    }
    
    //initEditor();
    var browser=navigator.appName 
    var b_version=navigator.appVersion 
    var version=b_version.split(";"); 
    var trim_Version=version[1].replace(/[ ]/g,"");
    if(browser=="Microsoft Internet Explorer" && trim_Version=="MSIE6.0") 
    { 
        isIE6 = true;
    } 

    
});

function checkIsHost()
{ 
    var url = "/GuestBook.aspx?uin="+uin+"&action=checkIsHost";
    var param = "";   
    $.get(url,param,handler);
    function handler(e)
    {
        IsGuestBookHost = e;
        
        if(IsGuestBookHost=="0")
        {
            $("#guestbook_input").show();
        }
        else if(location.href.indexOf("GuestBook")>0)
        {
            try
            {
                document.getElementById("href1").href="javascript:;";
                document.getElementById("href2").href="javascript:;";
            }
            catch(ee)
            {
            }
        }
        getMsgList();
        
    }
}


function intFlashDraw()
{    
    var str = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="450" height="180" id="makepic" align="middle">';
    str += '<param name="allowScriptAccess" value="sameDomain" />';
    if (globalSpaceWebRoot == "." && $("#globalSpaceWebRoot")) {
        globalSpaceWebRoot = $("#globalSpaceWebRoot").val();
    }
    str += '<param name="movie" value="/'+globalSpaceWebRoot+'/skin/images/flash/makepic.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src="/skin/images/flash/makepic.swf" quality="high" bgcolor="#ffffff" width="450" height="180" name="makepic" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
    str += '</object>';
    document.write(str);
}

//回复留言
function initFlashDrawById(msgId)
{
    var str = '<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="450" height="180" id="makepic'+msgId+'" align="middle">';
    str += '<param name="allowScriptAccess" value="sameDomain" />';
    if (globalSpaceWebRoot == "." && $("#globalSpaceWebRoot")) {
        globalSpaceWebRoot = $("#globalSpaceWebRoot").val();
    }
    str += '<param name="movie" value="/'+globalSpaceWebRoot+'/skin/images/flash/makepic.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#ffffff" /><embed src="/skin/images/flash/makepic.swf" quality="high" bgcolor="#ffffff" width="450" height="180" name="makepic'+msgId+'" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
    str += '</object>';
    return str;
}


function initEditor()
{
    try
    {
        tinyNDE.init({
            //mode : "textareas",
            mode : "exact",
            elements : "txtMsgBox",
            theme : "advanced",
            plugins : "emotions,inlinepopups,paste",

            theme_advanced_buttons1 : "emotions",
            theme_advanced_buttons2 : "",
            theme_advanced_toolbar_location : "top",
            theme_advanced_toolbar_align : "left",
            theme_advanced_statusbar_location : "none",
            theme_advanced_resizing : true 
        });
    }
    catch(ee)
    {
    }
}

function getMsgList(page)
{
    if(page==undefined)
    {
        page=1;
    }
    $("#page").html(page);
    
    var url = "/GuestBook.aspx?uin="+uin+"&action=getMsgList";
    var param = {pageNow:page};
    $.ajax({
      "beforeSend": AjaxBegin(), 
      "type": "POST",
      "url": url,
      "data": param,
      "success": function(msg){
        AjaxEnd();
        handler(msg);
      }
    });
    function handler(vars)
    {
        vars = vars.replace(/\r\n/g,"<br>").replace(/\n/g,"<br>").replace(/'/g,"｀").replace(/\(/g,"（").replace(/\)/g,"）");
        var str = new StringBuffer();        
        if(vars.split("{$}")[0]==0)
        {
            //暂无留言
            if(page>1)
            {
                page--;
                getMsgList(page);
            }
            
            uid = vars.split("{$}")[1];            
            str.append("<div class='notExist'><p>目前暂时还没有任何留言哦</p><p>不妨<a href='/m/Random.html'>随便看看</a>， 看能否遇到投缘的人</p></div>");
            $("#guestBookListDiv").html(str.toString());
            return;
        }
        var recordCount = vars.split("{$}")[0];
        uid = vars.split("{$}")[1];
        
        var msgList = new Json();
        
        msgList.getFromStr(vars.split("{$}")[2]);
        
        var l = msgList.getLength(); 
        
        
        if(l<=0)
        {
            str.append("<ul class='lineList'><li><div class='notExist'><p>目前暂时还没有任何留言哦</p><p>不妨<a href='/m/Random.html'>随便看看</a>， 看能否遇到投缘的人</p></div></li></ul>");         
        }
        else
        {
            for(var i=0;i<l;i++)
            {
                str.append('<ul class="lineList">'); 
                var dr = msgList.jsonObj[i];
                var id = dr.msgId;
                var guestId = dr.guestId;
                var guestName = dr.guestName.replace(/｀/g,"\"");;
                var guestPic = dr.guestPic;
                var content = dr.content;
                content = content.replace(/<img src=/g,"<img onload=\"if(this.parentNode.parentNode.clientWidth<450){if(isIE6){this.width=this.parentNode.parentNode.clientWidth-200}else{this.style.maxWidth='100%';}}else{this.width=this.parentNode.parentNode.clientWidth-2}\" src=");
                var flag = dr.flag;
         
                var reply = dr.reply.replace(/"/g,"'");
           
                var time = dr.addTime;                
                if(flag==0&&content=="")
                {
                    content="<div><span style='background-color:#ccc'>这是悄悄话哦^_^</span><div>";
                }
                str.append('<li>');
                
                str.append('<table width="100%">');
                str.append('<tbody><tr><td valign="top" width="70">');
                str.append('<div class="userImg">');                
                if(guestId!=0)
                {
                    str.append('<a href="/'+guestId+'" target="_blank"><img src="'+guestPic+'" class="guestPic UserCardImg" id="img'+guestId+'" onerror="ImgerrorFn(this,2);" /></a><br />');
                }
                else
                {
                    str.append('<img src="'+guestPic+'" class="guestPic UserCardImg" id="img'+guestId+'" onerror="ImgerrorFn(this,2);" /><br />');
                }
                str.append('    </div>');
                str.append('</td>');
                str.append('<td valign="top"><div class="title">');                          
                if(uid>0&&(uin==uid||uid==guestId))
                {
                    str.append('<div class="option"><a class="" href="javascript:;" onclick="showMsgBox('+id+')">回复</a> <a href="javascript:;" onclick="del('+id+')">删除</a> <span class="time"></span></div>');
                }
                if(guestId!=0)
                {
                    str.append('<a href="/'+guestId+'" title="来我空间逛逛吧^_^" target="_blank">'+guestName+'</a> <span class="time">'+time+'</span>');                    
                }
                else
                {
                    str.append('<a>'+guestName+'</a> <span class="time">'+time+'</span>');  
                }
                str.append('</div>');
                str.append('<div class="detail">');               
                str.append(content);
                str.append('            <div class="msgReply" id="rp'+id+'" style="display:none"><div class="reTitle">回复 <a href="javascript:;" onclick="showOrHideFlashReplay('+id+')" id="hrefFlashOrText'+id+'">试试涂鸦</a></div>');
                str.append('            <div id="divTextRep'+id+'"><textarea id="msgBox'+id+'" rows="5" cols="64" class="inputNormal"></textarea></div>');
                str.append('<div  id="divFlashRep'+id+'" style="display:none">');
                str.append(initFlashDrawById(id));
                str.append('</div>');                
                str.append('            <div style="float:left"> <input type="button" class="button" value="发送" onclick="addReply(&quot;'+reply+'&quot;,'+id+')" > <input type="button" class="button2" value="取消" onclick="closeMsgBox('+id+')"/></div>');
                str.append('        </div>');
                str.append('    </div>');
                //str.append("<div style=\"clear:both\"></div><br />");
                if(reply.indexOf("[{")==0)
                {
                    var obj = new Json();
                    obj.getFromStr(reply);                    
                  
                    var ll = obj.getLength();
                    for(j=0;j<ll;j++)
                    {
                        if(!obj.jsonObj[j].u||!obj.jsonObj[j].t||!obj.jsonObj[j].c)
                        {            
                            continue;
                        }
                    
                        str.append('<div class="topicReply">');                        
                        str.append('<div class="replyTitle">');
                        if(uid>0&&(uid==uin||uid==guestId))
                        {
                            str.append('<div class="option"><a href="javascript:;" onclick="delReply(&quot;'+reply+'&quot;,'+id+','+j+')">删除</a> <span class="time"></span></div>')
                        }
                        if(obj.jsonObj[j].u==1)
                        {
                            str.append('主人 <span class="time">'+obj.jsonObj[j].t+'</span>');
                        }
                        else if(guestId!=0)
                        {
                            str.append('<a href="/'+guestId+'" title="来我空间逛逛吧^_^" target="_blank">'+guestName+'</a> <span class="time">'+obj.jsonObj[j].t+'</span>');
                        }
                        str.append('</div>');
                        
                        str.append('<div class="replyDetail">');                        
                        str.append('        <div>'+obj.jsonObj[j].c.replace(/<img src=/g,"<img onload=\"if(this.parentNode.parentNode.parentNode.clientWidth<450){if(isIE6){this.width=this.parentNode.parentNode.parentNode.clientWidth-200}else{this.style.maxWidth='100%';}}else{this.width=this.parentNode.parentNode.parentNode.clientWidth-2}\" src=") +'</div>');         
                        str.append('    </div>'); 
                        str.append('</div>');           
                        //str.append('</p>');
                    }
                }
                str.append('</div>');
                str.append('</td>');             
                str.append('</tr></tbody></table></li></ul>');
            }
        }        
        var pageCount = parseInt(recordCount/6+1);   
        str.append(paging(pageCount,page,"getMsgList",3));                 
        $("#guestBookListDiv").html(str.toString());
        showUserCard_init();
       
    }
}

function closeMsgBox(i)
{
    if(document.getElementById("divFlashRep"+i).style.display != "none")
    {
        showOrHideFlashReplay(i);
    }
    $("#rp"+i).hide("fast");
}

function showMsgBox(i)
{
    $("#rp"+i).show("fast",function(){$("#msgBox"+i).focus()});
}

function getFlashById(swfID) {
    if (navigator.appName.indexOf("Microsoft") > -1) {
         return  document.getElementById(swfID);
	} 
	else {
	    return  document[swfID];
	}
}

function addMsg()
{
    ReplayMsgId = 0;
    if(document.getElementById("flashDraw").style.display!="none")
    {
        if(btnFlag == 1)
        {
            btnFlag = 0;        
            getFlashById("makepic").print_me();
        }
    }
    else
    {
        var strFlag = "1";//非悄悄话
        if(document.getElementById("chkIsPublic").checked==true)
        {
            strFlag = "0";
        }
        //alert(strFlag)
        
        var strContent = $.trim($("#txtMsgBox").val());
        
        if(strContent.indexOf("<script")>=0)
        {
            spaceAlert({msg:"禁止脚本"});
            return;
        }
        if(strContent.indexOf("<a ")>=0)
        {
            spaceAlert({msg:"禁止链接"});
            return;
        }
//        if(strContent.indexOf("<img ")>=0)
//        {
//            alert("禁止图片");
//            return;
//        }
        
        if(strContent=="")
        {
            spaceAlert({msg:"留言内容不能为空^_^"});
            return ;
        } 
        if(strContent.length>500)
        {
            spaceAlert({msg:"留言内容不能超过500个字符^_^"});
            return ;
        }   
        var url = "/GuestBook.aspx?uin="+uin+"&action=addMsg";
        var param = {flag:strFlag,content:strContent};
        $.ajax({
          "beforeSend": AjaxBegin(), 
          "type": "POST",
          "url": url,
          "data": param,
          "success": function(msg){
            AjaxEnd();
            handler(msg);
          }
        });
    }
    function handler(vars)
    {
        
        if(vars.split("{$}")[0]=="1")
        {                 
            $("#txtMsgBox").val("");
            try
            {
                var obj = document.getElementById("txtMsgBox_ifr");            
                obj.Document.body.innerHTML = ""; 
                
            }
            catch(ee)
            {
  
            }
                        
            getMsgList();
            if(location.href.indexOf("GuestBook")>0)
            {
                location.hash="#";
            }//alert(vars.split("{$}")[1]);
        }
        else
        {
           spaceAlert({msg:vars.split("{$}")[1]});
        }
    }
    
}

function addReplyDraws(url,id)
{
    var reply = ReplayMsgTmpTxt;
    var jObj = new Json();            
    if(reply.indexOf("[{")==0)
    {
        try
        {
            jObj.getFromStr(reply);
        }
        catch(e)
        {
        }
    }
    var userType="1";//主人
    if(uid!=uin)
    {
        userType="0";//客人
    }   
    
    var replyValue = "<img src="+url+" />"; 
    if($.trim(replyValue)=="")
    {
        spaceAlert({msg:"请输入回复内容^_^"});
        return;
    }
    if(replyValue.length>300)
    {
        spaceAlert({msg:"回复内容请不要超过300个字符^_^"});
        return;
    }
    jObj.add(userType,"$$ReplayTime",replyValue);
    var url = "/GuestBook.aspx?uin="+uin+"&action=saveReply";
    replyLists = jObj.toString();
    if(replyLists.length>2800)
    {
        spaceAlert({msg:"回复内容已经超过指定长度^_^"});
        return;
    }    
    var param = {msgId:id,replay:replyLists,replayUserType:userType};
    $.ajax({
      "beforeSend": AjaxBegin(), 
      "type": "POST",
      "url": url,
      "data": param,
      "success": function(msg){
        AjaxEnd();
        handler(msg);
      }
    });
    function handler(vars)
    {        
        getFlashById("makepic"+ReplayMsgId).stopMarker();
        btnFlag = 1;
        if(vars.split("{$}")[0]=="1")
        {
            var page = $("#page").html();
            getMsgList(page);
        }
        else
        {
            spaceAlert({msg:vars.split("{$}")[1]});
        }
    }
    
}


function addReply(reply,id)
{
    ReplayMsgId = id;
    ReplayMsgTmpTxt = reply;
    if(document.getElementById("divFlashRep"+id).style.display != "none")
    {
        if(btnFlag == 1)
        {
            btnFlag = 0;        
            getFlashById("makepic"+id).print_me();
        }
        return;
    }
    
    var jObj = new Json();            
    if(reply.indexOf("[{")==0)
    {
        try
        {
            jObj.getFromStr(reply);
        }
        catch(e)
        {
        }
    }
    var userType="1";//主人
    if(uid!=uin)
    {
        userType="0";//客人
    }
   
    var replyValue = $.trim($("#msgBox"+id).val()).replace(/'/g,"｀").replace(/</g,"〈").replace(/>/g,"〉").replace(/\"/g,"＂").replace(/\r\n/g,"<br>").replace(/\n/g,"<br>");
    if($.trim(replyValue)=="")
    {
        spaceAlert({msg:"请输入回复内容^_^"});
        return;
    }
    if(replyValue.length>300)
    {
        spaceAlert({msg:"回复内容请不要超过300个字符^_^"});
        return;
    }
    jObj.add(userType,"$$ReplayTime",replyValue);
    var url = "/GuestBook.aspx?uin="+uin+"&action=saveReply";
    replyLists = jObj.toString();
    if(replyLists.length>2800)
    {
        spaceAlert({msg:"回复内容已经超过指定长度^_^"});
        return;
    }
    
    var param = {msgId:id,replay:replyLists,replayUserType:userType};
    $.ajax({
      "beforeSend": AjaxBegin(), 
      "type": "POST",
      "url": url,
      "data": param,
      "success": function(msg){
        AjaxEnd();
        handler(msg);
      }
    });
    function handler(vars)
    {        
        if(vars.split("{$}")[0]=="1")
        {
            var page = $("#page").html();
            getMsgList(page);
        }
        else
        {
            spaceAlert({msg:vars.split("{$}")[1]});
        }
    }
}

function delReply(reply,id,i)//留言回复内容列表,留言ID，要删除的回复ID
{
    //jBoxWin  =jBox.confirm("确定删除吗？");
    onYesFn = function()
    {
        var jObj = new Json();            
        if(reply.indexOf("[{")==0)
        {
            try
            {
                jObj.getFromStr(reply);
            }
            catch(e)
            {
            }
        }
        jObj.del(i);
        var url = "/GuestBook.aspx?uin="+uin+"&action=saveReply";
        var param = {msgId:id,replay:jObj.toString()};
        $.ajax({
          "beforeSend": AjaxBegin(), 
          "type": "POST",
          "url": url,
          "data": param,
          "success": function(msg){
            AjaxEnd();
            handler(msg);
          }
        });
    }
    function handler(vars)
    {
        //jBox.close(jBoxWin);
        if(vars.split("{$}")[0]=="1")
        {
            var page = $("#page").html();
            getMsgList(page);
            //alert(vars.split("{$}")[1]);
        }
        else
        {
            spaceAlert({msg:vars.split("{$}")[1]});
        }
    }
    spaceConfirm({msg:"确定删除吗？","onYesFn":onYesFn});
}
var jBoxWin;
function del(id)
{
    //jBoxWin  =jBox.confirm("确定删除吗？");
    onYesFn = function()
    {
        var url = "/GuestBook.aspx?uin="+uin+"&action=delMsg";
        var param = {msgId:id};
        $.ajax({
          "beforeSend": AjaxBegin(), 
          "type": "POST",
          "url": url,
          "data": param,
          "success": function(msg){
            AjaxEnd();
            handler(msg);
          }
        });
    }
    function handler(vars)
    {
        //jBox.close(jBoxWin);
        if(vars.split("{$}")[0]=="1")
        {
            var page = $("#page").html();
            getMsgList(page);
            //alert(vars.split("{$}")[1]);
        }
        else
        {
            spaceAlert({msg:vars.split("{$}")[1]});
        }
    }
    spaceConfirm({msg:"确定删除吗？","onYesFn":onYesFn});
}


function showOrCloseFlashDraw()
{
    if(document.getElementById("flashDraw").style.display=="none")
    {
        
        $("#textAreaDiv").hide();
        $("#flashDraw").show();
        $("#btnShowOrClose").text("返回编辑器");        
    }
    else
    {
        $("#btnShowOrClose").text("试试涂鸦");
        $("#flashDraw").hide();
        $("#textAreaDiv").show();
        
    }
}

function showOrHideFlashReplay(id)
{
    
    if(document.getElementById("divFlashRep"+id).style.display=="none")
    {
        $("#hrefFlashOrText"+id).text("返回编辑器");
        $("#divFlashRep"+id).show();
        $("#divTextRep"+id).hide();
        
    }
    else
    {
        $("#hrefFlashOrText"+id).text("试试涂鸦");
        $("#divFlashRep"+id).hide();
        $("#divTextRep"+id).show();
    }
}

function showEditor()
{    
    if(IsGuestBookHost=="1")
    {
        
        spaceAlert({msg:"主人不能给自己留言"});
        return false;
        
    }
    else if(IsGuestBookHost<0)
    {
        spaceAlert({msg:"还未登录^_^"});
        return false;
    }
    else if(document.getElementById("flashDraw").style.display!="none")
    {
        showOrCloseFlashDraw();
    }
}
function showDraw()
{
    if(IsGuestBookHost=="1")
    {
        spaceAlert({msg:"主人不能给自己涂鸦"});
        return ;
    }
    else if(IsGuestBookHost<0)
    {
        spaceAlert({msg:"还未登录^_^"});
        return false;
    }
    
    else if(document.getElementById("flashDraw").style.display=="none")
    {
        showOrCloseFlashDraw();
    }
}

//生成jpg
function createJPG(str)
{
    var url = "/GuestBook.aspx?uin="+uin+"&action=createJPG";
    $.post(url,str,handler);
    function handler(vars)
    {
        //回复的涂鸦
        if(ReplayMsgId > 0)
        {
            addReplyDraws(vars,ReplayMsgId);                   
            return;
        }
    
        var strFlag = "1";//非悄悄话
        if(document.getElementById("chkIsPublic").checked==true)
        {
        strFlag = "0";
        }      
        var strContent = "<img src="+vars+" />";   
        var url = "/GuestBook.aspx?uin="+uin+"&action=addMsg";
        var param = {flag:strFlag,content:strContent};
        $.ajax({
            "beforeSend": AjaxBegin(), 
            "type": "POST",
            "url": url,
            "data": param,
            "success": function(msg){
                AjaxEnd();
                handler(msg);
            }
        });
        function handler(vars)
        {   
            btnFlag = 1;
            if(vars.split("{$}")[0]=="1")
            {       
                getMsgList(1);
                if(location.href.indexOf("GuestBook")>0)
                {
                    location.hash="#";
                }
                getFlashById("makepic").stopMarker();
                try
                {
                    getFlashById("makepic").clearPic();
                }
                catch(eee)
                {
                }
            }
            else
            {
                spaceAlert({msg:vars.split("{$}")[1]});
            }
        }
    }    
}
function QueryString(qs)
{
	s = location.href;
	var SharpIndex=s.indexOf("#");
	if (SharpIndex!=-1) {
		s=s.substring(0,SharpIndex);
	}
	s = s.replace("?","?&").split("&");
	re = "";
	for(i=1;i<s.length;i++)
	{
		if(s[i].indexOf(qs+"=")==0)
		{
			re = s[i].replace(qs+"=","");
		}
	}
	return re;
}

//window.onerror = function (){alert(9);return true}