
var keynum;


function randomNumber(l)
{
  chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890";
  pass = "";
  for(x=0;x<l;x++)
  {
    i = Math.floor(Math.random() * 62);
    pass += chars.charAt(i);
  }
  return pass;
}

var rand_no = randomNumber(16);
var idcount = randomNumber(3);

function str_replace(haystack, needle, replacement) {
    var temp = haystack.split(needle);
    return temp.join(replacement);
}

function stripHTML(oldString) {
  return oldString.replace(/<&#91;^>&#93;*>/g, "");
}


function none(){
	//var myajax=ajaxpack.ajaxobj;
	//var myfiletype=ajaxpack.filetype;
	//	if (myajax.readyState == 4){
		//	if (myajax.status==200 || window.location.href.indexOf("http")==-1){
		//		if (myfiletype=="txt"){
		//			var response = myajax.responseText;
		//		document.write(response);
		//		}
		//	}
		//}	
}

function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}


function createAjaxObj(){
	var httprequest=false;
		if (window.XMLHttpRequest){ 
			httprequest=new XMLHttpRequest();
			if (httprequest.overrideMimeType)
				httprequest.overrideMimeType('text/xml');
			}else if (
				window.ActiveXObject){
					try{
						httprequest=new ActiveXObject("Msxml2.XMLHTTP");
						} 
					catch (e){
						try{
							httprequest=new ActiveXObject("Microsoft.XMLHTTP");
							}
					catch (e){
					}
				}
			}
return httprequest
}

	var ajaxpack=new Object();
	ajaxpack.basedomain="http://"+window.location.hostname;
	ajaxpack.ajaxobj=createAjaxObj();
	ajaxpack.filetype="txt";
	ajaxpack.addrandomnumber=1;
	ajaxpack.getAjaxRequest=function(url, parameters, callbackfunc, filetype){
	ajaxpack.ajaxobj=createAjaxObj();
	if (ajaxpack.addrandomnumber==1)
	var parameters=parameters+"&ajaxcachebust="+ randomNumber(16);
	if (this.ajaxobj){
		this.filetype=filetype;
		this.ajaxobj.onreadystatechange=callbackfunc;
		this.ajaxobj.open('GET', url+"?"+parameters, true);
		this.ajaxobj.send(null);
	}
}




function deleteNotify(x){
	ajaxpack.getAjaxRequest('/modules/mod_oneononechat/phpfunctions.php', "a=d&key="+x, none, "txt");
}


function initChat(key){
	var winName = Math.ceil(10000000*Math.random());
	ajaxpack.getAjaxRequest('/modules/mod_oneononechat/phpfunctions.php', "a=i&key="+key, none, "txt");
	window.open ('/modules/mod_oneononechat/chatwindow.php?key='+key+'&color=red',''+winName+'','location=0,status=0,toolbar=0,menubar=0,resizable=0,scrollbars=0,height=375,width=420');
}


function processGetJson(){
	var myajax=ajaxpack.ajaxobj;
	var myfiletype=ajaxpack.filetype;
		if (myajax.readyState == 4){
			if (myajax.status==200 || window.location.href.indexOf("http")==-1){
				if (myfiletype=="txt"){
					var response = myajax.responseText;
					var chatsX = response.split('&&');
					    for(var i=0; i<chatsX.length;i++ ){ 
            if(chatsX[i].length > 1){
					var decode = base64_decode(chatsX[i]);
					var keyArray=decode.split("|");
					writeNotify(chatsX[i], keyArray[4]);
					} 
      } 
					
				}
			}
		}
}


function processGetMessage(){
	var myajax=ajaxpack.ajaxobj;
	var myfiletype=ajaxpack.filetype;
		if (myajax.readyState == 4){
			if (myajax.status==200 || window.location.href.indexOf("http")==-1){
				if (myfiletype=="txt"){
					var none = '';
					var response = myajax.responseText;
					
					var tempArray = response.split("|");

						for (x in windowArray){
							removeByElement(tempArray,windowArray[x]);
							}

						for (y in tempArray){
							windowArray.push(tempArray[y]);
							fnAppend(tempArray[y]);
						}
					}
				}
			}
}
function base64_encode(input) 
{ 
var string = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; 
var output = ""; 
var chr1,  chr2,  chr3 = ""; 
var enc1,  enc2,  enc3,  enc4 = ""; 
var i = 0; 
do  
    { 
    chr1 = input.charCodeAt(i++); 
    chr2 = input.charCodeAt(i++); 
    chr3 = input.charCodeAt(i++); 
    enc1 = chr1 >> 2; 
    enc2 = ((chr1 & 3) << 4) | (chr2 >> 4); 
    enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); 
    enc4 = chr3 & 63; 
    if (isNaN(chr2)) 
        enc3 = enc4 = 64; 
    else if (isNaN(chr3)) 
        enc4 = 64; 
    output = output + string.charAt(enc1) + string.charAt(enc2) + string.charAt(enc3) + string.charAt(enc4); 
    chr1 = chr2 = chr3 = ""; 
    enc1 = enc2 = enc3 = enc4 = ""; 
    } 
while (i < input.length); 
return output; 
} 



function base64_decode(input) 
{ 
var string = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; 
var output = ""; 
var chr1,  chr2,  chr3 = ""; 
var enc1,  enc2,  enc3,  enc4 = ""; 
var i = 0; 
do 
    { 
    enc1 = string.indexOf(input.charAt(i++)); 
    enc2 = string.indexOf(input.charAt(i++)); 
    enc3 = string.indexOf(input.charAt(i++)); 
    enc4 = string.indexOf(input.charAt(i++)); 
    chr1 = (enc1 << 2) | (enc2 >> 4); 
    chr2 = ((enc2 & 15) << 4) | (enc3 >> 2); 
    chr3 = ((enc3 & 3) << 6) | enc4; 
    output = output + String.fromCharCode(chr1); 
    if (enc3 != 64) 
        output = output + String.fromCharCode(chr2); 
    if (enc4 != 64) 
        output = output + String.fromCharCode(chr3); 
    chr1 = chr2 = chr3 = ""; 
    enc1 = enc2 = enc3 = enc4 = ""; 
    } 
while (i < input.length); 
return output; 
}
