﻿var IE = document.all ? true : false;

try { Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequest); }
catch (x) { }

var scrollToTop = false;

function EndRequest() {
    if (scrollToTop) {
        scroll(0, 0);
        scrollToTop = false;
    }
}

function UpdatePanel1(arg) {
    __doPostBack("UpdatePanel1", arg);
}

function OnComplete(arg) {
    if (arg != null) {
        if (arg.indexOf("http://", 0) == 0) {
            window.location.href = arg;
            return true;
        }
        else {
            alert(arg);
            return false;
        }
    }
    else {
        UpdatePanel1();
        return true;
    }
}

function OnCompleteLogin(arg) {
    if (OnComplete(arg)) {
        UpdatePanel1(arg);
    }
    else {
        document.getElementById("buttonLogin").disabled = false;
        document.getElementById('loginName').disabled = false;
        document.getElementById('loginPassword').disabled = false;
        document.getElementById("loginPassword").focus();
        document.getElementById("loginPassword").select();
    }
}

function OnCompleteLogout(arg) {
    window.location.reload();
}

function OnCompleteContact(arg) {
    if (!OnComplete(arg)) {
        document.getElementById("buttonContact").disabled = false;
    }
    else {
        alert("An e-mail with your message was successfully sent!");
    }
}

function OnCompleteTogglePublished(arg) {
    if (!OnComplete(arg)) {
        document.getElementById("buttonTogglePublished").disabled = false;
    }
}

function Login(userName, password) {
    var hash = b64_sha1(password + Strip(userName));
    MarkupStation.Web.CommonService.Login(hash, OnCompleteLogin);
}

function Logout() {
    MarkupStation.Web.CommonService.Logout(OnCompleteLogout);
}

function ContactAuthor(about, message) {
    MarkupStation.Web.CommonService.ContactAuthor(about, message, OnCompleteContact);
}

function ContactUser(receiverId, message) {
    MarkupStation.Web.CommonService.ContactUser(receiverId, message, OnCompleteContact);
}

function CoerceMaxLength(o, max) {
    return o.value.length <= max;
}

function Strip(value) {
    var valid = "abcdefghijklmnopqrstuvwxyz0123456789";
    value = value.toLowerCase();
    var stripped = "";
    for (i = 0; i < value.length; ++i) {
        c = value.charAt(i);
        if (valid.indexOf(c) >= 0) {
            stripped += c;
        }
    }
    return stripped;
}

function OnKeyDown(e) {
    if (e.keyCode == 13 && !document.getElementById('buttonLogin').disabled) {
        InitiateLogin();
        return false;
    }
    return true;
}

function OnKeyUp(e) {
    if (e.keyCode == 13) {
        return false;
    }
    var x = document.getElementById('loginName').value.length;
    var y = document.getElementById('loginPassword').value.length;
    var b = x > 0 && y > 0;
    document.getElementById('buttonLogin').disabled = !b;
    return true;
}

function InitiateLogin() {
    document.getElementById('buttonLogin').disabled = true;
    document.getElementById('loginName').disabled = true;
    document.getElementById('loginPassword').disabled = true;
    Login(document.getElementById('loginName').value, document.getElementById('loginPassword').value);
}

function TogglePublished(id) {
    document.getElementById('buttonTogglePublished').disabled = true;
    MarkupStation.Web.CommonService.TogglePublished(id, OnCompleteTogglePublished);
}
