$(document).ready(function() {
    $(".deleteButton").click(function() {
        if (confirm("Are you sure you want to delete this?")) {
            return true;
        }
        else {
            return false;
        }
    });

    $('.toggle_registration').click(function() {
        if ($(".view_user_register").css('display') == "none")
        {
                $(".view_user_register").slideDown(function() {
                    $('.toggle_registration').toggleClass('cancel');
                });
//            $("#submenu").slideUp(function() {
//            });
        }
        else
        {
            $(".view_user_register").slideUp(function() {
                    $('.toggle_registration').toggleClass('cancel');
//                $("#submenu").slideDown(function() {
//                });
            });
        }
    });
    
    initHelpTexts();
    
    //document.getElementById("firstname").onclick = function(){validateField(document.getElementById("firstname"), _firstnameRegEx)};
});

function initHelpTexts() {
    var objArr = $('.field :input');
    for (var i = 0; i < objArr.length; i++) {
//        if ($(objArr[i]).parent().hasClass('checkbox')) {
//            $(objArr[i]).focus(function() { $(this).parent().next('.help').fadeIn('normal') }).blur(function() { $(this).parent().next('.help').fadeOut('normal') });
//        }
        $(objArr[i]).focus(function() { $(this).next('.help').fadeIn('normal') }).blur(function() { $(this).next('.help').fadeOut('normal') });
    }
}

    // REGULAR EXPRESSIONS FOR CLIENT VALIDATION, DEFINED IN SERVER CODE
    var _firstnameRegEx = /^([a-zA-Z\-åäöÅÄÖüúùûéèêíìîáàâýóòôÜÚÙÛÉÈÊÍÌÎÁÀÂÝÓÒÔ]){2,30}$/;
    var _lastnameRegEx = /^([a-zA-Z\-åäöÅÄÖüúùûéèêíìîáàâýóòôÜÚÙÛÉÈÊÍÌÎÁÀÂÝÓÒÔ]){2,30}$/;
    var _birthdayRegEx = /^((((19|20)(([02468][048])|([13579][26]))-02-29))|((20[0-9][0-9])|(19[0-9][0-9]))-((((0[1-9])|(1[0-2]))-((0[1-9])|(1\d)|(2[0-8])))|((((0[13578])|(1[02]))-31)|(((0[1,3-9])|(1[0-2]))-(29|30)))))$/;
    var _addressRegEx = /^[^\<\>]{2,60}$/;
    var _addressOtherRegEx = /^\B$|^[^\<\>]{2,60}$/;
    var _zipRegEx = /^(.{1,30})$/;
    var _cityRegEx = /^([a-zA-Z åäöÅÄÖüúùûéèêíìîáàâýóòôÜÚÙÛÉÈÊÍÌÎÁÀÂÝÓÒÔ]){2,60}$/;
    var _phoneRegEx = /^([0-9]){5,30}$/;
    
    var _usernameRegEx = /^([a-zA-Z0-9_\.\-]{6,12})$/;
    var _nicknameRegEx = /^([a-zA-Z0-9_\.\-&!]{2,12})$/;
    var _passwordRegEx = /^.*(?=.{6,30})(?=.*\d)(?=.*[a-zA-Z]).*$/;
    var _emailRegEx = /^(?:[a-zA-Z0-9åäöÅÄÖüúùûéèêíìîáàâýóòôÜÚÙÛÉÈÊÍÌÎÁÀÂÝÓÒÔ_'^&amp;/+-])+(?:\.(?:[a-zA-Z0-9_'^&amp;/+-])+)*@(?:(?:\[?(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))\.){3}(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\]?)|(?:[a-zA-Z0-9åäöÅÄÖüúùûéèêíìîáàâýóòôÜÚÙÛÉÈÊÍÌÎÁÀÂÝÓÒÔ-]+\.)+(?:[a-zA-ZåäöÅÄÖüúùûéèêíìîáàâýóòôÜÚÙÛÉÈÊÍÌÎÁÀÂÝÓÒÔ]){2,}\.?)$/;
    var _campaignRegEx = /^\B$|^([a-zA-Z0-9åäöÅÄÖüúùûéèêíìîáàâýóòôÜÚÙÛÉÈÊÍÌÎÁÀÂÝÓÒÔ_\.\-:]+)$/;
    
    var checkSwedishZip = false;
    
    var _isNicknamePostBack = false;
    var _origNicknameHelpText = "<div class=\"help_content\">Skriv in ditt alias, minst 2 tecken and max 12, använd bara a-z, 0-9 och \"_\", \"-\", \"&\", \"!\" eller \".\"</div>";
    var _origAjaxNickname = "";

    function setFocus() {
        var obj = getFirstElementByStyleClass("invalid");
        
        if (obj != null) {
            obj.focus();
        }
    }

    function getFirstElementByStyleClass(className) {
        var all = document.all ? document.all : document.getElementsByTagName('*');
        var elements = new Array();
        for (var e = 0; e < all.length; e++) {
            if (all[e].className == className) {
                elements[elements.length] = all[e];
            }
        }
        return elements[0];
    }

    function clearClasses(obj) {
        obj.className = obj.className.replace(/ invalid/, "");
        obj.className = obj.className.replace(/ valid/, "");
        return obj;
    }
    
    function validateAllFields() {
        var elementsToCheck = document.getElementById("register-fields");
        var firstErrorObj = null;
        var submitForm = true;
        
        checkConfirm();
        
        for (var i = 0; i < elementsToCheck.getElementsByTagName("*").length; i++) {
            if (typeof elementsToCheck.getElementsByTagName("*")[i].onblur == 'function') {
                if (elementsToCheck.getElementsByTagName("*")[i].tagName == "INPUT" || elementsToCheck.getElementsByTagName("*")[i].tagName == "SELECT") {
                    elementsToCheck.getElementsByTagName("*")[i].onblur();
                    if ($('#' + elementsToCheck.getElementsByTagName("*")[i].id).parent().parent().hasClass("invalid"))
                    {
                        if (firstErrorObj == null)
                            firstErrorObj = elementsToCheck.getElementsByTagName("*")[i];
                            
                        //document.getElementById("errorExists").style.display = "block";
                        submitForm = false;
                    }
                }
            }
        }
        
        if (submitForm == true) {
            if (checkConfirm() == false) {
                submitForm = false;
            }
        }

        return submitForm;
    }

    function validateField(obj, regexp) {
        var _parentObj = clearClasses($("#" + obj.id).parent().parent()[0]);
        
        if (obj.value.match(regexp))
            _parentObj.className = _parentObj.className + " valid";
        else
            _parentObj.className = _parentObj.className + " invalid";
    }
    
    function checkPassword() {
        var _password = document.getElementById("password");
        var _verifyPassword = document.getElementById("password_confirm");
        
        var _parentObj = clearClasses(document.getElementById("password_confirm_container"));
        
        if (_password.value != _verifyPassword.value || _verifyPassword.value == "")
            _parentObj.className = _parentObj.className + " invalid";
        else
            _parentObj.className = _parentObj.className + " valid";
    }
    
    function checkEmail() {
        var _email = document.getElementById("email");
        var _verifyEmail = document.getElementById("email_confirm");
        
        var _parentObj = clearClasses(document.getElementById("email_confirm_container"));
        
        if (_email.value != _verifyEmail.value || _verifyEmail.value == "")
            _parentObj.className = _parentObj.className + " invalid";
        else
            _parentObj.className = _parentObj.className + " valid";
    }

    function checkBirthday() {
//        var _yearObj = document.getElementById("dnn_ctr746_ViewUserInfo_ctl00_birthdayddl1");
//        var _monthObj = document.getElementById("dnn_ctr746_ViewUserInfo_ctl00_birthdayddl2");
//        var _dayObj = document.getElementById("dnn_ctr746_ViewUserInfo_ctl00_birthdayddl3");
//        
//        var _birthdayValue = _yearObj.value + "-" + _monthObj.value + "-" + _dayObj.value;
        
        var _birthdayValue = document.getElementById("birthday");
        
        var _parentObj = clearClasses(document.getElementById("birthday_container"));
        
        if (!_birthdayValue.match(_birthdayRegEx)) {
            _parentObj.className = _parentObj.className + " invalid";
//            _yearObj.className = _yearObj.className + " invalid";
//            _monthObj.className = _monthObj.className + " invalid";
//            _dayObj.className = _dayObj.className + " invalid";
            return;
        }

        var _dateArr = _birthdayValue.split("-");
        
        var _minDate = new Date();
        var _enteredDate = new Date();
        
        _minDate.setFullYear(1992,09,12);
        _enteredDate.setFullYear(_dateArr[0], _dateArr[1], _dateArr[2]);

        if (_enteredDate > _minDate) {
            _parentObj.className = _parentObj.className + " invalid";
//            _yearObj.className = _yearObj.className + " invalid";
//            _monthObj.className = _monthObj.className + " invalid";
//            _dayObj.className = _dayObj.className + " invalid";
        }
        else {
            _parentObj.className = _parentObj.className + " valid";
//            _yearObj.className = _yearObj.className + " valid";
//            _monthObj.className = _monthObj.className + " valid";
//            _dayObj.className = _dayObj.className + " valid";
        }
    }
    
    function checkCountry(obj) {
        var _parentObj = clearClasses(document.getElementById("countryid"));
        
        if (obj.value == "")
            _parentObj.className = _parentObj.className + " invalid";
        else
            _parentObj.className = _parentObj.className + " valid";
    }
    
    function checkGender(obj) {
        var _parentObj = clearClasses(document.getElementById("gender"));
        
        if (obj.value == "")
            _parentObj.className = _parentObj.className + " invalid";
        else
            _parentObj.className = _parentObj.className + " valid";
    }
    
    function checkConfirm() {
        var _parentObj = clearClasses(document.getElementById("terms_and_conditions_container"));
        
        if (document.getElementById("terms_and_conditions").checked == true) {
            _parentObj.className = _parentObj.className + " valid";
            return true;
        }
        else {
            _parentObj.className = _parentObj.className + " invalid";
            return false;
        }
    }
