/*
array explode(string str, string separator);
Разбивает строку str в массив, используя separator в качестве разделителя
*/
function explode(str, separator) {
    var arr = new Array();

    if (str.indexOf(separator) != -1) {
        var pos;

        while ((pos = str.indexOf(separator)) != -1) {
            arr[arr.length] = str.slice(0, pos);
            str = str.slice(pos + 1, str.length);
        }

        arr[arr.length] = str;
    } else {
        arr[0] = str;
    }

    return arr;
}

/*
bool inArray(mixed needle, mixed haystack);
Проверяет, встречается ли элемент needle в массиве (ака объекте) haystack
*/
function inArray(needle, haystack) {
    for (i in haystack) {
        if (needle == haystack[i]) {
            return true;
        }
    }
    return false;
}

/*
string trim(string str);
Удаляет в начале и конце строки пробельные символы
*/
function trim(str) {
    str = str.replace(/^(\s)*/, '');
    str = str.replace(/(\s)*$/, '');

    return str;
}

/*
int toInt(mixed num);
Преобразует принятые данные в целочисленное значение (по алгоритму PHP).
*/
function toInt(num) {
    if (/^(-)?(\d+)/.test(num)) {
        var arr = /^(-)?(\d+)/.exec(num);
        if (arr && (typeof(arr) != 'undefined') && (arr[2] > 0)) {
            arr[2]--; arr[2]++;
            if (arr[1] == '-') {
                arr[2] = - arr[2];
            }
            return arr[2];
        }
    }

    return 0;
}

/*
string strSubdivision(fromStr, subStr);
Вычитает (удаляет) из строки fromStr подстроку subStr
*/
function strSubdivision(fromStr, subStr) {
    var strTmp;
    var pos = fromStr.indexOf(subStr);

    if (pos != -1) {
        strTmp = fromStr.slice(0, pos);
        strTmp += fromStr.slice(pos + subStr.length, fromStr.length);
        return strTmp;
    }

    return fromStr;
}

function openDiv(id) {
    var div = $(id);

    if (div && (typeof(div) != 'undefined')) {
        div.style.display = 'block';
    }
}

function closeDiv(id) {
    var div = $(id);

    if (div && (typeof(div) != 'undefined')) {
        div.style.display = 'none';
    }
}

function openCloseDiv(id) {
    var div = $(id);

    if (div && (typeof(div) != 'undefined')) {
        if (div.style.display == 'none') {
            div.style.display = 'block';
        } else {
            div.style.display = 'none';
        }
    }
}

/* ========================================================================== */

function plantMapScrollTo(id) {
    var span = $('plant_' + id);
    var elem = span;

    if (span && (typeof(span) != 'undefined')) {
        var delta = span.parentNode.offsetTop;

        while (elem.parentNode && (typeof(elem.parentNode) != 'undefined')) {
            elem = elem.parentNode;
            if (elem.parentNode.className == 'Scroller-Container') {
                //elem.parentNode.parentNode is <div id="Scroller-{$smarty.get.popup_id}">
                var id = elem.parentNode.parentNode.curIndex;

                if (animator.curScrollbar[id] && (typeof(animator.curScrollbar[id]) != 'undefined')) {
                    animator.curScrollbar[id].scrollTo(0, delta);
                }

                return;
            }
        }
    }
}

function plantMapScrollToBegin(elem) {
    if (elem && (typeof(elem) != 'undefined')) {
        var delta = 0;

        while (elem.parentNode && (typeof(elem.parentNode) != 'undefined')) {
            elem = elem.parentNode;
            if (elem.parentNode.className == 'Scroller-Container') {
                //elem.parentNode.parentNode is <div id="Scroller-{$smarty.get.popup_id}">
                var id = elem.parentNode.parentNode.curIndex;

                if (animator.curScrollbar[id] && (typeof(animator.curScrollbar[id]) != 'undefined')) {
                    animator.curScrollbar[id].scrollTo(0, delta);
                }

                return;
            }
        }
    }
}

/* ========================================================================== */

function duplicateWork(id) {
    var div = document.createElement('div');
    div.className = 'prev_work';
    div.innerHTML = $('sbcDivHolder' + id + '_no_validation').innerHTML;

    while (div.innerHTML.indexOf('[1]') != -1) {
        div.innerHTML = div.innerHTML.replace('[1]', '['+sbcFormsCount+']')
    }

    $('sbcTdHolder' + id).appendChild(div);
    sbcFormsCount++;

    resetPopUpScrollContains($('sbcTdHolder' + id));

    return false;
}

function resetPopUpScrollContains(elem) {
    while (elem.parentNode && (typeof(elem.parentNode) != 'undefined')) {
        elem = elem.parentNode;
        if (elem.parentNode.className == 'Scroller-Container') {
            //elem.parentNode.parentNode is <div id="Scroller-{$smarty.get.popup_id}">
            var index = elem.parentNode.parentNode.curIndex;
            var id = elem.parentNode.parentNode.id.replace('Scroller-', '');

            if (animator.curScrollbar[index] && (typeof(animator.curScrollbar[index]) != 'undefined')) {
                animator.curScroller[index].reset($('Scroller-' + id), $('Scroller-' + id).offsetWidth, $('Scroller-' + id).offsetHeight - 50);
                animator.curScrollbar[index].reset($('Scrollbar-Container-' + id), animator.curScroller[index], false, false, true);
            }

            return;
        }
    }
}

/* ========================================================================== */

function unCheckAllCheckboxes(frm) {
    var i;

    for (i = 0; i <= frm.elements.length; i++) {
        if (frm.elements[i] && (typeof(frm.elements[i]) != 'undefined') && (frm.elements[i].tagName == 'INPUT') && (frm.elements[i].type == 'checkbox')) {
            frm.elements[i].checked = false;
        }
    }
}

/* ========================================================================== */

var beforeOnLoadHappend = false;

function beforeOnload() {
    parseUrl();

    resizer.reset();
    animator.reset();

    animator.replaceSecondMenu();
    beforeOnLoadHappend = true;
}

var sbcFormsCount = 2;

/*========================================================================== */
function showHide(who, what) {
    if(what != true && what != false) {
                    if(document.getElementById(who).style.display == 'block') {
            document.getElementById(who).style.display = 'none';
        }
        else {
            document.getElementById(who).style.display = 'block';

        }
                }
    if(what == true) {
        document.getElementById(who).style.display = 'block';
    }
    if(what == false) {
        document.getElementById(who).style.display = 'none';
    }

    resetPopUpScrollContains($(who));

}