// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
function subscriptionSetup(){
	if(document.body.id == 'page-home-subscriptions'){
		$$('#main-content li input').each(function(s){	
			s.onclick = function(){
				var li = s.up();
				var id = li.id;
				var page_id = parseInt(li.id.gsub(/(page_|_node)/,''));
				var parent = li.className.sub(/(level_[0-9]+)/,'');
				var parent = parent.gsub(/page_|_child/,'');

				pageNodeClicked(page_id,parent,s.checked);		
			};

			s.onchange = function(){
				var li = s.up();
				var id = li.id;
				var page_id = parseInt(li.id.gsub(/(page_|_node)/,''));
				var parent = li.className.sub(/(level_[0-9]+)/,'');
				var parent = parent.gsub(/page_|_child/,'');

				pageNodeClicked(page_id,parent,s.checked);				
			};
		});

		function pageNodeClicked( page_id, parent_id, selected ){
			if( selected ){
				$$('.page_' + page_id + '_child input').each( function(node){ node.checked = true; node.onchange(); });
			} else {
				parent_input = $$('#page_' + parent_id + '_node input')[0];
				if( parent_input ){ parent_input.checked = false ; parent_input.onchange(); }
			}
		};

		var buttons = $$('#page-home-subscriptions div.buttons')[0];
		buttons.insert({before: '<p><a href="#" id="select-all">Select All</a> | <a href="#" id="deselect-all">Deselect All</a></p>'});
		$('select-all').observe('click',function(e){
			$$('input.node_checkbox').each(function(e){
				e.checked = true;
			});
			Event.stop(e);		
		});
		
		$('deselect-all').observe('click',function(e){
			$$('input.node_checkbox').each(function(e){
				e.checked = false;
			});
			Event.stop(e);		
		});				
	}
};

function printPageSetup(){
	if($('share_page')){
		if($('article-body')){
			$('share_page').insert({after:'<li id="print_page"><a href="#" title="Print page for offline viewing" id="print-this-page">Print this page</a></li>'});	
			$('print-this-page').observe('click',function(e){window.print(); Event.stop(e);});		
		} else {
			$('share_page').insert({after:'<li id="print_page"><span id="print-this-page">Print this page</span></li>'});	
		}	
	}
};

function advancedSearchSetup(){
	if($('s')){
		var adv_link = $('advanced_search_link');
		var search_box = $('s');
		var in_section = $('search_in_section');
		
		adv_link.removeClassName('nojs');
		in_section.toggle();
		Event.observe('s', 'focus', function(e){
			adv_link.hide();
			in_section.show();
		});
		Event.observe('s', 'blur', function(e){
			if(this.value == undefined || this.value == ''){
				adv_link.show();
				in_section.hide();				
			}
		});
	}
};

function topicDocumentSelector(){
	var doSubmit = function(e){
            $('dynamic_filter').submit();
            Event.stop(e);
        }

        if($('sid') && $('tid')){
            Event.observe('sid', 'change', doSubmit );
            Event.observe('tid', 'change', doSubmit );
	}

        if( $('remember') ){
            Event.observe('remember', 'click', function(e){
                if( $('remember').checked ){
                    $('remember_op').value = 'remember';
                } else {
                    $('remember_op').value = 'clear';
                }
                $('dynamic_filter').submit();
            })
        }
};

document.observe("dom:loaded",function(){
	subscriptionSetup();
	printPageSetup();
	advancedSearchSetup();
	topicDocumentSelector();
});
