//
// copyright (c) adiulici - http://www.adiulici.com
//
// <div id='floating_div' style='position:absolute;display:none;z-index:999;white-space:nowrap'></div>
// <input type='hidden' id='focused_el' value=''>
//

window.onresize = function (){
 if(document.getElementById('floating_div').style.display!=='none') {
   document.getElementById('floating_div').style.display='none';
 }
 if(document.getElementById('focused_el').value!=='') {
  	blur_it=document.getElementById('focused_el').value;
    document.getElementById(blur_it).blur();
  }
}

function float_div(text,type,width,background,border,padding) {
  divName='floating_div';
  if(document.getElementById('focused_el').value!=='') {
  	blur_it=document.getElementById('focused_el').value;
		document.getElementById(blur_it).blur();
  }
  if(width) document.getElementById(divName).style.whiteSpace='normal';
  else document.getElementById(divName).style.whiteSpace='nowrap';
  
  if(type=='default') {
  	border='border:1px solid #000000;';
    background='background:#ffffff;';
    padding='padding:2px;';
  }
  else {
    if(border) border='border:'+border+';'; else border='';
    if(background) background='background:'+background+';'; else background='';
    if(padding) padding='padding:'+padding+';'; else padding='padding:0px';
  }
  if(width) width2='width:'+width+';'; else width2='';
  if(type=='image') {
  	text='<img src="'+text+'" alt="">';
  }
  text="<div style='"+border+background+padding+width2+";margin:0px;'>"+text+"</div>";
  document.getElementById(divName).innerHTML=text;
  var offX = 16;
  var offY = 6;
  function mouseX(evt) {
  	if (!evt) evt = window.event; 
    if (evt.pageX) return evt.pageX; 
    else if (evt.clientX) return evt.clientX + (document.documentElement.scrollLeft ?  document.documentElement.scrollLeft : document.body.scrollLeft); 
    else return 0;
  }
  function mouseY(evt) {
  	if (!evt) evt = window.event; 
    if (evt.pageY) return evt.pageY; 
    else if (evt.clientY) return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop); 
    else return 0;}
  function follow(evt) {
	  document.getElementById(divName).style.display='block';
    document.getElementById(divName).focus();
  	if(width=='' || width==null) width=document.getElementById(divName).offsetWidth;
	  height=document.getElementById(divName).offsetHeight;
  	if (document.getElementById) {var obj = document.getElementById(divName).style; obj.visibility = 'visible';
    if (document.all)	{ navWidth=document.body.clientWidth; navHeight=document.body.clientHeight; }
		else { navWidth=window.innerWidth; navHeight=window.innerHeight; }
    posL=parseInt(mouseX(evt))+offX;
    posT=parseInt(mouseY(evt))+offY;
    scrL=document.body.scrollLeft;
    scrT=document.body.scrollTop;
    //if(posL-scrL>navWidth-width-20) posL=navWidth-(width*2)-20+scrL;
    if(posL-scrL>navWidth-width-19) posL=posL-width-offX*2+5;
    if(posT-scrT>navHeight-height-19) posT=posT-height-offY*2+5;
 	  obj.left = (posL) + 'px';
	  obj.top = (posT) + 'px';}
  }
  document.onmousemove = follow;
}

function getElementPosition(elemID){
  var offsetTrail = document.getElementById(elemID);
  var offsetLeft = 0;
  var offsetTop = 0;
  while (offsetTrail){
  offsetLeft += offsetTrail.offsetLeft;
  offsetTop += offsetTrail.offsetTop;
  offsetTrail = offsetTrail.offsetParent;
  }
  if (navigator.userAgent.indexOf('Mac') != -1 && typeof document.body.leftMargin != 'undefined'){
  offsetLeft += document.body.leftMargin;
  offsetTop += document.body.topMargin;
  }
  return {left:offsetLeft,top:offsetTop};
}

function float_div_input(input,text,width,background,border,padding) {
  divName='floating_div';
  if(width) document.getElementById(divName).style.whiteSpace='normal';
  else document.getElementById(divName).style.whiteSpace='nowrap';
  
  document.getElementById('focused_el').value=input;
  inp=document.getElementById(input);
  if(border) border='border:'+border; else border='border:1px solid #000000';
  if(background) background='background:'+background; else background='background:#ffffff';
  if(padding) padding='padding:'+padding+';'; else padding='padding:3px';
  if(width) width2='width:'+width+';'; else width2='';
  var arr_border=border.slice(-6);
  var arr_fill=background.slice(-6);
  var arrow=new Image();
  arrow.src="inc/arrow.php?arr_border="+arr_border+"&arr_fill="+arr_fill+"";
  text="<img src='inc/arrow.php?arr_border="+arr_border+"&arr_fill="+arr_fill+"' width='4' height='5' alt='' style='position:absolute;float:left;top:6px;z-index:901'>"+
			 "<div style='"+border+";"+background+";"+padding+width2+";margin-left:3px;position:absolute;z-index:900'>"+text+"</div>";
  document.getElementById(divName).innerHTML=text;
  var offX = inp.offsetWidth+5;
  var offY = 0;
  
	elemX=getElementPosition(input).left;
	elemY=getElementPosition(input).top;

  document.getElementById(divName).style.display='block';
	if(width=='' || width==null) width=document.getElementById(divName).offsetWidth;
  height=document.getElementById(divName).offsetHeight;
	if (document.getElementById) {var obj = document.getElementById(divName).style; obj.visibility = 'visible';
  if (document.all)	{ navWidth=document.body.clientWidth; navHeight=document.body.clientHeight; }
	else { navWidth=window.innerWidth; navHeight=window.innerHeight; }
  posL=parseInt(elemX)+offX;
  posT=parseInt(elemY)+offY;
  scrL=document.body.scrollLeft;
  scrT=document.body.scrollTop;
  //if(posL-scrL>navWidth-width-19) posL=posL-width-offX*2+5;
  //if(posT-scrT>navHeight-height-19) posT=posT-height-offY*2+5;
  obj.left = (posL) + 'px';
  obj.top = (posT) + 'px';}
}

function stop_float() {
  divName='floating_div';
  if(document.getElementById('focused_el').value!=='') { document.getElementById('focused_el').value=''; }
  dv=document.getElementById(divName);
  dv.innerHTML="";
  dv.style.display='none';
	document.onmousemove="";
}

function stop_float_input() {
  divName='floating_div';
  dv=document.getElementById(divName);
  //dv.innerHTML="";
  dv.style.display='none';
  document.getElementById('focused_el').value='';
}