Event.addBehavior({
	'#header_box': function() { 
		Login.box();
	},
	
	'#advanced-search:submit': function() {
		AdvancedSearch.select();
	},

	'#section': function() {    
    var current = window.getQueryParamValue('s')
    $A(this.options).each(function(opt) {
      if (opt.value == current) {
        opt.selected = true
      }
    })
  },
  	
	'#section:change': function(event) {  
	  if (this.value.substring(0, 5) != "music") {
	    $('music_field').options[0].selected = true;
  	  $('advanced_music_search').hide();
	  }
	  else {
	    $('advanced_music_search').show();
	  }
	},
	

	'#contribute_form:submit': function(event) {
		new Ajax.Updater('contribute_form', '/newsletter_subscribers/create', {
		  parameters: Form.serialize('newsletter_subscribe_form')
		});
		Event.stop(event);
	},
	
	'#newsletter_subscribe_form:submit': function(event) {
		new Ajax.Updater('newsletter_subscribe_form', '/newsletter_subscribers/create', {
		  parameters: Form.serialize('newsletter_subscribe_form')
		});
		Event.stop(event);
	},
	
	'#newsletter_unsubscribe_form:submit': function(event) {
		new Ajax.Updater('newsletter_unsubscribe_form', '/newsletter_subscribers/destroy', {
		  parameters: Form.serialize('newsletter_unsubscribe_form')
		});
		Event.stop(event);
	},
	
	'.search_btn:click': function(event) {
		Event.stop(event);
		if (this.getAttribute('use')=='section_search') {
			$('section_search_form').submit();
		} else {
			$('search_form').submit();
		}
	},
	
	// count track views, but this behavior is only for the public side?
	// 'div#music': function() {
	'input#viewing_article_id': function() {
		Event.observe(window, 'load', function() {
			var e = $('viewing_article_id');
			if (e) {
				new Ajax.Request('/article_views/log/' + escape($F(e)));
			}
	  })
	}
	
});

var jazz_cookie = Cookie.read('jazz_com');

var Login = {
	box: function() {
		var vars = Login.vars();
    var parsed_template = jazz_cookie ? Login.loggedin().evaluate(vars) : Login.loggedout().evaluate(vars);
    return $('login_box').update(parsed_template);
	},
	
	vars: function() {
		var user = jazz_cookie ? jazz_cookie.split("&") : [null, null];
		return {forums_url: h['forums_url'], user_id: user[1], user_name: user[0]};
	},
	
	loggedin: function() {
		return new Template('<p>Hi, <a href="#{forums_url}/users/#{user_id}" title="User settings">#{user_name}</a> &nbsp;|&nbsp; <a href="#{forums_url}/settings">Settings</a> &nbsp;|&nbsp; <a href="#{forums_url}/logout">Logout</a></p>');
	},
	
	loggedout: function() {
    // return new Template('<a href="#{forums_url}/login" id="login_btn">Login</a> <p>Click here to login to jazz.com.<br /> <a href="#{forums_url}/reset_password">Forget your password?</a> | <a href="#{forums_url}/login">New to jazz.com?</a>');
		return new Template('<a href="#{forums_url}/login" id="login_btn">Login</a> <p>Click here to login to jazz.com.<br /> <a href="#{forums_url}/reset_password">Forget your password?</a></a>');
	}
}

var AdvancedSearch = {
	select: function() {
		switch($('section').options[$('section').selectedIndex].value) {
			case 'visual-jazz': $('advanced-search').action = '/search_galleries' ; break;
			case 'community': $('advanced-search').action = h['forums_url'] + '/users'; break;
			case 'forums': $('advanced-search').action = h['forums_url'] + '/posts;search'; break;
		}
	}
}


//show comment note after posting a comment
function insertNote() {
  var searchString = document.location.search;
  if (searchString == "") { return }
  searchString = searchString.substring(1);
  var nvPairs = searchString.split("&")
  var nvPair = nvPairs[0]
  nvPair = nvPair.split("=");

  if (nvPair[0] == 'note') {
    // console.log(nvPair[1])
    new Insertion.After('comment_note', "<p>" + nvPair[1].replace(/\+/g, ' ') + '</p>' )
  }
}

Event.observe(window, 'load', insertNote)