var isIE = (navigator.userAgent.toLowerCase().indexOf("msie") != -1);
var fixedTop;

// element내에서 특정 class 값을 자진 모든 element
function getElementsByClass(className, elementId)
{
    var candidateElements, i;
    var els = new Array();

    candidateElements = (elementId) ?
        document.getElementById(elementId).getElementsByTagName('*') : document.getElementsByTagName('*');

    for(i = 0; i < candidateElements.length; i++)
    {
        if(candidateElements[i].className == className)
        {
            els[els.length] = candidateElements[i];
        }
    }

    return els;
}

// element내에서 특정 class 값을 자진 모든 element. classRegExp은 정규표형식 사용
function getElementsByClassRegExp(classRegExp, elementId)
{
    var candidateElements, i;
    var els = new Array();

    candidateElements = (elementId) ?
        document.getElementById(elementId).getElementsByTagName('*') : document.getElementsByTagName('*');

    for(i = 0; i < candidateElements.length; i++)
    {
        if(candidateElements[i].className.match(classRegExp))
        {
            els[els.length] = candidateElements[i];
        }
    }

    return els;
}

// 고정시킬 element의 X좌표를 추출하여 고정. 고정시킬 element의 position은 absolute이고 top이 지정되어 있어야 함
function initFixedElement(elementId, speed)
{
    fixedTop = parseInt(getStyleValue(document.getElementById(elementId), 'top'));
    fixElement(elementId, speed);
}

// 현재 스크롤 위치
function getScrollPos()
{
    var doc = (document.compatMode && document.compatMode != "BackCompat") ? document.documentElement : document.body;

    return { left : doc.scrollLeft, top : doc.scrollTop };
}

// style 값
function getStyleValue(el, pr)
{
    return (isIE) ? eval('el.currentStyle.' + pr) : window.getComputedStyle(el, null).getPropertyValue(pr);
}

// 스크롤에 따른 element의 X좌표 고정, initFixed()에서 사용하고 따로 호출하면 안됨
function fixElement(elementId, speed)
{
    var el = document.getElementById(elementId);
    var pos = getScrollPos();

    el.style.top = pos['top'] + fixedTop + 'px';

    window.setTimeout("fixElement('" + elementId + "', " + speed + ")", speed);
}

// select에서 해당 값을 선택
function selectByValue(selectObj, val)
{
    var selectOptions = selectObj.options;
    var loop = selectOptions.length;

    for(var i = 0; i < loop; i++)
    {
        if(selectOptions[i].value == val)
            selectOptions[i].selected = true;
        else
            selectOptions[i].selected = false;
    }
}
