//----------------------------------------------------
var mrequest;
var mre = /Safari/i;
var mifsafari=mre.test(window.navigator.appVersion);
var misOP = (navigator.appName == 'Opera');
var mes_mousex;
var mes_mousey;
var message_block;
var time_hide_message;
var mtimer_stop=1;
var over_messagev=0;
var message_id;
var message_text;
var message_domain;
var majax_circle=0;
var majax_query_ok=0;
var ident_timeout;
var mloader='<div align="center" style="padding-top:5px;"><img src="../pics/loader.gif" width="32" height="32" border="0"></div>';
var mloader_status=0;

function messageDelayTimer(){
	if (mtimer_stop!=1){
		if (time_hide_message > 0) {
    	setTimeout("messageDelayTimer()",20);
    	time_hide_message--;
		}else{
			//if (message_block){
			//document.getElementById(message_block).style.display = 'none';
			document.getElementById('message_tright').style.display = 'none';
			document.getElementById('message_tleft').style.display = 'none';
			document.getElementById('message_bright').style.display = 'none';
			document.getElementById('message_bleft').style.display = 'none';
			message_block=null;
			message_text=null;
			//}
		}
	}
}
//----------------------------------------------------
function over_message(){
over_messagev=1;
show_message(message_id,message_domain);
}
//----------------------------------------------------
function show_message(mid,domain) {
var do_not_refresh_message;
var obj=document.getElementById(mid);
var x=mfindPosX(obj);
var y=mfindPosY(obj);

   mtimer_stop=1;
	if (message_id==mid){
		do_not_refresh_message=1;
	}else{
		do_not_refresh_message=0;
	}
  message_id=mid;

	if (((MgetDocumentWidth()-x)>200) && (y>=143)){
			if (x<25){
		mes_mousex=x;//-10;
			}else{
		mes_mousex=x-25;//-10;
				}
		mes_mousey=y-143;
		message_block='message_tright';
		message_text='tright_text';
	}else if (((MgetDocumentWidth()-x)<=200) && (y>=143)){
			if ((MgetDocumentWidth()-x)<25){
		mes_mousex=MgetDocumentWidth()-200;
			}else{
		mes_mousex=x-165;
				}
		mes_mousey=y-143;
		message_block='message_tleft';
		message_text='tleft_text';
	}else if (((MgetDocumentWidth()-x)>200) && (y<143)){
			if (x<25){
		mes_mousex=x;//-10;
			}else{
		mes_mousex=x-25;//-10;
				}
		mes_mousey=y+10;//+20;
		message_block='message_bright';
		message_text='bright_text';
	}else if (((MgetDocumentWidth()-x)<=200) && (y<143)){
			if ((MgetDocumentWidth()-x)<25){
		mes_mousex=MgetDocumentWidth()-200;
			}else{
		mes_mousex=x-165;
				}
		mes_mousey=y+10;//+20;
		message_block='message_bleft';
		message_text='bleft_text';
	}

	//if (navigator.appName=='Microsoft Internet Explorer'){
	//mes_mousex+=10;
	//mes_mousey+=20;
	//}

    document.getElementById(message_block).style.display = 'block';
	if (over_messagev==0){
	document.getElementById(message_block).style.left=mes_mousex+'px';
	document.getElementById(message_block).style.top=mes_mousey+'px';
	}else{
	over_messagev=0;
	}
		if (((mloader_status==1) && (majax_query_ok==1)) || (do_not_refresh_message!=1)){
//				document.getElementById('test').innerHTML+='link ajax 1<br />';
				majax_query_ok=0;
				mdoLoad(mid,domain);
		}
//---------------
}
//----------------------------------------------------
function hide_message() {
		majax_circle=0;
		majax_query_ok=1;
		clearTimeout(ident_timeout);

		time_hide_message=2;
  		mtimer_stop=0;
		messageDelayTimer();
}
//----------------------------------------------------
function mfindPosX(obj) {
    var curleft = 0;
    if (obj.offsetParent) {
        while (1) {
            curleft+=obj.offsetLeft;
            if (!obj.offsetParent) {
                break;
            }
            obj=obj.offsetParent;
        }
    } else if (obj.x) {
        curleft+=obj.x;
    }
    return curleft;
}
//----------------------------------------------------
function mfindPosY(obj) {
    var curtop = 0;
    if (obj.offsetParent) {
        while (1) {
            curtop+=obj.offsetTop;
            if (!obj.offsetParent) {
                break;
            }
            obj=obj.offsetParent;
        }
    } else if (obj.y) {
        curtop+=obj.y;
    }
    return curtop;
}
//----------------------------------------------------
function MgetDocumentWidth(){
if (misOP){
  return document.body.scrollLeft+document.body.scrollWidth;
	}else{
if (mifsafari){
  return document.body.scrollLeft+document.documentElement.scrollWidth;
}else{
  return document.documentElement.scrollLeft+document.documentElement.scrollWidth;
}
	}
}
//----------------------------------------------------
function mdoLoad(id,domain) {
//				document.getElementById('test').innerHTML+='do ajax<br />';
  message_domain=domain;
 if (window.XMLHttpRequest) {
    mrequest = new XMLHttpRequest();
    mrequest.onreadystatechange = processmrequestChange;
    mrequest.open("GET", domain+'scr/help.php?id='+id, true);
    mrequest.send(null);
  } else if (window.ActiveXObject) {
    mrequest = new ActiveXObject("Microsoft.XMLHTTP");
    if (mrequest) {
      mrequest.onreadystatechange = processmrequestChange;
      mrequest.open("GET", domain+'scr/help.php?id='+id, true);
      mrequest.send();
    }
  }
}
//----------------------------------------------------
	function verif_ajax_query() {
		if ((majax_query_ok!=1) && (majax_circle<5)){
		++majax_circle;
		mrequest.abort();
//				document.getElementById('test').innerHTML+='link ajax 2 !!!<br />';
		mdoLoad(message_id,message_domain);
		}
	}
//----------------------------------------------------
//mrequest.readyState (0-4;Uninitialized;Loading;Loaded;Interactive;Complete)
//----------------------------------------------------
function processmrequestChange() {
	ident_timeout=setTimeout("verif_ajax_query()", 8000);
// якщо виконався
  if (mrequest.readyState == 4) {
    // якщо успішно
    if (mrequest.status == 200) {
		if (message_text){
		majax_circle=0;
		majax_query_ok=1;
		clearTimeout(ident_timeout);
		mloader_status=0;
      document.getElementById(message_text).innerHTML = mrequest.responseText;
	  	}
    }
  }
  // в іншому випадку, якщо іде загрузка чи в процесі - показуєм слой "Загрузка даних"
  else if (mrequest.readyState==1) {// >= 1 && mrequest.readyState <= 3
  		if (message_text){
//	document.getElementById('test').innerHTML+='loader<br />';
    mloader_status=1;
    document.getElementById(message_text).innerHTML = mloader;
		}
  }
}
//----------------------------------------------------
  var main_timeout=5000;
  var main_timeout_identif;
  var main_verif_circle=0;
  var main_ajax_error=0;
  var main_id_result_place;
  var main_loader_block;
  var main_ajax_url;

//----------------------------------------------------
function maindoLoad(url,result_place,loader,hide_bat) {
 main_id_result_place=result_place;
 main_loader_block=loader;
 main_ajax_url=url;
 if (hide_bat)
 {
 document.getElementById(hide_bat).innerHTML ='';
 }

 if (window.XMLHttpRequest) {
    request = new XMLHttpRequest();
    request.onreadystatechange = mainprocessRequestChange;
    request.open("GET", url, true);
    request.send(null);
  } else if (window.ActiveXObject) {
    request = new ActiveXObject("Microsoft.XMLHTTP");
    if (request) {
      request.onreadystatechange = mainprocessRequestChange;
      request.open("GET", url, true);
      request.send();
    }
  }
}
//----------------------------------------------------
//request.readyState (0-4;Uninitialized;Loading;Loaded;Interactive;Complete)
//----------------------------------------------------
function mainprocessRequestChange() {
	if ( (request.readyState==1) && (!document.getElementById('loader') ) )
	{
		main_timeout_identif=setTimeout("mainverif_timer()",main_timeout);
	}

  if (request.readyState == 4) {
    // якщо успішно
    if (request.status == 200) {
		clearTimeout(main_timeout_identif);
		main_verif_circle=0;
		main_timeout=5000;
      document.getElementById(main_id_result_place).innerHTML = request.responseText;
    }
  }
  // в іншому випадку, якщо іде загрузка чи в процесі - показуєм слой "Загрузка даних"
  else if (request.readyState >= 1 && request.readyState <= 3) {
  document.getElementById(main_id_result_place).innerHTML = '<span id="loader">'+main_loader_block+'</span>';
  }
}
//----------------------------------------------------
	function mainverif_timer() {
	++main_verif_circle;
		if (main_verif_circle<5)
		{
			if (document.getElementById('loader') )
			{
			document.getElementById(main_id_result_place).innerHTML ='';
			main_timeout+=6000;
			maindoLoad(main_ajax_url,main_id_result_place,main_loader_block,'');
			}
		}
		else
		{
		clearTimeout(main_timeout_identif);
		main_verif_circle=0;
		main_timeout=5000;
		main_ajax_error=1;
		document.getElementById(main_id_result_place).innerHTML ='no connect...';
		}
	}
	
	function main_batton(num,url,result_place,loader,hide_bat)
	{
		if (1==num)
		{
			return '<div style="display:block;visibility:visible;width:18px;height:13px;background:#008000;color:#FFFFFF;margin:0px 1px 0px 3px;padding:3px;font-weight:bolder;cursor:pointer;" onClick="maindoLoad(\''+url+'\',\''+result_place+'\','+loader+',\''+hide_bat+'\')">ok</div>';
		}
		else if (2==num)
		{
			return '<div style="display:block;visibility:visible;width:18px;height:13px;background:#990000;color:#FFFFFF;margin:0px 1px 0px 3px;padding:3px;font-weight:bolder;cursor:pointer;" onClick="maindoLoad(\''+url+'\',\''+result_place+'\','+loader+',\''+hide_bat+'\')">no</div>';
		}	
	}
//----------------------------------------------------
  var mainp_id_result_place;
  var mainp_loader_block;
  var mainp_ajax_url;
  var mainp_data;
  var prequest = 0;

//----------------------------------------------------
function mainpdoLoad(url, result_place, loader, data)
{
	mainp_id_result_place = result_place;
	mainp_loader_block = loader;
	mainp_ajax_url = url;
	mainp_data = data;

        if (prequest != 0)
        {
            prequest.abort();
            prequest = 0;
        }
	
	if (window.XMLHttpRequest)
	{
		prequest = new XMLHttpRequest();
		prequest.onreadystatechange = mainpprocessRequestChange;
		prequest.open("POST", url, true);
		prequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8");
		prequest.send(data);
	}
	else if (window.ActiveXObject)
	{
		prequest = new ActiveXObject("Microsoft.XMLHTTP");
	
		if (prequest)
		{
	  		prequest.onreadystatechange = mainpprocessRequestChange;
	  		prequest.open("POST", url, true);
	  		prequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8");
	  		prequest.send(data);
		}
	}
}
//----------------------------------------------------
//request.readyState (0-4;Uninitialized;Loading;Loaded;Interactive;Complete)
//----------------------------------------------------
function mainpprocessRequestChange()
{
  if (prequest.readyState == 4)
  {
    // якщо успішно
    if (prequest.status == 200)
    {
      	document.getElementById(mainp_id_result_place).innerHTML = prequest.responseText;
    }
  }
  // в іншому випадку, якщо іде загрузка чи в процесі - показуєм слой "Загрузка даних"
  else if (prequest.readyState >= 1 && prequest.readyState <= 3)
  {
    document.getElementById(mainp_id_result_place).innerHTML = '<span id="loader">'+mainp_loader_block+'</span>';
  }
}
