﻿// JScript File
// function for ajax 										    				    						
function setLoading(divUpdate)
{
    //divUpdate.setHTML("<center>Loading...<img src='/ViewChat/images/loading.gif'></center>");				
}
function redirectByParam(url,param,methods,divUpdate)
{						
     setLoading(divUpdate);
    (new Ajax(url, {postBody:param,method:methods,update: divUpdate,evalScripts: true})).request();
 }
 
function redirect(url,divUpdate){	 
     setLoading(divUpdate);
    (new Ajax(url, 
        {
            method: 'get',
            update: divUpdate,
            evalScripts:false})).request();        
}	
function redirectContact(url,divUpdate,id){

    setLoading(divUpdate);
    showLoadingInfor();
    (new Ajax(url, 
        {
            method: 'get',           
            onComplete: function()
            {
                
                var arr= new Array();
                arr=this.response.text.split("~~~~~~");
                if (arr.length==2)
                {
                            
                    if (arr[1]=='1')
                    {
                       url1=urlServer+"ViewChat/Service/CallChat_pt.aspx?detectmode=1&userid="+arr[0];
                       callModeChat(url1,arr[0],'');
                    }
                    else
                    {
                      alert(getMessageContact(arr[1]));
                      document.getElementById('txt_quick_chat').focus();        
                     }                     
                }
                else 
                { 
                    //divUpdate.setHTML(getMessageContact(arr[1]));      
                    document.getElementById('txt_quick_chat').focus();        }
                    closeLoadingInfor();
                 
            },
            evalScripts:false})).request();        
}

function getMessageContact(i)
{
    try
    {
        if(i=="0"){return "Không tồn tại user như thế!"};
        if(i=="2"){return "User đã có trong contact của bạn!"};
        if(i=="1"){return "Đã thêm thành công!"};
        if(i=="3"){return "Có sự cố khi thêm, vui lòng cố gắng lại!";}
        return "Có sự cố , vui lòng cố gắng lại!";
    }catch(e){ return "Có sự cố , vui lòng cố gắng lại!"; }
}

function getValueQuery(ji) 
{
    hu = window.location.search.substring(1);
    gy = hu.split("&");
    for (i=0;i<gy.length;i++) 
    {
        ft = gy[i].split("=");
        if (ft[0] == ji) 
        {
            return ft[1];
        }
    }
    return "";
}

function resetSession(usermain){	 
    url="/ViewChat/Service/CallChat_pt.aspx?act=5&userid="+usermain+"&fromuserid="+userto+"&mode="+mode+"&msg="+msg;
    (new Ajax(url, 
        {
            method: 'get',           
            evalScripts:false})).request();
}

function callDetectModeChat(url){	     
    try
    {
    (new Ajax(url, 
        {
            method: 'get',           
            onComplete: function()
            {
                //alert(this.response.text);
                var arr= new Array();
                arr=this.response.text.split("~~~~~~");
                
                var arrUserId= new Array();    
                var arrModeUser= new Array();           
                
                arrUserId=arr[0].split(";");
                arrModeUser=arr[1].split(";");
                updateStatusUser(arrUserId,arrModeUser);
            },
            evalScripts:false})).request();  
    }catch(e)
    {       
        
    }
}
function updateStatusUser(arrUserId,arrModeUser)
{
    for(var i=0;i<arrUserId.length;i++)
    {
        if (modeUser[arrUserId[i]]!=arrModeUser[i])
        {
            if (arrModeUser[i]=='0')
            {               
                updateContentForElement('div_show_title'+arrUserId[i],arrUserId[i]+' <img src="/ViewChat/Icons/offline.gif" />');
                appendContentForElement('div_chat'+arrUserId[i],msgAlertOffline(arrUserId[i]));       
                modeUser[arrUserId[i]]=0;        
                rangSound('offline');
            }
            if (arrModeUser[i]=='1')
            {
                updateContentForElement('div_show_title'+arrUserId[i],arrUserId[i]+' <img src="/ViewChat/Icons/online.gif" /> ');
                appendContentForElement('div_chat'+arrUserId[i],msgAlertOnline(arrUserId[i]));
                modeUser[arrUserId[i]]=1;
                rangSound('online');
            }
         }
    }
}
function updateContentForElement(id,content)
{
    if (document.getElementById(id) != null)document.getElementById(id).innerHTML=content;
}
function appendContentForElement(id,content)
{
    if (document.getElementById(id) != null)  document.getElementById(id).innerHTML=document.getElementById(id).innerHTML+ content;    
}
function msgAlertOnline(id){return '<b><i>'+id+ ' online! </i></b><br>';}

function msgAlertOffline(id){return '<b><i>'+id+ ' offline! </i></b><br>';}



/**
*
*  URL encode / decode
*  http://www.webtoolkit.info/
*
**/
var Url = {

    // public method for url encoding
    encode : function (string) {
        return escape(this._utf8_encode(string));
    },

    // public method for url decoding
    decode : function (string) {
        return this._utf8_decode(unescape(string));
    },

    // private method for UTF-8 encoding
    _utf8_encode : function (string) {
        string = string.replace(/\r\n/g,"\n");
        var utftext = "";

        for (var n = 0; n < string.length; n++) {

            var c = string.charCodeAt(n);

            if (c < 128) {
                utftext += String.fromCharCode(c);
            }
            else if((c > 127) && (c < 2048)) {
                utftext += String.fromCharCode((c >> 6) | 192);
                utftext += String.fromCharCode((c & 63) | 128);
            }
            else {
                utftext += String.fromCharCode((c >> 12) | 224);
                utftext += String.fromCharCode(((c >> 6) & 63) | 128);
                utftext += String.fromCharCode((c & 63) | 128);
            }

        }

        return utftext;
    },

    // private method for UTF-8 decoding
    _utf8_decode : function (utftext) {
        var string = "";
        var i = 0;
        var c = c1 = c2 = 0;

        while ( i < utftext.length ) {

            c = utftext.charCodeAt(i);

            if (c < 128) {
                string += String.fromCharCode(c);
                i++;
            }
            else if((c > 191) && (c < 224)) {
                c2 = utftext.charCodeAt(i+1);
                string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
                i += 2;
            }
            else {
                c2 = utftext.charCodeAt(i+1);
                c3 = utftext.charCodeAt(i+2);
                string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
                i += 3;
            }

        }

        return string;
    }
}
function getLinkMessage(sID)
{
    return "<a href='/ViewChat/Chat.aspx'><img src='/ViewChat/Images/new.gif'/><b><i>Có thành viên chat với bạn</i></b></a>";
}
function encodeFont(msgS)
{
    msgS=msgS.replace("<i>","start_ffi");
    msgS=msgS.replace("</i>","end_ffi");
    
    msgS=msgS.replace("<b>","start_ffb");
    msgS=msgS.replace("</b>","end_ffb");
    
    msgS=msgS.replace("<U>","start_ffu");
    msgS=msgS.replace("</U>","end_ffu");
    
    msgS=msgS.replace("<strike>","start_ffs");
    msgS=msgS.replace("</strike>","end_ffs");
    return msgS;
}
 function decodeFont(msgS)
{
    msgS=msgS.replace("start_ffi","<i>");
    msgS=msgS.replace("end_ffi","</i>");
    
    msgS=msgS.replace("start_ffb","<b>");
    msgS=msgS.replace("end_ffb","</b>");
    
    msgS=msgS.replace("start_ffu","U");
    msgS=msgS.replace("end_ffu","</U");
    
    msgS=msgS.replace("start_ffs","<strike>");
    msgS=msgS.replace("end_ffs","</strike>");
    return msgS;
}
soundManager.onload = function() {
  		initSound();
	}
//for sound 
function initSound()
{
    try
    {
        soundManager.createSound('online','/viewchat/media/online.mp3');
  		soundManager.createSound('offline','/viewchat/media/offline.mp3');
  		soundManager.createSound('buzz','/viewchat/media/buzz.mp3');   
  		soundManager.createSound('message','/viewchat/media/message.mp3'); 
    }catch(e){}
}
function rangSound(sString)
{      
       
       if (isSound ==1 )
       {        
        soundManager.play(sString);  
       }  
}
function setValueSound(sValue)
{
    if (sValue)
    {
        isSound=1;
        createCookie('isSound',1,null);
    }
    else 
    {
        isSound=0;
        createCookie('isSound',0,null);
    }
}
function loadValueSound()
{
    try
    {
        idR=readCookie('isSound');
        if(idR!=null)isSound=idR;
        else isSound=1;
        document.getElementById('chkSound').checked=(isSound==1);
    }catch(e){}
}
//cookie
function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}
function eraseCookie(name) {
	createCookie(name,"",-1);
}
//user se duoc luu duoi dang : lamlt;lamlt12345;lamlt23456
function saveUserToCookie(id)
{
    if(id==null) return;
    if(id=="") return;

    var val_chat=readCookie("user_chat_tx");  
    if(val_chat)
    {
        val_chat=Url.decode(val_chat);
        if (val_chat.indexOf(id)==-1) 
        { 
            val_chat=val_chat+";"+id;
            val_chat=Url.encode(val_chat);
            eraseCookie("user_chat_tx");
            createCookie("user_chat_tx",val_chat,null);   
        }
    }
    else 
    {
        val_chat=id;
        val_chat=Url.encode(val_chat);
        createCookie("user_chat_tx",val_chat,null);   
    }
}
function removeUserFromCookie(id)
{
    if(id==null) return;
    if(id=="") return;
    
    var val_chat=readCookie("user_chat_tx");
    if(val_chat)
    {
        val_chat=Url.decode(val_chat);        
        var rel_chat= val_chat.replace(id,"");     
        rel_chat=rel_chat.replace(";;",";");
        rel_chat=Url.encode(rel_chat);
        eraseCookie("user_chat_tx");
        createCookie("user_chat_tx",rel_chat,null);
    }
}
function saveTabUserToCookie(id)
{
    if(id==null) return;
    if(id=="") return;

    var val_chat=readCookie("user_tab_tx");  
    if(val_chat)
    {
        val_chat=Url.decode(val_chat);
        if (val_chat.indexOf(id)==-1) 
        { 
            val_chat=val_chat+";"+id;
            val_chat=Url.encode(val_chat);
            eraseCookie("user_tab_tx");
            createCookie("user_tab_tx",val_chat,null);   
        }
    }
    else 
    {
        val_chat=id;
        val_chat=Url.encode(val_chat);
        createCookie("user_tab_tx",val_chat,null);   
    }
}
function removeTabUserFromCookie(id)
{
    if(id==null) return;
    if(id=="") return;
    
    var val_chat=readCookie("user_tab_tx");
    if(val_chat)
    {
        val_chat=Url.decode(val_chat);        
        var rel_chat= val_chat.replace(id,"");     
        rel_chat=rel_chat.replace(";;",";");
        rel_chat=Url.encode(rel_chat);
        eraseCookie("user_tab_tx");
        createCookie("user_tab_tx",rel_chat,null);
    }
}
//content được ghi dưới dạng: lamlt``````lamlt:yyyyuuudd;lamlt``````lamlt12345:djadjslkald;lanhlt``````xyz:udiadosioasdoa;
function saveContentToCookie(id,content)
{
    if(content==null) return;
    if(content=="") return;
    
    var sSaveContent=(id+"``````"+content);
    
    var val_chat_o=readCookie("content_chat_tx");
    if(val_chat_o)
    {
        var val_chat=Url.decode(val_chat_o);
        if(val_chat.indexOf(id+"``````")!=-1)
        {
            var sCurrentContent="";
            var sOtherContent="";
            var arrC=val_chat.split(";");
            var nTotal=0;
            for(var j_c=0;j_c<=arrC.length-1;j_c++)
            {
                var sLine=arrC[j_c];
                var arrLine=sLine.split("``````");
                var sUser=arrLine[0];
                
                //thực hiện phân tích và đưa ra 5 dòng chứ không còn 2 dòng
                if(sUser==id)
                {
                    /*
                    nTotal++;                   
                    if(nTotal==1)
                    {
                        sCurrentContent=(sCurrentContent!="") ? (sCurrentContent+";"+sLine) : sLine;
                    }
                    if(nTotal==2)
                    {
                        sCurrentContent=sLine;
                    }
                    */
                    //lấy tất cả các ví nội dung của người dùng này
                    sCurrentContent=(sCurrentContent!="") ? (sCurrentContent+";"+sLine) : sLine;
                    
                } 
                else 
                {
                    sOtherContent=(sOtherContent!="") ? (sOtherContent+";"+sLine) : sLine;
                }     
            }
            //thực hiện điều chế lại của user trước khi ghi tiếp vào
            var arrContentCurrent=sCurrentContent.split(";");
            var nStart=arrContentCurrent.length-5;
            nStart=nStart >0 ? nStart : 0;
            
            sCurrentContent="";
            for(var j_c=nStart;j_c<=arrContentCurrent.length-1;j_c++)
            {
                var sLine=arrContentCurrent[j_c];
                sCurrentContent=(sCurrentContent!="") ? (sCurrentContent+";"+sLine) : sLine;
            }            
            //end thực hiện điều chế lại của user trước khi ghi tiếp vào
            
            sCurrentContent=(sCurrentContent!="") ? (sCurrentContent+";"+sSaveContent) : sSaveContent;
            var sContent_c=(sOtherContent!="") ? (sOtherContent+";"+sCurrentContent) : sCurrentContent;
            sContent_c=Url.encode(sContent_c);
            
            eraseCookie("content_chat_tx");
            createCookie("content_chat_tx",sContent_c,null);
        }
        else   
        {
            val_chat=val_chat+";"+sSaveContent;
            val_chat=Url.encode(val_chat);
            
            eraseCookie("content_chat_tx");
            createCookie("content_chat_tx",val_chat,null);
        }  
    }
    else 
    {
        val_chat_o=sSaveContent;
        val_chat_o=Url.encode(val_chat_o);
        createCookie("content_chat_tx",val_chat_o,null);
    }
}
function loadFromCookie()
{
    var val_chat=readCookie("user_chat_tx");  
    if(val_chat)
    {
        val_chat=Url.decode(val_chat);
        
        var arrU=val_chat.split(";");
        for(var j_c=0;j_c<=arrU.length-1;j_c++)
        {
            if(arrU[j_c]!="") createnewchat(arrU[j_c],'','1');
        }
        
        var content_chat=readCookie("content_chat_tx"); 
        if(content_chat)
        {
            content_chat=Url.decode(content_chat);
            var arrC=content_chat.split(";");
            for(var j_c=0;j_c<=arrC.length-1;j_c++)
            {
                var sLine=arrC[j_c];
                var arrLine=sLine.split("``````");
                appendtochat(arrLine[0],arrLine[1],'1');
            }
        } 
        
        var val_tab=readCookie("user_tab_tx");  
        if(val_tab)
        {
            val_tab=Url.decode(val_tab);
            var arrU=val_tab.split(";");
            for(var j_c=0;j_c<=arrU.length-1;j_c++)
            {
                if(arrU[j_c]!="")hideToDock("div_main"+arrU[j_c],arrU[j_c]);
            }
        }
    }    
}
function removeChatFromCookie()
{
    eraseCookie("content_chat_tx");
    eraseCookie("user_chat_tx");
    eraseCookie("user_tab_tx");
}