﻿var ProgramPage = new Class({
    Implements: Options,
    options: {
        dataUrl: 'data/videos.aspx',
        videoRoot: 'http://d3r33qgzufzbhd.cloudfront.net/'
    },

    initialize: function(trainerFilter, categoryFilter, data) {
        this.skill = 0;
        this.data = eval(data);
        this.trainerFilter = $(trainerFilter);
        this.categoryFilter = $(categoryFilter);
        this.container = $('contentarea');
        this.previewContainer = $('previewContainer');
        this.videos = $('videos');
        this.breadcrumbs = $('breadcrumbs');
        
        this.initEvents();
        this.populate();
        
        this.addFromQuerystring();
    },
    
    addFromQuerystring: function() {
        if (window.location.search && window.location.search.length > 1) {
            var add = parseInt(window.location.search.substring(1, window.location.search.length).parseQueryString().add);
            if (!isNaN(add))
                VideoCart.current.add(add);
        }
    },

    initEvents: function() {
        this.trainerFilter.addEvent('change', function() { this.populate(); }.bind(this));
        this.categoryFilter.addEvent('change', function() { this.populate(); }.bind(this));
    },
    
    setTab: function(tab) {
        switch (tab) {
            case 'beginner': this.skill = 1; break;
            case 'intermediate': this.skill = 2; break;
            case 'advanced': this.skill = 3; break;
            default: this.skill = 0; break;
        }
        this.populate();
    },
    
    selectCategory: function(id) {
        this.categoryFilter.value = id;
        this.populate();
    },
    
    populate: function() {
        var trainer_filter = parseInt(this.trainerFilter.value);
        var category_filter = parseInt(this.categoryFilter.value);
        
        this.container.empty();
        
        var even = true;
        this.data.each(function(item) {
            var show_item = true;
            if (trainer_filter != 0 && item.TrainerID != trainer_filter) show_item = false;
            if (category_filter != 0 && item.CategoryID != category_filter) show_item = false;
            if (this.skill != 0 && item.Skill != this.skill) show_item = false;
                       
            if (show_item) {
                even = !even;
                var wrapper = new Element('div', { 'class': 'programresult' }).inject(this.container);
                new Element('img', { 'class': 'thumb', 'src': 'photo.aspx?t=vc&id=' + item.ID }).inject(wrapper);
                var detail = new Element('div', { 'class': 'detail' }).inject(wrapper);
                new Element('div', { 'class': 'news_search' }).set('text', item.Name).inject(detail);
                new Element('div', { 'class': 'news_search_text' }).set('text', item.TrainerName + ' - ' + item.CategoryName).inject(detail);
                new Element('img', { 'src': 'images/results/button_preview.png', 'class': 'rollover', 'events': {
                    'click': function() { new PreviewWindow(item); }.bind(this)
                }}).inject(detail);
				/*
                if (is_member) {
                    new Element('img', { 'src': 'images/button_addtoaccount.jpg', 'class': 'rollover' }).inject(
                        new Element('a', { 'href': 'add.aspx?id=' + item.ID + '&from=' + escape(window.location.pathname + window.location.search) }).inject(detail));
                }
                else {
                    new Element('img', { 'src': 'images/results/button_add.png', 'class': 'rollover', 'events': {
                        'click': function() { VideoCart.current.addAndViewCart(item.ID); }.bind(this)
                    }}).inject(detail);
                    new Element('img', { 'src': 'images/results/button_buynow.png', 'class': 'rollover', 'events': {
                        'click': function() { VideoCart.current.add(item.ID); window.location.href = './checkout/'; }
                    }}).inject(detail);
                }
				*/
                if (even) {
                    new Element('div', { 'class': 'clear' }).inject(this.container);
                }
            }
        }.bind(this));
        
        if (rollovers) rollovers.update();
    },
    
    add: function(item) {
        var url = 'programs.aspx?add=' + item.ID;
        
        var trainer_filter = parseInt(this.trainerFilter.value);
        var category_filter = parseInt(this.categoryFilter.value);
        
        if (trainer_filter != 0) url += '&t=' + trainer_filter;
        if (category_filter != 0) url += '&c=' + category_filter;
        
        window.location.href = url;
    }
});
