

 
function ResolveUrl(url) {
    if (url.indexOf("~/") == 0) {
        url = baseUrl + url.substring(2);
    }
    return url;
}







function login() {
    //alert('login');
    var valid = 1;

    hideshow('login-msg', 0);
    if ($("#login-password").val().length == 0) {
        valid = 0;
        message(1, 'Please provide your password.');
    }

    if ($("#login-email").val().length == 0) {
        valid = 0;
        message(1, 'Please provide your email address.');
    }

    if ($("#login-email").val() == "Email Address") {
        valid = 0;
        message(1, 'Please provide your email address.');
    }


    if (valid == 1) logindb();

}


function logindb() {
    //alert('logindb');

    var url = ResolveUrl("~/LoginService.asmx");
    $.ajax({
        type: "POST",
        url: url + "/Login",
        data: "{UserEmail:'" + $('#login-email').val() + "',UserPassword:'" + $('#login-password').val() + "'}",
        dataType: 'json',
        contentType: "application/json; charset=utf-8",
        success: function(msg) {
            LoginSucceeded(msg.d);
        },
        error: AjaxFailed
    });

}



function logoff() {
    //alert('logoff');
    var url = ResolveUrl("~/LoginService.asmx");
    $.ajax({
        type: "POST",
        url: url + "/LogOff",
        data: "{}",
        dataType: 'json',
        contentType: "application/json; charset=utf-8",
        success: function(msg) {
            var url = ResolveUrl("~/Default.aspx");
            var PageUrl = unescape(location.href);
            if (PageUrl.indexOf("MemberForm") > 1) window.location = url;
            else window.location.reload(true);
        },
        error: AjaxFailed
    });

}

function LoginSucceeded(result) {
    if (result) {
        hideshow('login-msg', 0);
        //Set Features afet login
        isAuthenticated();
        isOnline();
        setChat();
        var email = $('#login-email').val();
        $('#lblLoggedOn').val(email);
        //Check for ReturnUrl & reload
        var ReturnUrl = unescape(getQuerystring('ReturnUrl'));
        if (ReturnUrl.length > 0) {
            var url = ResolveUrl(ReturnUrl);
            window.location = url;
        }
        //Check for MemberForm or MemberProfile & reload
        //var PageUrl = unescape(location.href);
        //if ((PageUrl.indexOf("Member") > 1) && (PageUrl.indexOf("PasswordRetrieval") < 0)) window.location.reload(true);  //__doPostBack('', '');   //window.location.reload(); //alert('MemberForm');
    } else {
        hideshow('login-msg', 1);
        $('#login-msg').html('Invalid Login. Please try again');
    }
}




function isAuthenticated() {
    //alert('isAuthenticated');
    var url = ResolveUrl("~/LoginService.asmx");

    $.ajax({
        type: "POST",
        url: url + "/IsAuthenticated",
        data: "{}",
        dataType: 'json',
        contentType: "application/json; charset=utf-8",
        success: function(msg) {
            //alert(msg.d);
            if (msg.d) {
                CheckVerification();
                $('.register-new').css('display', 'none');
                $('.register-update').css('display', 'block');

                $('#login-facebook').css('display', 'none');
                $('#join-now').css('display', 'none');
                $('#login-facebook-wait').css('display', 'none');
            }
            else {
                display('verify-wrapper', 'none');
                $('.register-new').css('display', 'block');
                $('.register-update').css('display', 'none');

                $('#login-facebook').css('display', 'block');
                $('#join-now').css('display', 'block');
                $('#login-facebook-wait').css('display', 'none');
            }
        }

    });


}



function CheckVerification() {
    //alert('isAuthenticated');
    var url = ResolveUrl("~/MasterService.asmx");

    $.ajax({
        type: "POST",
        url: url + "/CheckVerification",
        data: "{}",
        dataType: 'json',
        contentType: "application/json; charset=utf-8",
        success: function(msg) {
            //alert(msg);
            if (msg.d) {
                display('verify-wrapper', 'none');
            }
            else {
                var PageUrl = unescape(location.href);
                if (PageUrl.indexOf("EmailVerification") > 1) display('verify-wrapper', 'none');
                else display('verify-wrapper', 'inline');
            }
        }

    });


}


function isOnline() {
    //alert('isOnline');
    var url = ResolveUrl("~/LoginService.asmx");
    $.ajax({
        type: "POST",
        url: url + "/isOnline",
        data: "{}",
        dataType: 'json',
        contentType: "application/json; charset=utf-8",
        success: function(msg) {
            //alert('isOnline:' + msg);
            var src;
            if (msg.d) {
                boolOnline = true;
                src = $('#imgOnline').attr("src").replace("Off", "On");
            }
            else {
                boolOnline = false;
                src = $('#imgOnline').attr("src").replace("On", "Off");
            }
            //alert(src);
            $('#imgOnline').attr("src", src);



        }
    });

}






function isNumber(n) {
    return !isNaN(parseFloat(n)) && isFinite(n);
}



function replaceHTML(str) {

    str = str.replace(/&quot;/g, '"');
    str = str.replace(/&amp;/g, "&");
    str = str.replace(/&lt;/g, "<");
    str = str.replace(/&gt;/g, ">");

    return str;

}

function AjaxFailed(result) {
    //alert(result.status + ' ' + result.statusText);
}


function getQuerystring(key, default_) {
    //alert('111');
    if (default_ == null) default_ = "";
    key = key.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]");
    var regex = new RegExp("[\\?&]" + key + "=([^&#]*)");
    var qs = regex.exec(window.location.href);
    if (qs == null)
        return default_;
    else
        return qs[1];
}

function getReturnUrl() {
    var indexStart;
    var hn = window.location.hostname;

    if (hn.toLowerCase().indexOf('localhost') >= 0) {
        if (window.location.href.toLowerCase().indexOf(':') >= 0)
            indexStart = window.location.href.indexOf(hn) + hn.length + 6;
        else
            indexStart = window.location.href.toLowerCase().indexOf('esite') + 5;
    } else {
        indexStart = window.location.href.indexOf(hn) + hn.length;
    }
    //alert("indexStart: " + indexStart);
    var indexEnd = window.location.href.indexOf("aspx") + 4;
    //alert("indexEnd: " + indexEnd);

    var returnUrl = window.location.href.substring(indexStart, indexEnd);

    //if home page or login then return url is not necessary
    if (window.location.href.toLowerCase().indexOf("aspx") == -1) returnUrl = "";
    if (window.location.href.toLowerCase().indexOf("default") >= 0) returnUrl = "";
    if (window.location.href.toLowerCase().indexOf("login") >= 0) returnUrl = "";
    if (window.location.href.toLowerCase().indexOf("?") >= 0) returnUrl = "";

    //alert(returnUrl);
    return returnUrl;
}

function facebookSignIn() {
    //alert('Try Sign In');
    var returnUrl = getReturnUrl();
    var signupUrl = "http://www.SingleAndTheCity.com/MemberForms/SignUpFacebook.aspx"

    if (returnUrl.length > 0) {
        signupUrl = signupUrl + "?ReturnUrl=" + returnUrl;
    }
    //alert(signupUrl);
    
    $('#login-facebook').css('display', 'none');
    $('#login-facebook-wait').css('display', 'block');
    setTimeout('isAuthenticated();', 10000);

    FB.login(function (response) {
        if (response.authResponse) {
            var accessToken = response.authResponse.accessToken;
            //alert(accessToken);
            FB.api('/me', function (response) {
                //alert(response.id);
                //alert(response.name);

                if (response) {
                    //alert(signupUrl + "?u=" + response.id + "&t=" + accessToken);
                    window.location = signupUrl + "?u=" + response.id + "&t=" + accessToken;
                } else {
                    alert('Facebook Connect is currently down. Please login thru our site.')
                }

            });


        } else {
            // user is not logged in
            alert('PLEASE LOGIN')
        }
    }, { scope: 'email,user_about_me,user_birthday,user_events,user_hometown,user_location,user_interests,user_likes,user_relationship_details,user_status' });

    //}, { perms: 'read_stream,publish_stream,offline_access' });

}


function display(el, type) {
    $('#' + el).css('display', type);
}


function displayshow(el, act) {
    if (act) $('#' + el).css('display', 'inline');
    else $('#' + el).css('display', 'none');
}

function hideshow(el, act) {
    if (act) $('#' + el).css('visibility', 'visible');
    else $('#' + el).css('visibility', 'hidden');
}



function error(act, txt) {
    hideshow('error', act);
    if (txt) $('#error').html(txt);
}


function message(act, txt) {
    hideshow('login-msg', act);
    if (txt) $('#login-msg').html(txt);
}

function closeDialog() {
    $('#loading').css('visibility', 'hidden');
    $('#uploader').css('visibility', 'hidden');
    $('#cropper').css('visibility', 'hidden');
    $('#message').css('visibility', 'hidden');
}


function hideMessage() {
    $('#message').css('visibility', 'hidden');
}

function showMessage(messageText) {
    $('#message').css('visibility', 'visible');
    $('#messageText').html(messageText);
}

function hideUploader() {
    $('#uploader').css('visibility', 'hidden');
}
function showUploader() {
    $('#uploader').css('visibility', 'visible');
}
function hideCropper() {
    $('#cropper').css('visibility', 'hidden');
}
function showCropper() {
    $('#cropper').css('visibility', 'visible');
}










function getElementLeft(elm) {
    var x = 0;

    //set x to elm’s offsetLeft
    x = elm.offsetLeft;

    //set elm to its offsetParent
    elm = elm.offsetParent;

    //use while loop to check if elm is null
    // if not then add current elm’s offsetLeft to x
    //offsetTop to y and set elm to its offsetParent

    while (elm != null) {
        x = parseInt(x) + parseInt(elm.offsetLeft);
        elm = elm.offsetParent;
    }
    return x;
}

function getElementTop(elm) {
    var y = 0;

    //set x to elm’s offsetLeft
    y = elm.offsetTop;

    //set elm to its offsetParent
    elm = elm.offsetParent;

    //use while loop to check if elm is null
    // if not then add current elm’s offsetLeft to x
    //offsetTop to y and set elm to its offsetParent

    while (elm != null) {
        y = parseInt(y) + parseInt(elm.offsetTop);
        elm = elm.offsetParent;
    }

    return y;
}



function Medium(obj) {
    var mediumbox = document.getElementById("mediumbox");
    mediumbox.style.visibility = 'visible';
    var img = document.createElement("img");
    img.src = obj.src;
    img.style.width = '300px';
    img.style.height = '200px';

    if (img.addEventListener) {
        img.addEventListener('mouseout', MediumOut, false);
    } else {
        img.attachEvent('onmouseout', MediumOut);
    }
    mediumbox.innerHTML = '';
    mediumbox.appendChild(img);
    mediumbox.style.left = (getElementLeft(obj) + 50) + 'px';
    mediumbox.style.top = (getElementTop(obj) - 50) + 'px';
}

function Large(obj) {
    var imgbox = document.getElementById("imgbox");
    imgbox.style.visibility = 'visible';
    var img = document.createElement("img");
    img.src = obj.src;
    img.style.width = '200px';
    img.style.height = '300px';

    if (img.addEventListener) {
        img.addEventListener('mouseout', Out, false);
    } else {
        img.attachEvent('onmouseout', Out);
    }
    imgbox.innerHTML = '';
    imgbox.appendChild(img);
    imgbox.style.left = (getElementLeft(obj) - 50) + 'px';
    imgbox.style.top = (getElementTop(obj) - 50) + 'px';
}



function Out() {
    document.getElementById("imgbox").style.visibility = 'hidden';
}


function MediumOut() {
    document.getElementById("mediumbox").style.visibility = 'hidden';
}
