// Core JS library for oracle.com
// Created by: Vivek Mehrotra
//Update by Ashok Chava on 12 Oct 2006

function trim(value) {
    s = new String(value);
    if (value != null) {
        var beginIndex = -1;
        var endIndex = s.length;

        for (var i = 0; i < s.length; i++) {
            if (s.charAt(i) != " ") {
                beginIndex = i;
                break;
            }
        }
        if (beginIndex == -1) return "";

        for (var j = s.length - 1; j > beginIndex; j--) {
            if (s.charAt(j) != " ") {
                endIndex = j;
                break;
            }
        }
        if (endIndex != s.length) return s.substring(beginIndex, endIndex);
        else return s.charAt(beginIndex);
    }
    return value;
}


// Special Characters validation
// Added isSplCharsExist() on 25th April by Girish
var splCharsInKeyword;
function isSplCharsExist(value) {
    splCharsInKeyword = '';
    //  var iChars = "!#$%^*()+=[]\\;{}|:<>?";
    var iChars = "";
    for (var i = 0; i < value.length; i++) {
        if (iChars.indexOf(value.charAt(i)) != -1) {
            idx = iChars.indexOf(value.charAt(i));
            splCharsInKeyword += iChars.charAt(idx) + ' ';

        }
    }

    if (splCharsInKeyword == '' || trim(splCharsInKeyword).length == 0) {
        return false;
    }
    else {
        return true;
    }
}

// Serach validation Global value
// Modified isNotNull() on 25th April by Girish
var isUserInput = false;
function isNotNull(value) {

    if (value == null || trim(value).length == 0 || value == "search site" || value == "Search OPN" || isUserInput == false) {
        alert('You did not enter a search term.  Please try again.');
        document.searchForm.q.value = '';
        isUserInput = true;
        document.searchForm.q.focus();
        return false;
    }
    else if (isSplCharsExist(value)) {

        if (trim(splCharsInKeyword).length > 1) {
            splCharsInKeyword = 'Special characters ' + splCharsInKeyword + ' are ';
        }
        else {
            splCharsInKeyword = 'Special character ' + splCharsInKeyword + ' is ';
        }

        alert(splCharsInKeyword + "not allowed.\n");
        document.searchForm.q.focus();
        return false;
    }
    else
        return true;
}


function checkSearch(value) {
    if (document.searchForm && document.searchForm.datasetId && typeof (langDataSetId) != 'undefined' && langDataSetId) {
        document.searchForm.datasetId.value = langDataSetId;
    }

    if (value == null || trim(value).length == 0) {
        alert('Please enter the keyword(s) to search for');
        return false;
    }
    else {
        if (document.searchForm) document.searchForm.submit();
        return true;
    }
}

function DisplayElements(in_elem_array) {
    sidelistsize = in_elem_array.length;
}


function closeAll() {
    for (i = 1; i <= sidelistsize; i++) {
        if (document.getElementById('sidebody' + i)) {
            document.getElementById('sidebody' + i).style.display = 'none';
        }
    }
}
/* Show all sideboxes */
function expandAll() {
    for (i = 1; i <= sidelistsize; i++) {
        if (document.getElementById('sidebody' + i)) {
            document.getElementById('sidebody' + i).style.display = 'block';
        }
    }
}






/* Toggle sidebox visibility */
function toggleSidebox(id) {
    if (document.getElementById(id).style.display == 'none') {
        document.getElementById(id).style.display = 'block';
    } else {
        document.getElementById(id).style.display = 'none';
    }
}

/* Toggle sidebox image */
function toggleSideboxRHS(elmnt) {
    elmnt.parentNode.className = (elmnt.parentNode.className == 'toggleExpand') ? '' : 'toggleExpand';
}

var sidelistsize = 0;
function getElementsByPrefix(inPrefix, inRoot) {
    var elem_array = new Array;
    if (typeof inRoot.firstChild != 'undefined') {
        var elem = inRoot.firstChild;
        while (elem != null) {
            if (typeof elem.firstChild != 'undefined') {
                elem_array = elem_array.concat(getElementsByPrefix(inPrefix, elem));
            }
            if (typeof elem.id != 'undefined') {
                var reg = new RegExp('^' + inPrefix + '.*');
                if (elem.id.match(reg)) {
                    elem_array.push(elem);
                }
            }
            elem = elem.nextSibling;
        }
    }
    return elem_array;
}
function mvqMOv() {

    if (navigator.appName != "Netscape") {
        var dropdown = document.getElementById("group");
        dropdown.style.visibility = "hidden";
    }

    var mvqPDiv = document.getElementById("panelDiv");
    mvqPDiv.style.visibility = "visible";

}

function mvqMOv(panelID, imgID) {

    var el = document.getElementById(imgID);
    if (typeof el != 'undefined' && el != null) {
        var x = positionedOffsetLeft(el);
        var y = positionedOffsetTop(el);
        var imgWidth = el.width;

        if (panelID == "panelDiv") {
            document.getElementById(panelID).style.left = x - (413) + "px";
            document.getElementById(panelID).style.top = y + 9 + "px";
        }
        else if (panelID == "panelDiv_iam" || panelID == "panelDiv_comm") {
            document.getElementById(panelID).style.left = x - 195 + "px";
            document.getElementById(panelID).style.top = y + 9 + "px";
        }
        else if (panelID == "panelDiv_iwanto") {
            document.getElementById(panelID).style.left = x - 195 + "px";
            document.getElementById(panelID).style.top = y + 9 + "px";
        }
        else if (panelID == "panelDiv_search") {
            if (location.pathname.indexOf('/partners') == 0) {
                document.getElementById(panelID).style.left = x - 5 + "px";
                document.getElementById(panelID).style.top = y - (navigator.appName != "Netscape" ? 20 : 7) + "px";
            }
            else {
                document.getElementById(panelID).style.left = x - 5 + "px";
                document.getElementById(panelID).style.top = y - (navigator.appName != "Netscape" ? 5 : 7) + "px";
            }
        }
        else if (panelID == "panelDiva") {
            document.getElementById(panelID).style.left = x - 35 + "px";
            document.getElementById(panelID).style.top = y + 18 + "px";
        }
        else if (panelID == "OPNpanelDiv") {
            document.getElementById(panelID).style.left = x - (navigator.appName != "Netscape" ? 340 : 365) + "px";
            document.getElementById(panelID).style.top = y + 12 + "px";
        }
        else if (panelID == "panelDivOTN") {
            document.getElementById(panelID).style.left = x - 195 + "px";
            document.getElementById(panelID).style.top = y + 9 + "px";
        }

        else if (panelID == "evSearch") {
            document.getElementById(panelID).style.left = x - (413) + "px";
            document.getElementById(panelID).style.top = y + 9 + "px";
        }

    }

    if (navigator.appName != "Netscape") {
        var dropdown = document.getElementById("group");
    }

    var mvqPDiv = document.getElementById(panelID);
    mvqPDiv.style.visibility = "visible";

}

function mvqMOu(panelID) {
    var mvqPDiv = document.getElementById(panelID);
    mvqPDiv.style.visibility = "hidden";

    if (navigator.appName != "Netscape") {
        var dropdown = document.getElementById("group");
    }
}
/* Display first right nav. box*/
function DisplayRightNav() {
    for (i = 1; i <= sidelistsize; i++) {

        if (document.getElementById('sidebody' + i)) {
            if (i <= 1)
                document.getElementById('sidebody' + i).style.display = 'block';
            else
                document.getElementById('sidebody' + i).style.display = 'block';

        }
        else {
            sidelistsize = sidelistsize + 1;
        }
    }
}


 
