document.observe("dom:loaded", function() {

    setup_about_us_page();
    setup_public_resources_page();
    setup_training_page();
    setup_user_settings();
    setup_web_resources_page();
    setup_product_creation_page();
    setup_np_rating_info();
    setup_product_filters();
    setup_site_search_field();
    
    flash = $('flash');
    if(flash && flash.down()){
        setTimeout("flash.down().fade()", 3000);
        setTimeout("flash.down().remove()", 4000);
    }
    
});

function setup_about_us_page(){
    if($('about_us_form')){
        $('about_us_form').setStyle({display: "none"});

        edit_about_us_link = new Element('a', { href: "#", id: "edit_about_us_link"});
        edit_about_us_link.innerHTML = "Edit Page";

        cancel_about_us_edit_link = new Element('a', { href: "#", id: "cancel_about_us_edit_link", style:"display:none;"});
        cancel_about_us_edit_link.innerHTML = "Return to Page";

        $('about_us_content').insert({'before' : edit_about_us_link});
        $('about_us_content').insert({'before' : cancel_about_us_edit_link});


        $('edit_about_us_link').observe("click", function(){
            $('about_us_content').hide();$('about_us_form').show();this.hide();$('cancel_about_us_edit_link').show(); 
        });

        $('cancel_about_us_edit_link').observe("click", function(){
            $('about_us_content').show();$('about_us_form').hide();this.hide();$('edit_about_us_link').show();
        });
    }
}

function setup_public_resources_page(){
    if($('resources_form')){
        $('resources_form').setStyle({display: "none"});

        edit_resources_link = new Element('a', { href: "#", id: "edit_resources_link"});
        edit_resources_link.innerHTML = "Edit Page";

        cancel_resources_edit_link = new Element('a', { href: "#", id: "cancel_resources_edit_link", style:"display:none;"});
        cancel_resources_edit_link.innerHTML = "Return to Page";

        $('resources_content').insert({'before' : edit_resources_link});
        $('resources_content').insert({'before' : cancel_resources_edit_link});


        $('edit_resources_link').observe("click", function(){
            $('resources_content').hide();$('resources_form').show();this.hide();$('cancel_resources_edit_link').show();
        });

        $('cancel_resources_edit_link').observe("click", function(){
            $('resources_content').show();$('resources_form').hide();this.hide();$('edit_resources_link').show();
        });
    }
}

function setup_training_page(){
    if($('courses_by')){
        $$('#courses_by h2').each(function(item){
            item.remove();
        });
        
        $$('.coursepages div').each(function(item){
            item.hide();
        })
        
        $('by_month').hide();
        $('by_training_type').hide();
      
        location_tabs = new Element('div', {'class': "coursetabs"});
        location_tab_list = new Element('ul');
        city_keys = $$('.city_keys');
        city_values = $$('.city_values');
        
        for (var c_index = 0, c_len = city_values.length; c_index < c_len; ++c_index) {
            c_key = city_keys[c_index].value;
            c_value = city_values[c_index].value;
            list_item = new Element('li');
           
            c_link = new Element('a', { href: "#", title:c_value + " classes", id: "tab-" + c_key });
            c_link.innerHTML = c_value;
            c_link.click_key = c_key;
            c_link.observe("click", function(){selectTab("-"+this.click_key);} );
            list_item.insert(c_link);
            location_tab_list.insert(list_item);
        }
        location_tabs.insert(location_tab_list);
        $$('#by_location')[0].insert({'top':'<br clear="left"/>'});
        $$('#by_location')[0].insert({'top':location_tabs});
        selectTab('-' + $$('#by_location li a')[0].click_key);
        
        
        month_tabs = new Element('div', {'class': "coursetabs"});
        month_tab_list = new Element('ul');
        month_values = $$('.month_values');
        for (var m_index = 0, m_len = month_values.length; m_index < m_len; ++m_index) {
            m_value = month_values[m_index].value
            m_list_item = new Element('li');
           
            m_link = new Element('a', { href: "#", title:m_value + " classes", id: "tab-" + m_value });
            m_link.innerHTML = m_value;
            m_link.click_key = m_value;
            m_link.observe("click", function(){selectTab("-"+this.click_key);} );
            m_list_item.insert(m_link);
            month_tab_list.insert(m_list_item);
        }
        month_tabs.insert(month_tab_list);
        $$('#by_month')[0].insert({'top':'<br clear="left"/>'});
        $$('#by_month')[0].insert({'top':month_tabs});
        
        
        class_type_tabs = new Element('div', {'class': "coursetabs"});
        class_type_tab_list = new Element('ul');
        class_type_keys = $$('.class_type_keys');
        class_type_values = $$('.class_type_values');
        
        for (var cl_index = 0, cl_len = class_type_values.length; cl_index < cl_len; ++cl_index) {
            cl_key = class_type_keys[cl_index].value;
            cl_value = class_type_values[cl_index].value;
            cl_list_item = new Element('li');
           
            cl_link = new Element('a', { href: "#", title:cl_value + " classes", id: "tab-" + cl_key });
            cl_link.innerHTML = cl_value;
            cl_link.click_key = cl_key;
            cl_link.onclick = function(){selectTab("-" + this.click_key);};
            cl_list_item.insert(cl_link);
            class_type_tab_list.insert(cl_list_item);
        }
        class_type_tabs.insert(class_type_tab_list);
        $$('#by_training_type')[0].insert({'top':'<br clear="left"/>'});
        $$('#by_training_type')[0].insert({'top': class_type_tabs});
        
        type_links = new Element('p');
        type_links.insert(new Element('small'));
        type_links.childNodes[0].insert(new Element('strong'));
        
        by_month_link = new Element('a', {href: "#", id: "by_month_selector"});
        by_month_link.innerHTML = 'By Month';
        by_month_link.observe("click", function(){displayBy('by_month'); return false;});

        by_location_link = new Element('a', {href: "#", id: "by_location_selector"});
        by_location_link.innerHTML = 'By Location';
        by_location_link.observe("click", function(){displayBy('by_location'); return false;});

        by_type_link = new Element('a', {href: "#", id: "by_type_selector"});
        by_type_link.innerHTML = 'By Type';
        by_type_link.observe("click", function(){displayBy('by_training_type'); return false;});
        
        
        type_links.select('strong')[0].insert(by_month_link);
        type_links.select('strong')[0].insert(' | ');
        type_links.select('strong')[0].insert(by_location_link);
        type_links.select('strong')[0].insert(' | ');
        type_links.select('strong')[0].insert(by_type_link);
       
        $('courses_by').insert({'before' : type_links});

    }
}

function setup_user_settings(){
    $$('.edit_user #email_confirmation_row').invoke('hide');
    $$('.edit_user #password_confirmation_row').invoke('hide');
    
    $$('.edit_user #user_email').each(function(item){
        item.observe("keydown", function(){
            $('email_confirmation_row').show();
        });
    });
    
    $$('.edit_user #user_password').each(function(item){
        item.observe("keydown", function(){
            $('password_confirmation_row').show();
        });
    });
}

function setup_web_resources_page(){
    if($$('.resource').length > 0){$$('.resource').first().copy();}
    $$('.resource_actions').each(function(item){
        link = new Element('a', { href: "#"});
        link.click_key = item.down().id;
        link.observe('click', function(){
            $(this.click_key).copy(); 
            return false;
        });
        link.innerHTML = "copy link";
        item.insert({'bottom' : ' - '});
        item.insert({'bottom' : link});
    });
}

function setup_product_creation_page(){
    if($('photo_uploads')){
        $('photo_uploads').insert({'after':'<input type="button" value="Add Another" id="add_another_photo"/>'});
        $('add_another_photo').observe('click', function(){
            $('photo_uploads').insert($$('.photo_upload')[0].innerHTML);
        });
    }
}

function setup_np_rating_info(){
    if($('rating')){
        link = new Element('a', {href:"#"});
        link.innerHTML = "?";
        link.observe('click', function(){
            $("npDefinition").show();
        });
        
        close_link = new Element('a', {href:"#"});
        close_link.innerHTML = "close";
        close_link.observe('click', function(){
            $("npDefinition").hide();
        });
        
        $('rating').down(2).insert({'before': link});
        $('npDefinition').insert({'top': close_link});
        
        if($('top_rated_image')){
          $('top_rated_image').observe('click', function(){
            $("npDefinition").show();
          });

          $('top_rated_image').setStyle("cursor:pointer;");
        }
        $('npDefinition').hide();
    }
}

function setup_product_filters(){
    if($('filter_form')){
        $('filter_form').down('#filters').hide();
        $$('#filter_form input').last().remove();
        $('filter_form').down('legend').insert({'top' : new Element('input', {type:'checkbox'})});
        $('filter_form').down('input').observe('click', function(){
            $('filters').toggle();
        });
        
        new Form.EventObserver('filter_form', function(element, value) {new Ajax.Updater('product_results_table', '/products.js', {asynchronous:true, evalScripts:true, method:'get', parameters:value})});
    }
}

function setup_site_search_field(){
    $('search_query').observe('focus', function(){
        if(this.value==this.defaultValue){
            value=''; 
            this.style.color='black'; 
        }
    });

    $('search_query').observe('blur', function(){
        if(this.value==''){
            value=this.defaultValue; 
            this.style.color='gray';
        }
    });

    $('search_query').observe('change', function(){
        this.style.color='black';
    });
    
    $$('#search input').last().remove();
    search_button = new Element('img', {width:"26", height:"24", src:"/images/searchButton.gif", alt:"Search"});
    $('search_query').insert({'after' : search_button});
    search_button.observe('click', function(){
       $('search_form').submit(); 
    });
}

var last_selection = 'by_location';

function selectTab(name) {
    $$('#' + last_selection + ' .coursepages div').invoke('hide');
    
    $$('#' +last_selection + ' .active').each(function(s) {
        s.className = 'not-active';
    });
    new Effect.Appear('page' + name, { queue: 'front' })
    $('tab' + name).className = 'active';
}

function displayBy(selection_name) {
    if (last_selection == selection_name)
    { return }
    new Effect.BlindUp(last_selection, { queue: 'front' })
    $$('#' + selection_name + ' .coursepages div').invoke('hide');
    $$('#' + selection_name + ' .coursepages div')[0].show();
    $$('#' +selection_name + ' .active').each(function(s) {
        s.className = 'not-active';
    });
    $$('#' +selection_name+ ' .coursetabs li a')[0].className = 'active';
    new Effect.BlindDown(selection_name, { queue: 'end' })
    last_selection = selection_name 
}