
     /*
      ************************
        viz popisek u funkce nahled, pirpadne upravit hodnoty na konci skriptu v 'upravit podle potreby'
      ************************
     */

     if(window.send_xmlhttprequest == undefined )
     {
        // provede xmlhttp pozadavek pres GET na zadanou url, a preda vytvoreny objekt prislusne callback funkci
        function send_xmlhttprequest(callback, url, content) {
            
            var http_request;
            // vytvoreni objektu xmlHttpRequest
            if (window.XMLHttpRequest) { // gecko based
              http_request = new XMLHttpRequest();
            } else if (window.ActiveXObject) {
              try {
                http_request = new ActiveXObject("Msxml2.XMLHTTP");
              } catch (e) {
                try {
                  http_request = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
              }
            }
            
            if (!http_request) {
               alert('Vas prohlizec nepodporuje objekt XMLHttpRequest, komponenta stranek nebude fungovat!');
               return false;
            }
        
            http_request.open('GET', url);
            http_request.onreadystatechange = function() {
               callback(http_request);
            };
        
            http_request.send(content);
            return true;
        }
     }   
      
      
      if(window.captureMousePosition == undefined )  
      {
        // hlida pozici mysi
        function captureMousePosition(e)
        {
              if(!hlidej) {
                return;
              }
              
              /* insired by http://www.quirksmode.org/js/events_properties.html */
              if (!e) var e = window.event;
            	// gecko vetev
              if (e.pageX || e.pageY) 	{
            		//relativni vzdalenost k document -- podle ni se nastavuje styl pro nahled
                xMousePos = e.pageX;
            		yMousePos = e.pageY;            		
            		//screensize -- proti nemu se kontroluje aby nedelalo nahled mimo obrazovku
            		//xScreen = window.innerWidth;
            		xScreen = (window.innerWidth/2) + (1000/2);//zarazí se o hranu stránky, ne obrazovky (střed obrazovky+půl stránky)
            		//xScreen = window.innerWidth - (window.innerWidth - 1000/2);//zarazí se o hranu stránky, ne obrazovky (střed obrazovky+půl stránky)
            		yScreen = window.innerHeight;
            		//relativni vzdalenost k screen -- podle nej se hlida aby nedelalo nahled mimo obrazovku
            		xScreenPos = e.clientX;
            		yScreenPos = e.clientY;
            	}
            	// ie like vetev
            	else if (e.clientX || e.clientY) 	{
            	  //relativni vzdalenost k document
            		xMousePos = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
            		yMousePos = e.clientY + document.body.scrollTop	 + document.documentElement.scrollTop;
            		//screensize
            		//xScreen = document.body.clientWidth;
            		xScreen = (document.body.clientWidth/2)+(1000/2);//zarazí se o hranu stránky, ne obrazovky (střed obrazovky+půl stránky)
            		//xScreen = document.body.clientWidth - (document.body.clientWidth - 1000/2);//zarazí se o hranu stránky, ne obrazovky (střed obrazovky+půl stránky)
            		yScreen = document.body.clientHeight;
            		//relativni vzdalenost k screen
            		xScreenPos = e.clientX +  document.documentElement.scrollLeft;;
            		yScreenPos = e.clientY +  document.documentElement.scrollTop;
            		
            	}
              
              // posunuti odvisla od nastaveni uzivatele
              if (is_ie) {    
                   yMousePos += yIE;
                   xMousePos += xIE;
              } else if (is_gecko) {
                   yMousePos += yGecko;
                   xMousePos += xGecko;
              }
              
              var nahled = document.getElementById(ajaxNahled);
              // aby to nehybalo schovanym/neexistujicim divem - zpusobovalo roztahovani okna pri najeti ke kraji
              if(nahled != null && nahled.style.visibility != 'hidden')
              {
                //kontrola aby nevytvarelo nahled mimo obrazovku
                var sirka = parseInt(nahled.style.width) ?  parseInt(nahled.style.width) : defX;
                var vyska = parseInt(nahled.style.height) ?  parseInt(nahled.style.height) : defY;
                //window.status = sirka + ', width: ' + nahled.style.width + ' parseint: ' + parseInt(nahled.style.width);
                
                // kontrola na pravy okraj obrazovky
                if( (xScreenPos + sirka) > xScreen)
                {
//                   xMousePos -= 2* sirka;
                  xMousePos -= sirka;
                }
                //kontrola na spodni okraj obrazovky
                if( (yScreenPos + vyska) > yScreen)
                {
                  yMousePos -= vyska;
                }
                
                nahled.style.top = yMousePos+'px';
                nahled.style.left = xMousePos+'px';
              }
              
        }
        
               
      }
      
     if(window.nahled == undefined )  // zabaleno vcetne obsluhy 
     {        
        /*
        *   funce pres ajax ziska vystup skriptu zadaneho jako parametr a  vlozi ho dovnitr nahledoveho divu
        *
        *  parametry:
        *   stranka - url skriptu, jehoz vystup se pouzije v 'nahledu' (vlozi se do toho divu)
        *   sirka, vyska - rozmery 'nahledu' (css zapis hodnoty), def. 'auto'
        *                  
        *  syntaxe: 
        *         <html_objekt zobrazEvent='nahled("cesta_ke_skriptu","sirka","vyska");' schovejEvent='nahled();'>
        *         napr:
        *         <img onmouseover='nahled("cas.php");' onMouseOut='nahled();'>
        *         <img onmouseover='nahled("cas.php","100px","100px");' onMouseOut='nahled();'>
        */  
        function nahled(stranka,sirka,vyska)
        {
           var nahled = document.getElementById(ajaxNahled);
           if(nahled == null)
           {
              return;
           }
           
           // pokud volano bez parametru, tak schovej nahled
           if(stranka == null)
           {
               document.getElementById(ajaxNahled).style.visibility = 'hidden';
               hlidej = false; //vypnuti monitorovani pohybu mysi                              
               return;
           }
           
           hlidej = true; //zacatek monitorovani pohybu mysi
            //nastaveni promennych
           if(is_gecko)
           {  // simulace eventu pro gecko, kvuli nemoznosti volat captureMousePosition(event) odsud
               var evt = document.createEvent("MouseEvents");
               evt.initEvent("mousemove", true, false);
           } else if(is_ie) {
             // v IE funguje bez parametru
             captureMousePosition();
           }
           
           
           // nastaveni css vlastnosti
           nahled.style.top = yMousePos+'px';
           nahled.style.left = xMousePos+'px';;
           nahled.style.visibility = 'visible';
           
           if(sirka == null) sirka = 'auto';
           if(vyska == null) vyska = 'auto';
           nahled.style.width = sirka;
           nahled.style.height = vyska;
           
           nahled.innerHTML  = 'Pockejte, prosim, na nahrani ..';
           
           // kvuli IEcku, ktere cachuje vysledky volani stejneho skriptu
           if(is_ie) {
             //zde by slo nahradit defaultni ? podle aktualni stavby odkazu
             stranka = stranka + "?ms=" + new Date().getTime();
           }
           
           // odeslani pozadavku na aktualizaci dat
           if (!send_xmlhttprequest(nahled_obsluha,stranka,null)) {
              return false;
           }
           
           return true;
           
        }
         
        function nahled_obsluha(xmlhttp) {
    
          var nahled = document.getElementById(ajaxNahled);
           
          if(nahled == null)
          {
            return false;
          }
            
          if (xmlhttp.readyState == 4) {        
              
              nahled.innerHTML  = xmlhttp.responseText;
              return true;
          }
        }
      
      }  
      
     //automaticka inicializace
        // druh prohlizece
        var is_gecko = /gecko/i.test(navigator.userAgent);
        var is_ie    = /MSIE/.test(navigator.userAgent);
        //nastavuje se uvnitr captureMousePosition
        var xMousePos,yMousePos,xScreen,yScreen,xScreenPos,yScreenPos;
        //aby zbytecne nehlidalo mys, kdyz to neni potreba
        var hlidej = false;
        
        //hlidani pozice mysi
        document.onmousemove = captureMousePosition;
        window.onscroll = captureMousePosition;
        window.onresize = captureMousePosition;
        
     // ******* nastavit podle potreby ***************
        // id objektu do ktereho se vklada vystup skriptu
        var ajaxNahled = 'ajaxNahled';       
        // def. sirka a vyska nahledu (pokud nebyla zadana pri volani funkce) ktera se pouzije pro urcovani, jestli nebude nahled mimo screen
//         var defX = 200;
//         var defY = 200;
        var defX = 325;
        var defY = 265;
        // posun v pixelech podle prohlizece
//         var xIE = -280;
//         var yIE = -150;
//         var xGecko = -290;
//         var yGecko = -140;
        var xIE = -400;
        var yIE = -190;
        var xGecko = -400;
        var yGecko = -190;
        
    

