/** Element Class Extensions **/
Element.implement({
	
	/*
	Method: getDataFromComment
		Retrieve JSON data from a comment
	*/
	getDataFromComment: function()
	{
		var i = 0,
			data = null;
		
		// look for a comment containing json data
		while ( i < this.childNodes.length )
		{
			if ( this.childNodes[i].nodeType == 8 ) // comments
			{
				if ( /^\s*\{(?:.|\n)+\}\s*$/.test( this.childNodes[i].data ) )
				{
					data = JSON.decode( this.childNodes[i].data );
					if ( data )
						break;
				}
			}
			else if ( this.childNodes[i].nodeType == 1 ) // elements
				break;
			
			i++;
		}
		
		return data;
	}
	
});



/** Helpful $ Functions **/

function $log() {
	
	if ( !window.console ) return;
	
	for ( var i = 0; i < arguments.length; i++ )
		console.log( arguments[i] );
}

function $info() {
	
	if ( !window.console ) return;
	
	for ( var i = 0; i < arguments.length; i++ )
		console.info( arguments[i] );
}

function $warn() {
	
	if ( !window.console ) return;
	
	for ( var i = 0; i < arguments.length; i++ )
		console.warn( arguments[i] );
}

function $options( options, defaults ) {
	
	if ( $type( options ) != 'object' )
		options = {};
	
	if ( $type( defaults ) != 'object' )
		defaults = {};
	
	return $extend( defaults, options );
	
}

function $date( str )
{
	switch ( $type( str ) )
	{
		case 'date': return str;
		case 'undefined': return new Date();
	}
	
	return Date.parse( str );
}

$D = $date;


/** Browser Detection ***/
window.addEvent( 'domready', function() {

	var $body = $( 'body' );
	
	if ( !$body )
		return;
	
	if ( !$body.hasClass( 'detect_ie' ) )
		return;
	
	var browserClass = 'not_ie';
	
	if ( Browser.ie )
	{
		browserClass = 'is_ie';
		
		if ( Browser.ie5 )
			browserClass += ' is_ie5'; /* Is actually probably version 8, how Mootools detects it. */
		
		if ( Browser.ie6 )
			browserClass += ' is_ie6';
		
		if ( Browser.ie7 )
			browserClass += ' is_ie7';
		
		if ( Browser.ie8 )
			browserClass += ' is_ie8';
		
		if ( Browser.ie9 )
			browserClass += ' is_ie9';
	}
	
	$body.addClass( browserClass );
	$body.removeClass( 'detect_ie' );

});
