var pc = navigator.userAgent.toLowerCase();
var ie4_win = (pc.indexOf("win")!=-1) && (pc.indexOf("msie") != -1)
    && (parseInt(navigator.appVersion) >= 4);
var checked = false;

// only builds based upon gecko later than Jan 8th support the selectionStart, selectionEnd properly
var is_gecko = pc.indexOf("gecko/") != -1 &&
    parseFloat(pc.substring(pc.indexOf("gecko/") + 6, pc.indexOf("gecko/") + 14)) > 20030108;

function checkPost() {
    if (!checked) {
        checked = true;
        return true;
    }
    return false;
}

function styleTag(tag, ta) {
    var tagOpen = '<' + tag.toLowerCase() + '>';
    var tagClose = '</' + tag.toLowerCase() + '>';
    if (ie4_win) {
        var selected;

        if (document.selection.createRange().parentElement().tagName == 'TEXTAREA') {
            selected = document.selection.createRange().text;
        }

        if (selected) {
            var addSpace = false;
            if (selected.charAt(selected.length-1) == ' ') {
                selected = selected.substring(0, selected.length-1);
                addSpace = true;
            }
            document.selection.createRange().text
                    = tagOpen + selected + tagClose + ((addSpace)?" ":"");
        } else {
            ta.value += tagOpen + tagClose;
        }
    } else if (is_gecko) {
        var selLength = ta.textLength;
        var selStart = ta.selectionStart;
        var selEnd = ta.selectionEnd;
        if (selEnd == 1 || selEnd == 2) {
            selEnd = selLength;
        }
        var s1 = (ta.value).substring(0, selStart);
        var s2 = (ta.value).substring(selStart, selEnd)
        var s3 = (ta.value).substring(selEnd, selLength);

        var scrollTop = ta.scrollTop;

        ta.value = s1 + tagOpen + s2 + tagClose + s3;
        var cursorPos = selStart+tagOpen.length+s2.length+tagClose.length;
        ta.selectionStart = cursorPos;
        ta.selectionEnd = cursorPos;
        ta.scrollTop = scrollTop;

    } else {
        ta.value += tagOpen + tagClose;
    }
    ta.focus();
    return;
}
function caret(ta) {
    if (ie4_win && ta.createTextRange &&
            document.selection.createRange().parentElement().tagName == 'TEXTAREA')
    {
        ta.caretPos = document.selection.createRange().duplicate();
    }
}

function callZLinkPopup(a1, s1, sessionId) {
     var pURL = 'f?p=' + a1 + ':420:' + sessionId + ':::420:P420_PASSBACK:' + s1;
     html_PopUp(pURL,null,null,null);
 }
 
function toolTip_enable(evt,obj,tip, width, color){
    var evt = (evt) ? evt : ((window.event) ? event : null);
    var target_x = evt.pageX ? evt.pageX : evt.clientX ;
    var target_y = evt.pageY ? evt.pageY : evt.clientY + document.body.scrollTop;
    
    if ( toolTip_init() ) {
    var tt_tipobj=$x("dhtmltooltip");
    var tt_pointerobj=$x("dhtmlpointer");

    tt_target = obj;
    if (!tip) 
      tip = obj.getAttribute("htmldb:tip");      
    tt_tipobj.innerHTML=tip;
    if (typeof width!="undefined") 
         tt_tipobj.style.width=width+"px"      
    if (typeof color!="undefined" && color!="")  {
         tt_tipobj.style.backgroundColor=color
    } else {
        tt_tipobj.style.backgroundColor="lightyellow";
    }

    tt_pointerobj.style.left = ( 10 + target_x ) +"px";
    tt_pointerobj.style.top  = (15 + target_y ) +"px";   

    tt_tipobj.style.left = ( 7 + target_x ) +"px";
    tt_tipobj.style.top  = ( 28 + target_y ) +"px";   
     
    tt_tipobj.style.visibility="visible"
    tt_tipobj.style.zIndex=10000;
    tt_pointerobj.style.zIndex=10001;
    tt_pointerobj.style.visibility="visible";
    
    try {
        obj.addEventListener("mouseout", toolTip_disable, false);
     } catch(E) {
      obj.attachEvent('onmouseout', toolTip_disable);
     }
   }
    return false;
}
