﻿var openMail = "home";
var mailStarted = false;
var tabClicked = "";
var currentFolder = "Inbox";
var mailCount = 0;

$(document).ready(function() {
    if (document.getElementById('hfLogin').value == "true") {
        getMailList("Inbox");
        var d = new Date();
        var time = d.getTime();
        var strURL = parent.document.getElementById('hfHandlerURL').value + "/getMailTotalsHandler.ashx?user=" +
                parent.document.getElementById('hfUsername').value + "&pass=" + parent.document.getElementById('hfPassword').value + "&d=" + time;
        $.get(strURL, function(data) {
            mailCount = parseInt(data.split('^')[0]);
            var newMail = parseInt(data.split('^')[1]);
            if (newMail > 0) {
                parent.showMessage('email_unread', 3000, "small");
            }
            parent.setDashEmails(data.split('^')[1], data.split('^')[2]);
        });
        setTimeout("checkForNewMail('check')", 60000);
    }
    else {
        alert("Session has expired, please login again");
        parent.window.location.href = "http://www.locallinkup.com";
    }
});

function setHelpText(id) {
    parent.setWizardText(id);
}

function updateInbox() {
    var combo = $find("folderCombo");
    var item = combo.findItemByText("Inbox");
    if (item) {
        item.select();
        currentFolder = "Inbox";
    }
}

function checkForNewMail(state) {
    var d = new Date();
    var time = d.getTime();
    var strURL = parent.document.getElementById('hfHandlerURL').value + "/getMailTotalsHandler.ashx?user=" +
                parent.document.getElementById('hfUsername').value + "&pass=" + parent.document.getElementById('hfPassword').value + "&d=" + time;
    $.get(strURL, function(data) {
        if (state == "check") {
            var newMailCount = parseInt(data.split('^')[0]);
            if (newMailCount > mailCount) {
                parent.showMessage("email_new", 3000, "small");
                if (currentFolder == "Inbox") {
                    getMailList("Inbox");
                }
                mailCount = newMailCount;
            }
        }
        if (state == "reset") {
            mailCount = parseInt(data.split('^')[0]);
        }
        parent.setDashEmails(data.split('^')[1], data.split('^')[2]);
    });
    setTimeout("checkForNewMail('check')", 60000);
}

function getMailList(folder) {
    var d = new Date();
    var time = d.getTime();
    var strURL = parent.document.getElementById('hfHandlerURL').value + "/mailListHandler.ashx?user=" +
                parent.document.getElementById('hfUsername').value + "&pass=" + parent.document.getElementById('hfPassword').value + "&folder=" +
                folder + "&d=" + time;
    $.get(strURL, function(data) {
        if (data.length > 12) {
            document.getElementById('emailList').innerHTML = data;
            if (currentFolder == "Inbox" || currentFolder == "Trash" || currentFolder == "Junk") {
                document.getElementById('leftFromSubject').innerHTML = "From/Subject";
                document.getElementById('toFromLabel').innerHTML = "From";
            }
            if (currentFolder == "Sent" || currentFolder == "Drafts") {
                document.getElementById('leftFromSubject').innerHTML = "To/Subject";
                document.getElementById('toFromLabel').innerHTML = "To";
            }
            if (currentFolder == "Inbox") {
                var startIndex = data.indexOf(":") + 1;
                var stopIndex = data.indexOf("class") - 2;
                var firstID = data.substring(startIndex, stopIndex);
                selectMail(currentFolder + ":" + firstID);
            }
        }
        else {
            document.getElementById('emailList').innerHTML = "";
        }
        MailListScrollCheck();
    });
}

function MailListScrollCheck() {
    if (document.getElementById('emailList').offsetHeight > document.getElementById('emailListContainer').offsetHeight) {
        document.getElementById('listMailSlider').style.display = "inline";
    }
    else {
        document.getElementById('listMailSlider').style.display = "none";
    }
}

function MailListScroll(sender, eventArgs) {
    var emailListContainer = document.getElementById('emailListContainer');
    var emailList = document.getElementById('emailList');
    if (emailList.offsetHeight > emailListContainer.offsetHeight) {
        var availableHeight = emailList.scrollHeight - emailListContainer.offsetHeight;

        var sliderSmallChange = sender.get_smallChange();
        var sliderMinValue = sender.get_minimumValue();
        var sliderValue = sender.get_value();

        var steps = sliderValue / sliderSmallChange;
        var stepLength = availableHeight / ((sender.get_maximumValue() - sliderMinValue) / sliderSmallChange);

        var newPosition = (-1) * steps * stepLength;
        emailList.style.top = ((sliderValue == sliderMinValue) ? 0 : newPosition) + "px";
    }
}

function MailContentScrollCheck() {
    if (document.getElementById('details').offsetHeight > document.getElementById('detailsContainer').offsetHeight) {
        document.getElementById('contentMailSlider').style.display = "inline";
    }
    else {
        document.getElementById('contentMailSlider').style.display = "none";
    }
}

function MailContentScroll(sender, eventArgs) {
    var detailsContainer = document.getElementById('detailsContainer');
    var details = document.getElementById('details');
    if (details.offsetHeight > detailsContainer.offsetHeight) {
        var availableHeight = details.scrollHeight - detailsContainer.offsetHeight;

        var sliderSmallChange = sender.get_smallChange();
        var sliderMinValue = sender.get_minimumValue();
        var sliderValue = sender.get_value();

        var steps = sliderValue / sliderSmallChange;
        var stepLength = availableHeight / ((sender.get_maximumValue() - sliderMinValue) / sliderSmallChange);

        var newPosition = (-1) * steps * stepLength;
        details.style.top = ((sliderValue == sliderMinValue) ? 0 : newPosition) + "px";
    }
}

function NewMailScrollCheck() {
    if (document.getElementById('newBodyText').offsetHeight > document.getElementById('editorContainer').offsetHeight) {
        document.getElementById('newMailSlider').style.display = "inline";
    }
    else {
        document.getElementById('newMailSlider').style.display = "none";
    }
}

function NewMailScroll(sender, eventArgs) {
    var detailsContainer = document.getElementById('editorContainer');
    var details = document.getElementById('newBodyText');
    if (details.offsetHeight > detailsContainer.offsetHeight) {
        var availableHeight = details.scrollHeight - detailsContainer.offsetHeight;

        var sliderSmallChange = sender.get_smallChange();
        var sliderMinValue = sender.get_minimumValue();
        var sliderValue = sender.get_value();

        var steps = sliderValue / sliderSmallChange;
        var stepLength = availableHeight / ((sender.get_maximumValue() - sliderMinValue) / sliderSmallChange);

        var newPosition = (-1) * steps * stepLength;
        details.style.top = ((sliderValue == sliderMinValue) ? 0 : newPosition) + "px";
    }
}

var tempData;
var deleting = false;

function selectMail(id) {
    document.getElementById('hfMailSelected').value = id;
    if (!deleting) {
        var d = new Date();
        var time = d.getTime();
        var strURL = parent.document.getElementById('hfHandlerURL').value + "/mailContentHandler.ashx?d=" + time;
        $.post(strURL, {
            user: parent.document.getElementById('hfUsername').value,
            pass: parent.document.getElementById('hfPassword').value,
            id: id.split(':')[1],
            folder: id.split(':')[0]
        }, function(data) {
            if (currentFolder == "Drafts") {
                var newMail = document.getElementById('newMailPanel');
                openDiv(newMail);
                document.getElementById('homeMailTab').style.backgroundImage = "url(Images/email_home_off.png)";
                document.getElementById('forwardMailTab').style.backgroundImage = "url(Images/email_forward_off.png)";
                document.getElementById('newMailTab').style.backgroundImage = "url(Images/email_new_on.png)";
                document.getElementById('replyMailTab').style.backgroundImage = "url(Images/email_reply_off.png)";
                tempData = data.split('^');
                setTimeout("setDraftMail()", 1000);
            }
            else {
                if (data.split('^')[0] == "True") {
                    document.getElementById('attatchmentsButton').style.display = "inline";
                }
                else {
                    document.getElementById('attatchmentsButton').style.display = "none";
                }
                document.getElementById('dateField').innerHTML = data.split('^')[1];
                document.getElementById('fromField').innerHTML = data.split('^')[2];
                document.getElementById('subjectField').innerHTML = data.split('^')[3];
                document.getElementById('details').innerHTML = data.split('^')[4];
                MailContentScrollCheck();
            }
        });
    }
    else {
        deleting = false;
    }
}

function setDraftMail() {
    document.getElementById('newMailHeader').innerHTML = "Draft Email";
    document.getElementById('newToText').value = tempData[1];
    document.getElementById('newSubjText').value = tempData[2];
    var editor = $find("newBodyText"); //get a reference to RadEditor client object
    editor.set_html(tempData[3]); //reset the content
    NewMailScrollCheck();
    mailStarted = true;
    deleteEmail();
}

function deleteEmail() {
    deleting = true;
    hideDiv('emailDeleteDiv');
    document.getElementById('dateField').innerHTML = "";
    document.getElementById('fromField').innerHTML = "";
    document.getElementById('subjectField').innerHTML = "";
    document.getElementById('details').innerHTML = "";
    var d = new Date();
    var time = d.getTime();
    var strURL = parent.document.getElementById('hfHandlerURL').value + "/deleteMailHandler.ashx?d=" + time;
    $.post(strURL, {
        user: parent.document.getElementById('hfUsername').value,
        pass: parent.document.getElementById('hfPassword').value,
        id: document.getElementById('hfMailSelected').value.split(':')[1],
        folder: document.getElementById('hfMailSelected').value.split(':')[0]
    }, function(data) {
        if (data == "success") {
            if (currentFolder != "Drafts") {
                parent.showMessage('email_deleted', 3000, "small");
            }
            getMailList(currentFolder);
            document.getElementById('hfMailSelected').value = "";
        }
        else {
            parent.showMessage('delete_email_failed', 4000, "large");
        }
    });
}

function slide(id) {
    hideUpAttachments();
    hideAttachments();
    if (mailStarted) {
        tabClicked = id;
        confirmSaveToDrafts();
    }
    else {
        var newMail = document.getElementById('newMailPanel');
        document.getElementById('newMailHeader').innerHTML = "New Email";
        document.getElementById('newToText').value = "";
        document.getElementById('newSubjText').value = "";
        document.getElementById('attatchmentsButton').style.display = "none";
        var editor = $find("newBodyText"); //get a reference to RadEditor client object
        editor.set_html(""); //reset the content
        if (id == "homeMail") {
            closeDiv(newMail);
            document.getElementById('homeMailTab').style.backgroundImage = "url(Images/email_home_on.png)";
            document.getElementById('forwardMailTab').style.backgroundImage = "url(Images/email_forward_off.png)";
            document.getElementById('newMailTab').style.backgroundImage = "url(Images/email_new_off.png)";
            document.getElementById('replyMailTab').style.backgroundImage = "url(Images/email_reply_off.png)";
            openMail = "homeMail";
        }
        if (id == "newMail") {
            if (openMail != "newMail") {
                closeDiv(newMail);
                setTimeout("setNewMail()", 1000);
                openMail = "newMail";
            }
        }
        if (id == "replyMail") {
            if (openMail != "replyMail") {
                if (document.getElementById('hfMailSelected').value != "") {
                    closeDiv(newMail);
                    setTimeout("setReplyMail()", 1000);
                    openMail = "replyMail";
                }
                else {
                    parent.showMessage('email_reply_to', 3000, "small");
                }
            }
        }
        if (id == "fwdMail") {
            if (openMail != "fwdMail") {
                if (document.getElementById('hfMailSelected').value != "") {
                    closeDiv(newMail);
                    setTimeout("setFwdMail()", 1000);
                    openMail = "fwdMail";
                }
                else {
                    parent.showMessage('email_fwd_to', 3000, "small");
                }
            }
        }
    }
}

function setNewMail() {
    var newMail = document.getElementById('newMailPanel');
    document.getElementById('hfMailSelected').value = "";
    openDiv(newMail);
    document.getElementById('homeMailTab').style.backgroundImage = "url(Images/email_home_off.png)";
    document.getElementById('forwardMailTab').style.backgroundImage = "url(Images/email_forward_off.png)";
    document.getElementById('newMailTab').style.backgroundImage = "url(Images/email_new_on.png)";
    document.getElementById('replyMailTab').style.backgroundImage = "url(Images/email_reply_off.png)";
}

function setReplyMail() {
    var newMail = document.getElementById('newMailPanel');
    document.getElementById('newMailHeader').innerHTML = "Reply to Email";
    document.getElementById('newToText').value = document.getElementById('fromField').innerHTML;
    document.getElementById('newSubjText').value = "Re: " + document.getElementById('subjectField').innerHTML;
    var editor = $find("newBodyText"); //get a reference to RadEditor client object
    editor.set_html("<br/><br/>---------------------------------------<br/>" + document.getElementById('details').innerHTML); //reset the content
    openDiv(newMail);
    document.getElementById('homeMailTab').style.backgroundImage = "url(Images/email_home_off.png)";
    document.getElementById('forwardMailTab').style.backgroundImage = "url(Images/email_forward_off.png)";
    document.getElementById('newMailTab').style.backgroundImage = "url(Images/email_new_off.png)";
    document.getElementById('replyMailTab').style.backgroundImage = "url(Images/email_reply_on.png)";
    NewMailScrollCheck();
    mailStarted = true;
}

function setFwdMail() {
    var newMail = document.getElementById('newMailPanel');
    document.getElementById('newMailHeader').innerHTML = "Forward Email";
    document.getElementById('newToText').value = "";
    document.getElementById('newSubjText').value = "Fwd: " + document.getElementById('subjectField').innerHTML;
    var editor = $find("newBodyText"); //get a reference to RadEditor client object
    editor.set_html("<br/><br/>---------- Forwarded message ----------<br/>" + document.getElementById('details').innerHTML); //reset the content
    openDiv(newMail);
    document.getElementById('homeMailTab').style.backgroundImage = "url(Images/email_home_off.png)";
    document.getElementById('forwardMailTab').style.backgroundImage = "url(Images/email_forward_on.png)";
    document.getElementById('newMailTab').style.backgroundImage = "url(Images/email_new_off.png)";
    document.getElementById('replyMailTab').style.backgroundImage = "url(Images/email_reply_off.png)";
    NewMailScrollCheck();
    mailStarted = true;
}

function openDiv(element) {
    var timer = 0;
    if (element.offsetTop < -500) {
        $(element).each(function(i) {
            timer = (timer * .8 + 800);
            $(this).animate({ top: "0px" }, timer);
        });
    }
}

function closeDiv(element) {
    var timer = 0;
    if (element.offsetTop > -10) {
        $(element).each(function(i) {
            timer = (timer * .8 + 800);
            $(this).animate({ top: "-600px" }, timer);
        });
        timer = 0;
        $(element).each(function(i) {
            timer = (timer * .8 + 800);
            $(this).animate({ top: "-590px" }, timer);
            $(this).animate({ top: "-600px" }, timer);
        });
    }
}

function closeMail() {
    var element = document.getElementById('newMailPanel');
    closeDiv(element);
}

function sendMail() {
    if (document.getElementById('newToText').value != "") {
        if (document.getElementById('newSubjText').value != "") {
            var editor = $find("newBodyText");
            if (editor.get_html(false).length > 0) {
                var strURL = parent.document.getElementById('hfHandlerURL').value + "/sendMailHandler.ashx";
                $.post(strURL, {
                    user: parent.document.getElementById('hfUsername').value,
                    pass: parent.document.getElementById('hfPassword').value,
                    to: document.getElementById('newToText').value,
                    from: parent.document.getElementById('hfUsername').value,
                    subj: document.getElementById('newSubjText').value,
                    text: editor.get_html(false),
                    attach: document.getElementById('hfEmailAttachments').value
                }, function(data) {
                    if (data == "success") {
                        parent.showMessage('email_sent', 3000, "small");
                        var element = document.getElementById('newMailPanel');
                        mailStarted = false;
                        slide('homeMail');
                    }
                    else {
                        parent.showMessage('email_not_available', 3000, "large");
                    }
                });
            }
            else {
                parent.showMessage('new_mail_enter_content', 3000, "small");
            }
        }
        else {
            parent.showMessage('new_mail_enter_subject', 3000, "small");
        }
    }
    else {
        parent.showMessage('new_mail_enter_address', 3000, "small");
    }
}

function saveToDrafts() {
    var strURL = parent.document.getElementById('hfHandlerURL').value + "/saveEmailDraftHandler.ashx";
    var editor = $find("newBodyText");
    $.post(strURL, {
        user: parent.document.getElementById('hfUsername').value,
        pass: parent.document.getElementById('hfPassword').value,
        to: document.getElementById('newToText').value,
        from: parent.document.getElementById('hfUsername').value,
        subj: document.getElementById('newSubjText').value,
        text: editor.get_html(false)
    }, function(data) {
        if (data == "success") {
            parent.showMessage('email_draft_confirm', 3000, "small");
            hideDiv('emailSaveDraft');
            mailStarted = false;
            slide(tabClicked);
            tabClicked = "";
            if (currentFolder == "Drafts") {
                getMailList(currentFolder);
            }
        }
        else {
            parent.showMessage('email_not_available', 3000, "large");
        }
    });
}

function setStarted() {
    mailStarted = true;
}

function confirmSaveToDrafts() {
    showDiv('emailSaveDraft');
}

function cancelSaveToDrafts() {
    hideDiv('emailSaveDraft');
    mailStarted = false;
    slide(tabClicked);
    tabClicked = "";
}

function GetHeight() {
    var y = 0;
    if (self.innerHeight) {
        y = self.innerHeight;
    }
    else if (document.documentElement && document.documentElement.clientHeight) {
        y = document.documentElement.clientHeight;
    }
    else if (document.body) {
        y = document.body.clientHeight;
    }
    return y;
}

function GetWidth() {
    var x = 0;
    if (self.clientWidth) {
        x = self.clientWidth;
    }
    else if (document.documentElement && document.documentElement.clientWidth) {
        x = document.documentElement.clientWidth;
    }
    else if (document.body) {
        x = document.body.clientWidth;
    }
    return x;
}

function setStartPosition(id) {
    document.getElementById(id).style.top = "-300px";
    document.getElementById(id).style.left = ((GetWidth() - 400) / 2).toString() + "px";
}

function showDiv(id) {
    setStartPosition(id);
    var newPos = ((GetHeight() - 200) / 2).toString() + "px";
    var timer = 0;
    $("#" + id).each(function(i) {
        timer = (timer * .8 + 800);
        $(this).animate({ top: newPos }, timer);
    });
}

function hideDiv(id) {
    var timer = 0;
    $("#" + id).each(function(i) {
        timer = (timer * .8 + 1200);
        $(this).animate({ top: "-400px" }, timer);
    });
}

function confirmDeleteEmail(id) {
    if (id != "") {
        document.getElementById('hfMailSelected').value = id;
        showDiv('emailDeleteDiv');
    }
}

function folderComboIndexChanged(sender, eventArgs) {
    hideUpAttachments();
    hideAttachments();
    var item = eventArgs.get_item();
    currentFolder = item.get_value();
    getMailList(item.get_value());
    document.getElementById('dateField').innerHTML = "";
    document.getElementById('fromField').innerHTML = "";
    document.getElementById('subjectField').innerHTML = "";
    document.getElementById('details').innerHTML = "";
}

function getAttachments() {
    var d = new Date();
    var time = d.getTime();
    var strURL = parent.document.getElementById('hfHandlerURL').value + "/getAttachListHandler.ashx?d=" + time;
    $.post(strURL, {
        user: parent.document.getElementById('hfUsername').value,
        pass: parent.document.getElementById('hfPassword').value,
        id: document.getElementById('hfMailSelected').value.split(':')[1],
        folder: document.getElementById('hfMailSelected').value.split(':')[0]
    }, function(data) {
        document.getElementById('attachmentList').innerHTML = data;
        showAttachments();
    });
}

function showAttachments() {
    document.getElementById('attachmentListContainer').style.display = "inline";
    document.getElementById('attachmentsClose').style.display = "inline";
}

function hideAttachments() {
    document.getElementById('attachmentListContainer').style.display = "none";
    document.getElementById('attachmentsClose').style.display = "none";
}

function viewMail() {
    if (document.getElementById('hfMailSelected').value != "") {
        parent.viewMailPreview(document.getElementById('dateField').innerHTML, document.getElementById('fromField').innerHTML,
                    document.getElementById('subjectField').innerHTML, document.getElementById('details').innerHTML);
    }
}

function uploadAttachment() {
    if (document.getElementById('newToText').value != "") {
        if (document.getElementById('newSubjText').value != "") {
            var editor = $find("newBodyText");
            if (editor.get_html(false).length > 0) {
                parent.showAttachUpload();
            }
            else {
                parent.showMessage('new_mail_enter_content', 3000, "small");
            }
        }
        else {
            parent.showMessage('new_mail_enter_subject', 3000, "small");
        }
    }
    else {
        parent.showMessage('new_mail_enter_address', 3000, "small");
    }
}

function addAttachment(fileName) {
    document.getElementById('hfEmailAttachments').value = fileName + "^";
    var temp = "<div id=\"" + fileName + "\" class=\"attchDivBlack\"><div class=\"attchDeleteButton\" onclick=\"deleteAttach('" + fileName + "')\"></div>" + fileName + "</div>";
    showUpAttachments();
    document.getElementById('upAttachList').innerHTML += temp;
}

function showUpAttachments() {
    document.getElementById('upAttachListContainer').style.display = "inline";
    document.getElementById('hideUpAttchButton').style.display = "inline";
}

function hideUpAttachments() {
    document.getElementById('upAttachListContainer').style.display = "none";
    document.getElementById('hideUpAttchButton').style.display = "none";
}

function deleteAttach(fileName) {
    var divToRemove = document.getElementById(fileName);
    document.getElementById('upAttachList').removeChild(divToRemove);
    var d = new Date();
    var time = d.getTime();
    var strURL = parent.document.getElementById('hfHandlerURL').value + "/deleteAttachHandler.ashx?d=" + time;
    $.post(strURL, {
        file: fileName
    }, function(data) { });
    var temp = document.getElementById('hfEmailAttachments').value.split('^');
    var temp2 = "";
    for (var i = 0; i < temp.length; i++) {
        var name = temp[i];
        if (name.length > 0) {
            if (fileName != name) {
                temp2 += name + "^";
            }
        }
    }
    if (temp2.length == 0) {
        hideUpAttachments();
        document.getElementById('hfEmailAttachments').value = "";
    }
    else {
        document.getElementById('hfEmailAttachments').value = temp2;
    }
}
