var tooltip={
    active:false,
    obj:"tooltip",
    ref:null,
    offset:{x:-50,y:75},
    orientation:"bottomright",
    bgoffset:{x:-30,y:-25},
    header:"",
    opacity:90,
    masktweeninstance:-1,
    texttweeninstance:-1,
    bgcolor:"#000000",
    color:"#FFFFFF",
    offscreen:false,
    updatefrequency:60,
    tweeningtext:false
};
function enabletips(){
var tooltipobj = createElement("div");
tooltipobj.id=tooltip.obj;
tooltipobj.innerHTML="..";
tooltipobj.style.overflow="hidden";
tooltipobj.style.position="absolute";
tooltipobj.style.top="-1000px";
tooltipobj.style.left="-1000px";
tooltipobj.style.width="auto";
tooltipobj.style.height="auto";
tooltipobj.style.backgroundColor="transparent";
tooltipobj.style.color=tooltip.color;
tooltipobj.style.fontFamily="georgia,lucida sans unicode,verdana";
tooltipobj.style.fontSize="12px";
tooltipobj.style.fontWeight="normal";
tooltipobj.style.zIndex=99999;
tooltipobj.style.padding="";
if(_isbrowser("iexplorer")){
    tooltipobj.style.filter="alpha(opacity=100)";
}else tooltipobj.style.opacity=1;
document.body.appendChild(tooltipobj);
tooltipobj = createElement("div");
tooltipobj.id=tooltip.obj+"mask";
tooltipobj.style.overflow="hidden";
tooltipobj.style.position="absolute";
tooltipobj.style.top="-1000px";
tooltipobj.style.left="-1000px";
tooltipobj.style.width="0px";
tooltipobj.style.height="0px";
tooltipobj.style.backgroundColor=tooltip.bgcolor;
tooltipobj.style.color=tooltip.bgcolor;
tooltipobj.style.zIndex=99990;
tooltipobj.style.fontFamily="georgia,lucida sans unicode,verdana";
tooltipobj.style.fontSize="12px";
tooltipobj.style.fontWeight="normal";
tooltipobj.style.padding="";
if(_isbrowser("iexplorer")){
    tooltipobj.style.filter="alpha(opacity=0)";
}else tooltipobj.style.opacity=0;
document.body.appendChild(tooltipobj);

VVEDobj.add("tooltipmask",{syncimage:true});

VVEDobj.attach({r:"tooltip",p:"left",a:{e:"tooltipmask",p:"left",offset:tooltip.bgoffset.x,delay:0}});
VVEDobj.attach({r:"tooltip",p:"top",a:{e:"tooltipmask",p:"top",offset:tooltip.bgoffset.y,delay:0}});

    _Event.addevent({f:function(e,s){
        if(s.className.find("tooltips")){
            var reltg = (e.relatedTarget) ? e.relatedTarget : e.fromElement;
            if(reltg===$(tooltip.obj+"mask")||reltg===$(tooltip.obj)){
                return;
            }
            tooltip.active=true;
            tooltip.ref=s;
                if(s.className.find("tooltipbackgroundcolor")){
                    _setcss(tooltip.obj+"mask","color",s.className.split("tooltipbackgroundcolor:")[1].split(" ")[0]);
                    _setcss(tooltip.obj+"mask","backgroundColor",s.className.split("tooltipbackgroundcolor:")[1].split(" ")[0]);
                }else{
                    _setcss(tooltip.obj+"mask","color",tooltip.bgcolor);
                    _setcss(tooltip.obj+"mask","backgroundColor",tooltip.bgcolor);
                }
                _html(tooltip.obj+"mask","..");

                if(s.className.find("tooltipbackgroundimage")){
                    var bg = _propertyfromclass(s,"tooltipbackgroundimage:","..");
                    _setcss(tooltip.obj+"mask","backgroundColor","transparent");
                    var img="<img src='"+bg+"' />";
                    _html(tooltip.obj+"mask",img);
                }

                if(s.className.find("tooltipfontcolor")){
                    _setcss(tooltip.obj,"color",_propertyfromclass(s,"tooltipfontcolor:",tooltip.color));
                }else _setcss(tooltip.obj,"color",tooltip.color);

                var tip = s.className.split("tooltips:'")[1].split("'")[0];
                tip=(tooltip.header)?tooltip.header+tip:tip;
                if(s.className.find("tooltipeffect:autoindent"))tip=tip.replace(/<br\/>/g,"<br/>&nbsp;&nbsp;");
                tooltip.text=tip;
                tip=tip.replace(/ /g,"&nbsp;");

                if(s.className.find("tooltipeffect:")){
                    tooltip.tweeningtext=true;
                    tooltip.texttweeninstance=tweentext({
                        obj:tooltip.obj,
                        text:tip,
                        mode:s.className.split("tooltipeffect:")[1].split(" ")[0],
                        formatmatrix:function(o){
                            return (_randomseed(5)>2)?o.sup():o.sub();
                        },
                        direction:s.className.find("tooltipeffectdirection:")?_propertyfromclass(s,"tooltipeffectdirection:",""):"right",
                        cycle:s.className.find("tooltipeffectcycle:")?_propertyfromclass(s,"tooltipeffectcycle:",""):"loop,1",
                        curvefunc:s.className.find("tooltipeffectcurve:")?_propertyfromclass(s,"tooltipeffectcurve:",""):"easeOut",
                        duration:s.className.find("tooltipeffectduration:")?parseInt(_propertyfromclass(s,"tooltipeffectduration:",1),10):1,
                        subfunc:function(o){
                            return o.sub().bold();
                        },
                        supfunc:function(o){
                            return o.sup().bold();
                        },
                        normfunc:function(o){
                            return o;
                        },
                        ontick:function(o){
                            var coco = _dimensions(tooltip.obj);
							var w=(coco.w+(Math.abs(tooltip.bgoffset.x*2)));
							var h=(coco.h+(Math.abs(tooltip.bgoffset.x*2)));
							_setcss(tooltip.obj+"mask","width",w+"px");
							_setcss(tooltip.obj+"mask","height",h+"px");				
                        },
                        onend:function(){
                            tooltip.tweeningtext=false;
                        }
                    });
                }else{
                    if(tooltip.texttweeninstance!==-1){
                        _tweenr.tweenqueue[tooltip.texttweeninstance].stop();
                        tooltip.texttweeninstance=-1;
                    }
                    $(tooltip.obj).innerHTML=tip;

                    var coco = _dimensions(tooltip.obj);
					var w=(coco.w+(Math.abs(tooltip.bgoffset.x*2)));
					var h=(coco.h+(Math.abs(tooltip.bgoffset.x*2)));
					tweento(tooltip.obj+"mask",{p:"width",v:w,d:FASTEST});
                    tweento(tooltip.obj+"mask",{p:"height",v:h,d:FASTEST});
                }


				

                if(s.className.find("animatetooltip:true")){
                    tweento(tooltip.obj,{p:'opacity',v:tooltip.opacity,d:.5,cf:'',c:''});
                    tweento(tooltip.obj+"mask",{p:'opacity',v:tooltip.opacity,d:.5,cf:'',c:''});
                } else {
                  if(tooltip.masktweeninstance!==-1){
                    _tweenr.tweenqueue[tooltip.masktweeninstance].stop();
                    tooltip.masktweeninstance=-1;
                  }
                  _setcss(tooltip.obj,"opacity",tooltip.opacity);
                  _setcss(tooltip.obj+"mask","opacity",tooltip.opacity);
                }

        }
    },v:"mouseover"});
        sysClock.addtask({id:"tooltip helper",task:function(){
//    _Event.addevent({f:function(e,s){
            if(tooltip.active){
                var mc=_Event.mousecoords;
                var dm=_dimensions(tooltip.obj);
                var offsetbeforeLeftalignmentswitch=50+(tooltip.tweeningtext?1000:0);
                var offsetbeforeRightalignmentswitch=50+(tooltip.tweeningtext?1000:0);
                if(((dm.r-offsetbeforeRightalignmentswitch)-screen.width)>0){
                    tooltip.offscreen=true;
                }else if((dm.l+offsetbeforeLeftalignmentswitch)<0){
                    tooltip.offscreen=false;
                }
                var bl=((_isbrowser("iexplorer")||_isbrowser("opera"))?document.documentElement.scrollLeft+document.body.scrollLeft:window.scrollX);
                var x=(tooltip.offscreen)?mc.x-(dm.w+tooltip.offset.x):mc.x+tooltip.offset.x;
                x+=bl;
                var y=mc.y+tooltip.offset.y;

                    _setcss(tooltip.obj,"left",x+"px");
                    _setcss(tooltip.obj,"top",y+"px");
                    VVEDobj.objqueue[_getref(tooltip.obj)].syncattached("left",{curval:x,loopcycle:true,loopcycles:0,count:0,mode:true});
                    VVEDobj.objqueue[_getref(tooltip.obj)].syncattached("top",{curval:y,loopcycle:true,loopcycles:0,count:0,mode:true});
            }
    //},v:"mousemove"});
        },fps:tooltip.updatefrequency});

    _Event.addevent({f:function(e,s){
        if(s.className.find("tooltips")){
            var reltg = (e.relatedTarget) ? e.relatedTarget : e.toElement;
            if(reltg===$(tooltip.obj+"mask")||reltg===$(tooltip.obj)||reltg.className.find('tooltip')){
                return;
            }
            tooltip.active=false;
            if(s.className.find("animatetooltip:true")){
                tooltip.masktweeninstance=tweento(tooltip.obj+"mask",{p:'opacity',v:0,d:.25,cf:'',c:'',e:function(o){
					_setcss(o.elem,"left","-1000px");
					_setcss(tooltip.obj,"left","-1000px");
					_setcss(tooltip.obj,"opacity",0);
                }});
            }else{
				_setcss(tooltip.obj+"mask","left","-1000px");
				_setcss(tooltip.obj,"left","-1000px");
				_setcss(tooltip.obj,"opacity",0);
                _setcss(tooltip.obj+"mask","opacity",0);
            }
        }
    },v:"mouseout"});
}
