

isExplorer = false;

isNetscape = false;

obj = null;

inAdd = false;



function openWindow(url,windowName,width,height,x,y)
   {
    var w = null;
    var h =null;
    var coordinates = "";
    if(width == null || height == null)
    {
      h = window.screen.height-100;
      //window.screen.height/2;

      w = window.screen.width-50;
      //window.screen.width/2;
    }
    else
    {
      w = width;
      h = height;
    }

    if(x != null && y != null)
    {
        coordinates = ",left=" + x + ",top=" + y;
    }

    features = "left=0,top=0,location=no,menubar=no,resizable=yes,"
    + "scrollbars=yes,status=yes,toolbar=no,height="
    + h
    //(window.screen.height-50)
    +
    ", width="
    + w
    + coordinates
    //(window.screen.width-10)
    ;

    wnd = window.open(url,windowName,features);
    wnd.focus();
   }





function checkBrowser()

{

    var browserName = navigator.appName;

    if (browserName == "Microsoft Internet Explorer")

    {

        isExplorer = true;

    }

    else if (browserName == "Netscape")

    {

        isNetscape = true;

    }

}

checkBrowser();


function x0653090547866255818095811111111(object)

{

    if (isExplorer)

    {

        if (object.parentElement.tagName == "FORM")

            return object.parentElement.parentElement;

        else

            return object.parentElement;


    }

    else if (isNetscape)

    {

        if (object.parentNode.tagName == "FORM")

            return object.parentNode.parentNode;

        else

            return object.parentNode;

    }

}


function createDynamicElement(adjacentElement, newElementHTML, afterEnd)

{

    var element = adjacentElement;

    if (isExplorer)

    {

        var position = afterEnd ? "AfterEnd" : "AfterBegin";

        element.insertAdjacentHTML(position, newElementHTML);

    }

    else if (isNetscape)

    {

        while (inAdd) {
        }
        ;

        inAdd = true;

        var elementOwner = element.ownerDocument;

        var range = elementOwner.createRange();

        range.selectNodeContents(element);

        var documentFragment = range.createContextualFragment(newElementHTML);

        element.appendChild(documentFragment);

        inAdd = false;

    }

}


function getPropertyString(styleString, propertyName)

{

    if (styleString == null || styleString == "")

    {

        alert('style string must not be null or blank : ' + styleString);

        return -1;

    }

    var style = styleString.toUpperCase();

    var name = propertyName.toUpperCase();


    var beginIndex = style.indexOf(name);

    if (beginIndex == -1)

    {

        return null;

    }

    var tempString = style.substring(beginIndex, style.length);

    var endIndex = tempString.indexOf(";");

    if (endIndex == -1)

    {

        alert('Terminate style string  : ' + styleString + ' with semicolon ;');

        return -1;

    }

    return tempString.substring(0, endIndex);

}


function getStyleValue(propertyValue)

{

    var pos = propertyValue.indexOf(":");

    if (pos == -1)

    {


        alert('Style property  : ' + propertyValue + ' should contain colon :');

        return -1;

    }

    return propertyValue.substring(pos + 1, propertyValue.length);

}


function getChildren(obj)

{

    var result = null;

    if (isExplorer)

    {

        result = obj.children;

    }

    else if (isNetscape)

    {

        result = obj.childNodes;

    }

    return result;

}


function getHeight(obj)

{

    var result = null;

    if (isExplorer)

    {

        result = obj.style.pixelHeight;

    }

    else if (isNetscape)

    {

        result = obj.offsetHeight;

    }

    return result;

}


function getWidth(obj)

{

    var result = null;

    if (isExplorer)

    {

        result = obj.style.pixelWidth;

    }

    else if (isNetscape)

    {

        result = obj.offsetWidth;

    }

    return result;

}


function x0653090547866255818095811111(aId)

{

    if (isExplorer)

    {

        obj = document.all[aId];

        if (obj == null)

        {

            waiter();

            performFind(aId);

        }

    }

    else if (isNetscape)

    {

        obj = document.getElementById(aId);

    }


    if (obj == null)

    {

        for (i = 0; i < document.forms.length; i++)

        {

            form = document.forms[i];

            obj = form.all[aId];

            if (obj != null) break;

        }

    }

    return obj;

}


function performFind(aId)

{

    for (var i = 0; i < document.all.length; i++)

    {

        if (document.all[i].id == aId)

        {

            obj = document.all[i];

            break;

        }

    }

}


function waiter()

{

    for (var i = 0; i < 100; i++) {
    }

}


function Component(aId, aFocused)

{


    var obj = x0653090547866255818095811111(aId);


    if (obj == null)

    {

        alert("Object not found");

        return;

    }


    if (aFocused == true)

    {

        obj.focus();

    }


    this.fObj = obj;


    this.getId = component_getId;

    this.getObj = component_getObj;

    this.getName = component_getName;

    this.setName = component_setName;

    this.getHintText = component_getHintText;

    this.setHintText = component_setHintText;

    this.getStyleClass = component_getStyleClass;

    this.setStyleClass = component_setStyleClass;

    this.getTabIndex = component_getTabIndex;

    this.setTabIndex = component_setTabIndex;

    this.getAccessKey = component_getAccessKey;

    this.setAccessKey = component_setAccessKey;

    this.isEnabled = component_isEnabled;

    this.setEnabled = component_setEnabled;

    this.getStyle = component_getStyle;

    this.getWidth = component_getWidth;

    this.setWidth = component_setWidth;

    this.getHeight = component_getHeight;

    this.setHeight = component_setHeight;

    this.getStyleString = component_getStyleString;

    this.setStyleString = component_setStyleString;

    this.hasRequiredValue = component_hasRequiredValue;

    this.setFocused = component_setFocused;

    this.isFocused = component_isFocused;

}


function component_getObj()

{

    return this.fObj;

}


function component_getId()

{

    return this.fObj.id;

}


function component_getName()

{

    return this.fObj.name;

}


function component_setName(aName)

{

    this.fObj.name = aName;

}


function component_setWidth(aWidth)

{

    this.fObj.style.width = aWidth;

}


function component_getWidth()

{

    return this.fObj.style.width;

}


function component_setHeight(aHeight)

{

    this.fObj.style.height = aHeight;

}


function component_getHeight()

{

    return this.fObj.style.height;

}


function component_setHintText(aHintText)

{

    this.fObj.title = aHintText;

}


function component_getHintText()

{

    return this.fObj.title;

}


function component_setTabIndex(aTabIndex)

{

    if (isExplorer)

    {

        this.fObj.tabIndex = aTabIndex;

    }

    else if (isNetscape)

    {

        alert('Not supported');

    }

}


function component_getTabIndex()

{

    if (isExplorer)

    {

        return this.fObj.tabIndex;

    }

    else if (isNetscape)

    {

        alert('Not supported');

    }


}


function component_setStyleClass(aStyleClass)

{

    if (isExplorer)

    {

        this.fObj.className = aStyleClass;

    }

    else if (isNetscape)

    {

        alert('Not supported');

    }


}


function component_getStyleClass()

{

    if (isExplorer)

    {

        return this.fObj.className;

    }

    else if (isNetscape)

    {

        alert('Not supported');

    }

}


function component_setAccessKey(aAccessKey)

{

    this.fObj.accessKey = aAccessKey;

}


function component_getAccessKey()

{

    return this.fObj.accessKey;

}


function component_setEnabled(aEnabled)

{

    this.fObj.disabled = !aEnabled;

}


function component_isEnabled()

{

    return (!this.fObj.disabled);

}


function component_setStyleString(aStyle)

{

    if (isExplorer)

    {

        this.fObj.style.cssText = aStyle;

    }

    else if (isNetscape)

    {

        alert('Not supported');

    }

}


function component_getStyleString()

{

    if (isExplorer)

    {

        return this.fObj.style.cssText;

    }

    else if (isNetscape)

    {

        alert('Not supported');

    }

}


function component_getStyle()

{

    return this.fObj.style;

}


function component_hasRequiredValue()

{

    return true;

}


function component_setFocused(aFocused)

{

    if (aFocused == true)

    {

        this.fObj.focus();

    }

    else

    {

        this.fObj.blur();

    }

}


function component_isFocused()

{

    if (document.activeEvent == this.fObj)

    {

        return true;

    }

    return false;

}


function replaceSubstring(source, strWhat, strWith)

{

    var re = new RegExp(strWhat, "g");

    var res = (source + "").replace(re, strWith);

    return res;

}


function getParentByTag(objChild, tagName)

{

    var obj = null;


    if (isExplorer == true)

    {

        obj = objChild.parentElement;

        while (obj != null && obj.tagName != tagName)

        {

            obj = obj.parentElement;

        }


    }

    else

    {

        obj = objChild.parentNode;

        while (obj != null && obj.tagName != tagName)

        {

            obj = obj.parentNode;

        }

    }


    return obj;


}


//*************************************************** 

function addEvent(obj, evType, fn) {

    if (obj.addEventListener) {

        obj.addEventListener(evType, fn, false);

        return true;

    } else if (obj.attachEvent) {

        var r = obj.attachEvent("on" + evType, fn);

        return r;

    } else {

        alert("adding event failed");

        return false;

    }
}

function removeEvent(obj, evType, fn, useCapture) {

    if (obj.removeEventListener) {

        obj.removeEventListener(evType, fn, useCapture);

        return true;

    } else if (obj.detachEvent) {

        var r = obj.detachEvent("on" + evType, fn);

        return r;

    } else {

        alert("Handler could not be removed");

    }

}
function $() {
    var elements = new Array();

    for (var i = 0; i < arguments.length; i++) {
        var element = arguments[i];
        if (typeof element == 'string')
            element = document.getElementById(element);

        if (arguments.length == 1)
            return element;

        elements.push(element);
    }

    return elements;
}

function addListener(hotkey, listener){
    var add = "if (isShortCutEvent(e, \""+hotkey+"\")) {"+listener + ";}";
    //alert(add);
    if (document.addEventListener) {
        if (!window.opera)
            document.addEventListener("keydown", function(e) {eval(add); return !isShortCutEvent(e, hotkey);}, true);
    }
    else if (document.attachEvent){
        document.attachEvent("onkeydown", function(e) {eval(add); return !isShortCutEvent(e, hotkey);});
    }
}

function isShortCutEvent(event, shortcut){
    var sc = shortcut.toLowerCase();
    if (((sc.indexOf("shift")!=-1) == (event.shiftKey == true))&&
            ((sc.indexOf("ctrl")!=-1) == (event.ctrlKey == true))&&
            ((sc.indexOf("alt")!=-1) == (event.altKey == true))){
        var Key = event.keyCode;
        if (Key == 0) {
          Key = event.charCode;
        }
        var gecko = !window.opera;
        if (!gecko && Key > 64 && Key < 91) Key += 32;
        if (!gecko && Key > 105 && Key < 112) Key -= 80;
        var items = sc.split("+");
        var theKey = items[items.length-1];
        if (sc.charAt(sc.length-1) == "+")
            theKey = "+";
        var code = theKey.toUpperCase().charCodeAt(0);
        switch (theKey){
            case "tab": code=9; break;
            case "enter": code=13; break;
            case "esc": code=27; break;
            case "pgup": code=33; break;
            case "pgdn": code=34; break;
            case "end": code=35; break;
            case "home": code=36; break;
            case "left": code=37; break;
            case "up": code=38; break;
            case "right": code=39; break;
            case "down": code=40; break;
            case "ins": code=45; break;
            case "del": code=46; break;
            case "*": code=106; break;
            case "+": code=107; break;
            case "-": code=109; break;
            case ".": code=110; break;
            case "/": code=111; break;
            case "f1": code=112; break;
            case "f2": code=113; break;
            case "f3": code=114; break;
            case "f4": code=115; break;
            case "f5": code=116; break;
            case "f6": code=117; break;
            case "f7": code=118; break;
            case "f8": code=119; break;
            case "f9": code=120; break;
            case "f10": code=121; break;
            case "f11": code=122; break;
            case "f12": code=123; break;
        }
        //window.status = code + '!' + Key;
        if (code == Key){
          return true;
        }
    }
    return false;
}
