(function() {
    var EventFinder = window.EventFinder = function() {
        return new EventFinder.prototype.init();
    };

    if (!window.EventFinder) {
        window.EventFinder = EventFinder;
    }

    EventFinder.proto = EventFinder.prototype = {
        init: function() {
            return new EventFinder();
        }
    }

    EventFinder.Load = function(PnlFinderID, PnlNoResultID, PnlVenueGenre, UniqueID, DdlActor, DdlVenue, DdlGenre, PGenre) {

        this.pnlFinderID = PnlFinderID;
        this.pnlNoResultID = PnlNoResultID;
        this.pnlVenueGenre = PnlVenueGenre;
        this.uniqueID = UniqueID;
        this.ddlActor = DdlActor;
        this.ddlVenue = DdlVenue;
        this.ddlGenre = DdlGenre;
        this.pGenre = PGenre;
        this.EventCategory = 1;
        this.SelectedActorID = 0;
        EventFinder.AttachEvents();


    }
    EventFinder.AttachEvents = function() {
        $('.EventType').click(function() {
            if ($(this).attr('checked') == true) {
                EventFinder.EventCategory = $(this).val();
                startLoader(EventFinder.pnlFinderID);
                doCallbackHtml(EventFinder.uniqueID, 'ChangeCategory' + $(this).val(), EventFinder.SetData);
            }
        })


        $('#' + EventFinder.ddlActor).change(function() {
            EventFinder.SelectedActorID = $(this).val();
            startLoader(EventFinder.pnlFinderID);
            doCallbackHtml(EventFinder.uniqueID, 'ChangeActor' + EventFinder.EventCategory + '^' + EventFinder.SelectedActorID, EventFinder.SetData);
        })
        $('#' + EventFinder.ddlVenue).change(function() {
            var SelectedVenueID = $(this).val();
            startLoader(EventFinder.pnlFinderID);
            doCallbackHtml(EventFinder.uniqueID, 'ChangeVenue' + EventFinder.EventCategory + '^' + EventFinder.SelectedActorID + '^' + SelectedVenueID, EventFinder.SetData);
        })
        $('#btnFind').click(function() {
            startLoader(EventFinder.pnlFinderID);
            var date;
            if ($('#datepickerSearchDate').datepicker('getDate') != null)
                date = $('#datepickerSearchDate').val();
            else
                date = '';
            var Args = 'Search' + EventFinder.EventCategory + '^' + $('#' + EventFinder.ddlActor).val() + '^' + $('#' + EventFinder.ddlVenue).val() + '^' + $('#' + EventFinder.ddlGenre).val() + '^' + date;
            Args += "^" + $('#' + EventFinder.ddlActor)[0].options[$('#' + EventFinder.ddlActor)[0].selectedIndex].text + '^' + $('#' + EventFinder.ddlVenue)[0].options[$('#' + EventFinder.ddlVenue)[0].selectedIndex].text + '^' + $('#' + EventFinder.ddlGenre)[0].options[$('#' + EventFinder.ddlGenre)[0].selectedIndex].text + '^' + date;
            doCallbackHtml(EventFinder.uniqueID, Args, EventFinder.SetData);
        })
        var dateNow = new Date();
        dateNow.getDate();
        $('#datepickerSearchDate').datepicker(
            {
                showOn: 'both',
                buttonText: 'Choose',
                buttonImage: '../images/calendar_Img.gif',
                buttonImageOnly: true,
                minDate: dateNow
            });
    }

    EventFinder.SetData = function(data) {
        if (data.indexOf('Redirect') != -1) {
            window.location = data.replace('Redirect', '').replace('0|', '');
        }
        else if (data.indexOf('NoFind') != -1) {
            $('#' + EventFinder.pnlNoResultID).show();
            $('#' + EventFinder.pnlFinderID).hide();
            $('#loader' + EventFinder.pnlFinderID).hide();
            $('#aTry').click(function() {
                $('#' + EventFinder.pnlNoResultID).hide();
                $('#' + EventFinder.pnlFinderID).fadeIn();
            })
        }
        else if (data.indexOf('ChangeCategory') != -1) {
            data = data.replace('ChangeCategory', '');
            $('#' + EventFinder.pnlFinderID).html(data.substring(data.indexOf('<div'), data.length));
            $('.EventType').each(function() {
                if ($(this).val() == EventFinder.EventCategory)
                    $(this).attr('checked', true);
            })
            EventFinder.AttachEvents();
            $('#loader' + EventFinder.pnlFinderID).hide();
        }
        else if (data.indexOf('ChangeActor') != -1) {
            data = data.replace('ChangeActor', '');
            $('#' + EventFinder.pnlVenueGenre).html(data.substring(data.indexOf('<'), data.length));
            $('#' + EventFinder.ddlVenue).change(function() {
                var SelectedVenueID = $(this).val();
                startLoader(EventFinder.pnlFinderID);
                doCallbackHtml(EventFinder.uniqueID, 'ChangeVenue' + EventFinder.EventCategory + '^' + EventFinder.SelectedActorID + '^' + SelectedVenueID, EventFinder.SetData);
            })
            $('#btnFind').click(function() {
                startLoader(EventFinder.pnlFinderID);
                var date;
                if ($('#datepickerSearchDate').datepicker('getDate') != null)
                    date = $('#datepickerSearchDate').val();
                else
                    date = '';
                var Args = 'Search' + EventFinder.EventCategory + '^' + $('#' + EventFinder.ddlActor).val() + '^' + $('#' + EventFinder.ddlVenue).val() + '^' + $('#' + EventFinder.ddlGenre).val() + '^' + date;
                Args += "^" + $('#' + EventFinder.ddlActor)[0].options[$('#' + EventFinder.ddlActor)[0].selectedIndex].text + '^' + $('#' + EventFinder.ddlVenue)[0].options[$('#' + EventFinder.ddlVenue)[0].selectedIndex].text + '^' + $('#' + EventFinder.ddlGenre)[0].options[$('#' + EventFinder.ddlGenre)[0].selectedIndex].text + '^' + date;
                doCallbackHtml(EventFinder.uniqueID, Args, EventFinder.SetData);
            })
            $('#loader' + EventFinder.pnlFinderID).hide();
        }
        else if (data.indexOf('ChangeVenue') != -1) {
            data = data.replace('ChangeVenue', '');
            $('#' + EventFinder.pGenre).html(data.substring(data.indexOf('<'), data.length));
            $('#btnFind').click(function() {
                startLoader(EventFinder.pnlFinderID);
                var date;
                if ($('#datepickerSearchDate').datepicker('getDate') != null)
                    date = $('#datepickerSearchDate').val();
                else
                    date = '';
                var Args = 'Search' + EventFinder.EventCategory + '^' + $('#' + EventFinder.ddlActor).val() + '^' + $('#' + EventFinder.ddlVenue).val() + '^' + $('#' + EventFinder.ddlGenre).val() + '^' + date;
                Args += "^" + $('#' + EventFinder.ddlActor)[0].options[$('#' + EventFinder.ddlActor)[0].selectedIndex].text + '^' + $('#' + EventFinder.ddlVenue)[0].options[$('#' + EventFinder.ddlVenue)[0].selectedIndex].text + '^' + $('#' + EventFinder.ddlGenre)[0].options[$('#' + EventFinder.ddlGenre)[0].selectedIndex].text + '^' + date;
                doCallbackHtml(EventFinder.uniqueID, Args, EventFinder.SetData);
            })
            $('#loader' + EventFinder.pnlFinderID).hide();
        }
        else {
            $('#loader' + EventFinder.pnlFinderID).hide();
        }
    }
})();
