var editItemName = null;
var editorCounter = 0;

String.prototype.trim = function() {
    return this.replace( /^\s+|\s+$/g , '');
};

jQuery.fn.outer = function() {
    return $($('<div></div>').html(this.clone())).html();
};
/*PNGFIX DECLERATION*/

$(function () {
    // png
    $.ifixpng('../../global/image/pixel.gif');
    $('.png').ifixpng();

    // accordions (one per page)
    $('#accordion').find('p.toggler > a.more').click(function () {
        $(this).parent().siblings("a.toggler:first").click();
        $(this).hide('slide', { direction: 'down' });
    });

    $(".datepicker").datepicker();

    $('#accordion').accordion({
        active: false,
        header: 'a.toggler',
        change: function (event, ui) {
            ui.oldHeader.parent().children("p.toggler").children("a.more").show("slide", { direction: "up" });
        }
    });

    try {
        if (location.hash)
            $(location.hash + '-toggler').click();
        else
            $('#accordion').find('p.toggler:first > a.more').click();
    }
    catch (e) {

    }
});

function showModal(ctl, id, title, arg) {
     
}


function editCalendar(id, clear) {
    if (clear) {
        var date = new Date();
        var month = date.getMonth() + 1;
        var day = date.getDate();

        $('#ctl00_BodyContentHolder_txtCalendarDialogDate').val(date.getFullYear() + '-' + (month < 10 ? ('0' + month) : month) + '-' + (day < 10 ? ('0' + day) : day));
        $('#ctl00_BodyContentHolder_txtCalendarDialogHeading').val('');

        tinymce.EditorManager.getInstanceById('ctl00_BodyContentHolder_ctl03').execCommand('mceSetContent', false, '');
        tinymce.EditorManager.getInstanceById('ctl00_BodyContentHolder_ctl04').execCommand('mceSetContent', false, '');
    }
    else {
        var event = $('#' + id);
        
        $('#ctl00_BodyContentHolder_txtCalendarDialogDate').val(event.find('input.event-date-raw').val());
        $('#ctl00_BodyContentHolder_txtCalendarDialogHeading').val(event.find('div.event-heading').text());

        var pre = event.find('div.event-preamble').html();
        var txt = event.find('div.event-content').html();
        var ed1 = tinymce.EditorManager.getInstanceById('ctl00_BodyContentHolder_ctl03');
        var ed2 = tinymce.EditorManager.getInstanceById('ctl00_BodyContentHolder_ctl04');

        //ed1.init();
        tinyMCEInit(ed1.id);
        ed1.execCommand('mceSetContent', false, pre);
        ed2.execCommand('mceSetContent', false, txt);
    }
}
function tinyMCEInit(id) {
    tinyMCE.execCommand('mceAddControl', true, id);
}

function editMedia(id, clear) {

    if (clear) {
        var date = new Date();
        var month = date.getMonth() + 1;
        var day = date.getDate();

        $('#ctl00_BodyContentHolder_txtCalendarDialogDate').val(date.getFullYear() + '-' + (month < 10 ? ('0' + month) : month) + '-' + (day < 10 ? ('0' + day) : day));
        $('#ctl00_BodyContentHolder_txtCalendarDialogHeading').val('');
        FCKeditorAPI.GetInstance('ctl00_BodyContentHolder_ctl03').SetHTML('');
        FCKeditorAPI.GetInstance('ctl00_BodyContentHolder_ctl04').SetHTML('');
    }
    else {
        var event = $('#' + id);
        $('#ctl00_BodyContentHolder_txtCalendarDialogDate').val(event.find('input.event-date-raw').val());
        $('#ctl00_BodyContentHolder_txtCalendarDialogHeading').val(event.find('div.event-heading').text());
        FCKeditorAPI.GetInstance('ctl00_BodyContentHolder_ctl03').SetHTML(event.find('div.event-preamble').html());
        FCKeditorAPI.GetInstance('ctl00_BodyContentHolder_ctl04').SetHTML(event.find('div.event-content').html());
    }
}

function editOpinion(id, clear) {

    if (clear) {
        var date = new Date();
        var month = date.getMonth() + 1;
        var day = date.getDate();

        $('#ctl00_BodyContentHolder_txtOpinionDialogDate').val(date.getFullYear() + '-' + (month < 10 ? ('0' + month) : month) + '-' + (day < 10 ? ('0' + day) : day));
        $('#ctl00_BodyContentHolder_txtOpinionDialogHeading').val('');
        $('#ctl00_BodyContentHolder_txtOpinionDialogPreHeading').val('');
    }
    else {
        var event = $('#' + id);
        $('#ctl00_BodyContentHolder_txtOpinionDialogDate').val(event.find('input.event-date-raw').val());
        $('#ctl00_BodyContentHolder_txtOpinionDialogHeading').val(event.find('div.opinion-heading').text());
        $('#ctl00_BodyContentHolder_txtOpinionDialogPreHeading').val(event.find('p.opinion-preheading').text());

        $('#ctl00_BodyContentHolder_ddlOpinionDialogFile').val(event.find('input.event-file-raw').val());
        $('#ctl00_BodyContentHolder_ddlOpinionDialogPreFile').val(event.find('input.event-profile-raw').val());
    }
}


$(document).ready(function () {
    hideEmptyList('.from-date-list optgroup');
    hideEmptyList('.to-date-list optgroup');

    function hideEmptyList(selector) {
        $(selector).each(function (i) {
            var num = 0;
            $('option', this).each(function (j) {
                if ($(this).is(":visible") === true) {
                    num = num + 1;
                }
            });
            $(this).css('display', num === 0 ? 'none' : 'block');
        });
    }

    function emptyList(selector) {
        $(selector).each(function (i) {
            var self = $(this), parent = self.parent();
            self.css('display', 'none');

            if (parent.is("span")) {
                parent.hide();
            } else {
                self.wrap('<span>').hide();
            }
        });
    }

    function setSelectedIndex(selector) {
        if ($(selector + ' option').length > 0) {
            $(selector).attr('selectedIndex', '0');
        } else {
            $(selector).attr('selectedIndex', '-1');
        }
    }

    function setVisibility(selector, dates) {
        $(selector).each(function (index) {
            var self = $(this), parent = self.parent();
            var exist = dateExist(self.val().substring(0, 7), dates);

            if (exist) {
                self.css('display', 'block');

                if (parent.is("span")) {
                    parent.show();
                    parent.replaceWith(this);
                }
            } else {
                self.css('display', 'none');

                if (parent.is("span")) {
                    parent.hide();
                } else {
                    self.wrap('<span>').hide();
                }
            }
        });
    }

    function dateExist(date, array) {
        for (var i = 0; i < array.length; i++) {
            if (array[i].indexOf(date) > -1) {
                return true;
            }
        }

        return false;
    }

    function selectActiveItem(selector) {
        if ($(selector + ' option').length > 0) {
            $(selector + ' option').each(function (e) {
                if ($(this).is(":visible") === true) {
                    $(selector).val(e);
                    return false;
                }
            });
        } else {
            $(selector).attr('selectedIndex', '-1');
        }
    }

    function addSpanElement(selector) {
        $(selector).each(function (index) {
            var self = $(this), parent = self.parent();
            if (!self.is(':visible')) {
                self.wrap('<span>').hide();
            }
        });
    }

    addSpanElement('.from-date-list option');
    addSpanElement('.to-date-list option');

    $('.department-list').change(function () {
        var dep = parseInt($(this).val());
        if (dep < 1) {
            return;
        }

        $.get('/dates.aspx?t=' + $(this).attr('data-type') + '&d=' + dep, function (data) {
            var dates = data.split(',');

            setSelectedIndex('.from-date-list');
            setVisibility('.from-date-list option', dates);
            hideEmptyList('.from-date-list optgroup');

            setSelectedIndex('.to-date-list');
            setVisibility('.to-date-list option', dates);
            hideEmptyList('.to-date-list optgroup');

            selectActiveItem('.from-date-list');
            selectActiveItem('.to-date-list');
			
            $('input[id$="btnSelectDepartment"]').click();
        });
    });
});
