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, complateHandler) {
    if (complateHandler == undefined) complateHandler = FBConnectComplate;

    xmlhttp=GetXmlHttpObject();
    if (xmlhttp==null)
    {
        alert ("Your browser does not support XMLHTTP!");
        return;
    }
    xmlhttp.onreadystatechange = complateHandler;
    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;
}


/**
 *  ATTENTION!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 *  ATTENTION!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 *  FOR PROPERLY WORK OF THIS CODE YOU NEED TO HAVE FOLOWING GLOBAL VARIABLES
 *   var patternList = new Array();
 *   #{RegistrationFormFeature_patternList}
 *   var nameError1 = 'CmsText(210044)}';
 *   var nameError2 = "CmsText(210063)}";
 *   var nameError3 = "CmsText(210086)}";
 *   var regValidatorURL = "#{RegistrationFormFeature_regValidatorURL}";
 *   var checkLoginURL = "#{LoginFormFeature_checkLoginURL}";
 */
// REGESTRATION FORM VALIDATION
var isGender1 = true;
var isGender2 = true;
var isName = true;
var isPassword = true;
var isMail = true;
var checkedNames = new Array();
var ajaxWait = false;
function cheaterChecker(param) {
    var str = trim(elementById(param).value.replace(/\r/g, ""));
    if (str.match("[`|~|!|@|#|$|%|\^|&|\*|(|)|\+|}|{|\"|\?|>|<|,|/|;|:|\'|\\[|\\]|\\\\| |=]") || str.match("_{2}")) {
        return false;
    }
    for (var i = 0; i < patternList.length; i++) {
        if (str.match(patternList[i])) {
            return false;
        }
    }
    return true;
}
function checkPassword(showError, fieldPass, bubble, bubbleFieldPass) {
    if (fieldPass == undefined) fieldPass = "password";
    if (bubble == undefined) bubble = "bubble";
    if (bubbleFieldPass == undefined) bubbleFieldPass = "upass";

    var jFieldPass = elementById(fieldPass);
    var jBubbleFieldPass = elementById(bubbleFieldPass);

    if (jFieldPass.value.length > 4) {
        hideError(jFieldPass, jBubbleFieldPass);
        isPassword = true;
    }
    else if (showError) {
        showErrorBubble(jFieldPass, jBubbleFieldPass, bubble);
        isPassword = false;
    }
    checkButton(bubble);
}
function checkEmail(showError, fieldEmail, bubble, bubbleFieldEmail) {
    if (fieldEmail == undefined) fieldEmail = "email";
    if (bubble == undefined) bubble = "bubble";
    if (bubbleFieldEmail == undefined) bubbleFieldEmail = "umail";

    var jFieldEmail = elementById(fieldEmail);
    var jBubbleFieldEmail = elementById(bubbleFieldEmail);

    var emailPattern = "^(([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5}){1,25})+([;.](([a-zA-Z0-9_\\-\\.]+)@([a-zA-Z0-9_\\-\\.]+)\\.([a-zA-Z]{2,5}){1,25})+)*$";
    var email = jFieldEmail.value;
    if (!email.match(emailPattern) || email.match("\\.{2}")) {
        if (showError) {
            showErrorBubble(jFieldEmail, jBubbleFieldEmail, bubble);
            isMail = false;
        }
    }                                                                                           
    else {
        hideError(jFieldEmail, jBubbleFieldEmail);
        isMail = true;
    }
    checkButton(bubble);
}

function checkName(showError, isChinese, fieldId, bubble, bubbleFieldId, regForm) {
    if (fieldId == undefined) fieldId = "user_name";
    if (bubble == undefined) bubble = "bubble";
    if (bubbleFieldId == undefined) bubbleFieldId = "uname";
    if (regForm == undefined) regForm = "regForm";

    var jFieldId = elementById(fieldId);
    var jBubbleFieldId = elementById(bubbleFieldId);

    var user_name = trim(jFieldId.value);
    if (cheaterChecker(fieldId, regForm)) {
        if ((isChinese && Utf8.encode(user_name).length < 4) || (!isChinese && user_name.length < 4)) {
            if (showError) {
                jBubbleFieldId.innerHTML = nameError1;
                showErrorBubble(jFieldId, jBubbleFieldId, bubble);
                isName = false;
            }
        }
        else {
            if (!showError){
                hideError(jFieldId, jBubbleFieldId);
            }
            isName = true;
        }
    }
    else {
        isName = false;
        jBubbleFieldId.innerHTML = nameError2;
        showErrorBubble(jFieldId, jBubbleFieldId, bubble);
    }
    checkButton(bubble);
}
function isNameExist(isChinese, formId, fieldSuggest, fieldId, bubble, bubbleFieldId, nameExist) {
    if (formId == undefined) formId = "regForm";
    if (fieldSuggest == undefined) fieldSuggest = "suggest";
    if (fieldId == undefined) fieldId = "user_name";
    if (bubble == undefined) bubble = "bubble";
    if (bubbleFieldId == undefined) bubbleFieldId = "uname";
    if (nameExist == undefined) nameExist = "nameExist";

    var jFormId = elementById(formId);
    var jFieldSuggest = elementById(fieldSuggest);
    var jFieldId = elementById(fieldId);
    var jBubbleFieldId = elementById(bubbleFieldId);
    var jNameExist = elementById(nameExist);

    checkName(true, isChinese, fieldId, bubble, bubbleFieldId, formId);

    jNameExist.style.display = "none";
    if (!isName)
        return;

    var result = checkedNames[trim(jFieldId.value)];
    if (result){
        if (result.indexOf("false") != -1){
            hideError(jFieldId, jNameExist);
            isName = true;
            checkButton(bubble);
        } else {
            jNameExist.innerHTML = result;
            jFieldSuggest.value = "true";
            showErrorBubble(jFieldId, jNameExist, bubble);
            isName = false;
        }
        return;
    }
    if (!ajaxWait) {
        ajaxWait = true;
        checkButton(bubble);
        if (isName) {
            jFieldId.value = trim(jFieldId.value);
            function checkExistNames() {
                if (xmlhttp.readyState==4) {

                    jNameExist.innerHTML = decodeURIComponent(xmlhttp.responseText.replace(/\+/g, '%20'));

                    if (isName) {
                        if (xmlhttp.responseText.indexOf("false") != -1) {
                            hideError(jFieldId, jBubbleFieldId);
                            isName = true;
                        }
                        else {
                            jFieldSuggest.value = "true";
                            showErrorBubble(jFieldId, jNameExist, bubble);
                            isName = false;
                        }
                    }
                    ajaxWait = false;
                    checkedNames[jFieldId.value] = jNameExist.innerHTML;
                    checkButton(bubble);

                    setTimeout(function() {ajaxWait = false}, 5000);
                }
            }
            ajaxConnect("/CheckForRegisteredUserServlet?user_name=" + jFieldId.value + "&fieldId=" + fieldId +
                        "&bubble=" + bubble + "&nameExist=" + nameExist, checkExistNames);
        }
        else{
            ajaxWait = false;
        }
    }
}

function setUsername(name, fieldId, bubble, nameExist, redBorder) {
    if (fieldId == undefined) fieldId = "user_name";
    if (bubble == undefined) bubble = "bubble";
    if (nameExist == undefined) nameExist = "nameExist";
    if (redBorder == undefined) redBorder = "redBorder";

    var jFieldId = elementById(fieldId);
    var jNameExist = elementById(nameExist);

    jFieldId.value = name;
    isName = true;
    jNameExist.style.display = "none";

    removeClass(jFieldId, redBorder);
    jFieldId.focus();

    checkButton(bubble);
}

function checkGender(index, mygender, gender1, gender2, search, ugender, bubble, redBorder) {
    if (mygender == undefined) mygender = "mygender";
    if (gender1 == undefined) gender1 = "gender1";
    if (gender2 == undefined) gender2 = "gender2";
    if (search == undefined) search = "search";
    if (ugender == undefined) ugender = "ugender";
    if (bubble == undefined) bubble = "bubble";
    if (redBorder == undefined) redBorder = "redBorder";

    var jMygender = elementById(mygender);
    var jGender1 = elementById(gender1);
    var jGender2 = elementById(gender2);
    var jSearch = elementById(search);
    var jUgender = elementById(ugender);

    var errorBox = new Array();
    var userAgent = navigator.userAgent.toLowerCase();
    var isMsie = /msie/.test(userAgent) && !/opera/.test(userAgent);
    if (!isMsie) {
        errorBox[0] = jMygender;
        errorBox[1] = jSearch;
    } else {
        errorBox[0] = jGender1;
        errorBox[1] = jGender2;
    }
    if (jMygender.value != -1 && jSearch.value != -1){
        jUgender.style.display = "none";
        removeClass(errorBox[0], redBorder);
        removeClass(errorBox[1], redBorder);
        isGender1 = true;
        isGender2 = true;
    }
    else {
        if (index == 1) {
            isGender1 = (jMygender.value != -1);
            if (!isGender1)
                showErrorBubble(errorBox[0], jUgender, bubble);
            else
                removeClass(errorBox[0], redBorder);
        }
        else {
            isGender2 = jSearch.value != -1;
            if (!isGender2)
                  showErrorBubble(errorBox[1], jUgender, bubble);
            else
                removeClass(errorBox[1], redBorder);
        }
    }
    checkButton(bubble);
}
function showErrorBubble(element, errorSpan, bubble, redBorder) {
    if (bubble == undefined) bubble = "bubble";
    if (redBorder == undefined) redBorder = "redBorder";

    var jBubble = elementById(bubble);

    addClass(element, redBorder);
    errorSpan.style.display = "block";

    jBubble.style.display = "block";
}
function hideError(element, errorSpan, redBorder){
    if (redBorder == undefined) redBorder = "redBorder";

    removeClass(element, redBorder);
    //element.className = element.className.replace(" " + redBorder, "");
    errorSpan.style.display = "none";

    //element.removeClass(redBorder);
    //errorSpan.hide();
}
function checkButton(bubble) {
    if (bubble == undefined) bubble = "bubble";

    var jBubble = elementById(bubble);

    if (isGender1 && isGender2 && isName && isPassword && isMail)
        jBubble.style.display = "none";

   return (!ajaxWait && isGender1 && isGender2 && isName && isPassword && isMail);
}
var submited = false;
function checkRegForm(isChinese, fieldSuggest, fieldId, bubbleFieldId, nameExist, fieldEmail, bubbleFieldEmail, fieldPass, bubbleFieldPass, mygender, gender1, gender2, search, ugender, bubble, regForm) {
    if (regForm == undefined) regForm = "regForm";

    var jRegForm = elementById(regForm);

    if (submited)
        return false;
    checkGender(1, mygender, gender1, gender2, search, ugender, bubble);
    checkGender(2, mygender, gender1, gender2, search, ugender, bubble);
//    checkName(true, isChinese);
    checkPassword(true, fieldPass, bubble, bubbleFieldPass);
    checkEmail(true, fieldEmail, bubble, bubbleFieldEmail);
    isNameExist(isChinese, regForm, fieldSuggest, fieldId, bubble, bubbleFieldId, nameExist);
    if (checkButton(bubble)) {
        checkedNames=new Array();
        submited = true;
        setTimeout(function() {submited = false;}, 10000);
        jRegForm.submit();
        return true;
    }
    else
        return false;
}
// END OF REGESTRATION FORM VALIDATION

// LOGIN FORM VALIDATION
var error = true;
var loginAjaxWait = false;


// UTF-8 ENCODING
var Utf8 = {encode:function(string) {
    string = string.replace(/\r\n/g, "\n");
    var utftext = "";
    for (var n = 0; n < string.length; n++) {
        var c = string.charCodeAt(n);
        if (c < 128) {
            utftext += String.fromCharCode(c);
        }
        else if ((c > 127) && (c < 2048)) {
            utftext += String.fromCharCode((c >> 6) | 192);
            utftext += String.fromCharCode((c & 63) | 128);
        }
        else {
            utftext += String.fromCharCode((c >> 12) | 224);
            utftext += String.fromCharCode(((c >> 6) & 63) | 128);
            utftext += String.fromCharCode((c & 63) | 128);
        }
    }
    return utftext;
},decode:function(utftext) {
    var string = "";
    var i = 0;
    var c = c1 = c2 = 0;
    while (i < utftext.length) {
        c = utftext.charCodeAt(i);
        if (c < 128) {
            string += String.fromCharCode(c);
            i++;
        }
        else if ((c > 191) && (c < 224)) {
            c2 = utftext.charCodeAt(i + 1);
            string += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
            i += 2;
        }
        else {
            c2 = utftext.charCodeAt(i + 1);
            c3 = utftext.charCodeAt(i + 2);
            string += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
            i += 3;
        }
    }
    return string;
}}



function closeLoginPopup(poputId, selects) {
    elementById(poputId).className = 'hideBlock';

    var userAgent = navigator.userAgent.toLowerCase();
    var isMsie = /msie/.test(userAgent) && !/opera/.test(userAgent);
    if (isMsie) {
        for (var i = 0; i < selects.length; i ++) {
            elementById(selects[i]).style.display = "block";
        }
    }
}

function loginPopup(popupId, overlayId, formContainerId, dropShadowId, loginFrameId, selects) {
    var userAgent = navigator.userAgent.toLowerCase();
    var isMsie = /msie/.test(userAgent) && !/opera/.test(userAgent);

    var windowSize = getWindowSize();
    var scrollPos = getScrollXY();

    elementById(popupId).className = 'showBlock';

    var popupOverlay = elementById(overlayId);

    window.onresize = owerlay;
    function owerlay() {
        popupOverlay.style.width = getDocWidth() + "px";
        popupOverlay.style.height = getDocHeight() + "px";
    }
    owerlay();

    var loginFormContainer = elementById(formContainerId);

    var left = ((windowSize.width - loginFormContainer.offsetWidth) / 2) + scrollPos.x;
    var top = ((windowSize.height - loginFormContainer.offsetHeight) / 2) + scrollPos.y;
    loginFormContainer.style.left = left + "px";
    loginFormContainer.style.top = top + "px";

    var loginFormContainerDropShadow = elementById(dropShadowId);
    loginFormContainerDropShadow.style.left = left + 1 + "px";
    loginFormContainerDropShadow.style.top = top + 4 + "px";
    loginFormContainerDropShadow.style.width = loginFormContainer.offsetWidth + "px";
    loginFormContainerDropShadow.style.height = loginFormContainer.offsetHeight + "px";

    if (loginFrameId != null) {
        var loginFrameSrcPnSuffix = "";
        var loginFrame = elementById(loginFrameId);
        //alert(loginFrameSrc);
        if (loginFrame.src.length == 0) {
            loginFrame.src = loginFrameSrc;
            //$("#loginFrame").attr("src", loginFrameSrc)
        }
        if (typeof(s) != "undefined") {
            loginFrameSrcPnSuffix = "&pn=" + s.pageName;
            loginFrame.src = loginFrame.src + loginFrameSrcPnSuffix;
            //$("#loginFrame").attr("src", $("#loginFrame").attr("src") + loginFrameSrcPnSuffix)
        }
        //alert(loginFrameSrc + "\n " + loginFrame.src);
    }
    if (isMsie) {
        for (var i = 0; i < selects.length; i ++) {
            elementById(selects[i]).style.display = "block";
        }
    }
    elementById("loginScPixelDiv").innerHTML = '<iframe style="visibility:hidden;" height="10px" src="/lib/ui/sc_pixel.jsp?pageName=login_layer" id="pixel_iframe"></iframe>';
}
;

function elementById(id) {
    var el = document.getElementById(id);
    if (el.id != id) {
        var all = document.getElementsByName(id);
        for (var i = 0; i < all.length; i ++) {
            if (all[i].id == id) {
                el = all[i];
                break;
            }
        }
    }
    return el;
}

function addClass(element, className){
    removeClass(element, className);
    element.className = element.className.length > 1 ? element.className + " " + className : " " + className;
    element.setAttribute("class", element.className);
}

function removeClass(element, className){
    element.className = element.className.replace(" " + className, "");
    element.setAttribute("class", element.className);
}

function trim (text) {
    return (text || "").replace( /^\s+|\s+$/g, "" );
}

function getDocHeight() {
    var D = document;
    return Math.max(
        Math.max(D.body.scrollHeight, D.documentElement.scrollHeight),
        Math.max(D.body.offsetHeight, D.documentElement.offsetHeight),
        Math.max(D.body.clientHeight, D.documentElement.clientHeight)
    );
}

function getDocWidth() {
    var D = document;
    return Math.max(
        Math.max(D.body.scrollWidth, D.documentElement.scrollWidth),
        Math.max(D.body.offsetWidth, D.documentElement.offsetWidth),
        Math.max(D.body.clientWidth, D.documentElement.clientWidth)
    );
}

function getScrollXY() {
  var scrOfX = 0, scrOfY = 0, scrOfWidth = 0, scrOfHeight = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
    scrOfWidth = document.body.scrollWidth;
    scrOfHeight = document.body.scrollHeight;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
      scrOfWidth = document.documentElement.scrollWidth;
      scrOfHeight = document.documentElement.scrollHeight;
  }
  return {x: scrOfX, y: scrOfY, width: scrOfWidth, height: scrOfHeight};
}

function getWindowSize() {
  var w = window;
  var T, L, W, H;
  with (w.document) {
    if (w.document.documentElement && documentElement.scrollTop) {
      T = documentElement.scrollTop;
      L = documentElement.scrollLeft;
    } else if (w.document.body) {
      T = body.scrollTop;
      L = body.scrollLeft;
    }
    if (w.innerWidth) {
      W = w.innerWidth;
      H = w.innerHeight;
    } else if (w.document.documentElement && documentElement.clientWidth) {
      W = documentElement.clientWidth;
      H = documentElement.clientHeight;
    } else {
      W = body.offsetWidth;
      H = body.offsetHeight
    }
  }
  return { top: T, left: L, width: W, height: H };
}

/*

Asynchronious JavaScripts loading and running
 */
var scriptsList;
var scriptSource;
var onCompleteFunctions;

function runJsLoading() {
    var arrScripts = scriptsList.split(",");
    for (var i = 0; i < arrScripts.length; i ++) {
        var jsTag = document.createElement("SCRIPT");
        jsTag.setAttribute("type", "text/javascript");
        jsTag.setAttribute("src", arrScripts[i]);

        done = false;

        jsTag.onload = jsTag.onreadystatechange = function(){
            if ( !done && (!this.readyState || this.readyState == "loaded" || this.readyState == "complete") ) {
                done = true;
                eval(onCompleteFunctions);
            }
        };

        document.getElementsByTagName("head")[0].appendChild(jsTag);
    }
}

function includeScripts(scripts, onComplete) {
    scriptsList = scripts;
    onCompleteFunctions = onComplete;
    window.setTimeout(runJsLoading, 0);
}

function executeScript() {
    eval(scriptSource);
}

function runScript(scriptS) {
    scriptSource = scriptS;
    window.setTimeout(executeScript, 0);
}

