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;
}

// Add array remove function
Array.prototype.remove = function(from, to) {
    var rest = this.slice((to || from) + 1 || this.length);
    this.length = from < 0 ? this.length + from : from;
    return this.push.apply(this, rest);
}

function StringSet() {
    this.setArr = new Array();

    this.put = function(value) {
        if (!this.contains(value)) {
            this.setArr.push(value);
        }
    }

    this.get = function(index) {
        return this.setArr[index];
    }

    this.remove = function(value) {
        var i = this.indexOf(value);
        if (i != -1) {
            this.setArr.remove(i, i);
        }
    }

    this.contains = function(value) {
        return (this.indexOf(value) != -1);
    }

    this.indexOf = function(value) {
        for (var i = 0; i < this.setArr.length; i ++) {
            if (value.length == this.setArr[i].length && value.indexOf(this.setArr[i]) == 0) {
                return i;
            }
        }
        return -1;
    }

    this.size = function() {
        return this.setArr.length;
    }
}

var xmlhttp;
function ajaxConnect(servletPath) {
    xmlhttp=GetXmlHttpObject();
    if (xmlhttp==null) {
        alert ("Your browser does not support XMLHTTP!");
        return;
    }
    xmlhttp.onreadystatechange = FBConnectComplate;
    xmlhttp.open("GET",servletPath,true);
    xmlhttp.send(null);
}

function getUsersProfileInfo() {
    var detailsJsonStr = getCookie("userSNDetails");
    return eval("("+detailsJsonStr+")");
}

function getCookie(NameOfCookie) {
    if (document.cookie.length > 0) {
        begin = document.cookie.indexOf(NameOfCookie + "=");

        if (begin != -1) {
            begin += NameOfCookie.length + 1;
            end = document.cookie.indexOf(";", begin);
            if (end == -1) end = document.cookie.length;
            return unescape(document.cookie.substring(begin, end));
        }
    }
    return null;
}

function FBConnectComplate() {
    if (xmlhttp.readyState==4) {
        if (xmlhttp.responseText == "open_layer") {
            //document.location = "http://de.armenia.be2.de/user/login/loading_user.jsp";
            //alert("show layer");
            openFBLayer();
        } else if (xmlhttp.responseText != null && xmlhttp.responseText !="") {

			//{"uid":100000686096989,"birthday":"November 10, 1976","sex":"male","interests":"","pic_small":"http://profile.ak.fbcdn.net/hprofile-ak-sf2p/hs267.snc3/23094_100000686096989_2544_t.jpg","work_history":[{"position":"","end_date":"","company_name":"be2","location":{"state":"","country":"","city":""},"description":"","start_date":""}],"current_location":null,"meeting_sex":["female"],"first_name":"Eric","username":null,"about_me":"","last_name":"Amatuni","proxied_email":"apps+352079377208.100000686096989.7eacda911c856e221133e3ecce75330f@proxymail.facebook.com"}
			 var jsonData = getUsersProfileInfo();
//				 jsonData =  eval("("+jsonData+")");
			 //------------/the profile data can be used,by calling following------------
			//jsonData["first_name"];
			//jsonData["last_name"];
			//--------------------------------------------------------------------------
            document.location = "/user/login/loading_user.jsp;jsessionid="+xmlhttp.responseText;
        }
    }
}

function GetXmlHttpObject() {
    if (window.XMLHttpRequest) {
        // code for IE7+, Firefox, Chrome, Opera, Safari
        return new XMLHttpRequest();
    }
    if (window.ActiveXObject) {
        // code for IE6, IE5
        return new ActiveXObject("Microsoft.XMLHTTP");
    }
    return null;
}


