function max_fields(last_fields, paramname, item, max) {
    if (last_fields.length == 0) {
        var el = document.forms.form[paramname];
        for (var i = 0; i < el.length; i++) {
            if (el[i].checked && i != item - 1) {
                last_fields[last_fields.length] = i;
            }
        }
    }
    if (document.form[paramname][item - 1].checked) {
        last_fields[last_fields.length] = item - 1;
    } else {
        var newarray = new Array()
        for (i = 0; i < last_fields.length; i++)
        {
            if (!(last_fields[i] == (item - 1)))
            {
                newarray[newarray.length] = last_fields[i];
            }
        }
        last_fields = newarray;
    }
    if (last_fields.length > max) {
        document.form[paramname][last_fields[0]].checked = false;
        for (i = 0; i < last_fields.length - 1; i++)
        {
            last_fields[i] = last_fields[i + 1];
        }
        last_fields.length = max;
    }
    return last_fields;
}
function callText(callfc, callname, calltext, callCmsText) {
    this.call = callfc;
    this.name = callname;
    this.text = calltext;
    this.callCmsText = callCmsText;
}
function call(callfc, callname, calltext) {
    this.call = callfc;
    this.name = callname;
    this.text = calltext;
}
function call_num(callfc, param) {
    this.call = callfc;
    this.param = param;
}
function call_custom(callfc, errtext) {
    this.call = callfc;
    this.errtext = errtext;
}
var callbacks = new Array();
var callbacks_custom = new Array();
var callbacks_num = new Array();
function kadrop(item, kaitem) {
    if (kaitem.checked)item.selectedIndex = 0;
}
function kadropchange(item, kaitem) {
    if (item.selectedIndex > 0)kaitem.checked = false;
}
function kalistchange(item, kaitem) {
    for (var i = 0; i < item.length; i++) {
        if (item[i].checked)kaitem.checked = false;
    }
}
function kalist(item, kaitem) {
    if (kaitem.checked) {
        for (var i = 0; i < item.length; i++)item[i].checked = false;
    }
}
function trim(txt) {
    var spacechars = new String("<br>\n\t\r ");
    var res = new String("");
    var i = 0;
    for (i = 0; i < txt.length; i++) {
        if (spacechars.indexOf(txt.charAt(i)) == -1) {
            res = txt.substring(i);
            break;
        }
    }
    for (i = res.length - 1; i > 0; i--) {
        if (spacechars.indexOf(res.charAt(i)) == -1) {
            res = res.substring(0, i + 1);
            break;
        }
    }
    return res;
}
function replaceAll(oldStr, findStr, repStr) {
    var srchNdx = 0;
    var newStr = "";
    while (oldStr.indexOf(findStr, srchNdx) != -1) {
        newStr += oldStr.substring(srchNdx, oldStr.indexOf(findStr, srchNdx));
        newStr += repStr;
        srchNdx = (oldStr.indexOf(findStr, srchNdx) + findStr.length);
    }
    newStr += oldStr.substring(srchNdx, oldStr.length);
    return newStr;
}
function cmtoinch(cm) {
    var inch = Math.round(cm / 2.54);
    var feet = 0;
    while (inch > 11) {
        inch = inch - 12;
        feet = feet + 1;
    }
    var output = feet + '\'' + inch + '"';
    return output;
}
function emailValidator(str) {
    var at = "@"
    var dot = "."
    var lat = str.indexOf(at)
    var lstr = str.length
    var ldot = str.indexOf(dot)
    if (str.indexOf(at) == -1) {
        return false
    }
    if (str.indexOf(at) == -1 || str.indexOf(at) == 0 || str.indexOf(at) == lstr) {
        return false
    }
    if (str.indexOf(dot) == -1 || str.indexOf(dot) == 0 || str.indexOf(dot) == lstr) {
        return false
    }
    if (str.indexOf(at, (lat + 1)) != -1) {
        return false
    }
    if (str.substring(lat - 1, lat) == dot || str.substring(lat + 1, lat + 2) == dot) {
        return false
    }
    if (str.indexOf(dot, (lat + 2)) == -1) {
        return false
    }
    if (str.indexOf(" ") != -1) {
        return false
    }
    return true
}
function findPos(obj) {
    var curleft = 0;
    var curtop = 0;
    if (obj.offsetParent) {
        do {
            if (!(isNaN(obj.offsetLeft) && isNaN(obj.offsetTop))) {
                curleft += obj.offsetLeft;
                curtop += obj.offsetTop;
            }
        } while (obj = obj.offsetParent);
        return [curleft,curtop];
    }
    return null;
}
function scrollCarret(curtop, isChild) {
    if (isChild) {
        parent.window.scrollTo(0, curtop, isChild);
    } else {
        window.scrollTo(0, curtop, isChild);
    }
}
function addErrorText(errorCount, isChild) {
    document.getElementById('error_counter_block').style.display = 'block';
    document.getElementById('error_counter').innerHTML = text_2 + " " + errorCount + " " + text_3;
    for (var i = 0; i < callbacks.length; i ++) {
        if (callbacks[i].call()) {
            break;
        }
    }
    var firstError = findPos(document.getElementById('error_' + callbacks[i].name));
    if (isChild) {
        var iframeObj = findPos(parent.document.getElementById('profileTabs'));
        scrollCarret(firstError[1] + iframeObj[1], isChild);
    } else {
        scrollCarret(firstError[1], isChild);
    }
}

function addErrorTextNum(errorCount, isChild) {
    document.getElementById('error_counter_block').style.display = 'block';
    document.getElementById('error_counter').innerHTML = text_2 + " " + errorCount + " " + text_3;
    for (var i = 0; i < callbacks_num.length; i ++) {
        if (callbacks_num[i].call(callbacks_num[i].param)) {
            break;
        }
    }
    var firstError = findPos(document.getElementById('error_' + callbacks_num[i].param));
    if (isChild) {
        var iframeObj = findPos(parent.document.getElementById('profileTabs'));
        scrollCarret(firstError[1] + iframeObj[1], isChild);
    } else {
        scrollCarret(firstError[1], isChild);
    }
}

function addCheaterCheckerError(error_text) {
   document.getElementById('error_counter_block').style.display = 'block';
   document.getElementById('error_counter').innerHTML = error_text;
}


