﻿function cursorEOT(isField)
{
    testOverflow = isField.scrollTop;
    if (testOverflow != 0){return true}
    else {return false}
}

function adjustRows(isField)
{
    while (cursorEOT(isField)){isField.rows++;};
}

function forgot() {
    var fgemailaddress = document.getElementById("fgemailaddress").value;
    var fgartistname = document.getElementById("fgartistname").value;
    var fgyear = document.getElementById("fgyear").value;
    Story.WebService.ForgotPassword(fgemailaddress, fgartistname, fgyear, onForgotComplete);
}

function onForgotComplete(result) {
    showTheError(result);
}

function changePassword()
{
    var oldpassword = document.getElementById('oldpassword').value;
    var newpassword = document.getElementById('newpassword').value;
    if(newpassword.trim().length==0)
    {
        showError("New password address is required");
        return;
    }
    else if(oldpassword.trim().length==0)
    {
        showError("Old password is required");
        return;
    }
    
    var aid = getAccountId();
    Story.WebService.SaveAccountInfo(aid, "password", oldpassword, newpassword, onSaveAccountInfoComplete);
}

function changeArtistName()
{
    var artistname = document.getElementById('artistname').value;
    if(artistname.trim().length==0)
    {
        showError("Artist name is required");
        return;
    }
    
    var aid = getAccountId();
    Story.WebService.SaveAccountInfo(aid, "name", artistname, "", onSaveAccountInfoComplete);
}

function changeBirthday()
{
    var birthday = document.getElementById('birthday').value;
    if(birthday.trim().length!=4)
    {
        showError("Birthday is required (year only - e.g. 1983)");
        return;
    }
    
    var aid = getAccountId();
    Story.WebService.SaveAccountInfo(aid, "birthday", birthday, "", onSaveAccountInfoComplete);
}

function changeArtistBio()
{
    var artistbio = document.getElementById('artistbio').value;
    if(artistbio.trim().length==0)
    {
        showError("Your bio is required");
        return;
    }
    else if(artistbio.trim().length>500)
    {
        showError("Your bio is too long. Current text length is "+artistbio.trim().length);
        return;
    }

    var aid = getAccountId();
    Story.WebService.SaveAccountInfo(aid, "bio", artistbio, "", onSaveAccountInfoComplete);
}

function changeEmailAddress()
{
    var emailaddress = document.getElementById('emailaddress').value;
    if(emailaddress.trim().length==0)
    {
        showError("Email address is required");
        return;
    }
    else if(!isValidEmail(emailaddress))
    {
        showError("Invalid email address");
        return;
    }
    
    var aid = getAccountId();
    Story.WebService.SaveAccountInfo(aid, "email", emailaddress, "", onSaveAccountInfoComplete);
}

function onSaveAccountInfoComplete(result)
{
    if(result=="ok") {
        var fb_sig_session_key = document.getElementById("fb_sig_session_key").value;
        var fb_sig_user = document.getElementById("fb_sig_user").value;
        window.location = "myaccount.aspx?fb_sig_user=" + fb_sig_user + "&fb_sig_session_key=" + fb_sig_session_key;
    }
    else
    {
        showError(result);
    }
}

function actBook(val)
{
    var bid = document.getElementById("bid").value;
    activateBook(bid, val);
}

var activeval, bookid;
function activateBook(bid, active)
{
    activeval = active;
    bookid = bid;
    var aid = getAccountId();
    Story.WebService.ActivateBook(aid, bid, active, onActivateBookComplete);      
}

function onActivateBookComplete(result)
{
    if(result=="ok")
    {
        refreshpage();
    }
    else
    {
        showTheError(result);
    } 
}

function setBookType(bid, val)
{
    var aid = getAccountId();
    Story.WebService.SetBookType(aid, bid, val, onSetBookComplete);      
}

function onSetBookComplete(result)
{
    if(result=="ok")
    {
        refreshpage();
    }
    else
    {
        showTheError(result);
    } 
}

function deleteBook(bid)
{
    bookid = bid;
    var aid = getAccountId();
    Story.WebService.DeleteBook(aid, bid, onDeleteBookComplete);      
}

function onDeleteBookComplete(result)
{
    if(result=="ok")
    {
        var elm = document.getElementById(bookid);
        if(elm)
        {
            elm.style.display = "none";
        }
    }
    else
    {
        showTheError(result);
    } 
}

function deleteImageById(obj, imageId)
{
    this.obj = obj;
    var aid = getAccountId();
    Story.WebService.SaveAccountInfo(aid, "delimage", imageId, null, onDeleteImageComplete);
}

function onDeleteImageComplete(result)
{
    if(result=="ok")
    {
        refreshpage();
    }
    else
    {
        obj.innerHTML=result;
        obj.className = "err";
    }
}

function cloneBook(bid)
{
    var aid = getAccountId();
    var fb_sig_session_key = "";
    var fb_sig_user = "";
    if(document.getElementById("fb_sig_session_key"))
    {
        fb_sig_session_key = document.getElementById("fb_sig_session_key").value;
        fb_sig_user = document.getElementById("fb_sig_user").value;
    }
    Story.WebService.CloneBook(aid, bid, fb_sig_session_key, fb_sig_user, onCloneBookComplete);    
}

function onCloneBookComplete(result)
{
    window.location = result;
}

function saveBook(bid)
{
    var title = document.getElementById(booktitle).value;
    var desc = document.getElementById(bookdesc).value;
    if(title.trim().length==0)
    {
        showTheError("Book title is required");
        return;
    }
    var aid = getAccountId();
          
    var bookli = document.getElementById("bookli");
    var j = 0;
    var pageorderstr = "";
	for(var i=0; i<bookli.childNodes.length; i++)
	{
	    var child = bookli.childNodes[i];
	    if(child.nodeName=="LI")
	    {
	        j++;
	        var pid = child.id;
	        pageorderstr += pid + "," + j + ",";
	    }
	}
	
    var fb_sig_session_key = "";
    var fb_sig_user = "";
    if(document.getElementById("fb_sig_session_key"))
    {
        fb_sig_session_key = document.getElementById("fb_sig_session_key").value;
        fb_sig_user = document.getElementById("fb_sig_user").value;
    }

    Story.WebService.SaveBook(aid, bid, title, desc, pageorderstr, fb_sig_session_key, fb_sig_user, onSaveBookComplete);   
}

function onSaveBookComplete(result)
{
    window.location = result;
}

var activeval, pageid;
function activatePage(pid, active)
{
    activeval = active;
    pageid = pid;
    var aid = getAccountId();
    Story.WebService.ActivatePage(aid, pid, active, onActivatePageComplete);      
}

function onActivatePageComplete(result)
{
    if(result=="ok")
    {
        var text = "activate";
        var elm = document.getElementById(pageid+"-act");
        if(activeval==1)
        {
            elm.innerHTML = "de-activate";
            elm.setAttribute("onclick", "activatePage("+pageid+", 0)");
            elm.parentNode.parentNode.style.color = "#000";
        }
        else        
        {
            elm.innerHTML = "activate";
            elm.setAttribute("onclick", "activatePage("+pageid+", 1)");
            elm.parentNode.parentNode.style.color = "#aaa";
        }
    }
    else
    {
        showTheError(result);
    } 
}

var redirecturl
function deletePage(pid, url)
{
    pageid = pid;
    redirecturl = url;
    var aid = getAccountId();
    Story.WebService.DeletePage(aid, pid, onDeletePageComplete);      
}

function onDeletePageComplete(result)
{
    if(result=="ok")
    {
        if(redirecturl!="")
        {
            window.location=redirecturl;
        }
        else
        {
            var elm = document.getElementById(pageid);
            if(elm)
            {
                elm.style.display = "none";
            }
        }
    }
    else
    {
        showTheError(result);
    } 
}

function clonePage(pid, ppid)
{
    var aid = getAccountId();
    var fb_sig_session_key = "";
    var fb_sig_user = "";
    if(document.getElementById("fb_sig_session_key"))
    {
        fb_sig_session_key = document.getElementById("fb_sig_session_key").value;
        fb_sig_user = document.getElementById("fb_sig_user").value;
    }
    Story.WebService.ClonePage(aid, pid, ppid, fb_sig_session_key, fb_sig_user, onClonePageComplete);       
}

function onClonePageComplete(result)
{
    window.location = result;
}

function mergeCommentPage(bid, pid)
{
    pageid = pid;
    var aid = getAccountId();
    Story.WebService.MergeCommentPage(aid, bid, pid, onCommentPageComplete);      
}

function deleteCommentPage(bid, pid)
{
    pageid = pid;
    var aid = getAccountId();
    Story.WebService.DeleteCommentPage(aid, bid, pid, onCommentPageComplete);      
}

function onCommentPageComplete(result)
{
    refreshpage();
}

function outOfFocus(t)
{
    t.innerHTML = t.value;
}

function manageBook()
{
    window.location="book.aspx?bid=" + document.getElementById("bookid").value;
}

function showTheError(message) {
/*
    var error = document.getElementById("theerror");
    if(error)
    {
        error.innerHTML = message;
    }
    */
    alert(message);
}

function rateArtist(aid, point)
{
    Story.WebService.RateArtist(aid, point, onRateComplete);      
}

function rateBook(bid, point)
{
    Story.WebService.RateBook(bid, point, onRateComplete);      
}

function onRateComplete(result)
{
    document.getElementById("ratediv").innerHTML = result;
}

function ratePage(obj, pid, point)
{
    this.obj = obj;
    Story.WebService.RatePage(pid, point, onRatePageComplete);      
}

function onRatePageComplete(result)
{
    obj.parentNode.innerHTML = result;
}

function favorite(event, aid, baid)
{
    if(aid=="")
    {
        popupWin(event, -100, -100, "Attention", "Please login to add this artist to your favorite list.", "");
        return;
    }
    else if(aid==baid)
    {
        popupWin(event, -100, -100, "Attention", "Can not add yourself to your favorite list", "");
        return;
    }
    Story.WebService.AddFavorite(aid, baid, onFavoriteComplete);      
}

function onFavoriteComplete(result)
{
    var favdiv = document.getElementById("favdiv");
    favdiv.innerHTML = result;
    favdiv.className = "err";
}

function flagbook(bid, source)
{
    var desc = document.getElementById("flagcomments").value;
    if(desc.trim()=="")
    {
        showTheError("Your comment is required");
        return;
    }
    var aid = getAccountId();
    Story.WebService.FlagBook(aid, bid, desc, source, onFlagComplete);      
}

function flagjoke(jid)
{
    var desc = document.getElementById("flagcomments").value;
    if(desc.trim()=="")
    {
        showTheError("Your comment is required");
        return;
    }
    var aid = getAccountId();
    Story.WebService.FlagJoke(aid, jid, desc, null, onFlagComplete);
}

function onFlagComplete(result)
{
    showTheError(result);
    document.getElementById("flagcomments").value = "";
}

function telljoke() {
    var desc = document.getElementById("jokedesc").value;
    if (desc.trim() == "") {
        showTheError("Do you hvae a joke to tell?");
        return;
    }
    var aid = getAccountId();
    Story.WebService.TellJoke(aid, desc, "comicater", onTellJokeComplete);
}

function onTellJokeComplete(result) {
    showTheError(result);
    document.getElementById("jokedesc").value = "";
}

function popupFlagJoke(event)
{
    xoff = 0;
    yoff = 20;
    var aid = getAccountId();
    findMousePos(event);
    Story.WebService.GetPopup(aid, "flagjoke", jokeId, "comicater", onGetPopupComplete);
}

function popupTellJoke(event) {
    xoff = 0;
    yoff = 20;
    var aid = getAccountId();
    findMousePos(event);
    Story.WebService.GetPopup(aid, "telljoke", "val", "comicater", onGetPopupComplete);
}

var jokeId;
function popupJokediv(jokeId)
{
    this.jokeId = jokeId;
    Story.WebService.GetJokeProperties(jokeId, getJokeComplete);
}

function getJokeComplete(result)
{
    var jokediv = document.getElementById("jokediv");
    if(jokediv)
    {
        jokediv.style.top=y-150;
        jokediv.style.left=200;
        jokediv.style.display = "block";
    }
    
    var content = document.getElementById("content");
    if(content)
    {
        content.innerHTML = result;
        setRandomBackground();
    }
}

function getBookHtml(obj, bookId)
{
    this.obj = obj;
    if (obj) {
        Story.WebService.GetBookHtmlByBookId(bookId, onGetHtmlComplete);
    }
}

function getPageHtmlById(bookId, pageId)
{
    this.obj = document.getElementById(bookId+"-"+pageId);
    if(obj)
    {
        try {
            Story.WebService.GetPageHtmlByPageId(bookId, pageId, onGetHtmlComplete);
        }
        catch (e) { };
    }
}

function getPageHtml(obj, bookId, pageId)
{
    this.obj = obj;
    if (obj) {
        try {
            Story.WebService.GetPageHtmlByPageId(bookId, pageId, onGetHtmlComplete);
        }
        catch (e) { };
    }
}

function onGetHtmlComplete(result)
{
    obj.innerHTML = result;
}

function getBookHtmlSlide(event, bookId)
{
    findMousePos(event);
    Story.WebService.GetBookHtmlSlide(bookId, onGetBookHtmlPopupComplete);
}

function getBookHtmlPopup(event, bookId)
{
    findMousePos(event);
    Story.WebService.GetBookHtmlByBookId(bookId, onGetBookHtmlPopupComplete);
}

function onGetBookHtmlPopupComplete(result)
{
    var popup = document.getElementById("htmlBook");
    popup.style.display="block";
    popup.style.top = (y-100) + 'px';
    popup.style.left = (x-100) + 'px';
    popup.innerHTML = result;
}

function share(bid, url, source)
{
    var femails = document.getElementById("femails").value;
    if(femails.trim().length == 0)
    {
        showTheError("Email addresses are required!");
        return;
    }
    var yourname = document.getElementById("yourname").value;
    if(yourname.trim().length == 0)
    {
        showTheError("Your name is required!");
        return;
    }
    
    var message = document.getElementById("yourmessage").value;
    var aid = getAccountId();
    Story.WebService.Share(aid, bid, url, femails, yourname, message, source, onShareComplete);      
}

function onShareComplete(result)
{
    showTheError(result);
    if(result.indexOf("invalid")==-1)
    {
        document.getElementById("femails").value = "";
    }
}

function getHtmlEnv()
{
    var popup = document.getElementById('htmlBook');
    popup.style.position = 'absolute';
    popup.style.display = 'block';
    popup.style.zIndex = 100;
    return popup;
}

var facebookUrl = "";
function tagcomment(bid, pid)
{
    window.location = "page.aspx?cmmt=yes&bid="+bid+"&tpid="+pid+facebookUrl+"&returl="+escape(window.location);
}

function comment(bid, pid)
{
    if(pid==0)
    {
        window.location = "page.aspx?cmmt=yes&bid="+bid+facebookUrl+"&returl="+escape(window.location);
    }
    else
    {
        window.location = "page.aspx?cmmt=yes&bid="+bid+"&ppid="+pid+facebookUrl+"&returl="+escape(window.location);
    }
}

function comment_fb(bid, pid) {
    if (pid == 0) {
        window.location = "page_fb.aspx?cmmt=yes&bid=" + bid + facebookUrl + "&returl=" + escape(window.location);
    }
    else {
        window.location = "page_fb.aspx?cmmt=yes&bid=" + bid + "&ppid=" + pid + facebookUrl + "&returl=" + escape(window.location);
    }
}

var source, tm = 10000;
function getOtherBooks(source, facebookUrl)
{
    this.source = source;
    Story.WebService.GetOtherBooks(source, facebookUrl, onGetOtherBooksComplete);
}

function onGetOtherBooksComplete(result)
{
    var upsale = document.getElementById("upsalebooks");
    if(upsale)
    {
        tm = tm*1.5;
        upsale.innerHTML = result;
        setTimeout("getOtherBooks('"+source+"','"+facebookUrl+"')", tm);
    }
}

function setBookAvatar(chkbx)
{
    var bid = document.getElementById("bid").value;
    var title = document.getElementById(booktitle).value;
    var desc = document.getElementById(bookdesc).value;
    var aid = getAccountId();
    Story.WebService.SetAvatar("book", aid, bid, chkbx.value, title, desc, onSetAvatarComplete);
}

function setAvatarByType(chkbx, type, typeId)
{
    var bookId = 0;
    if(type=="book")
    {
        bookId = typeId;
    }
    var aid = getAccountId();
    Story.WebService.SetAvatar(type, aid, bookId, chkbx.value, null, null, onSetAvatarComplete);
}

function onSetAvatarComplete(result)
{
    refreshpage();
}

function setBookCategory(selBookCat)
{
    var cat = selBookCat.value;
    var bid = document.getElementById("bid").value;
    var aid = getAccountId();
    Story.WebService.SetBookCategory(aid, bid, cat, onSetBookCategoryComplete);
}

function onSetBookCategoryComplete(result)
{
    if(result=="ok") result = "book category saved!";    
    document.getElementById("bookcatmsg").innerHTML = result;
}

function invitedev(bookId)
{
    var devemails = document.getElementById("devemails");
    var aid = getAccountId();
    Story.WebService.InviteDev(aid, bookId, devemails.value, onInviteDevComplete);
}

function onInviteDevComplete(result)
{
    refreshpage();
}

function invitedevFacebook(bookId, checked)
{
    var fb_sig_session_key = document.getElementById("fb_sig_session_key").value;
    var fb_sig_user = document.getElementById("fb_sig_user").value;
    var aid = getAccountId();
    var invite = true;
    if(checked=="checked") invite = false;
    Story.WebService.InviteDevFacebook(aid, bookId, fb_sig_session_key, fb_sig_user, invite, onInviteDevComplete);
}

function activateFacebook(bookId, checked)
{
    var aid = getAccountId();
    var active = 1;
    if(checked=="checked") active = 0;
    Story.WebService.ActivateBook(aid, bookId, active, onInviteDevComplete);
}

function deletedev(bookId, email)
{
    var aid = getAccountId();
    Story.WebService.DeleteDev(aid, bookId, email, onInviteDevComplete);
}

function acceptdev(bookId)
{
    var aid = getAccountId();
    Story.WebService.AcceptDev(aid, bookId, onInviteDevComplete);
}

function rejectdev(bookId)
{
    var aid = getAccountId();
    Story.WebService.RejectDev(aid, bookId, onInviteDevComplete);
}
function setArtistAvatar(chkbx)
{
    var aid = getAccountId();
    Story.WebService.SetAvatar("artist", aid, 0, chkbx.value, "", "", onSetAvatarComplete);
}

function onSetAvatarComplete(result)
{
    refreshpage();
}

function mergebooks()
{
    var bids = "";
    var chkbx = document.getElementsByName("merge");
    var count = 0;
    for (var i = 0; i < chkbx.length; i++) {
        if(chkbx[i].checked)
        {
            bids += chkbx[i].value + ",";
            count ++;
        }
    }
    
    if(count<2)
    {
        alert("Please check at least two books to merge.");
        return;
    }
    
    if(confirm("Are you sure you want to merge these comics?"))
    {
        var aid = getAccountId();
        Story.WebService.MergeBooks(aid, bids, onSaveComplete);
    }
}
function deletebooks()
{
    var bids = "";
    var chkbx = document.getElementsByName("merge");
    var count = 0;
    for (var i = 0; i < chkbx.length; i++) {
        if(chkbx[i].checked)
        {
            bids += chkbx[i].value + ",";
            count ++;
        }
    }
    
    if(count<1)
    {
        alert("Please check at least one comic to delete.");
        return;
    }
    
    if(confirm("Are you sure you want to delete comics?"))
    {
        var aid = getAccountId();
        Story.WebService.DeleteBooks(aid, bids, onSaveComplete);
    }
}

function onSaveComplete(result)
{
    refreshpage();
}
