function $(v,o) { return((typeof(o)=='object'?o:document).getElementById(v)); }

function mouseCoords (ev){
        if(ev.pageX || ev.pageY){
            return {x:ev.pageX, y:ev.pageY};
        }
        return {
        	x:event.clientX+document.documentElement.scrollLeft,
        	y:event.clientY+document.documentElement.scrollTop
        };
}


function set_img_position()
{
	if ($('selected_img')!=undefined) {
		if (document.documentElement.scrollTop==undefined)
			y_scroll=window.pageYOffset;
		else
			y_scroll=document.documentElement.scrollTop;

		if (document.documentElement.scrollLeft==undefined)
			x_scroll=window.pageXOffset;
		else
			x_scroll=document.documentElement.scrollLeft;

			
		if (($('box_mouse').offsetTop+$('selected_img').offsetHeight)+20 > ar_x_y[1]+y_scroll)
			$('box_mouse').style.top=mouse_y-10-$('selected_img').offsetHeight+'px';
		else
			$('box_mouse').style.top=mouse_y+10+'px';
			
			
		if (($('box_mouse').offsetLeft+$('selected_img').offsetWidth)+20 > ar_x_y[0]+x_scroll) {
			$('box_mouse').style.left=mouse_x-30-$('selected_img').offsetWidth+'px';
		}
		else {
			$('box_mouse').style.left=(mouse_x+10)+'px';
		}
	}
}


function mousemove(ev) {
	ev=ev||event;
	m=mouseCoords(ev);
	mouse_x=m.x;
	mouse_y=m.y;
	
	if ((!box_flag) || (img_ar[box_flag]=='')) {
	  $('box_mouse').style.display='none';
	  return;
	}
	if (box_flag) {
		$('box_mouse').style.display='';
		$('box_mouse').style.left=(m.x+10)+'px';
		$('box_mouse').style.top=(m.y+10)+'px';
		if (box_flag_old!=box_flag) { //we don't like to reload query each pixel
		  var loading="<img src=\""+document.forms.param_form_box.folder_path.value+"images/loading.gif\"><br>";
		  if (img_ar[box_flag]==undefined) {
			  $('box_mouse').innerHTML=loading;
		  	makeRequest(document.forms.param_form_box.folder_path.value+'ajax_box.php?box_flag='+encodeURIComponent(box_flag)+'&rnd='+Math.random(),boxCallback);
		  }
		  else {
		  	$('box_mouse').innerHTML='<img id="selected_img" src="'+img_ar[box_flag]+'" onload="set_img_position();">';
		  	set_img_position();
		  }
		  box_flag_old=box_flag;
		 }
		else {
			if (img_ar[box_flag]!=undefined)
				set_img_position(); 	
		}
	}
}


function boxCallback() {
 //if (typeof(http_request)=='undefined')  return;
 try {  
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
          var t=http_request.responseText;
          if (t!='') {
          	ar=t.split(';');
          	if (ar.length==2) {
          		if (img_ar[ar[0]]==undefined)
          			img_ar[ar[0]]=ar[1];
          		if (ar[1]!='') {
          			$('box_mouse').innerHTML='<img id="selected_img" src="'+ar[1]+'" onload="set_img_position();">';
          			ar_x_y=alertSize();
          		}
          		else
          			$('box_mouse').style.display='none';
          	}
          }
          else
          	$('box_mouse').style.display='none';
        } else {
            //alert('There was a problem with the request. '+http_request.status);
        }
    }
 }    //try
 catch (e) {}
 
}
	


function init_box_mouse() {
	box_flag='';
	box_flag_old='';
	img_ar=new Array();
	mouse_x=0;
	mouse_y=0;
	$('category_list').onmousemove = mousemove;
}

