/*******************************************************************************
	Filename		: InlineHelp.js

	Created			: 26 July 2007 (09:46:14)
	Created by		: Arkadiusz Bartnik

	Last Updated	: 26 August 2007 (16:00:53)
	Updated by		: Arkadiusz Bartnik

	Comments		: 
*******************************************************************************/	

var helpCache = new Array(); 

function zoomInDiv (width_start, height_start, width, height) {
      width_start = width_start + 10;
      height_start = height_start + 10;
      if (width - width_start > width - 10)   {
        width_start = width;  
      }
      if (height_start - 10 > height) {
        height_start = width;  
      }
      if (width_start != width && height_start != height ) {
          document.title = 'Width='+width_start +' Height='+height_start;
          t.style.width = width_start+'px';
          t.style.height = height_start+'px';  
          setTimeout('zoomInDiv ('+width_start+', '+height_start+', '+width+', '+height+')', '200');
      }
}

function showInlineHelpDiv(e,v,catchword){
var vtop = 0
var hwidth = 0
var scrOfX = 0
var scrOfY = 0
var sizeScrOfY = document.documentElement.scrollHeight 
var sizeScrOfX = document.documentElement.scrollWidth
var showDiv = 1
var text = ''
var helpWidth_wait = 100
var helpHeight_wait = 100
var helpWidth = 300
var helpHeight = 200
var delay = 10
var width_start = 0
var height_start = 0

    if( typeof( window.pageYOffset ) == 'number' ) {
      //Netscape compliant
      scrOfY = window.pageYOffset;
      scrOfX = window.pageXOffset;
      sizeScrOfY = window.innerHeight-50;
      sizeScrOfX = window.innerWidth;
    } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
      //DOM compliant
      scrOfY = document.body.scrollTop;
      scrOfX = document.body.scrollLeft;
      sizeScrOfY = document.window.scrollHeight;
      sizeScrOfX = document.window.scrollWidth;
    } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
      //IE6 standards compliant mode
      scrOfX = document.documentElement.scrollLeft;
      scrOfY = document.documentElement.scrollTop;
      sizeScrOfY = document.body.offsetHeight+100
      sizeScrOfX = document.body.offsetWidth
    }
    var t=document.createElement("div");
    var s=document.createElement("div");
    t.className="inlinehelp_wait";
    t.style.width=helpWidth_wait+'px';
    t.style.height=helpHeight_wait+'px';
    s.className="shandow";
    s.style.width=helpWidth_wait+20+'px';
    s.style.height=helpHeight_wait+20+'px';
    s.innerHTML='jakies tlo';
    var cache = 0;
    if (typeof(helpCache[catchword]) == "undefined") {
        cache = 0;
    } else {
        cache = 1;
    }
    
        
    if (cache) {
        t.className="inlinehelp_show"; 
        t.style.width=helpWidth+'px';
        t.style.height=helpHeight+'px';
          //zoomInDiv(helpWidth_wait,helpHeight_wait,helpWidth,helpHeight,t);
        t.innerHTML=helpCache[catchword];
        s.style.width=helpWidth+20+'px';
        s.style.height=helpHeight+20+'px';
    } else {
        advAJAX.get({
            url: "/",
            timeout : 10000,
            onTimeout : function() { alert("Connection timed out."); },
            retry: 2,
            parameters : {
                q : 'InlineHelp/'+catchword
            },  
            onRetry : function() { alert("Retry connection..."); },
            onRetryDelay : function() { alert("Awaiting retry..."); },
            onSuccess : function(obj) { 
                                        t.className="inlinehelp_show"; 
                                        t.style.width=helpWidth+'px';
                                        t.style.height=helpHeight+'px';
                                          //zoomInDiv(helpWidth_wait,helpHeight_wait,helpWidth,helpHeight,t);
                                        t.innerHTML=obj.responseText;
                                        helpCache[catchword] = obj.responseText;                                        s.style.width=helpWidth+20+'px';
                                        s.style.height=helpHeight+20+'px';
                                        },
            onError : function(obj) { alert("Error: " + obj.status); }
        });
    }
    v.move=function(e){
      e=e||event;
      hleft = e.clientX+scrOfX
      if (hleft + helpWidth + 5> sizeScrOfX - 50) {        // Jezeli jest poza ekranem - na z prawej strony
        hleft = e.clientX+scrOfX - helpWidth - 40       // 
      }      
      vtop = e.clientY + scrOfY + 20
      if (e.clientY + helpHeight + 5 > sizeScrOfY) { //Jezeli jest poza ekranem - na dole
        vtop = e.clientY+scrOfY - helpHeight - 40  
      }      
      // document.title =  'vtop = ' + vtop + ' e.clientY=' + e.clientY  + ' helpHeight=' + helpHeight + ' scrOfY='+ scrOfY+ ' sizeScrOfY='+sizeScrOfY;
      t.style.left = parseInt(hleft)+10+'px'
      t.style.top = parseInt(vtop)+10+'px'
      s.style.left = parseInt(hleft)+16+'px'
      s.style.top = parseInt(vtop)+16+'px'
    }
    v.move(e);
    document.body.appendChild(t);
    document.body.appendChild(s);
    v.onmousemove=function(e){ 
      v.move(e) 
    }
    v.onmouseout=function(e) {
      if (showDiv) { 
        document.body.removeChild(t);
        document.body.removeChild(s);
        showDiv = 0;
      }
    }
}

