﻿// Functions for validating membership items
function validateDob(source, args){
    
    var bValid = false;
    var day, month, year;
    
    day = j$("select[ID$=ddlDay]")[0].value;
    month = j$("select[ID$=ddlMonth]")[0].value - 1;
    year = j$("select[ID$=ddlYear]")[0].value;
    
    var dob = new Date(year, month, day);
    var minDate = new Date();

    minDate.setFullYear(minDate.getFullYear()- 16);

    if (dob.getMonth() != month){
        source.innerHTML  = j$('input[ID$=hfInvalidDate]').val() //"Please enter a valid date";
    }else if(dob > minDate){            
        source.innerHTML  = j$('input[ID$=hf16YearsOld]').val(); //"You have to be at least 16 to be a member";
    }else{
        bValid = true;
    }
    args.IsValid = bValid;
}

function validateMob(source, args){
    var valid = true;
    var ctry = j$('select[ID$=ddlCountries]').val();
    if (ctry == 'GB'){
        ///  ^\+?(?:44|0|44 0)\s?7[5789][\s\d]{8}$
        var r = '^\\+?(?:44|0|44 0)\\s?7[5789][\\s\\d]{8}$';
        var regex = new RegExp(r);
        valid = (regex.test(j$("input[ID$=txtMobile]")[0].value));
    }
    args.IsValid = valid;
}

function validateMobHomepage(source, args){
    var valid = true;
    
    ///  ^\+?(?:44|0|44 0)\s?7[5789][\s\d]{8}$
    var r = '^\\+?(?:44|0|44 0)\\s?7[5789][\\s\\d]{8}$';
    var regex = new RegExp(r);
    valid = (regex.test(j$("input[ID$=txtMobile]")[0].value));
    
    args.IsValid = valid;
}

function checktandc(source, args){
    args.IsValid = j$("input[@type=checkbox][ID$=chkTandC]")[0].checked;
}

function validateUsername(){
    var username = j$("input[ID$=txtMemberName]")[0].value;
    if (username.length > 0){
        Emap.BOL.FHMGeneral.ValidateUsername(username, OnValidateCallback, null, "un");
    }
}

function validateEmail(checkExisting){
    // check valid email address
    
    var r = '\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*';
    var regex = new RegExp(r);
    if (regex.test(j$("input[ID$=txtEmail]")[0].value)){
        var email = j$("input[ID$=txtEmail]")[0].value;
        Emap.BOL.FHMGeneral.ValidateEmail(email, checkExisting, OnValidateCallback, showError, "em");
    }
}

function showError(objError, context)
{
}

function OnValidateCallback(res, context){
    
    var lbl;
    var span;
    var txt;
    
    if (context == "un"){
        lbl = j$("label#lblMemberName");
        span = j$("span[ID$=cvUsername]")
        txt = j$("input[ID$=txtMemberName]")
    }else{
        lbl = j$("label#lblEmail");
        span = j$("span[ID$=cvEmail]")
        txt = j$("input[ID$=txtEmail]")
    }
    
    if (!res){
        lbl.addClass("red");
        txt.addClass("textFieldValidator");
        span.show();
    }else{
        lbl.removeClass("red");
        txt.removeClass("textFieldValidator");
        span.hide();
    }
}

function toggleEdit(){
    j$("div.editProfile").slideToggle("slow")
    j$("a[ID$=lnkSave]").toggle();
    return false;
}


function GetValueFromChild(myVal)
{
    var img = j$('img[ID$=imgUserThumb]')[0];
    img.style.height = '65px';
    img.style.width = '65px';
    refreshImage(img);
    closeCropper();
    j$('div[ID$=pnlSaveAvatar]').show("fast");
}

function refreshImage(img){
    var index = img.src.indexOf('&i=');
    if (index != -1){
        img.src = img.src.substring(0, index) + '&i=' + Math.random();
    }else{
        img.src = img.src + '&i=' + Math.random();
    }
}

function refreshCurrentAvatarImages(imgSrc, hasAvatar){
    j$('img').each(
        function()
        {
            if (this.id.toLowerCase().indexOf('user') != -1){
                if (this.src.toLowerCase().indexOf('gallerypic.aspx') != -1){
                    if (hasAvatar){
                        var imgIndex = this.src.toLowerCase().indexOf('&image=');
                        if (imgIndex != -1){
                            this.src = this.src.substring(0, imgIndex) + '&image=' + imgSrc;
                        }
                    }
                }
            }
        }
    )
}

function refreshImages(oldName, newName, all){
    j$('img').each(
        function(){
            if (this.id.toLowerCase().indexOf('user') != -1){
                if (oldName.length == 0){
                        if (this.id.indexOf('Avatar') == -1){
                        var imgIndex = this.src.toLowerCase().indexOf('&image=')
                        if (imgIndex != -1){
                            //this.src = this.src.substring(0, imgIndex) + '&image=' + <%= "'" &  ConfigurationManager.Appsettings("AvatarImageRootPathThumbnails") & "'" %> + newName;   
                            this.src = this.src.substring(0, imgIndex) + '&image=' + getThumbPath() + newName;   
                        }
                    }
                }else if (!all && unescape(this.src.toLowerCase()).indexOf(oldName) != -1){
                    this.src = unescape(this.src.toLowerCase()).replace(oldName, newName);
                }else{
                    refreshImage(this);
                }
            }
        }
    )        
}

function getThumbPath(){
    return j$('input[ID$=hfThumbPath]')[0].value;
}

function updateEmailAlert(id, toEmail){
    Emap.BOL.FHMGeneral.UpdateEmailAlert(id, toEmail, null, showError);
    j$('input[ID$=hfAlertsChanged]').val('1');
}