/***
 * Javascript code to support http://www.bookpig.com
 *
 * History:
 *              Last updated: 20 May, 2009 by John Witchel
 *
 *              April 22, 2010  Updated by Clay Blackwelder, TECHSOFT, Inc.
 *                              Added new functions, "selectOffer()", "setLastFromFamily()",
 *                              "checkRenteredEmail()" to support
 *                              new email promotion.
 ***/

var IE = /*@cc_on!@*/false;
var IE6 = false /*@cc_on || @_jscript_version < 5.7 @*/;
var IE7 = false/*@cc_on || @_jscript_version >= 5.7@*/;

/* flipReaderInfo() */
function flipReaderInfo(pnl) {
    if (document.getElementById(pnl).style.display == 'none') document.getElementById(pnl).style.display = 'inline-block';
    else document.getElementById(pnl).style.display = 'none';
} //flipReaderInfo

/* selectOffer() */
function selectOffer(name) {
    var element = name && typeof (name) == "object" ? name : document.getElementById(name);
    if (element.checked != true) element.checked = true;
    // if (document.getElementById(name).checked != true) document.getElementById(name).checked = true;
}

/* setLastFromFamily() */
function setLastFromFamily(name, val) {
    var element = name && typeof (name) == "object" ? name : document.getElementById(name);
    element.value = val;
    // document.getElementById(name).value = val;
}

/* checkEnroll1 */
function checkEnroll1(l1, l2, l3, l4) {
    if (document.getElementById(l1).innerText.length > 0) return false;
    else if (document.getElementById(l2).innerText.length > 0) return false;
    else if (document.getElementById(l3).innerText.length > 0) return false;
    else if (document.getElementById(l4).innerText.length > 0) return false;
    else return true;
} // checkEnroll1(l1, l2, l3, l4)

/* checkEmail */
function checkEmail(tb, val, lbl, lblb) {
    var tbElement = tb && typeof (tb) == "object" ? tb : document.getElementById(tb);
    var lblElement = lbl && typeof (lbl) == "object" ? lbl : document.getElementById(lbl);
    var lblbElement = lblb && typeof (lblb) == "object" ? lblb : document.getElementById(lblb);
    var tbElementVal = Trim(tbElement.value);

    // Reset other label's message
    lblElement.innerText = "";
    lblbElement.innerText = "";

    if (tbElementVal == 0) {
        lblElement.innerText = "E-mail is required.";
        return false;
    }
    else if (tbElementVal != Trim(val)) {
        lblElement.innerText = "E-mails don't match.";
        return false;
    }
    else {
        return true;
    } // (tbElementVal != Trim(val))
} // checkRenteredEmail

/* checkPassword */
function checkPassword(tb, val, lbl, lblb) {
    var tbElement = tb && typeof (tb) == "object" ? tb : document.getElementById(tb);
    var lblElement = lbl && typeof (lbl) == "object" ? lbl : document.getElementById(lbl);
    var lblbElement = lblb && typeof (lblb) == "object" ? lblb : document.getElementById(lblb);
    var tbElementVal = Trim(tbElement.value);

    // Reset other label's message
    lblElement.innerText = "";
    lblbElement.innerText = "";

    if (tbElementVal.length < 6 || tbElementVal.length > 12) {
        lblElement.innerText = "Password must be 6-12 characters.";
        return false;
    }
    else if (tbElementVal != Trim(val)) {
        lblElement.innerText = "Passwords don't match.";
        return false;
    }
    else {
        return true;
    }  // (tbElementVal.length < 6 || tbElementVal.length > 12)
} // checkRenteredPassword

function Trim(val) {
    if (val.length > 0) { 
        while (val.charAt(0) == " ") {
            val = val.slice(1, val.length);
        } // Ltrim
        while (val.charAt(val.length - 1) == " ") {
            val = val.slice(0, val.length - 1);
        } // Rtrim
    } // (val.length > 0)

    return val;
} // Trim

/* show start */
function show(elementId){
    var element = elementId && typeof(elementId)=="object" ? elementId : document.getElementById(elementId);
	if( !element )
	    return;
	element.style.display = "block";
	element.style.visibility = "visible";
}
/* show end */

/* hide start */
function hide(elementId){
    var element = elementId && typeof(elementId)=="object" ? elementId : document.getElementById(elementId);
	if( !element )
	    return;
	element.style.display = "none";
	element.style.visibility = "hidden";
}
/* hide end */

/* transparent start */
function transparent(elementId, transparentValue){
    var element = elementId && typeof(elementId)=="object" ? elementId : document.getElementById(elementId);
	
	if( !element )
	    return;
    
    if( !(transparentValue >= 0 && transparentValue <= 1) )
        return alert( "invalid transparentValue [" + transparentValue + "]" );
    
	if( !IE )
	    element.style.opacity = transparentValue;
	else
	    element.style.filter = "alpha(opacity: " + (transparentValue * 100) + ")";
}
/* transparent end */

function generic_confirm() {
    if (confirm("Are you sure?") == true)
        return true;
    else
        return false;
}

function UpdateQueue(action, username, storyID) {
    $.ajax({
        type: "POST",
        url: "../AutoComplete.asmx/UpdateQueue",
        data: "{'storyID':'" + storyID + "', 'action':'" + action + "', 'username':'" + username + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response) {
            var str = ".StoryID_" + storyID.toString();
            var story = $(str);

            var markedAs = $(str + " .MarkedAsText");
            var text = markedAs.html();
            if (response.d == "Added") {
                markedAs.html(response.d);
            }
            else {
                markedAs.html("Removed<br>" + response.d);
            }
            story.addClass("medium-cover-greyed-out");
            markedAs.css("display", "block");
            RefreshCounts(username);
        }
    });
    return false;
}

// NOTE: This will handle username or userid 
function RefreshCounts(username) {
    $.ajax({
        type: "POST",
        url: "../AutoComplete.asmx/GetAllQueueAndBoxCounts",
        data: "{'username':'" + username + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response) {
            var users = new Array();
            users = response.d.split('|');

            for (i = 0; i < users.length; i++) {
                // Parse response
                var data = new Array();
                data = users[i].split(',');
                var currUsername = data[0];
                var queueVal = data[1];
                if (currUsername == username) {
                    var dataPoint = $("#nav_q_" + currUsername);
                    dataPoint.fadeOut("slow");
                    dataPoint.fadeIn("slow").text(queueVal);
                }
            }
        }
    });
    return false;
}

function BookPopup(username, storyID) {
    $.ajax({
        type: "POST",
        url: "AutoComplete.asmx/BookPopup",
        data: "{'storyID':'" + storyID + "', 'username':'" + username + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response) {
            // Replace the div's content with the page method's return.
            $("#storyPopup").html(response.d);
            $("#storyPopup").modal({
                minHeight: 550,
                overlayClose: true,

                onClose: function(dialog) {
                    dialog.data.fadeOut('fast', function() {
                        dialog.container.hide('fast', function() {
                            dialog.overlay.fadeOut('fast', function() {
                                $.modal.close();
                                $("#storyPopup").html("");
                            });
                        });
                    });
                },

                onOpen: function(dialog) {
                    dialog.overlay.fadeIn('fast', function() {
                        dialog.data.hide();
                        dialog.container.fadeIn('fast', function() {
                            dialog.data.fadeIn('fast');
                        });
                    });
                }
            });
        }
    });
}

function AddSeriesToQueue(username) {

    var storyIdArray = new Array();
    var $checkboxes = $("input.SeriesSelectorCheckBox");
 
    for(var i = 0; i < $checkboxes.length; i++) {
        var item = $checkboxes[i];
        var chked = item.checked;
        if (chked) {
            var seriesID = item.id;
            seriesID = seriesID.substr(4, seriesID.length - 4);
            storyIdArray.push(seriesID);
        }
    }

    $.ajax({
        type: "POST",
        url: "../AutoComplete.asmx/AddSeriesToQueue",
        data: "{'username':'" + username + "', 'storyIdArray':'" + storyIdArray + "'}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response) {

            if (response.d == "success") {
                $("#SeriesSelectorButtons").slideUp("slow");
                $(".SeriesSelectorCheckBoxWrapper").hide();
                for (var i = 0; i < storyIdArray.length; i++) {
                    var str = ".SeriesStoryID_" + storyIdArray[i].toString();
                    var story = $(str);
                    var markedAs = $(str + " .MarkedAsText");
                    var text = markedAs.html();
                    if (text == "") {
                        story.prepend('<span class="MarkedAsText">Added</span>');
                        story.addClass("medium-cover-greyed-out");
                    }

                    // Mark the lower grid
                    str = ".StoryID_" + storyIdArray[i].toString();
                    story = $(str);
                    if (story != null) {
                        markedAs = $(str + " .MarkedAsText");
                        text = markedAs.html();
                        markedAs.html("Added");
                        story.addClass("medium-cover-greyed-out");
                    }
                }
                RefreshCounts(username);
            }
        }
    });
    return false;
}

    function CheckAll() {
        var checkboxes = $(".SeriesSelectorCheckBox");
        var master = $("#MasterCheckAll");
        var isChecked = master.attr('checked');

        if (isChecked) {
            checkboxes.attr("checked", "checked");
        }
        else {
            checkboxes.removeAttr("checked");
        }
    }


    function setCookie(c_name, value, expiredays) {
        var exdate = new Date();
        exdate.setDate(exdate.getDate() + expiredays);
        document.cookie = c_name + "=" + escape(value) +
        ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString());
    }