// JavaScript Document

String.prototype.encodeHTML=function(){ // v2005-09-18
var re=this; re=re.replace(/&/g, ';a;'); re=re.replace(/\'/g, ';c;');re=re.replace(/\=/g, ';e;');re=re.replace(/\</g, ';l;');re=re.replace(/\>/g, ';g;'); return re;
}

String.prototype.decodeHTML=function(){ // v2005-09-18
var re=this; re=re.replace(/;a;/g, '&');re=re.replace(/;c;/g, '\'');re=re.replace(/;e;/g, '='); re=re.replace(/;l;/g, '&lt;');  re=re.replace(/;g;/g, '&gt;'); 
re=re.replace(/\</g, '&lt;');  re=re.replace(/\>/g, '&gt;');
return re;
}

//function exist
var _fe = function(o) { return typeof(o) == 'function' && (!Function.prototype.call || typeof(o.call) == 'function');};

var navType=Array();
navType['mo']='Mozilla';
navType['ie']='Internet Explorer';
navType['mz']='Firefox';
navType['op']='Opera';
navType['sa']='Safari';
navType['go']='Google Chrome';
navType['ns']='NetScape';
navType['ka']='K-Meleon';
navType['ep']='Epiphany';
navType['ic']='Iceweasel';
navType['ko']='Konqueror';
navType['av']='Avant';
navType['ls']='Lunascape';
navType['uk']='Desconocido';


// functions
function opac(o,w){
	o=_ob(o);
	o.style.opacity = w/10;
	o.style.filter = 'alpha(opacity=' + w*10 + ')';
}

var IE = (document.all)?true:false;;
String.prototype.trim = function() { return this.replace(/^\s+|\s+$/, ''); };
var T=true, F=false, N=null, NO='none';
function _ce(w,o){ o = _dz(o); return o.createElement(w); } 							// createElement.
function _ac(o,w){ o = _oz(o); try{ o.appendChild(w); } catch (e) { alert(e) } }		// appendChild.
function _dz(o){ return (o!=N)?o:document;} 											// Doctze
function _oz(o){ return (o==document)?o.getElementsByTagName("body")[0]:o; }			// Ojtze
function _ez(e) {return (typeof event=='undefined')?e:event;}							// evetze
function _sa(o,a,v){ if (o=_ob(o)) o.setAttribute(a,v);}												// setAttribute.
function _ga(o,a){ if (o=_ob(o)) return o.getAttribute(a);}											// getAttribute.
function _gi(w) { a = w.split('p'); return parseInt(a[0]);}								// getInteger
function _gzi(o) { if (o=_ob(o)) return o.style.zIndex; }												// get-zIndex	
function _szi(o,v) { o.style.zIndex=v; }												// set-zIndex	
function _ge(o,v) { return o.getElementsByTagName(v); }									// getElements
function _rm(o) {if (o=_ob(o)){  if(o.parentNode) o.parentNode.removeChild(o); }}									// removeChild
function _ib(o,w,i) { if (o=_ob(o)) o.insertBefore(w,i); } 											// insertBefore
function _os(e){ var w =e.srcElement?e.srcElement:e.target;	return w; }					// object sel
function _al(ar){ var c=0; for (var it in ar) c++; return c; }							// array len
function _gv(o){return _ob(o).value} 													// get value

//splits

function _sp(w){ if (w==null) return Array(); var ret=Array(); var mprop=w.split("\&"); for (var it in mprop){ var res = mprop[it].split("="); {var ind=res.shift(); var rest=res.join("=")} ret[ind]=rest;} return ret; }

function _st(w){ var ret=Array(); var mprop=w.split(";"); for (var it in mprop){ var res = mprop[it].split(":"); if (res[1]) ret[res[0]]=res[1];} return ret; }

//ret image
function _ri(src,w1,h1){ var w=w1!=N?' width="'+w1+'"':''; var h=h1!=N?' height="'+h1+'"':''; return '<img align="absmiddle" src="img/'+src.toLowerCase()+'"'+w+h+'>';}

function _xcn(x){ return x.childNodes; } // chilnodes
function _ns(x){ x=x.nextSibling; while (x && x.tagName==null){ x=x.nextSibling;} return x; } // next
function _ps(x){ x=x.previousSibling; while (x && x.tagName==null){ x=x.previousSibling;} return x; } // prev
function _cn(o,c) {if(o=_ob(o)) o.className=c} // className
function _gcn(o) {return o.className} // className
function _ih(o,c) {if(o=_ob(o)) { o.innerHTML=c} }// inner

// childnum
function _byn(x,n){ h=_xcn(x)[0]; var c=0; while (h.tagName==null || c!=n){if (h.tagName!=null) c++; h=h.nextSibling;} return h; }
function _cl(t,c){ return "<span class=\""+c+"\">"+t+"</span>";} // clazse;

function _tx(w){ return w.innerText?w.innerText:w.textContent; }// innerText	

// cookies 
function _scv(name,value,days) {if (!days) days=7;	var date = new Date();	date.setTime(date.getTime()+(days*24*60*60*1000));
var expires = "; expires="+date.toGMTString();	document.cookie = name+"="+value+expires+"; path=/";}
function _gcv(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 _go(o) { // getObject
var ex=document.getElementById(o);
if (!ex){
	var ai = document.getElementsByTagName('iframe');
	for (var i=0; i < ai.length;i++) { 
		var exe = 'ex='+ai[i].id+(!IE?".contentWindow":"")+'.document.getElementById(o)';
		try { eval(exe); } catch(e){ try { eval('ex='+ai[i].id+"."+o);} catch(e1){} }
		if(ex) break;
	}
}
return ex; 
}								

function _tv(o){ if (o.value) return o.value; else return o;}

function _p1(o,c) {	if (c==null) c=1; for (var i=0; i<c; i++) o=o.parentNode;	return o;} // parent
// parent tag
function _tp(o,q) { if (o.tagName==null) return false; else if(o.tagName==q) return o; else return _tp(_p1(o),q); }

function _ck(e) { if (e.which) return e.which; else return e.button;}  //button press

function _co(e) { //coor
	var xx = 0;var yy = 0;
	if (e.pageX){xx = e.pageX; yy = e.pageY;
	}else if (e.clientX){ xx = e.clientX + document.body.scrollLeft	+ document.documentElement.scrollLeft;
		yy = e.clientY + document.body.scrollTop+ document.documentElement.scrollTop;
	} return xx+","+yy;
}


function _chl(o){ // chl
  var mob=o, c=-1, total=0;
  if (_chl.arguments[1]==null) { _chl.arguments[1]=0; _chl.arguments.length=2}
  for (var i=1; i<_chl.arguments.length; i++){  p=0;c=-1;
	 if (mob.childNodes.length==0) return null;
	  do {	mob1=mob.childNodes[p++];
	  try {
	  if (mob1.tagName) c++;
	  } catch(e){
		c++;  
	 	}
	  } while (c<_chl.arguments[i])
  mob = mob1 } return mob;}


function _di(w){ var o=null;for (var i=1; i<_di.arguments.length; i++){ // disabled
if (o =	_ob(_di.arguments[i])) o.disabled=w }}

function _dp(w) {	var o=null; 	for (var i=1; i<_dp.arguments.length; i++){ //display
if (o =	_ob(_dp.arguments[i])) o.style.display=w; }} 	

function _ob(o){ if (typeof(o)!='object') o=_go(o);  return o;} // str o obj to obj

function _vi(w) { var o=null;	for (var i=1; i<_vi.arguments.length; i++){ //visibility
if (o =	_ob(_vi.arguments[i])) o.style.visibility=w ; 	}} 	


function _re(){ var o=null, re=''; 	for (var i=0; i<_re.arguments.length; i++){ // values from objs
if (o =	_ob(_re.arguments[i]))va=o.type=="checkbox"?o.checked:o.value;
re+=o.id+"="+va+";";	} return re;}

function _pv(){ var o=null, re=''; // objs query
var de='';
 	for (var i=0; i<_pv.arguments.length; i++){
		if (o =	_ob(_pv.arguments[i])){
		re+=(re==''?'':'&'); re+=o.id+"="+o.value.trim();	} else {
		eval('de='+_pv.arguments[i]);
		re+=(re==''?'':'&'); re+=_pv.arguments[i]+"="+de;		
			}
 	} return re; }



function _wi(o){ o=_ob(o);	return o.offsetWidth; }
function _he(o){ o=_ob(o);	return o.offsetHeight; }

function _ws(o){ o=_ob(o);  return o.scrollWidth; }
function _ww(o){ o=_ob(o);  return o.width; }

// deprecates functions 

//function _qr(ar){ var re=''; for (i in ar){ re+=(re==''?'':'&'); re+=i+"="+ar[i];} return re;}
//function _at(o,n) {if (n==null) return o.attributes; else return o.attributes[n]}

function callScript(id, src) {     
	var head = document.getElementsByTagName('head')[0]; 
	var old  = _ob(id); 
	if (old) head.removeChild(old); 
	var script =  _ce("script");
	//script.src = src+'?'+Math.random(); 
	script.src = src;//+'?'+Math.random(); 
	script.type = 'text/javascript'; 
	script.language = "JavaScript1.2";
	script.defer = true;
	script.id = id;
	void(head.appendChild(script)); 
}


function tit(w){
	document.title=w;
}



////////////////////////////////////////////////////////////////////
//////////////////////////// AJAX //////////////////////////////////

function oAJAX(u,c,e){
	
	var call=c;
	var url=u;
	var cerr=e;
	var req=null;
	var callco=null;
	
	this.send = function (query,cccp,p,c1,u1,e1) {  //query, post, call, url, error
		req=reqObj();
		if (p==null) p="POST";
		if (c1!=null) call=c1; else c1=call;
		if (u1!=null) url =u1; else u1=url;
		if (e1!=null) cerr =e1; else e1=cerr;
		req.onreadystatechange = function () {
			
			if(req.readyState == 4) {
				if(req.status == 200) {
					var itm = req.responseText;
					call(itm,cccp);
					
				} else  { 
					cerr();
				} 
		}	
		} 
		req.open(p, u1,true); 
		req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); 
		ms=nnow();
		req.send(query);
		
	}
	function reqObj() {
		try { mr = new XMLHttpRequest(); } catch(err1) {
		try { mr = new ActiveXObject('Msxml2.XMLHTTP'); } catch (err2) {
		try { mr = new ActiveXObject("Microsoft.XMLHTTP"); } catch (err3) {
		mr = false; } } }  return mr;
	}
}

function inError(){
	
}

//  SENDING () ///////////////////////////////////////////////////

var mstt="";
function showc(w1,w2,w3){
	var v1,v2;
	if (w1==0)  v1='none'; else v1='';
	if (w2==0)  v2='none'; else v2='';
	if (w3==0)  v3='none'; else v3='';
	if (w1!=null) _dp(v1,'impc');
	if (w2!=null) _dp(v2,'imsat');
	if (w3!=null) _dp(v3,'imant');
	
	var fs='r&aacute;pido'; fs=(tms>2)?'normal':fs;fs=(tms>5)?'lento':fs;
	
	//var ww=mstt+"<br>"+tms+" s ("+fs+")" ;
	_ih('ms1',mstt);
	_ih('ms2',tms);
	//_ih('ms3',fal);
	//_dp(v1,'ids');_dp(v2,'icn');
}

function llegada(w,cccp){
	
	//if (ier==1 || oln==-1) showc(0); // icono de con/des
	iin=0; ico=0; ier=0;
	var prs=w.split("\r\n");
	if (cccp==ctrl){
		tms=(nnow()-ms)/1000;
		runall(prs);
		mstt="CONECTADO"; showc(0,0,0); 
	}
	
	
}

var comm=Array();
var comx=0,cocc=0;


function runco(){
	if(cocc!=comx) {
		cocc++; cocc=(cocc>400)?0:cocc;
		var toe=comm[cocc];
		try {	
			eval(toe);
			//alert(toe)
		} catch(e){
			seeerr(toe);
		}
		var rtim=(toe.indexOf('listuser')==-1)?(Math.random()*200+100):0;
		//var rtim=Math.random()*200+100;
		if (rtim==0) runco();
		else setTimeout('runco()',rtim);
	}	
}

function runall(prs){
	
	for(var t=0; t<prs.length;++t){
		comx++; comx=(comx>400)?0:comx;
		comm[comx]=prs[t];
	} 
	
	runco();
	
	
}

function seeerr(ee){
	//alert(ee)
	if (me!=null){
		if ((me.priv&128)==128){
			 var tx='<a class="system">*** <b>ERROR:</b> '+ee+"</a><br> ";
			 writetxt('*',tx);
		}
	}
}

function infoerror(w){
	mstt="ERROR"; showc(0,0,1); 
	iin=0; ico=0; ier=1;
}


/////////////////////////////////////////////////

var ifo="",noi=0,sei=0,oln=0;
var iin=0, ico=0, ier=0, svr=0;

function addinfo(m,q,i){
	if (i==null) { noi++; i=noi }
	ifo+=(ifo!="")?"|":""; 
	ifo+='i='+i+'&'+m;
	if(q==1) sendinfo();

}

var ctrl=0,ms=0,tms=0; wo=F; 
function sendinfo(){

	if (oln==1) {
		ifo+="|i=0&a=ping&svr="+svr;
		if (_gv('txMess')!='' && dest!='*' && wo==F){
			wo=T;
			ifo+="&|a=writeon&dest="+dest;
		}
		
	}
	var qr="data="+escape(ifo);
	//if (me!=null) writetxt(me.user,"---->"+ifo);
	ctrl++;
	showc(1);
	ico=0;	iin=1; //ier=0;
	AJAX.send(qr,ctrl);
	
}

function revived(q){
	//alert("rev="+q)
	var ar=ifo.split('\|'),ret='';
	for(var t=0; t<ar.length;t++){
		var io=_sp(ar[t]);
		if (io.i>q && io.i!=0) { ret+=(ret=='')?'':'|';ret+=ar[t]; }
	} ifo=ret;
	//alert(ifo);
}

////////////////////////////////////////////////
var coue=0;
function lookinterval(){
	
	checktimer();
	ico++;
	
	//var tx="ico: "+ ico +" - iin: "+iin+" - ier: "+ier ;
	//_ih('txt1',tx);
	
	var ve=7; if (thefast==4) ve=3; if (thefast==5) ve=0;
	if (ier==1 && iin==0) { // hay error
		if (ico>5) { // reintentar a los 3 seg
			sendinfo(); 
		}
	} else if(iin==1){ // fue enviado ya
		if (ico>15) { // respuesta retrazada;
			mstt="RETRASADO"; showc(null,1); 
			sendinfo();
		}
	} else {
		if (ifo!='') { // envio normal
			sendinfo();
		} else if (oln==1 && ico>(5+ve)){
			sendinfo();
		}
	}
	//var fal=((5+ve)-ico)+'';fal='';
	var fal='';
	if (mstt!='CONECTADO'){
		fal=(300-coue);
		coue++;
	} else {
		coue=0;
	}
	_ih('ms3',fal);
	
}


function nnow(){
	var da = new Date();
	return da.getTime();	
}

/*document.onclick = function(){ removelm()}
function removelm(){
if (objmenu!=null) _rm(objmenu); objmenu=null;	
}*/

function strip(html){

   var tmp = document.createElement("DIV");
   tmp.innerHTML = html;
  	if (IE) return tmp.textContent||tmp.innerText;
	else return _tx(tmp);
   
}
function long2ip ( proper_address ) {
var output = false; if ( !isNaN( proper_address ) && ( proper_address >= 0 || proper_address <= 4294967295 ) ) {
output = Math.floor(proper_address / Math.pow( 256, 3 ) ) + '.' + Math.floor( ( proper_address % Math.pow( 256, 3 ) ) / Math.pow( 256, 2 ) ) + '.' + Math.floor( ( ( proper_address % Math.pow( 256, 3 ) )  % Math.pow( 256, 2 ) ) / Math.pow( 256, 1 ) ) + '.' + Math.floor( ( ( ( proper_address % Math.pow( 256, 3 ) ) % Math.pow( 256, 2 ) ) % Math.pow( 256, 1 ) ) / Math.pow( 256, 0 ) );
}  return output;}

function _gdp(o) { return o.style.display}
