ThePoint.CampaignChannelAssignment = function () {
	var connectedWithFacebook = false;
	
  return {
		setSelectedStyle: function(e) {
	    e.previous().removeClassName('default top');
	    e.previous().addClassName('selected sel_top');
	    
			e.next().removeClassName('default bottom');
	    e.next().addClassName('selected sel_bottom');
		},
		setUnselectedStyle: function(e) {
			
		}
  };
}();


document.observe("dom:loaded", function(){
  $$('a.selected').each(ThePoint.CampaignChannelAssignment.setSelectedStyle);
})

Event.addBehavior({
  '#campaign_channel_assignment ul li div a.name:click': function(event){
    event.stop();
		channel_max = 3

		link_element = event.element();	
		current_class_name = link_element.className;
		target_class_name = current_class_name == 'selected name' ? 'name' : 'selected name'
		
		if($$('#campaign_channel_assignment a.selected').length >= channel_max && target_class_name == 'selected name') {
			alert("A campaign can only belong to a maximum of 3 channels")
			return false;
		}
		
		action_url = link_element.href.gsub(/(campaigns\/[^\/]*)\/.*$/, '#{1}');
		action_method = 'put'
		channel_id = link_element.up('.campaign_channel').down('.permalink').innerHTML;

		parameter_name = (current_class_name == 'selected name') ? 'remove_channel_id' : 'add_channel_id'

		var progressIndication = ProgressIndicator.Spinner.start(link_element, 'top');

    var switchClass = function(el){
      
      if(el.hasClassName('default')){
        el.removeClassName('default');
        el.addClassName('selected');
        if(el.hasClassName('top')){
          el.removeClassName('top');
          el.addClassName('sel_top');
        }else{
          el.removeClassName('bottom');
          el.addClassName('sel_bottom');
        }
      }else{// if 'selected'
        el.removeClassName('selected');
        el.addClassName('default');
        if(el.hasClassName('sel_top')){
          el.removeClassName('sel_top');
          el.addClassName('top');
        }else{
          el.removeClassName('sel_bottom');
          el.addClassName('bottom');
        }
      }
    }
  
		new Ajax.Request(action_url, {
		  method: action_method,
      parameters: 'campaign['+parameter_name+']='+channel_id.toString(),
			onSuccess: function(transport) {
		  	link_element.className = target_class_name;
				switchClass(link_element.previous());
        switchClass(link_element.next());
				progressIndication.stop();
			}
		});
  },

	'#campaign_channels .search_filter:change, #campaign_channels .search_time_range:change' : function(event) {
		event.stop();
		field = event.element();
		field.form.submit();
	}
});

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

	var buttons = $$('#campaign_channels .search .buttons');
	if (buttons.length > 0){ buttons.first().hide();}

});