if( typeof htmlentities !== 'function' )
{
	function htmlentities( str )
	{
		var change = 	 [     "'",     '"',      '®',      '©',      'é',     '“',     '”', '\n' ];
		var equivalent = [ '&#39;', '&#34;', '&#174;', '&#169;', '&#233;', '&#34;', '&#34;', ' ' ];
		for( var i in change ){ str = str_replace( change[ i ], equivalent[ i ], str ); }

		return str;
	}
} // end htmlentities.


if( typeof printr !== 'function' )
{
	function printr( param )
	{
		if( console ){ console.log( param ); }
		else{ alert( param ); }
	}
} // end printr.


if( typeof str_replace !== 'function' )
{
	function str_replace( search, replace, subject, count )
	{
		var i = 0, j = 0, temp = '', repl = '', sl = 0, fl = 0, f = [ ].concat( search ), r = [ ].concat( replace ), s = subject, 
			ra = r instanceof Array, sa = s instanceof Array; s = [ ].concat( s );

		if( count ){ this.window[count] = 0; }
		for( i = 0, sl = s.length; i < sl; i++ ){ if( s[ i ] === '' ){ continue; }
		for( j = 0, fl = f.length; j < fl; j++ )
		{
			temp = s[ i ]+'';
			repl = ra ? ( r[ j ] !== undefined ? r[ j ] : '' ) : r[ 0 ];
			s[ i ] = ( temp ).split( f[ j ] ).join( repl );
			if( count && s[ i ] !== temp ){ this.window[ count ] += ( temp.length - s[ i ].length ) / f[ j ].length; } }
		}

		return sa ? s : s[ 0 ];
	}
} // end str_replace.


if( typeof is_array !== 'function' )
{ 
	function is_array( obj ){ return ( obj instanceof Array ) || ( toString.call( obj ) === "[object Array]" ); } 
}

