﻿//var newAnnouncement = { "Id": 0, "StoreId": 0, "Title": "", "ShortDescription": "", "Intro": "", "ImageId": 0, "SideImageId": 0, "MainImage": { "Id": 0, "FileName": "", "ImagePath": "", "Description": "", "Width": 0, "Height": 0, "ImageType": "", "OwnerType": "", "OwnerId": 0, "DateAdded": "/Date(-2208970800000-0500)/", "FileType": "" }, "SideImage": { "Id": 0, "FileName": "", "ImagePath": "", "Description": "", "Width": 0, "Height": 0, "ImageType": "", "OwnerType": "", "OwnerId": 0, "DateAdded": "/Date(-2208970800000-0500)/", "FileType": ""} };
var announcementdatarefreshed = false;
var editedannouncement;
//var announcementImages;
//var announcementSideImages;

function showAnnouncements(controlId) {
    var controlconfig = GetControlConfigData(controlId);
    var announcementData = controlmodeldata[controlId];
    if (!announcementdatarefreshed) {
        var calstr = JSON.stringify(announcementData);
        calstr = calstr.replace(new RegExp('-0600', "g"), '');
        calstr = calstr.replace(new RegExp('-0500', "g"), '');
        calstr = calstr.replace(new RegExp('-0400', "g"), '');
        calstr = calstr.replace(/"\/(Date\([0-9-]+\))\/"/gi, 'new $1');
        controlmodeldata[controlId] = eval('(' + calstr + ')');
        announcementData = controlmodeldata[controlId];
        announcementdatarefreshed = true;
    }
    if (announcementData.length == 0) {
        try {
            document.getElementById('divleftadhome').innerHTML = '';
        }
        catch (exp) {
        }
    }
    var data = { "announcementData": announcementData,
        "controlconfig": controlconfig
    };
    var viewresult;
    viewresult = TrimPath.parseTemplate(view_announcements).process(data);
    document.getElementById(controlId).innerHTML = viewresult;
    if (announcementData.length > 0) {
        try {
            refreshslider(controlId + '_slider2');
        }
        catch (exp) {
        }
    }
}

function refreshslider(sliderId) {
    featuredcontentslider.init({
        id: sliderId,  //id of main slider DIV
        contentsource: ["inline", ""],  //Valid values: ["inline", ""] or ["ajax", "path_to_file"]
        toc: "markup",  //Valid values: "#increment", "markup", ["label1", "label2", etc]
        nextprev: ["Previous", "Next"],  //labels for "prev" and "next" links. Set to "" to hide.
        revealtype: "click", //Behavior of pagination links to reveal the slides: "click" or "mouseover"
        enablefade: [false, 0.2],  //[true/false, fadedegree]
        autorotate: [true, 6000],  //[true/false, pausetime]
        onChange: function(previndex, curindex) {  //event handler fired whenever script changes slide
            //previndex holds index of last slide viewed b4 current (1=1st slide, 2nd=2nd etc)
            //curindex holds index of currently shown slide (1=1st slide, 2nd=2nd etc)
        }
    });
}

function editAnnouncements(controlId) {
    var controlconfig = GetControlConfigData(controlId);
    var editorsize = GetMaxEditorSize(0, controlconfig.EditorHeightOffset);
    if (controlconfig.EditorHeight != 9999) {
        editorsize.height = controlconfig.EditorHeight;
    }
    editorsize.width = 850;

    var announcementData = controlmodeldata[controlId];
    var data = { "announcements": announcementData,
        "controlconfig": controlconfig,
        "editorsize" : editorsize
    };

    var viewresult = TrimPath.parseTemplate(view_announcements_overview).process(data);
    document.getElementById('V2editControl').innerHTML = viewresult;
    $('#V2editBackground').show();
    $('#V2editControl').show();
    centerObject('V2editControl');
}
function closeAnnouncementEdit(controlId) {
    $('#V2editBackground').hide();
    $('#V2editControl').hide();
    showAnnouncements(controlId);
}

function viewAnnouncementDetail(controlId, AnnouncementId) {
    var controlconfig = GetControlConfigData(controlId);
    var announcementData = controlmodeldata[controlId];
    var announcement;
    for (var x = announcementData.length -1; x>=0; --x) {
        announcement = announcementData[x];
        if (announcement.Id == AnnouncementId) {
            break; 
        }
    }
    AE_showAnnouncementDetail(controlId, announcement);
    
}
function hideannouncementDetail() {
    $('#V2editControl').html("");
    $('#V2editBackground').hide();
    $('#V2editControl').hide();
}

function RemoveAnnouncement(controlId, announcementId) {
    var controlconfig = GetControlConfigData(controlId);
    $.ajax({
        type: "POST",
        url: "/Model/Announcements/Admin/Model.asmx/DeleteAnnouncement",
        data: "{ 'announcementId': " + announcementId + "}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        dataFilter: function(data, type) {
            return data.replace(/"\\\/(Date\([0-9-]+\))\\\/"/gi, 'new $1');
        },
        success: function(msg) {
            $.ajax({
                type: "POST",
                url: "/Model/Announcements/Model.asmx/GetAllForStore",
                data: "{ 'storeId': " + controlconfig.StoreId + "}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                dataFilter: function(data, type) {
                    return data.replace(/"\\\/(Date\([0-9-]+\))\\\/"/gi, 'new $1');
                },
                success: function(msg) {
                    controlmodeldata[controlId] = clone_obj(msg.d);
                    editAnnouncements(controlId);
                }
            });
        }
    });

}

function CancelEditAnnouncement() {
    $('#V2editControl').html("");
    $('#V2editBackground').hide();
    $('#V2editControl').hide();
}

function SaveAnnouncement(controlId, announcement, param1, param2) {
    editedannouncement = clone_obj(announcement);
    var data0 = { 'announcement': editedannouncement };
    var json = JSON.stringify(data0);
    var controlconfig = GetControlConfigData(controlId);
    $.ajax({
        type: "POST",
        url: "/Model/Announcements/Admin/Model.asmx/SaveAnnouncement",
        data: json,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        dataFilter: function(data, type) {
            return data.replace(/"\\\/(Date\([0-9-]+\))\\\/"/gi, 'new $1');
        },
        success: function(msg) {
            $.ajax({
                type: "POST",
                url: "/Model/Announcements/Model.asmx/GetAllForStore",
                data: "{ 'storeId': " + controlconfig.StoreId + "}",
                contentType: "application/json; charset=utf-8",
                dataType: "json",
                dataFilter: function(data, type) {
                    return data.replace(/"\\\/(Date\([0-9-]+\))\\\/"/gi, 'new $1');
                },
                success: function(msg) {
                    announcementdatarefreshed = true;
                    controlmodeldata[controlId] = clone_obj(msg.d);
                    editAnnouncements(controlId);
                }
            });
        }
    });

}

function EditAnnouncement(controlId, announcementId) {
    var controlconfig = GetControlConfigData(controlId);
    var announcementData = controlmodeldata[controlId];
    var title = 'Edit Announcement';
    if (announcementId != 0) {
        for (var x = announcementData.length - 1; x >= 0; x--) {
            if (announcementData[x].Id == announcementId) {
                editedannouncement = clone_obj(announcementData[x]);
                break;
            }
        }         
    }
    else {
        title = 'Add New Announcement';
        editedannouncement = clone_obj(AE_NewAnnouncement);
        editedannouncement.MainImage.DateAdded = new Date();
        editedannouncement.SideImage.DateAdded = new Date();
        editedannouncement.Title = "";
        editedannouncement.StoreId = controlconfig.StoreId;
    }
//    var editorsize = GetMaxEditorSize(0, controlconfig.EditorHeightOffset);
//    if (controlconfig.EditorHeight != 9999) {
//        editorsize.height = controlconfig.EditorHeight;
//    }
//    editorsize.width = 850;
//    var json = JSON.stringify(editedannouncement);
    AE_ShowAnnouncementEditor(controlId, editedannouncement, 'Announcement', title, true, 1, 'SaveAnnouncement', 'hideAnnouncementEdit', '', 'param1', 'param2');
}

function hideAnnouncementEdit(controlId, param1, param2) {
    editAnnouncements(controlId);
}

