﻿var UbbEditor=new Object();
UbbEditor.bar=null;
UbbEditor.textareaid=null;
UbbEditor.emotions=[];
UbbEditor.emoBoxid="ubb_emos_box";
UbbEditor.urlBoxid="comboscurl";
UbbEditor.cumBoxid="cumccbox";
UbbEditor.ubbcmd=[["b","bold.gif"],["i","italic.gif"],["u","underline.gif"],["url","link.gif"],["img","image.gif"],["emo","emotion.gif"],["cum","cumbox.gif","ECumBody"]];
UbbEditor.Init=function(barid, textareaid)
{
    UbbEditor.bar=$(barid);
    UbbEditor.textareaid=textareaid;
    if(UbbEditor.bar)
    {
        for(var i=0;i<UbbEditor.ubbcmd.length;i++)
        {
            if(UbbEditor.ubbcmd[i][2]&&!$(UbbEditor.ubbcmd[i][2]))continue;
            if(UbbEditor.ubbcmd[i][0]=="emo")
            {
                if(typeof(QemoArr)!="undefined")UbbEditor.emotions=QemoArr[0]["emo"];
                else continue;
            }
            var tdiv=document.createElement("div");
            tdiv.innerHTML='<a href="javascript:void(null)" onclick="UbbEditor.InsertCmd(\''+UbbEditor.ubbcmd[i][0]+'\',\''+textareaid+'\');return false;"><img src="/CommonRes/images/'+UbbEditor.ubbcmd[i][1]+'" border="0" align="absmiddle" /></a>';
            UbbEditor.bar.appendChild(tdiv);
        }
    }
}
UbbEditor.getEmoPackShow=function(epid)
{
    return function()
    {
        stopEvent();
        for(var i=0;i<UbbEditor.emotions.length;i++)
        {
            var ep=UbbEditor.emotions[i];
            var obj=$('emoP_'+ep.id);
            var ot=$('emoPt_'+ep.id);
            obj.style.display=ep.id==epid? "":"none";
            ot.style.color=ep.id==epid? "green":"";
            if(ep.id==epid&&!ep.srcinit)
            {
                var esrc=ep.srcarr;
                function emoins(i,pc, s, l)
                {
                    var c=0,k=s;
                    for(;k<l;k++)
                    {
                        var el=document.createElement("span");
                        el.innerHTML="<a href='javascript:void(null)' onclick='UbbEditor.InsertEmo("+i+","+k+");return false;'><img  src='"+esrc[k]+"' border='0'  align='absMiddle'/><a>";
                        pc.appendChild(el);
                        c++;
                        if(c==10)break;
                    }
                    if(c==10)
                    {
                        setTimeout(emoins,100,i,pc, k+1, l);
                    }
                }
                emoins(i,$("emoP_"+ep.id), 0, esrc.length);
                ep.srcinit=true;
            }
        }
        setCookie("ubbemo",epid,getExpDate(100000,1,1),"/");
        return false;
    }
}
UbbEditor.hideBox=function()
{
    stopEvent();
    var ids=[UbbEditor.cumBoxid,UbbEditor.urlBoxid,UbbEditor.emoBoxid]
    for(var i=0;i<ids.length;i++)
    {
        if($(ids[i]))
        {
            $(ids[i]).style.display="none";
        }
    }
    removeEvent(document,"click",UbbEditor.hideBox);
}
UbbEditor.InsertEmo=function(i,j)
{
    UbbEditor.hideBox();
    UbbEditor.setTextArea("[s2:"+i+":"+j+"]",2);
}
UbbEditor.InsertCmd=function(cmd,txid)
{
    UbbEditor.textareaid=txid;
    UbbEditor.hideBox();
    if(cmd=="emo")
    {
        stopEvent();
        var emosbox=$(UbbEditor.emoBoxid);
        if(!emosbox)
        {
            emosbox = document.createElement("div");
	        emosbox.id=UbbEditor.emoBoxid;
	        emosbox.style.display="none";
	        emosbox.className="EmosBox";
	        document.body.insertBefore(emosbox,document.body.firstChild);
            var packs=document.createElement("div");
            packs.className="EmoPacksBar";
            emosbox.appendChild(packs);
            
            var emos=document.createElement("div");
            packs.className="EmosCont";
            emosbox.appendChild(emos);
            
            for(var i=0;i<UbbEditor.emotions.length;i++)
            {
                var ep=UbbEditor.emotions[i];
                var emob=document.createElement("a");
                emob.href="javascript:void(null)";
                emob.onclick=UbbEditor.getEmoPackShow(ep.id);
                emob.innerHTML=ep.name;
                emob.id="emoPt_"+ep.id;
                if(i>0)
                {
                     var sp=document.createTextNode(" | ");
                     packs.appendChild(sp);
                }
                packs.appendChild(emob);
                
                var emobc=document.createElement("div");
                emobc.id="emoP_"+ep.id;
                if(i>0)emobc.style.display="none";
                emos.appendChild(emobc);
                
                var esrc=[];
                if(ep.file)
                {
                    for(var j=0;j<ep.file.length;j++)
                    {
                        var ssc='/Emotions2/' + ep.id + '/' + ep.file[j] ;
                        esrc.push(ssc);
                    }
                }
                else if(ep.filenum&&ep.fileext)
                {
                    for(var j=0;j<ep.filenum;j++)
                    {
                        var ssc='/Emotions2/' + ep.id + '/' + (j+1)+"."+ep.fileext;
                        esrc.push(ssc);
                    }
                }
                
                ep.srcarr=esrc;
                ep.srcinit=false;
          }
          var ni=getCookie("ubbemo");
          if(!ni)ni=UbbEditor.emotions[0].id;
          UbbEditor.getEmoPackShow(ni)();
        }
        emosbox.onclick=function()    
        {
            stopEvent();
        }
        var tl=getEventTarget();
        var pos=getInfo(tl);
        emosbox.style.top=pos.top+10+"px";
        emosbox.style.left=pos.left+10+"px";
        emosbox.style.display="";
        addEvent(document,"click",UbbEditor.hideBox);
    }
    else if(cmd=="cum")
    {
        stopEvent();
        var cumbox=$(UbbEditor.cumBoxid)
        if(!cumbox)
        {
            cumbox = document.createElement("div");
	        cumbox.id=UbbEditor.cumBoxid;
	        cumbox.style.display="none";
	        cumbox.className="ECumBox";
	        document.body.insertBefore(cumbox,document.body.firstChild);
	        
	        var cumgroup=document.createElement("div");
	        cumgroup.className="ECumGroup";
	        cumbox.appendChild(cumgroup);
	                   
            cumbox.style.display="";
            function getck(v)
            {
                return function()
                {
                    UbbEditor.hideBox();
                    UbbEditor.setTextArea(v,2);
                }
            }
            var ubp=$("ECumBody").getElementsByTagName("div");
            for(var i=0;i<ubp.length;i++)
            {
                var obj=ubp[i];
                var v=ubp[i].getElementsByTagName("textarea")[0].value.trim();
                var temdiv=document.createElement("div");
                temdiv.innerHTML=ubp[i].getElementsByTagName("span")[0].innerHTML;
                temdiv.title=v;
                cumgroup.appendChild(temdiv);
                temdiv.onclick=getck(v);
            }
            
            var ecset=document.createElement("div");
            ecset.innerHTML="<a href='javascript:void(null)' onclick='UbbEditor.SetCum();return false;'>"+JsLang.Get("ubbsetcum")+"</a>";
            ecset.className="ECumBtmBar";
            cumbox.appendChild(ecset);
        }
        cumbox.style.display="";
        cumbox.onclick=function()    
        {
            stopEvent();
        }
        var tl=getEventTarget();
        var pos=getInfo(tl);
        cumbox.style.top=pos.top+10+"px";
        cumbox.style.left=pos.left+10+"px";
        addEvent(document,"click",UbbEditor.hideBox);
    }
    else UbbEditor.setTextArea(cmd,1);
}
UbbEditor.CmSWindow=null;
UbbEditor.SetCum=function(d)
{
    if(!UbbEditor.CmSWindow)
    {
        var obj={
                "title":JsLang.Get("ubbsetcum"),
                "body":{"iframesrc":"/Warehouse/EditorCum/CumEC.aspx?rt="+gettime(),"frameargs":'frameborder="0" width="100%" scrolling="no" height="100%" marginwidth="5" marginheight="5"',"loadTime":5000},
                "btnmax":false,
                "winwidth":"600px",
                "bodyheight":"360px"
        };
        UbbEditor.CmSWindow=new fWindow(obj);
    }
    UbbEditor.CmSWindow.openWin();
    UbbEditor.hideBox();
}
UbbEditor.setTextArea=function(myValue,ins)
{
    var myField=$(UbbEditor.textareaid);
	if (document.selection) {
		myField.focus();
		
		sel = document.selection.createRange();
		if(ins==2)
		{
		    sel.text = myValue;
		}
		else if(ins==1)
		{
		    sel.text = "["+myValue+"]"+sel.text+"[/"+myValue+"]";
		}
	}
	else if ((myField.selectionStart || myField.selectionStart == 0)) {
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		if(ins==2)
		{
		    myField.value = myField.value.substring(0, startPos)
		    + myValue
		    + myField.value.substring(endPos, myField.value.length);
		}
		else if(ins==1)
		{
		    var st="";
		    if(endPos>startPos)
		    st=myField.value.substring(startPos, endPos-startPos+2);
		    myField.value = myField.value.substring(0, startPos)
		    + "["+myValue+"]"+st+"[/"+myValue+"]"
		    + myField.value.substring(endPos, myField.value.length);
		}
	} else {
	    if(ins==2)
		    myField.value += myValue;
		else if(ins==1)myField.value += "["+myValue+"][/"+myValue+"]";
	}
}

UbbEditor.IsCtrlEnter=function()
{
    var e=getEvent();
    var key;
    var isCtrl;
    if(isIE)
        key = e.keyCode; 
    else
        key=e.which;
    isCtrl = e.ctrlKey?true:false;
    if(key==13&&isCtrl)
    {
        return true;
    }
    return false;   
}