function isBrowserSupported() {
	return $.browser.mozilla;
}
function stopEvent(parEvent) {
    if (parEvent.preventDefault) {
        parEvent.preventDefault();
        parEvent.stopPropagation();
    } else {
        parEvent.returnValue = false;
    }
}
function removeAllChild(parId) {
    $("#"+parId).empty();
}
function removeAllChildOfTargetObject(parObject) {
    if(parObject) {
        $(parObject).empty();
    }
}
function getStrPosition(parX, parY, parZ) {
    return "(" + parX + ";"+parY+";"+normalizeZ(parZ)+")";
}
function getStrPositionOfZoneId(parZoneId) {
	return getStrPosition(
		getXOfZoneId(parZoneId), 
		getYOfZoneId(parZoneId), 
		getZOfZoneId(parZoneId));
}
function getXOfZoneId(parZoneId) {
    return parZoneId.substring(0, 3);
}
function getYOfZoneId(parZoneId) {
    return parZoneId.substring(3, 6);
}
function getZOfZoneId(parZoneId) {
    return parZoneId.substring(6, 7);
}
function getZoneIdWithoutZ(parZoneX, parZoneY) {
    var parZoneCoordStringSize=3;
    
    var locResult = "";
    if(parZoneY == 0) {
        var locZeroToAdd = parZoneCoordStringSize - 1;
    } else {
        var countOfDigitOdNumber = 0;
        var locNumber = parZoneY;
        while(locNumber >= 1) {
            countOfDigitOdNumber ++;
            locNumber = locNumber/10;
        }
        locZeroToAdd = parZoneCoordStringSize - countOfDigitOdNumber;
    }
    for(var i = 0; i < locZeroToAdd; i++) {
        locResult += "0";
    }
    locResult += ""+parZoneY;
    locResult = ""+parZoneX + locResult;
    return locResult;
}
function getZoneId(parZoneX, parZoneY) {
    return getZoneIdWithoutZ(parZoneX, parZoneY) + gloBlockCenterZ;
}
function normalizeZ(parZ) {
	return (parZ-gloGroundLevel);
}
function unNormalizeZ(parZ) {
	return (parZ-(-gloGroundLevel));
}
function getValueWithoutPx_IFN(parValue){
    return parValue.substring(0, parValue.length - 2);
}
//<Thanks url=http://www.quirksmode.org/js/findpos.html>
function findPosX(obj)
{
    var curleft = 0;
    if (obj.offsetParent)
    {
        while (obj.offsetParent)
        {
            curleft += obj.offsetLeft;
            obj = obj.offsetParent;
        }
    }
    else if (obj.x)
        curleft += obj.x;
    return curleft;
}

function findPosY(obj)
{
    var curtop = 0;
    if (obj.offsetParent)
    {
        while (obj.offsetParent)
        {
            curtop += obj.offsetTop;
            obj = obj.offsetParent;
        }
    }
    else if (obj.y)
        curtop += obj.y;
    return curtop;
}
//</Thanks>
function wdgId(parId){
    return window.document.getElementById(parId);
}
function setImageSrc(parImage, parSrc){
    if(parImage) {
        if(parImage.src != parSrc) {
            parImage.src = parSrc;
        }
    }
}

function contains(a, e) {
    for(j=0;j<a.length;j++)if(a[j]==e)return true;
    return false;
}

function removeOptionSelected(parSelectTarget) {
    if(parSelectTarget.selectedIndex < 0) {
        return false;
    } else {
        return parSelectTarget.remove(parSelectTarget.selectedIndex);
    }
}
function getSelectedOption(parSelectTarget) {
    if(parSelectTarget.selectedIndex < 0) {
        return false;
    } else {
        return parSelectTarget.options[parSelectTarget.selectedIndex];
    }
}

function appendOptionFirst(parSelectTarget, parText, parValue) {
    var elOptNew = document.createElement('option');
    elOptNew.text = parText;
    elOptNew.value = parValue;
    try {
        parSelectTarget.add(elOptNew, null); // standards compliant; doesn't work in IE
    }
    catch(ex) {
        parSelectTarget.add(elOptNew); // IE only
    }
}
