
var agt=window.navigator.userAgent.toLowerCase();
var ie=(agt.indexOf("msie")!=-1)? true:false;
closeIt=null;bubs=new Array();
function sBub(event){showIt(event,null,null,"block",0,0)}
function hBub(event){showIt(event,null,null,"none",0,0)}

function showIt(event,id,pointerid,disp,X,Y){
  var e=tgt=false;
  pointer=false;
  x=X?X:0;
  y=Y?Y:0;
  t=top.document;
  if(event) e=(ie)?top.event.srcElement:event.target;
  if(id){
    tgt=t.getElementById(id);
    if (tgt && tgt.parentNode.nodeName!="BODY"){
      t.body.appendChild(tgt);
      bubs.addElement(id);
    }
  }else if(e){
    tgt=e;
    while(tgt.nodeName!="DIV"){
      tgt=tgt.parentNode;
    }
    if(tgt.pointer)
      pointer=tgt.pointer;
    else {
      pointer=tgt.previousSibling;
      if(pointer) {
        while((pointer.nodeName!="DIV" || pointer.nodeName!="LI") && pointer.nodeName!="BODY"){
          pointer=pointer.parentNode;
        }
      };
      tgt.pointer=pointer;
    };

    if(tgt && tgt.parentNode.nodeName!="BODY"){
      t.body.appendChild(tgt);
      bubs.addElement(tgt.id);
    };
  };

  if(pointerid)
    pointer=t.getElementById(pointerid);

  if(tgt){
    if(disp){
      if(tgt.style.display==disp){
        top.clearTimeout(top.closeIt);
        top.closeIt=null;
        return false;
      }else if(disp=="none"){
        if(!top.closeIt){
          top.closeIt=top.setTimeout(function(){hide(tgt)},50);
        }
      }else{
        for(b=bubs.length-1;b>=0;b--){
          if(bubs[b]!=id){
            hide(t.getElementById(bubs[b]));
          };
        };
        if(top.closeIt){
          window.clearTimeout(top.closeIt);
          top.closeIt=null;
        };
        if(pointer){
          tgt.style.left=toolkit.getOffsetCoor(pointer)[toolkit.coor.X]+x+"px";
          tgt.style.top=toolkit.getOffsetCoor(pointer)[toolkit.coor.Y]+pointer.offsetHeight+y+"px";
          tgt.pointer=pointer;
        }else if(event){
          var event=(ie)?top.event.srcElement:event.target;
          tgt.style.left=toolkit.getOffsetCoor(event)[toolkit.coor.X]+x+"px";
          tgt.style.top=toolkit.getOffsetCoor(event)[toolkit.coor.Y]+event.offsetHeight+y+"px";
        };
        if(disp=="block"){
          tgt.style.display=disp;
        }
      }
    }else{
      if(tgt.style.display=="block" && !top.closeIt){
        top.closeIt=top.setTimeout(function(){hide(tgt)},100);
      }else{
        if(pointer){
          tgt.style.left=toolkit.getOffsetCoor(pointer)[toolkit.coor.X]+x+"px";
          tgt.style.top=toolkit.getOffsetCoor(pointer)[toolkit.coor.Y]+y+"px";
        }else if(event){
          var event=(ie)?top.event.srcElement:event.target;
          tgt.style.left=toolkit.getOffsetCoor(event)[toolkit.coor.X]+x+"px";
          tgt.style.top=toolkit.getOffsetCoor(event)[toolkit.coor.Y]+y+"px";
        }
        if(top.closeIt){
          window.clearTimeout(top.closeIt);
          top.closeIt=null;
        }
        tgt.style.display="block";
      }
    }
  }
}
function hide(node){node.style.display="none";top.clearTimeout(top.closeIt);top.closeIt=null;}

function sh(id){window.clearTimeout(top.closeIt);top.closeIt=null;}


Array.prototype.size = function(){ return this.length;}
Array.prototype.elementAt = function(pos){ return this[pos];}
Array.prototype.indexOf = function(elm){var res=-1;	for(var i=0;i<this.size() && res<0;i++){if(elm == this[i]) res=i;};return res;}
Array.prototype.lastElement = function(){ return this[this.length-1];}
Array.prototype.contains = function (elm){ return this.indexOf(elm)>-1;}
Array.prototype.emptyArray = function(){ this.length = 0;}
Array.prototype.addElement = function(elm){	this[this.size()] = elm;return elm;}
Array.prototype.insertElementAt = function(elm,pos){if(pos>=this.size()){this.addElement(elm);}else{	for(var i=this.size()-1;i>=pos;i--)	this[i+1] = this[i];this[pos] = elm;};return elm;}
Array.prototype.removeElementAt = function(pos){var elm = this.elementAt(pos);for(var i=pos; i < this.size()-1; i++){this[i] = this[i+1];};this.length--;	return elm;}
Array.prototype.removeElement = function(elm){var idx = this.indexOf(elm);if (idx>-1) return this.removeElementAt(idx);	return null;}
Array.prototype.swap = function(idx0,idx1) { var idx1value = this[idx1]; this[idx1] = this[idx0]; this[idx0] = idx1value; return this; }
Array.prototype.clone = function() { var cloned = new Array(); for(var i=0; i < this.size(); i++) {cloned.addElement(this[i]);}; return cloned;}
Array.prototype.subIndex = function(elm){var res = -1;	for(i = 0 ; i < this.length ; i++){	if(this[i].contains(elm)) res = i;};return res;}
Array.prototype.findSubIndex = function(elm){var res=-1;for(i = 0 ; i < this.length ; i++){	if(this[i].contains(elm)){ for(i = 0 ; i < eval(elm).length ; i++){	tmp = eval(elm);eval("go"+tmp[2]+"("+tmp[1]+",true);");};}}}





/************************************ toolkit **********************************************/
toolkit={toString : new function(){return "Javascript Tool";}}
toolkit.eventType={
	Click		: "click",
	DblClick	: "dblclick",
	MouseOut	: "mouseout",
	MouseOver	: "mouveover",
	MouseDown	: "mousedown",
	MouseUp		: "mouseup",
	MouseMove	: "mousemove",
	Scroll		: "scroll"
}

toolkit.coor={
	X		: 0,
	Y 		: 1,
	Width	: 0,
	Height	: 1
}
toolkit.getScrollTop=function(){return document.body.scrollTop;}
toolkit.getScrollLeft=function(){return document.body.scrollLeft;}
toolkit.sizeTo=function(elm,w,h){if(h) elm.style.pixelHeight =h;if(w) elm.style.pixelWidth =w;}
toolkit.sizeBy=function(elm,w,h){elm.style.pixelHeight+=h;elm.style.pixelWidth+=w;}
toolkit.getCoor=function(elm){return [elm.style.pixelLeft,elm.style.pixelTop]}
toolkit.getSize=function(elm){return [elm.style.pixelWidth,elm.style.pixelHeight]}
toolkit.getOffsetCoor= function(elm){
	var parent=elm;var l=0;var t=0;
	while(parent){
		if(parent.offsetLeft) l += parent.offsetLeft;
		if(parent.offsetTop) t += parent.offsetTop;
		parent = parent.offsetParent;
	}
	return [l,t];
}
toolkit.getEvent=function(e) {return event};
toolkit.getEventPos=function(e){return [event.clientX + document.body.scrollLeft,event.clientY + document.body.scrollTop];}
toolkit.getEventClientPos=function (e){return [event.clientX,event.clientY];}
toolkit.attachEvent=function(elm,eventType,fct){eval("elm.on" + eventType +"=fct");}
toolkit.releaseEvent=function(elm,eventType,fct){eval("elm.on" + eventType +"=null");}
toolkit.insertAdjacentHTML=function(elm,str){elm.insertAdjacentHTML("BeforeEnd", str);}
toolkit.getAbsOffsets=function(elm){
	while(elm.nodeType != 1){elm=elm.parentNode;};
	l=elm.offsetLeft;
	t=elm.offsetTop;
	w=elm.offsetWidth;
	h=elm.offsetHeight;
	this.retAbsOffsets(elm,l,t);
}
toolkit.retAbsOffsets=function(elm,l,t){
	while (elm.tagName != 'BODY' && elm.tagName != 'HTML'){
		elm = elm.offsetParent;
		if(elm.offsetParent){
			t=t+elm.offsetTop;
			l=l+elm.offsetLeft;
			this.retAbsOffsets(elm,l,t);
		}
	}
}
var regExpBegin = /^\s+/;
var regExpEnd  = /\s+$/;
function trim(s){try{return s.replace(regExpBegin,"").replace(regExpEnd,"");}catch(e){return s;}}
function lefttrim(s) {return s.replace(regExpBegin,"");}
function righttrim(s) {return s.replace(regExpEnd,"");}

function sn( event, tip_id, onmouse_id, X, Y, is_test ) {
  if( X ) {

  } else {
    X = 0;
  }

  if( Y ) {

  } else {
    Y = 0;
  }

if(navigator.userAgent.indexOf("Firefox") != -1)  {
//    X = X + 30;
    Y = Y + 10;
}

//  if (document.createEventObject){
//    // dispatch for IE
//    var evt = document.createEventObject();
//  }
//  else{
//    // dispatch for firefox + others
//    var evt = document.createEvent('MouseEvents');
//    evt.initMouseEvent('click', true, true, document.defaultView, 1, 0, 0, 0, 0, false, false, false, false, 0, null);
//  }
//if(is_test) {
//alert(event.clientX);
//}
  showIt(event,tip_id,onmouse_id,'block',X,Y);
}

function snn( event, tip_id ) {
  showIt(event,tip_id,null,'none');
}

