        //======================================================================
        function trim(str) 
        {
        	str = str.replace(/^\s\s*/, ''),
        		ws = /\s/,
        		i = str.length;
        	while (ws.test(str.charAt(--i)));
        	return str.slice(0, i + 1);
        }
        //======================================================================
		function AjaxCall(url,target,evalCode)
		{
			var element;
			if(url=='')
			{
				element=document.getElementById(target);
				if(element!=null)
					element.innerHTML='';
				return;
			}
			
			var http_request = false;

			if(window.XMLHttpRequest) // Mozilla, Safari, ...
			{ 
				http_request = new XMLHttpRequest();
				if (http_request.overrideMimeType)
				{
					http_request.overrideMimeType('text/xml');
				}
			}
			else if (window.ActiveXObject) // IE
			{
				try
				{
					http_request = new ActiveXObject('Msxml2.XMLHTTP');
				}
				catch(e)
				{
					try
					{
						http_request = new ActiveXObject('Microsoft.XMLHTTP');
					}
					catch(e)
					{}
				}
			}
			if (!http_request)
			{
				alert('Ajax is not supported!');
				return;
			}
			try
			{
				element=document.getElementById('ajaxContentLoading');
				if(element!=null)
					element.style.visibility='visible';

				var parameters=null;
				http_request.onreadystatechange = function() { RequestFinished(http_request,target,evalCode) ; };
    			http_request.open('GET', url, true);
			    http_request.setRequestHeader('Connection', 'close');								
				http_request.send(parameters);
			}	
			catch(e)
			{
				alert(e);
			}
		}
        //======================================================================
		function RequestFinished(request,target,evalCode)
		{
			var element;							
			if (request.readyState==4)
			{
				if(request.status == 200 || request.status==500)
				{
                    element=document.getElementById(target);
					if(element!=null)
					{
                        var resp='<div style="visibility: hidden; display: none">E</div>'+request.responseText; // Prevent MSIE error that removes script tags
                        element.innerHTML=resp;
                        var nodes=element.getElementsByTagName("script");
                        for (i=0;i<nodes.length;i++)
                        { 
                            var cnt=nodes[i].innerHTML;
                            cnt=trim(cnt);
                            if(cnt.substring(0,4)=='<!--')
                                cnt=cnt.substring(4,cnt.length-3);
                            eval(cnt);
                        }
                    }
					else
					   alert('Unable to find element with id:'+target);

        			element=document.getElementById('ajaxContentLoading');
        			if(element!=null)
        				element.style.visibility='hidden';
					if(evalCode!=null)
						eval(evalCode);
				}
				else
				{
					alert('Unable to process AJAX request. Request status='+request.status);
				}
			}
		}					
		//======================================================================
        function GetEventElement(e)
        {
            if(!e)
              e=window.event;
        	if(e.target)
               return e.target;        // Mozilla
        	else if (e.srcElement)
              return e.srcElement;     // MSIE
        	if (targ.nodeType == 3)    // Safari bug
        		return targ.parentNode;
       		return null;
        }
		//======================================================================
        function WindowHeight()
        {
            /* NN4 */
            if (window.innerHeight)
              return window.innerHeight;

            /* MSIE6 std. */
            if(document.documentElement && document.documentElement.clientHeight)
                return document.documentElement.clientHeight;
            
            /* older MSIE + MSIE6 in quirk */                
            if(document.body && document.body.clientHeight)
                return document.body.clientHeight;
            return 0;
        }
		//======================================================================
        function WindowWidth()
        {
            /* NN4 */
            if (window.innerWidth)
              return window.innerWidth;

            /* MSIE6 std. */
            if(document.documentElement && document.documentElement.clientWidth)
                return document.documentElement.clientWidth;
            
            /* older MSIE + MSIE6 in quirk */                
            if(document.body && document.body.clientWidth)
                return document.body.clientWidth;
            return 0;
        }        
		//======================================================================
        var currentPopup='';
        function AjaxPopup(event,x,y,width,height, url,target)
		{
			var targetNode=document.getElementById(target);
			if(targetNode==null)
			{
				alert('Unable to show popup window because there is no element with name '+target);
				return;
			}
			if(!event)
              event=window.event;

            posx = document.body.scrollLeft+document.documentElement.scrollLeft;
            posy = document.body.scrollTop+ document.documentElement.scrollTop;

			if(width!=-1)
				targetNode.style.width=width+'px';
			if(height!=-1)
				targetNode.style.height=height+'px';
			if(x!=-1)
	            targetNode.style.left=x+'px';
			else
			{
				x=WindowWidth()-width;
				if(x<0)
					x=0;
				x=(x/2+posx);
				targetNode.style.left=x+'px';
			}
			if(y!=-1)
				targetNode.style.top=y+'px';
			else
			{
				y=WindowHeight()-height;
				if(y<0)
					y=0;
				y=(y/2+posy);
				targetNode.style.top=y+'px';
			}
			targetNode.innerHTML=loadingText;
            targetNode.style.position='absolute';
			targetNode.style.zIndex='100';
            targetNode.style.display='inline';
            targetNode.style.visibility='visible';

            if(currentPopup!='' && currentPopup!=target)
                AjaxClosePopup(currentPopup);

			AjaxCall(url,target,'');
            currentPopup=target;
            
            if(target=='VystavujiciDetail')
            {
                var shadeNode=document.getElementById('mainBoxVystavujici');
                if(shadeNode!=null)
                    shadeNode.className='ToBack';
            }
		}
        //======================================================================
		function AjaxClosePopup(popupname)
		{
			var targetNode=document.getElementById(popupname);
			if(targetNode==null)
			{
				alert('Unable to hide popup window because there is no element with name '+popupname);
				return;
			}
            currentPopup='';
            targetNode.style.display='none';
            targetNode.style.visibility='hidden';

            var shadeNode=document.getElementById('mainBoxVystavujici');
            if(shadeNode!=null)
                shadeNode.className='';
		}
        //======================================================================
		function ClearDiv(divname)
		{
			var targetNode=document.getElementById(divname);
			if(targetNode==null)
				return;
            targetNode.style.display='none';
            targetNode.style.visibility='hidden';
			targetNode.innerHTML='';
		}
        //======================================================================
		function EmptyDiv(divname)
		{
			var targetNode=document.getElementById(divname);
			if(targetNode==null)
				return;
			targetNode.innerHTML='<!-- clear -->';
		}
        //======================================================================
		function SetDivContent(divname,content)
		{
			var targetNode=document.getElementById(divname);
			if(targetNode==null)
				return;
			targetNode.innerHTML=content;
		}
        //======================================================================
		function SetImgSrc(imgid,content)
		{
            var targetNode=document.getElementById(imgid);
            var name=targetNode.localName;
            if(!name)
                name=targetNode.nodeName;
			if(targetNode==null || name.toUpperCase()!='IMG')
				return;
			targetNode.src=content;
		}
        //======================================================================
		function RemoveDiv(divname,reportMissingNode)
		{
			var targetNode=document.getElementById(divname);
			if(targetNode==null)
			{
				if(reportMissingNode)
                    alert('Unable to remove div	'+divname+', node not found.');
				return;
			}
			targetNode.parentNode.removeChild(targetNode);
		}
        //======================================================================
        function getY(elem)
        {
            var ret=0;
            while(elem!=null)
            {
                ret+=elem.offsetTop;
                elem=elem.offsetParent;
            }
            return ret;
        }            
        //======================================================================
        function ShowTip(event,divname)
        {
			var tipNode=document.getElementById(divname);
			if(tipNode==null)
                return;
            
            //posx = event.clientX+20;//document.body.scrollLeft-document.documentElement.scrollLeft;
            //posy = event.clientY+5;//+document.body.scrollTop-document.documentElement.scrollTop;
            var elem=GetEventElement(event);
            posx=80;
            posy=getY(elem)-180;
            
            tipNode.style.position='absolute';            
            tipNode.style.left=posx+'px';
            tipNode.style.top=posy+'px';
            tipNode.style.zIndex='2000';
            tipNode.style.visibility='visible';
            tipNode.style.display='inline';
        }
        //======================================================================
        function HideTip(divname)
        {
			var tipNode=document.getElementById(divname);
			if(tipNode==null)
                return;
            
            tipNode.style.visibility='hidden';
            tipNode.style.display='none';
        }
        //======================================================================

