// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults

// globals expected to be passed in on page: form_authenticity_token

// General page utilities for focusing, dynamic header, etc.

function focus(element_id) {
	// console.log(element_id);
	if (element_id == '') {
		// fields = $$("input[type!=hidden], textarea, select");
		// if (fields.length > 0) fields[0].focus();
	  var e = $A(document.getElementsByTagName('*')).find(function(e) {
	    return (e.tagName.toUpperCase() == 'INPUT' && (e.type == 'text' || e.type == 'password'))
	        || e.tagName.toUpperCase() == 'TEXTAREA' || e.tagName.toUpperCase() == 'SELECT';
	  });
	  if (e) e.focus();

	}
	else {
		field = $(element_id)
		if (field != null) field.focus();
	}
	
}

// disable text selection; from http://ajaxcookbook.org/disable-text-selection/
function disable_selection(element_id) {
		// console.log(element_id)
		element = (element_id == '') ? document.body : $(element_id);
		if (element == null) return;
    element.onselectstart = function() {
        return false;
    };
    element.unselectable = "on";
    element.style.MozUserSelect = "none";
    element.style.cursor = "default";
}

// If certain cookies are found, certain classes are added to body tag.
// Stylesheet then unhides certain elements when user is signed_in, signed_out, or staff.
// Based on http://github.com/lemonbbq/railscasts-dynamic-page-caching/

function show_certain_elements() {
	var user_name = Cookie.get('user_name');
	var body = $$('body')[0];
  if (user_name != null) {
		body.addClassName("signed_in");
		$('user_name').update( unescape(user_name) );
		// $('user_name').textContent = unescape(user_name);
		if (Cookie.get('user_staff') == 'true') {
			body.addClassName("staff");
	  }
  }
	else {
		body.addClassName("signed_out");
	}

}

document.observe("dom:loaded", show_certain_elements);

