        var loadedArrow={UL:0,UR:0,LL:0,LR:0};
        var POSITION_LEFT=0,POSITION_RIGHT=1;
        var bobPosition = POSITION_RIGHT;
        var loaded = 0;
        var _X=0;
        var event_alex=0;
        var _Y=0;       
        
                function getMouseCoordinates(e){

                        if(!e){
                                var e=window.event;
                        }
                        
                        if(e.pageX||e.pageY){
                                _X = e.pageX;
                                _Y = e.pageY;
                        }else{
                                if(e.clientX||e.clientY){
                                        _X = e.clientX+document.body.scrollLeft;
                                        _Y = e.clientY+document.body.scrollTop;
                                }
                        }
                return {x:_X,y:_Y}
                }
                
                function getWindowHeight(){
                        var _H = 0;
                        if(typeof (window.innerWidth)=="number"){
                                _H = window.innerHeight;
                        }else{
                                if(document.documentElement&&document.documentElement.clientHeight){
                                        _H = document.documentElement.clientHeight;
                                }else{
                                        if(document.body&&document.body.clientHeight){
                                                _H = document.body.clientHeight;
                                        }
                                }
                        }
                return _H;
                }       
        
        
        function $(id){
                return document.getElementById(id);
        }
        
        function _$(target,tagName){
                return target.getElementsByTagName(tagName);
        }
        
        
        function loadXmlData(url,target,trigger)
        {
                // create the object, careful to the MSFT/Other method
                if (window.XMLHttpRequest)
                {
                        xmlHttpRequest = new XMLHttpRequest();
                                        //alert(trigger.name)
                // executing the request, passing the targetted object
                xmlHttpRequest.open("GET", url, true);
                xmlHttpRequest.onreadystatechange = function () {processRequestChange(target,trigger)};
                xmlHttpRequest.send(null);
                }
                else if (window.ActiveXObject)
                {
                    try{
                        xmlHttpRequest = new ActiveXObject("Microsoft.XMLHTTP");
                                        //alert(trigger.name)
                // executing the request, passing the targetted object
                xmlHttpRequest.open("GET", url, true);
                xmlHttpRequest.onreadystatechange = function () {processRequestChange(target,trigger)};
                xmlHttpRequest.send(null);
                        }catch(e){
                            alert('A script is trying to access this page. It has been marked as \n safe and is required to go to the selected event.');
                           }
                }
        }
        /**
        * above alert added to fix error in IE version 3.0.3790 is active x controls are set to high
        */
  
        /**
        * Handle the events of the XMLHttpRequest Object
        */
        function processRequestChange(target,trigger)
        {
                //alert('processRequestChange!');
                //alert('xmlHttpRequest.readyState: ' + xmlHttpRequest.readyState);
                if (xmlHttpRequest.readyState == 4)
                {
                        //alert('xmlHttpRequest.status: ' + xmlHttpRequest.status)
                        if(xmlHttpRequest.status == 200)
                        {
                                //alert('object.id ' + object.id)
                                if(trigger.name.substring(0,5) == 'place')
                                        copyPlaceData(target.id);
                                else
                                        copyEventData(target.id);
                        }
                        else
                        {
                                alert("Error loading page\n"+ xmlHttpRequest.status +":"+ xmlHttpRequest.statusText);
                        }
                        
                        // end of the request, change the status zone
                        //document.getElementById("statusZone").innerHTML = ""
                }
                else
                {
                        // Indicates that the client is *busy*
                        //document.getElementById("statusZone").innerHTML = "<b style='color:red' >Loading...</b>"
                }
        }
        
        
        function loadEvent(trigger){
                //alert(trigger.id);
        
                var target = $('bubble_tooltip_content');       
                var url = "common/loadEventData.php?eventId="+trigger.id;
                //alert(url)
                //alert('Trigger id: ' + trigger.id);
                //alert(trigger.parentNode.href)
                //clearList(target);
                //todo : getSubelements for data
                //loadXmlData( "../../common/subelementsForElement.php?elementId=" + elementList .value + "&trigger="+trigger, target, elementId);
                //loadXmlData("http://localhost/colaborari/test.xml" , target );

                if(loadXmlData(url,target,trigger)){
                        //alert('XML loaded!')
                        return true;
                }else{
                        return false;
                }
                
        }
        
        function loadPlace(trigger){
                //alert(trigger.id);
        
                var target = $('bubble_tooltip_content');       
                var url = "common/loadPlaceData.php?placeId="+trigger.id;
                //alert(url)
                //alert('Trigger id: ' + trigger.id);
                //alert(trigger.parentNode.href)
                //clearList(target);
                //todo : getSubelements for data
                //loadXmlData( "../../common/subelementsForElement.php?elementId=" + elementList .value + "&trigger="+trigger, target, elementId);
                //loadXmlData("http://localhost/colaborari/test.xml" , target );
                loadXmlData(url,target,trigger);
                //alert('XML loaded!')
                
        }

        
        /**
        * Populate the list with the data from the request
        * (Could be done in a generic manner depending of the XML...)
        */
        function copyEventData(elementId)
        {
                var target = $(elementId);
                var innerHTML;  
//              var name='<div style="width:200px;padding-top:10px;min-height:60px; height: auto !important;height: 60px;"><b>Event name: </b>';
                var name='<div align="left" style="width:200px;height:85px"><b>Event name: </b>';
                var venue='<b>Venue: </b>';
                var date='<b>Event date: </b>';
                var items = xmlHttpRequest.responseXML.getElementsByTagName("event");
                
                var innerHtml='';
                
                innerHtml += name + items[0].childNodes[0].firstChild.nodeValue + '<br /><br />';
                innerHtml += venue + items[0].childNodes[1].firstChild.nodeValue + '<br /><br />';
                innerHtml += date + items[0].childNodes[2].firstChild.nodeValue + '</div>';
                                        
//              alert(innerHtml)        
                clear(target);
                target.style.textAlign = 'left';
                target.innerHTML = innerHtml;
        }

        function copyPlaceData(elementId)
        {
                var target = $(elementId);
                var innerHTML;  
                var website='<b>Website: </b>';
                var phone='<b>Phone: </b>';
                var address='<b>Address: </b>';
//              var img = '<div style="width:200px;padding-left:30px;padding-top:30px;min-height:110px; height: auto !important;height: 110px;">'
                var img = '<div align="left" style="width:200px;height:115px;">';
                var items = xmlHttpRequest.responseXML.getElementsByTagName("place");
                
                var innerHtml='';
                innerHtml += img 
                //alert(innerHtml)
                innerHtml += website + items[0].childNodes[0].firstChild.nodeValue + '<br /><br />';
                innerHtml += phone + items[0].childNodes[1].firstChild.nodeValue + '<br /><br />';
                innerHtml += address + items[0].childNodes[2].firstChild.nodeValue + '</div>';
                                        
//              alert(innerHtml)        
                clear(target);
                target.style.textAlign = 'left';
                target.innerHTML = innerHtml;
        }


        
        /**
        * remove the content of the list
        */
        function clear(target)
        {
                while (target.childNodes[0])
                {
                  target.removeChild(target.childNodes[0]);
                }
        }
        
        function grabComputedStyle(_10,_11){
                if(document.defaultView&&document.defaultView.getComputedStyle){
                        return document.defaultView.getComputedStyle(_10,null).getPropertyValue(_11);
                }else{
                        if(_10.currentStyle){
                                return _10.currentStyle[_11];
                        }else{
                                return null;
                        }
                }
        }

        function getElementOffsetY(_21){
                var _22=0;
                if(_21.offsetTop!=null){
                        _22+=_21.offsetTop;
                        while(_21.offsetParent){
                                _22+=_21.offsetParent.offsetTop;
                                _21=_21.offsetParent;
                        }
                }
                return _22;
        }

        function grabComputedHeight(_12){
                var _13=grabComputedStyle(_12,"height");
                
                if(_13!=null){
                        if(_13=="auto"){
                                if(_12.offsetHeight){
                                        _13=_12.offsetHeight;
                                }
                        }
                        _13=parseInt(_13);
                }
        return _13;
        }       


        function grabComputedWidth(obj){
                var width=grabComputedStyle(obj,"width");
        
                if(width!=null){
                        if(width.indexOf("px")!=-1){
                                width=width.substring(0,width.indexOf("px"));
                        }
                        if(width=="auto"){
                                if(obj.offsetWidth){
                                        width=obj.offsetWidth;
                                }
                        }
                }
        return width;
        }

        function setTop(triggerElement){
                var height=grabComputedHeight($('bubble_tooltip'));
//              alert(height);
                var quarter=height/4;
        
        if(triggerElement.tagName=='A'){

                var top = _Y - parseInt(quarter);

        }else{  
                var top=getElementOffsetY(triggerElement) - 20 - quarter;
        }
                $('bubble_tooltip').style.top=top+"px";
                return correctForYOverrun(top,triggerElement);

        }


        function correctForYOverrun(_191,triggerElement){
                var _192=0;
                var _193=getWindowHeight();
                var _194=document.body.scrollTop;
                var b= $('bubble_tooltip');
                var top=getElementOffsetY(b)- 5 -_194;
                var _197=(top*1)+(grabComputedHeight(b)*1);
                
                if(_197>_193){
                        _192=_197-_193-30;
                }
                
                if(top-_192<1){
                        _192=top;
                }

                if(triggerElement.tagName == 'A') {
                        if(event_alex==0) {
                                b.style.top=_191+"px";                  
                        }
                        else {
                                b.style.top=_191+70+"px";
                        }
                }
                else
                        b.style.top=(_191 - _192)+"px";
                
        }

        function setLeft(triggerElement){
        //alert(triggerElement.src)
                var _196=0;
                var bob = $('bubble_tooltip');
                var TEXT_LINK_BUFFER_WIDTH = 50;
                var BOB_BOX_WIDTH = 290, MOVIE_TO_ARROW_SPACER = 25;
                var DISPLAY_STYLE_LARGE_BOXSHOT = 1;
                var DISPLAY_STYLE_TINY_BOXSHOT= 2;
                var LARGE_BOXSHOT_WIDTH=110,TINY_BOXSHOT_WIDTH=50,MED_BOXSHOT_WIDTH=65;
                
                if(triggerElement.tagName=="A"||triggerElement.tagName=="DIV"){
                        //alert('A')
                        _196=Math.max(_X,0)+TEXT_LINK_BUFFER_WIDTH;
                        
                        //alert(_196)
                        //alert(maxLeftPosition())
                        if(_196> maxLeftPosition()){
                        //alert(_196)
                                _196-=(BOB_BOX_WIDTH+MOVIE_TO_ARROW_SPACER+(1.5*TEXT_LINK_BUFFER_WIDTH));
                                bobPosition=POSITION_LEFT;
                        }
                }else{
                        var _197=0;
                        var _198=0;//getBoxshotStyle()
                        if(_198==DISPLAY_STYLE_LARGE_BOXSHOT){
                                _197=LARGE_BOXSHOT_WIDTH;
                        }else{
                                if(_198==DISPLAY_STYLE_TINY_BOXSHOT){
                                        _197=TINY_BOXSHOT_WIDTH;
                                }else{
                                        _197=MED_BOXSHOT_WIDTH;
                                }
                        }
                        
                        var _199=getPageElementOffsetX(triggerElement);
                        _196=_199+MOVIE_TO_ARROW_SPACER+_197;
                        
                        if(_196>maxLeftPosition()){
                                _196-=(BOB_BOX_WIDTH+MOVIE_TO_ARROW_SPACER+_197);
                                bobPosition=POSITION_LEFT;
                        }
                }
                //alert(bobPosition)
                bob.style.left=_196+"px";
                return _196;
        }
        
        function maxLeftPosition(){
                var MAX_PAGE_LEFT_OFFSET = 490;
                return getPageElementOffsetX($("page-content"))+MAX_PAGE_LEFT_OFFSET;
        }

        function getPageElementOffsetX(_27){
        //alert(_27.offsetLeft)
                return handleElementOffsetX(_27,false);
        }
        
        function handleElementOffsetX(_28,_29){
                var _30=0;
                //alert(_28.offsetParent)
                if(_28 != null ){
                if(_28.offsetLeft != null){
                        _30+=_28.offsetLeft;
                        var _31=0;
                        while(_28.offsetParent){
                                if(_29&&(grabComputedStyle(_28.offsetParent,"position")!="static"||grabComputedStyle(_28.offsetParent,"position")=="absolute")){
                                        return _30;
                                }else{
                                        _30+=_28.offsetParent.offsetLeft;
                                        _28=_28.offsetParent;
                                }
                        }
                }
                }
        return _30;
        }

        function positionArrow(triggerElement){
                var _200=false;
                var bob = $('bubble_tooltip');
                var arrow = $("tooltiparrow");
                var ARROW_HEIGHT_NO_SHADOW=70;
                var ARROW_HEIGHT=101;
                var _201=getElementOffsetY(triggerElement)-getElementOffsetY(bob);
                var _202=grabComputedHeight(bob);
                var arrowImages={UL:$("tooltiparrowulimg"),UR:$("tooltiparrowurimg"),LL:$("tooltiparrowllimg"),LR:$("tooltiparrowlrimg")};
                
                if(_201<(_202/2)){
                        _200=true;
                }else{
                        _201-= ARROW_HEIGHT_NO_SHADOW;
                }
                
                if(_201+ARROW_HEIGHT+10>_202){
                        _201-=10;
                }
                
                if(_201<10){
                        _201=10;
                }
                
                arrow.style.top=(_201-20)+"px";
                //alert(bobPosition)
                if(bobPosition==POSITION_LEFT){
                        arrow.style.left="268px";
                }else{
                        arrow.style.left="-42px";
                }
                
                var _203=_200?"U":"L";
                
                _203+=(bobPosition==POSITION_LEFT)?"R":"L";
                for(key in arrowImages){
                        arrowImages[key].style.display=(key==_203)?"block":"none";
                }
                //alert(_203)
                return _203;
        }

        function showToolTip(parentObj,e){
                loaded++;
                
                if(parentObj.name.substring(0,5) == 'place') {
                        event_alex=1;
                        loadPlace(parentObj);
                }
                else {
                        event_alex=0;
                        loadEvent(parentObj);
                }
                
                if(document.all)
                        e = event;

                var obj = $('bubble_tooltip');
                
                var obj2 = $('bubble_tooltip_content');
                var arrowDiv = $("tooltiparrow");
                
                arrowDiv.onmouseout = function () { hideToolTip(parentObj.id.toString()); } ;
                //alert(arrowDiv.onmouseout)
                //alert(typeof(parentObj.id.toString()))
                bobPosition = POSITION_RIGHT;
                
                var arrowImages={UL:$("tooltiparrowulimg"),UR:$("tooltiparrowurimg"),LL:$("tooltiparrowllimg"),LR:$("tooltiparrowlrimg")};
                
                //alert(parentObj.name.substring(0,5))
                
                //alert(arrowDiv.id)
                //obj2.innerHTML = content;     
                obj.style.visibility = 'visible';
                obj.style.display = 'block';
                
                if(document.body.filters && loaded == 1){
                
                        var capImg = _$($("tooltipcap"),'img')[0];              
                        var bcapImg = _$($("tooltipbcap"),'img')[0];            
                        var middleDiv = $('bobinner');
                        var middleImg = _$(middleDiv,'img')[0];

                        //alert(middleImg.src)
                                capImg.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader"
                                                                + "(enabled=true,src='" + capImg.src + "',sizingMethod='scale');";
                                capImg.src = 'assets/images/pngfix.png';
                                capImg.width = '290px';
                                capImg.height = '23px';

                                middleDiv.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader"
                                                                + "(enabled=true,src='" + middleImg.src + "',sizingMethod='scale');";
                                middleDiv.style.position = 'relative';
                                middleDiv.style.backgroundImage = 'none';
                                middleDiv.style.width = '290px';
                                middleDiv.style.padding='0px';
                                
                                bcapImg.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader"
                                                                + "(enabled=true,src='" + bcapImg.src + "',sizingMethod='scale');";
                                bcapImg.src = 'assets/images/pngfix.png';
                                bcapImg.style.paddingTop = '5px';
                                
                }
                        
                
                //arrowDiv.style.top = '';
                        
                //var leftPos = e.clientX + 50;

                var parent = parentObj;

                var topPosition = setTop(parent);
                
                var leftPos = setLeft(parent);
                
                var arrowKey = positionArrow(parent);
                
                if(document.body.filters && loadedArrow[arrowKey] < 1){
                        var arrowImg = arrowImages[arrowKey] ; 
                        loadedArrow[arrowKey]++;
                        
                        arrowImg.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader"
                                                + "(enabled=true,src='" + arrowImg.src + "',sizingMethod='scale');";
                        arrowImg.src = 'assets/images/pngfix.png';
                        arrowImg.width = '55px';
                        arrowImg.height = '101px';
                }
                
        }       
        
        function hideToolTip(trigger)
        {
        //alert(trigger)
                var trigger = $(trigger);
        
                var triggerHeight = parseInt(grabComputedHeight(trigger));
        
                var triggerWidth = parseInt(grabComputedWidth(trigger));                

                var st = Math.max(document.body.scrollTop,document.documentElement.scrollTop);  

                var triggerTop = parseInt(getElementOffsetY(trigger));

                if(document.body.filters){
                
                                triggerTop -=st;
                        }
                
        
                var triggerLeft = parseInt(getPageElementOffsetX(trigger)) + 4;
        
                var horizontalPos = triggerLeft + triggerWidth - 10;
        
                var verticalPos = triggerTop + triggerHeight ;
        
                //alert(verticalPos)
                //alert(_X)
                //alert(st)
                /*alert('x:'+_X +' > ' + triggerLeft)
                alert('x:'+_X +' < ' + horizontalPos)*/
                //alert('y:'+_Y + ' > ' + triggerTop)
                /*alert('y:'+_Y + ' < ' + verticalPos)*/
                
        if(!(_X > triggerLeft && _X < horizontalPos && _Y >= triggerTop   && _Y < verticalPos)){
                //alert("ok")
                                $('bubble_tooltip').style.display = 'none';
                                _$($("tooltiparrow"),'img')[0].style.display = 'none';
                                _$($("tooltiparrow"),'img')[1].style.display = 'none';
                                _$($("tooltiparrow"),'img')[2].style.display = 'none';
                                _$($("tooltiparrow"),'img')[3].style.display = 'none';
                }
        }

