$(document).ready(function() {
	$.jGrowl.defaults.log = function(e,m,o) {
		var el = $('#messages ul');
		el.find('.first').remove();
		el.append('<li><p class="' + o.theme + '">' + m + '<p></li>');
	}	

	$('#header-wrapper .toggle-messages').click(function() { 		
		$(this).toggleClass('active');
		$('#messages ul').slideToggle("medium", function() { $(this).toggleClass("active"); });
	})
})

//
// Ensures the rails Authenticity Token accompanies each ajax request.
//
$(document).ajaxSend(function(event, request, settings) {
  if (typeof(AUTH_TOKEN) == "undefined") return;
  // settings.data is a serialized string like "foo=bar&baz=boink" (or null)
  settings.data = settings.data || "";
  settings.data += (settings.data ? "&" : "") + "authenticity_token=" + encodeURIComponent(AUTH_TOKEN);
});

//
// Displays a message to the user using the jGrowl framework.
//
function displayMessage(data, type) {
	$.jGrowl(data, { life: 5000, theme: type });
}

//
// Displays a hint to the user.
//
function displayHint(data) {
	alert(data);
}

//
// Checks if a specific version of the Flash plugin is installed.
//
hasFlash = function(version) {
	// Look for a flag in the query string to bypass flash detection
	if(/hasFlash\=true/.test(location)) return true;
	if(/hasFlash\=false/.test(location)) return false;
	var pv = hasFlash.playerVersion().match(/\d+/g);
	var rv = String([arguments[0], arguments[1], arguments[2]]).match(/\d+/g) || String(version).match(/\d+/g);
	for(var i = 0; i < 3; i++) {
		pv[i] = parseInt(pv[i] || 0);
		rv[i] = parseInt(rv[i] || 0);
		// Player is less than required
		if(pv[i] < rv[i]) return false;
		// Player is greater than required
		if(pv[i] > rv[i]) return true;
	}
	// Major version, minor version and revision match exactly
	return true;
};

//
// Gets the version of the installed Flash plugin.
//
hasFlash.playerVersion = function() {
	// IE
	try {
		try {
			// Avoid fp6 minor version lookup issues
			// See: http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
			var axo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash.6');
			try { axo.AllowScriptAccess = 'always';	}
			catch(e) { return '6,0,0'; }
		} catch(e) {}
		return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g, ',').match(/^,?(.+),?$/)[1];
	// Better browsers
	} catch(e) {
		try {
			if(navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin){
				return (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]).description.replace(/\D+/g, ",").match(/^,?(.+),?$/)[1];
			}
		} catch(e) {}
	}
	return '0,0,0';
};

//
// Extends the jQuery object to ensure a specific flash version is available
// for a flash movie, and displays a noflash error if unavailable.
//
(function($){
	$.fn.verifyFlash = function(version) {
        if (hasFlash(version) == false) { //'10.0.0'
          this.html(
          '<div class="noflash">' +
            '<h2><img src="/images/icons/fam/exclamation.png" width="16" height="16" alt="Alert" />This content requires Flash</h2>' +
            '<p>To view this content, JavaScript must be enabled, and you need at least version ' + version + ' of the Adobe Flash Player.</p>' +
            '<a href="http://www.adobe.com/go/getflashplayer"><img src="/images/get_flash_player.gif" alt="Get Adobe Flash Player" border="0" /></a>' +
          '</div>');
        }
	};
})(jQuery);
