


IsOnWork = false;
IsOnUnload = false;
AXI = 0;
AXL = 1;
AX_window = null;
AJAX_post='GET';
AJAX_time='';
onMap = '';
stopLoad='';
stopCheck='';
global_RES='';
global_COS=0;
global_TMS='';
MIG_time=300;

AJAX_ref_tm=50*1000;
AJAX_ref_set=false;
AJAX_ref=setTimeout("get_mess()",AJAX_ref_tm);

MESS_src='p/g/msg.wav';
MESS_time=0;
MESS_time_lim=180*1000;

function get_mess() {
	if (IsOnUnload) return;
	if (!IsOnWork) {
		var request = AJAXRequest();
		if (!request) {
			AJAX_ref=setTimeout("get_mess()",AJAX_ref_tm);
			return false;
		}
		IsOnWork = true;
		AJAX_ref_set=true;
		document.body.style.cursor = 'progress';
		request.onreadystatechange = function() { loadResult( request, '' ); }
		request.open( 'GET', 'mess.php', true );
		request = AJAXRequestHeader( request );
		request.send( null );
		AJAX_post='GET';
	} else {
		AJAX_ref=setTimeout("get_mess()",AJAX_ref_tm);
	}
}

function js_exp(f,obj) {
	if (!f||f=='') return;
	var str='';
	if (obj) {str= new String(obj.title);str='&title='+encodeURI(str);}
	window.open('/?file='+f+str);
}

function js_check_exp(obj) {
	if (obj) {
		var str= new String(obj.onclick);
		if (str.indexOf('js_exp')!=-1&&str.length>10) {obj.style.cursor='pointer';}
	}
}

function lPRI( URL ) {
	if (IsOnUnload) return;
	if (AX_window) {
		if (AX_window.closed) {
			clearTimeout( global_TMS );
			AX_window=null;
		}
	}

	if (AX_window!=null || IsOnWork) {return false;}
	AX_window=window.open('news.php?do=none&du=40','','scrollbars=yes,menubar=no,height=400,width=600,resizable=yes,toolbar=no,location=no,status=no');

	var request = AJAXRequest();
	if (!request) { AX_window=null; return false; }
	IsOnWork = true;

	var params=getPostData();

	document.body.style.cursor = 'progress';
	request.onreadystatechange = function() { loadResult( request, null ); }
	request.open( AJAX_post=='GET'?'GET':'POST', URL, true );
	request = AJAXRequestHeader( request );
	request.send( params );
	AJAX_post='GET';
}

function lS( uri, id ) {
	if (stopLoad!='' && stopLoad==stopCheck) { stopLoad=''; stopCheck=''; return; }
	stopLoad=''; stopCheck='';
	if (IsOnWork||!document.getElementById(id)) return;
	if (id!='id_text') { hideDIV('id_text'); }
	showDIV( id );
	loadAJAX( uri, id );
}

function lI( params, bl ) {

	if (IsOnUnload) return;
	if (IsOnWork) return;

	switch(bl) {
	//---not move XY;
	case 'a': if (ISshowDIV('id_psh')) break;
	//---center Y;
	case 'y':
	default:
		var mouse_c=getMouseXY();
		var tmp_x=mouse_c[0]+document.body.scrollLeft-560;
		var tmp_y=mouse_c[1]+document.body.scrollTop-175;
		if (bl=='y') { tmp_y=tmp_y+200; }

		if (tmp_x<20) {tmp_x=20;}
		if (tmp_y<20) {tmp_y=20;}
		if ((tmp_x + 550) > (document.body.scrollWidth)) {tmp_x=document.body.scrollWidth-551;}
		if ((tmp_y + 400) > (document.body.scrollHeight)) {tmp_y=document.body.scrollHeight-401;}

		if (typeof(bl)=='object' ) {
			var o=findPosByObj(bl);
			tmp_x=o[0]-560;
			tmp_y=o[1]-175;
			if (tmp_x<20) {tmp_x=20;}
			if (tmp_y<20) {tmp_y=20;}
		}
		setDIVxy('id_psh',tmp_x,tmp_y);
	}

	if (params.indexOf('?')==-1) {params+='?';} else {params+='&';}
	params+='ncaller=frame';

	document.getElementById('id_psh_name').innerHTML=G_lng[3];
	showDIV('id_psh');
	loadAJAX( params, 'psh_content');
}

function loadAJAX( URL, id ) {

	if (IsOnUnload) return;
	if (IsOnWork||!document.getElementById(id)) return;

	var request = AJAXRequest();
	if (!request) { return false; }
	IsOnWork = true;
	var params=getPostData();
	if (AXL) {
		if (AXI) {
			AXI = G_lng[0]+'<br><br>'+document.getElementById(id).innerHTML;
			document.getElementById(id).innerHTML = AXI;
		} else {
			document.getElementById(id).innerHTML = G_lng[0];
		}
	}
	AXI=0; AXL=1;
	AJAX_time=setTimeout('animateMIG()',10);

	URL=URL+'&div='+encodeURI( id );

	document.body.style.cursor = 'progress';
	request.onreadystatechange = function() { loadResult( request, id ); }
	request.open( AJAX_post=='GET'?'GET':'POST', URL, true );
	request = AJAXRequestHeader( request );
	request.send( params );
	AJAX_post='GET';
}

function getPostData() {
	if (AJAX_post=='GET') return null;
	var tmp=AJAX_post.split(';');
	var params='';
	var ids='';
	var data='';
	for (var i=0;i<tmp.length;i++) {
		ids=document.getElementById(tmp[i]);
		if (ids) {
			if (params!='') params+='&';
			switch (ids.type) {
				case 'checkbox': data=ids.checked; break;
				case 'radio': if (ids.checked) {data='1';} else {data='0';} break;
				case 'hidden':
				case 'password':
				case 'textarea':
				case 'text': data=ids.value; 
					data=data.replace(/\+/g,String.fromCharCode(21));
					data=data.replace(/\&/g,String.fromCharCode(22));
					break;
				case 'select-one':
					data='';
					var ll=document.getElementById(tmp[i]).options.length;
					if (ll>0) {data=document.getElementById(tmp[i]).options[document.getElementById(tmp[i]).selectedIndex].value;}
					data=data.replace(/\+/g,String.fromCharCode(21));
					data=data.replace(/\&/g,String.fromCharCode(22));
					break;
				default: data='';
			}
			params+=tmp[i]+'='+encodeURI( data );
		}
	}
	return params;
}

function loadResult( request, id ) {
	if ( request.readyState == 4 ) {
		IsOnWork = false;
		document.body.style.cursor = 'default';
		id=document.getElementById(id);
		if (id) {
			if ( request.status == 200 ) {
				var response=request.responseText;
				if (response=='') {response=' ';}
				if (response.indexOf('Maximum execution time of 30 seconds exceeded')!=-1) {
					id.innerHTML = G_lng[1];
				} else {
					if (response.indexOf('<noscript>')!=-1&&response.indexOf('</noscript>')!=-1) {
						var noscr=response.substring( response.indexOf("<noscript>")+10,response.indexOf("</noscript>",response.indexOf("<noscript>")+10) );
						var clearscr=response.substring( response.indexOf("<noscript>"),response.indexOf("</noscript>",response.indexOf("<noscript>"))+11 );
						response=response.replace(clearscr,'');
						AJAX_refresh(noscr);
					} else {AJAX_refresh(0);}
					id.innerHTML = response;
					if (response.indexOf('<script>')!=-1&&response.indexOf('</script>')!=-1) {
						var scr=response.substring( response.indexOf("<script>")+8,response.indexOf("</script>",response.indexOf("<script>")+8) );
						eval(scr);
					}
				}
			} else {
				clearTimeout(AJAX_time);
				hideDIV('id_mig');
				var old=id.innerHTML;
				if ( old.indexOf(G_lng[0]) != -1 ) { old=old.substring( old.indexOf(G_lng[0])+G_lng[0].length ); }
				if ( old.indexOf(G_lng[1]) != -1 ) { old=old.substring( old.indexOf(G_lng[1])+G_lng[1].length ); }
				id.innerHTML = G_lng[1]+'<br><br>'+old;
			}
			id.style.display = 'block';
			id.scrollLeft = 0+'px';
			id.scrollTop = 0+'px';
		} else {
			if ( request.status == 200 ) {
				var response=request.responseText;
				if (response=='') {response=' ';}

				//---mess ref;
				if (response.indexOf('<noscript>')!=-1&&response.indexOf('</noscript>')!=-1) {
					var noscr=response.substring( response.indexOf("<noscript>")+10,response.indexOf("</noscript>",response.indexOf("<noscript>")+10) );
					AJAX_refresh(noscr);
				} else {
					if (AJAX_ref_set) {AJAX_refresh(0);}
				}

				//---print ref;
				if (response.indexOf('Maximum execution time of 30 seconds exceeded')!=-1) {
					//---blank error;
				} else {
					//---AX_window;
					if (AX_window) {
						global_RES = response;
						global_COS = 30*1;//---* max minutes wait;
						global_TMS = setTimeout('tryInsert()',2000);
					}
				}
			}
		}
		clearTimeout(AJAX_time);
		if (AJAX_ref_set) {
			AJAX_ref_set=false;
			clearTimeout(AJAX_ref);
			AJAX_ref=setTimeout("get_mess()",AJAX_ref_tm);
		}
	}
	AXI=0; AXL=1;
}

function tryInsert(){
	if (AX_window) {
		if (AX_window.closed) {
			AX_window=null;
			return;
		}
		var id=AX_window.document.getElementById('none');
		if (id) {
			id.innerHTML = global_RES;
			AX_window=null;
		} else {
			global_COS--;
			if (global_COS>0) {
				global_TMS = setTimeout('tryInsert()',2000);
			} else {
				AX_window=null;
				alert(G_lng[9]);
			}
		}
	}
}

function AJAX_refresh(cont){
function write_count(id,c,a){
	var obj=document.getElementById(id);
	if (obj) {
		if (c>0) {
			var v_click='onclick="lI(\'comm.php?do=mess&old=1\',\''+a+'\')" title="'+G_lng[8]+' ('+c+')"';
			obj.innerHTML='<div style="LF"><img src="p/g/mail_blink.gif" class="iMB" '+v_click+'></div>';
			var tmp=new Date().getTime();
			if (tmp > MESS_time_lim+MESS_time) {
				var sd=document.getElementById('mess_sound');
				sd.src='';
				sd.src=MESS_src;
				MESS_time=tmp;
			}
		} else {obj.innerHTML='';MESS_time=0;document.getElementById('mess_sound').src='';}
	}
}
	var news=parseInt(cont,10);
	write_count('ref_up',news,'aj_open');
	write_count('ref_win',news,'a');
}

function animateMIG() {
	var mig=document.getElementById('id_mig');
	if (mig) {
		if (mig.style.visibility == 'visible') {mig.style.visibility='hidden';}
			else {mig.style.visibility='visible';}
		AJAX_time=setTimeout('animateMIG()',MIG_time);
	}
}

function AJAXRequestHeader(request) {
	request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	request.setRequestHeader('Expires','Sat, 1 Jan 2005 05:00:00 GMT');
	request.setRequestHeader('Last-Modified','Sat, 1 Jan 2005 05:00:00 GMT');
	request.setRequestHeader('Pragma','no-cache');
	request.setRequestHeader('Cache-Control', 'no-cache');
	request.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT');
	return request;
}

function AJAXRequest() {
	var request = null;
	if(!request) try {
		request=new ActiveXObject('Msxml2.XMLHTTP');
	} catch (e){}
	if(!request) try {
		request=new ActiveXObject('Microsoft.XMLHTTP');
	} catch (e){}
	if(!request) try {
		request=new XMLHttpRequest();
	} catch (e){}
	if(!request) {
		alert(G_lng[2]);
	}
	return request;
}

function urlEncodeData(data) {
	var query = [];
	if (data instanceof Object) {
		for (var k in data) {
			query.push(encodeURIComponent(k) + "=" + encodeURIComponent(data[k]));
		}
		return query.join('&');
	} else {
		return encodeURIComponent(data);
	}
}
