function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

var tipControl;var thisControl;


function toggleTooltip (title, content, _control_) 
{
    if (tipControl != null) {
        closeTipWin();
    } 
    else {
        thisControl = _control_;
        if (typeof content == 'string') {
            var nLength = (content.length + 150 > 400) ? 400 : content.length + 150;
            tipControl = document.createElement('DIV');
            tipControl.className = 'tooltip';
            tipControl.style.width = nLength;
            tipControl.innerHTML = "<b>" + title + "</b><p>" + content;
            var offsetLeft = getControlLeftPos(_control_) - nLength;
            if (offsetLeft < 0)
                offsetLeft = 0;
            tipControl.style.left = offsetLeft;
            tipControl.style.top = getControlTopPos(_control_) + _control_.offsetHeight;
            document.body.appendChild(tipControl);
         } 
         else {
            tipControl = content;
            tipControl.style.left = getControlLeftPos(_control_);
            tipControl.style.top = getControlTopPos(_control_) + _control_.offsetHeight;
            tipControl.style.display = "";
         }
         setupEventListener("add","onmousedown",document,processCloseEvent);
    }
}

function closeTipWin () 
{
    setupEventListener("remove","onmousedown",document,processCloseEvent);
    if (tipControl.id) {
        tipControl.style.display = "none";
    } 
    else {
        document.body.removeChild(tipControl);
    }
    tipControl = null;
    thisControl = null;
}
function processCloseEvent (_event_) 
{
    var inTooltip;
    var isLink;
    var eventTarget = getEventTarget(_event_);
    if (document.all && _event_.screenX > document.body.clientWidth) 
        return;
    while (eventTarget.parentNode) {
        if (eventTarget == thisControl || eventTarget.tagName == 'scrollbar') 
            return;
        if (eventTarget == tipControl)
            inTooltip = true;
        if (eventTarget.tagName == 'A') 
            isLink = true;
        eventTarget = eventTarget.parentNode;
    }
    if (inTooltip && isLink) 
        return;
    closeTipWin();
}
function setupEventListener(_action_, _event_, _object_, handler)
{
    var isAdd = ((_action_ == "add")||(_action_ == "attach"))?true:false;
    _event_ = _event_.toLowerCase();
    if (_event_.substring(0,2) != "on") {
        _event_ = "on"+_event_;
    }
    if ( _object_.addEventListener ) {
        if (isAdd) {
            _object_.addEventListener(_event_.substr(2),handler,false);
        } 
        else {
            _object_.removeEventListener(_event_.substr(2),handler,false);
        }
        return true;
    }
    else if ( _object_.attachEvent ) {
        if (isAdd) {
            _object_.attachEvent(_event_,handler);
        } 
        else {
            _object_.detachEvent(_event_,handler);
        }
        return true;
    } 
    else if ( document.getElementById ) {
        if ( _object_.captureEvents ) {
            var eventName = (isAdd)?"captureEvents":"releaseEvents";eval("poElement."+eventName+"(Event."+_event_.substr(2).toUpperCase()+");");
        }
        var eventName = (isAdd)?(handler.toString().split(' ')[1].split('(')[0]):"null";eval("poElement."+_event_+" = "+eventName+";");
        return true;
    }
    return false;
}
function getEventTarget (_event_) 
{
    _event_ = (_event_) ? _event_ : ((window.event) ? event : null);
    if ( _event_ ) {
        var eventTarget = (_event_.target) ? _event_.target : ((_event_.srcElement) ? _event_.srcElement : null);
        while ( eventTarget.nodeType == 3 ) {
            eventTarget = eventTarget.parentNode;
        }
        return eventTarget;
    }
    return null;
}
function getControlTopPos (_control_) 
{
    var top = _control_.offsetTop;
    var _parentObj = _control_.offsetParent;
    while (_parentObj) {
        top += _parentObj.offsetTop;
        _parentObj = _parentObj.offsetParent;
    }
    return top;
}
function getControlLeftPos (_control_) 
{
    var offset = _control_.offsetLeft;
    var _parentObj = _control_.offsetParent;
    while (_parentObj) {
        offset += _parentObj.offsetLeft;
        _parentObj = _parentObj.offsetParent;
    }
    return offset;
} 
function setCheckboxes(the_form, do_check, ids)
{
    var elts      = document.forms[the_form].elements[ids];
    var elts_cnt  = (typeof(elts.length) != 'undefined')? elts.length: 0;

    if (elts_cnt) {
        for (var i = 0; i < elts_cnt; i++) {
            elts[i].checked = do_check;
        } // end for
    } else {
        elts.checked        = do_check;
    } // end if... else

    return true;
} // end of the 'setCheckboxes()' function
