/***********************************
Versão: 1.0

Este Código foi contribuido por:
Hugo Ferreira da Silva
Autor: Hugo Ferreira da Silva
http://www.hufersil.com.br
eu@hufersil.com.br

--------------------------------------
Complementação do script por:
Adriano Rosa
http://www.adrianorosa.com
10-05-2008
***********************************/

/***********************************
Formatar XML
***********************************/
function FormatXML(el) {
	var el = el == undefined ? getCodes() : getDivsByTitle(el);
	var ident = "&nbsp;&nbsp;&nbsp;";
	for(var i=0; i<el.length; i++) {
		var retorno='';
		var idcount = 0;
		var tmp = removeTagP(el[i].innerHTML.replace(/[\r\n]/g,""));
		
		linhas = tmp.replace(/<br(.*?)>/gi, "<BR>");
		linhas = linhas.split("<BR>");
		for(var j=0; j<linhas.length; j++) {
			var linha = linhas[j];
			if(linha == '') {
				linha= '&nbsp;';
			} else {
				var r = /\&lt;(.*?)\&gt;/;
				while((a = r.exec(linha)) != null) {
					var x = a[1].replace(/"(.*?)"/g,'<font color="#006600">&quot;$1&quot;</font>');
					linha = linha.replace('&lt;'+a[1]+'&gt;', '<font color="#000066">«'+x+'»</font>');;
				}
				linha = linha.replace(/«/g,"&lt;");
				linha = linha.replace(/»/g,"&gt;");
				
				var t=/&lt;(.*?)&gt;/;
				var e=/\&lt;\//;

				if(t.test( linha )) {
					if(RegExp.$1.substr(RegExp.$1.length - 1, 1) != '/' && RegExp.$1.substr(0,1) != '/' && RegExp.$1.substr(0,1)!= '?') {
						idcount++;
					}
				}
				if(e.test(linha)) {
					idcount--;
				}
				for(var x=0; e.test(linha) ? x<idcount : RegExp.$1.substr(RegExp.$1.length-1,1) == '/' ? x<idcount : x<idcount-1; x++) {
					linha = ident + linha;
				}

			}
			if(linha == '') {
				linha = '&nbsp;';
			}
			linhas[j] = linha;
		}
		retorno = '<li>'+linhas.join('</li><li>')+'</li>';
		el[i].innerHTML = '<ol>'+retorno+'</ol>';
	}
}

/***********************************
Formatar ActionScript
***********************************/
function FormatAS(el) {
	
	var el = el == undefined ? getCodes() : getDivsByTitle(el);
	var ident = "&nbsp;&nbsp;&nbsp;";
	/* string, comentário, reservadas, chaves, numeros */
	var colors = new Object();
	colors.keyword = '#669900';
	colors.string = '#000066';
	colors.comment = '#666666';
	colors.reserved = '#0033CC';
	colors.number = '#FF0000';
	
	reserveds = /\b(addEventListener|removeEventListener|dispatchEvent|Date|getTime|setTime|appendChild|attachMovie|attachSound|loadSound|Math|min|pow|random|round|sin|sqrt|tan|Mouse|hide|show|Number|MAX_VALUE|MIN_VALUE|NEGATIVE_INFINITY|NaN|POSITIVE_INFINITY|Object|Selection|getBeginIndex|getCaretIndex|getEndIndex|getFocus|setFocus|setSelection|Sound|String|fromCharCode|XML|XMLNode|XMLSocket|addRequestHeader|attachMovie|call|chr|duplicateMovieClip|escape|eval|false|fscommand|getBounds|getBytesLoaded|getBytesTotal|getDepth|getProperty|getTimer|getURL|getVersion|globalToLocal|gotoAndPlay|gotoAndStop|hitTest|ifFrameLoaded|-Infinity|Infinity|int|isFinite|isNaN|keyPress|length|loadMovie|loadMovieNum|loadVariables|loadVariablesNum|localToGlobal|mbchr|mblength|mbord|mbsubstring|newline|nextFrame|nextScene|null|ord|parseFloat|parseInt|play|prevFrame|prevScene|print|printAsBitmap|printNum|printAsBitmapNum|random|removeMovieClip|set|setProperty|startDrag|stop|stopAllSounds|stopDrag|substring|targetPath|tellTarget|this|toggleHighQuality|trace|MMExecute|true|undefined|unescape|unloadMovie|unloadMovieNum|updateAfterEvent|press|release|releaseOutside|rollOver|rollOut|dragOver|dragOut|load|enterFrame|unload|mouseMove|mouseDown|mouseUp|keyDown|keyUp|data|setInterval|clearInterval|initclip|endinitclip|addProperty|registerClass|enabled|useHandCursor|unwatch|watch|Button|TextField|Function|apply|call|_global|super|LoadVars|TextFormat|autoSize|removeTextField|restrict|createTextField|html|variable|hscroll|maxhscroll|border|background|wordWrap|password|maxChars|multiline|textWidth|textHeight|selectable|htmlText|bottomScroll|text|embedFonts|borderColor|backgroundColor|textColor|font|size|Color|url|target|bullet|tabStops|bold|italic|underline|align|leftMargin|rightMargin|indent|leading|replaceSel|replaceText|getTextFormat|setTextFormat|getNewTextFormat|setNewTextFormat|getTextExtent|getFontList|condenseWhite|mouseWheelEnabled|TextSnapshot|getCount|setSelected|getSelected|getText|getSelectedText|hitTestTextNearPos|findText|setSelectColor|addListener|removeListener|focusEnabled|onPress|onRelease|onReleaseOutside|onRollOver|onRollOut|onDragOver|onDragOut|onLoad|onUnload|onMouseDown|onMouseMove|onMouseUp|onMouseWheel|onKeyDown|onKeyUp|onData|onChanged|tabIndex|tabEnabled|tabChildren|hitArea|onSetFocus|onKillFocus|setMask|Accessibility|isActive|updateProperties|createEmptyMovieClip|beginFill|beginGradientFill|moveTo|lineTo|curveTo|lineStyle|endFill|clear|_alpha|_currentframe|_droptarget|_focusrect|_framesloaded|_height|_highquality|_lockroot|_name|_quality|_rotation|_soundbuftime|_target|_totalframes|_url|_width|_visible|_x|_xmouse|_xscale|_y|_ymouse|_yscale|CustomActions|get|install|list|uninstall|Stage|showMenu|scaleMode|align|width|height|onResize|System|capabilities|security|useCodepage|exactSettings|clear|contentType|createEmptyMovieClip|curveTo|height|ignoreWhite|lineTo|moveTo|onEnterFrame|onScroller|trackAsMenu|type|width|duration|position|onSoundComplete|onID3|id3|artist|album|songtitle|year|genre|track|comment|COMM|TALB|TBPM|TCOM|TCON|TCOP|TDAT|TDLY|TENC|TEXT|TFLT|TIME|TIT1|TIT2|TIT3|TKEY|TLAN|TLEN|TMED|TOAL|TOFN|TOLY|TOPE|TORY|TOWN|TPE1|TPE2|TPE3|TPE4|TPOS|TPUB|TRCK|TRDA|TRSN|TRSO|TSIZ|TSRX|TSSE|TYER|WXXX|capabilities|hasAudio|hasMP3|hasAudioEncoder|hasVideoEncoder|hasEmbeddedVideo|screenResolutionX|screenResolutionY|screenDPI|screenColor|pixelAspectRatio|hasAccessibility|input|isDebugger|language|manufacturer|os|serverString|version|hasPrinting|playerType|hasStreamingAudio|hasScreenBroadcast|hasScreenPlayback|hasStreamingVideo|avHardwareDisable|localFileReadDisable|windowlessDisable|Error|name|message|class|extends|public|private|static|interface|implements|import|dynamic|get|Void|ContextMenu|ContextMenuItem|copy|hideBuiltInItems|onSelect|builtInItems|save|zoom|quality|loop|rewind|forward_back|print|customItems|caption|separatorBefore|visible|attachVideo|bufferLength|bufferTime|clear|close|connect|currentFps|height|nStatus|pause|play|seek|setBufferTime|smoothing|time|bytesLoaded|bytesTotal|NetConnection|NetStream|Video|PrintJob|start|addPage|send|paperWidth|paperHeight|pageWidth|pageHeight|orientation|MovieClipLoader|loadClip|unloadClip|getProgress|onLoadStart|onLoadProgress|onLoadComplete|onLoadInit|onLoadError|styleSheet|StyleSheet|parse|parseCSS|getStyle|setStyle|getStyleNames|transform|activityLevel|allowDomain|allowInsecureDomain|attachAudio|attachVideo|bandwidth|bufferLength|bufferTime|call|clear|close|connect|currentFps|data|deblocking|domain|flush|fps|gain|get|getLocal|getRemote|getSize|height|index|isConnected|keyFrameInterval|liveDelay|loopback|motionLevel|motionTimeOut|menu|muted|name|names|onActivity|onStatus|onSync|pause|play|publish|quality|rate|receiveAudio|receiveVideo|seek|send|setBufferTime|setFps|setGain|setKeyFrameInterval|setLoopback|setMode|setMotionLevel|setQuality|setRate|setSilenceLevel|setUseEchoSuppression|showSettings|setClipboard|silenceLevel|silenceTimeOut|smoothing|time|useEchoSuppression|width|textFieldHeight|textFieldWidth|ascent|descent|Camera|LocalConnection|Microphone|SharedObject|System)\b/g;

	x_keywords = /\b(if|while|with|var|void|typeof|new|delete|do|kangaroo|else|add|and|or|not|on|onClipEvent|le|for|in|function|instanceof|ge|eq|break|include|ne|return|try|catch|finally|throw|_root|_parent|_level|switch|default|case)\b/g;
	
	for(var i=0; i<el.length; i++) {
		var retorno = '';
		var idcount = 0;
		var foundAt = 0;
		
		var tmp = removeTagP(el[i].innerHTML.replace(/[\r\n]/g,""));
		retorno = formatCode (tmp.replace(/<br(.*?)>/gi,"|br|"),"|br|", 0);
		
		retorno = retorno.replace(reserveds,"<font color="+colors.reserved+">$1</font>");
		retorno = retorno.replace(x_keywords,"<font color="+colors.keyword+">$1</font>");
		retorno = retorno.replace(/ ([0-9]+)(;|\|br\| )/g," <font color="+colors.number+">$1</font>$2");
		
		var multi_comment = /\/\*(.*?)\*\//g;
		var single_comment = /(&nbsp;|\|br\|)\/\/(.*?)\|br\|/g;
		retorno = formatString(retorno, colors.string, '|br|');

		while((a = multi_comment.exec(retorno)) != null) {
			var nstr = a[1].replace(/<(.+?)>/g,'');
			retorno = retorno.replace(a[0], "/*"+nstr+"*/");
		}
		retorno = retorno.replace(multi_comment,"<font color="+colors.comment+">/*$1*/</font>");

		while((a = single_comment.exec(retorno)) != null) {
			var nstr = a[2].replace(/<(.+?)>/g,'');
			retorno = retorno.replace(a[0], a[1]+"//"+nstr+"|br|");
		}
		retorno = retorno.replace(single_comment,"$1<font color="+colors.comment+">//$2</font>|br|");
		retorno = retorno.replace(/(\(|\]|\[|\{|\}|\))/g,"<b>$1</b>");
		
		el[i].innerHTML = convertToList( retorno );
	}
}

/***********************************
Formatar PHP
***********************************/
function FormatPHP(el) {
	
	var el = el == undefined ? getCodes() : getDivsByTitle(el);
	var ident = "&nbsp;&nbsp;&nbsp;";
	/* string, comentário, reservadas, chaves, numeros */
	var colors = new Object();
	colors.keyword = '#669900';
	colors.string = '#FF0000';
	colors.comment = '#FF9900';
	colors.reserved = '#0033CC';
	colors.number = '#FF0000';
	
	reserveds = new Array();
	reserveds[reserveds.length] = /\b(abs|acos|acosh|addcslashes|addslashes|aggregate|aggregate_methods|aggregate_methods_by_list|aggregate_methods_by_regexp|aggregate_properties|aggregate_properties_by_list|aggregate_properties_by_regexp|aggregation_info|apache_child_terminate|apache_get_modules|apache_get_version|apache_lookup_uri|apache_note|apache_request_auth_name|apache_request_auth_type)\b/g;
	reserveds[reserveds.length] = /\b(apache_request_discard_request_body|apache_request_err_headers_out|apache_request_headers|apache_request_headers_in|apache_request_headers_out|apache_request_is_initial_req|apache_request_log_error|apache_request_meets_conditions|apache_request_remote_host|apache_request_satisfies|apache_request_server_port|apache_request_set_etag|apache_request_set_last_modified|apache_request_some_auth_required|apache_request_sub_req_lookup_file|apache_request_sub_req_lookup_uri|apache_request_update_mtime|apache_response_headers|apache_setenv|array_change_key_case)\b/g;
	reserveds[reserveds.length] = /\b(array_chunk|array_count_values|array_diff|array_diff_assoc|array_fill|array_filter|array_flip|array_intersect|array_intersect_assoc|array_key_exists|array_keys|array_map|array_merge|array_merge_recursive|array_multisort|array_pad|array_pop|array_push|array_rand|array_reduce)\b/g;
	reserveds[reserveds.length] = /\b(array_reverse|array_search|array_shift|array_slice|array_splice|array_sum|array_unique|array_unshift|array_values|array_walk|arsort|asin|asinh|asort|assert|assert_options|atan2|atan|atanh|base64_decode)\b/g;
	reserveds[reserveds.length] = /\b(base64_encode|base_convert|basename|bcadd|bccomp|bcdiv|bcmod|bcmul|bcpow|bcpowmod|bcscale|bcsqrt|bcsub|bin2hex|bind_textdomain_codeset|bindec|bindtextdomain|bzcompress|bzdecompress|bzerrno)\b/g;
	reserveds[reserveds.length] = /\b(bzerror|bzerrstr|bzopen|bzread|cal_days_in_month|cal_from_jd|cal_info|cal_to_jd|call_user_func|call_user_func_array|call_user_method|call_user_method_array|ceil|chdir|checkdate|chgrp|chmod|chown|chr|chroot)\b/g;
	reserveds[reserveds.length] = /\b(chunk_split|class_exists|clearstatcache|closedir|closelog|com_addref|com_event_sink|com_invoke|com_invoke_ex|com_isenum|com_load|com_load_typelib|com_message_pump|com_print_typeinfo|com_propget|com_release|compact|confirm_extname_compiled|connection_aborted|connection_status)\b/g;
	reserveds[reserveds.length] = /\b(constant|convert_cyr_string|copy|cos|cosh|count|count_chars|cpdf_add_annotation|cpdf_add_outline|cpdf_arc|cpdf_begin_text|cpdf_circle|cpdf_clip|cpdf_close|cpdf_closepath|cpdf_closepath_fill_stroke|cpdf_closepath_stroke|cpdf_continue_text|cpdf_curveto|cpdf_end_text)\b/g;
	reserveds[reserveds.length] = /\b(cpdf_fill|cpdf_fill_stroke|cpdf_finalize|cpdf_finalize_page|cpdf_global_set_document_limits|cpdf_import_jpeg|cpdf_lineto|cpdf_moveto|cpdf_newpath|cpdf_open|cpdf_output_buffer|cpdf_page_init|cpdf_place_inline_image|cpdf_rect|cpdf_restore|cpdf_rlineto|cpdf_rmoveto|cpdf_rotate|cpdf_rotate_text|cpdf_save)\b/g;
	reserveds[reserveds.length] = /\b(cpdf_save_to_file|cpdf_scale|cpdf_set_action_url|cpdf_set_char_spacing|cpdf_set_creator|cpdf_set_current_page|cpdf_set_font|cpdf_set_font_directories|cpdf_set_font_map_file|cpdf_set_horiz_scaling|cpdf_set_x_keywords|cpdf_set_leading|cpdf_set_page_animation|cpdf_set_subject|cpdf_set_text_matrix|cpdf_set_text_pos|cpdf_set_text_rendering|cpdf_set_text_rise|cpdf_set_title|cpdf_set_viewer_preferences)\b/g;
	reserveds[reserveds.length] = /\b(cpdf_set_word_spacing|cpdf_setdash|cpdf_setflat|cpdf_setgray|cpdf_setgray_fill|cpdf_setgray_stroke|cpdf_setlinecap|cpdf_setlinejoin|cpdf_setlinewidth|cpdf_setmiterlimit|cpdf_setrgbcolor|cpdf_setrgbcolor_fill|cpdf_setrgbcolor_stroke|cpdf_show|cpdf_show_xy|cpdf_stringwidth|cpdf_stroke|cpdf_text|cpdf_translate|crack_check)\b/g;
	reserveds[reserveds.length] = /\b(crack_closedict|crack_getlastmessage|crack_opendict|crc32|create_function|crypt|ctype_alnum|ctype_alpha|ctype_cntrl|ctype_digit|ctype_graph|ctype_lower|ctype_print|ctype_punct|ctype_space|ctype_upper|ctype_xdigit|curl_close|curl_errno|curl_error)\b/g;
	reserveds[reserveds.length] = /\b(curl_exec|curl_getinfo|curl_init|curl_multi_exec|curl_multi_getcontent|curl_multi_info_read|curl_multi_init|curl_multi_remove_handle|curl_setopt|curl_version|current|date|dba_close|dba_delete|dba_exists|dba_fetch|dba_firstkey|dba_handlers|dba_insert|dba_list)\b/g;
	reserveds[reserveds.length] = /\b(dba_nextkey|dba_open|dba_optimize|dba_popen|dba_replace|dba_sync|dbase_add_record|dbase_close|dbase_create|dbase_delete_record|dbase_get_record|dbase_get_record_with_names|dbase_numfields|dbase_numrecords|dbase_open|dbase_pack|dbase_replace_record|dblist|dblist|dbmclose)\b/g;
	reserveds[reserveds.length] = /\b(dbmdelete|dbmexists|dbmfetch|dbmfirstkey|dbminsert|dbmnextkey|dbmopen|dbmreplace|dbx_close|dbx_compare|dbx_connect|dbx_error|dbx_esc|dbx_query|dbx_sort|dcgettext|dcngettext |deaggregate|debug_backtrace|debug_zval_dump)\b/g;
	reserveds[reserveds.length] = /\b(decbin|dechex|decoct|define|define_syslog_variables|defined|deg2rad|dgettext|dio_close|dio_fcntl|dio_open|dio_read|dio_seek|dio_stat|dio_tcsetattr|dio_truncate|dio_write|dir|dirname|disk_free_space)\b/g;
	reserveds[reserveds.length] = /\b(disk_total_space|dl|dngettext|dns_check_recored|dns_get_mx|dns_get_record|domxml_add_root|domxml_attr_name|domxml_attr_specified|domxml_attr_value|domxml_cdata_length|domxml_clone_node|domxml_doc_create_attribute|domxml_doc_create_cdata_section|domxml_doc_create_comment|domxml_doc_create_element|domxml_doc_create_element_ns|domxml_doc_create_entity_reference|domxml_doc_create_processing_instruction|domxml_doc_create_text_node)\b/g;
	reserveds[reserveds.length] = /\b(domxml_doc_doctype|domxml_doc_document_element|domxml_doc_get_element_by_id|domxml_doc_get_elements_by_tagname|domxml_doc_ids|domxml_doc_implementation|domxml_doc_imported_node|domxml_doc_validate|domxml_doc_xinclude|domxml_doctype_entities|domxml_doctype_name|domxml_doctype_notations|domxml_doctype_public_id|domxml_doctype_system_id|domxml_dtd|domxml_dump_mem|domxml_dump_mem_file|domxml_dump_node|domxml_elem_get_attribute|domxml_elem_get_attribute_node)\b/g;
	reserveds[reserveds.length] = /\b(domxml_elem_get_elements_by_tagname|domxml_elem_has_attribute|domxml_elem_remove_attribute|domxml_elem_set_attribute|domxml_elem_set_attribute_node|domxml_elem_tagname|domxml_element|domxml_html_dump_mem|domxml_is_blank_node|domxml_new_xmldoc|domxml_node|domxml_node_add_namespace|domxml_node_append_child|domxml_node_append_sibling|domxml_node_attributes|domxml_node_children|domxml_node_first_child|domxml_node_get_content|domxml_node_has_attributes|domxml_node_has_child_nodes)\b/g;
	reserveds[reserveds.length] = /\b(domxml_node_insert_before|domxml_node_last_child|domxml_node_name|domxml_node_namespace_uri|domxml_node_new_child|domxml_node_next_sibling|domxml_node_owner_document|domxml_node_parent|domxml_node_prefix|domxml_node_previous_sibling|domxml_node_remove_child|domxml_node_replace_child|domxml_node_replace_node|domxml_node_set_content|domxml_node_set_name|domxml_node_set_namespace|domxml_node_text_concat|domxml_node_type|domxml_node_unlink_node|domxml_node_value)\b/g;
	reserveds[reserveds.length] = /\b(domxml_notation_public_id|domxml_notation_system_id|domxml_parser|domxml_parser_add_chunk|domxml_parser_cdata_section|domxml_parser_characters|domxml_parser_comment|domxml_parser_end|domxml_parser_end_document|domxml_parser_end_element|domxml_parser_entity_reference|domxml_parser_get_document|domxml_parser_namespace_decl|domxml_parser_processing_instruction|domxml_parser_set_keep_blanks|domxml_parser_start_document|domxml_parser_start_element|domxml_pi_data|domxml_pi_target|domxml_set_root)\b/g;
	reserveds[reserveds.length] = /\b(domxml_substitute_entities_default|domxml_test|domxml_version|domxml_xmltree|domxml_xslt_process|domxml_xslt_result_dump_file|domxml_xslt_result_dump_mem|domxml_xslt_stylesheet|domxml_xslt_stylesheet_doc|domxml_xslt_stylesheet_file|domxml_xslt_version|each|easter_date|easter_days|echo|end|ereg|ereg_replace|eregi|eregi_replace)\b/g;
	reserveds[reserveds.length] = /\b(error_log|error_reporting|escapeshellarg|escapeshellcmd|exec|exif_imagetype|exif_read_data|exif_tagname|exif_thumbnail|exp|explode|expm1|extension_loaded|extract|ezmlm_hash|fclose|fdf_add_doc_javascript|fdf_add_template|fdf_close|fdf_create)\b/g;
	reserveds[reserveds.length] = /\b(fdf_enum_values|fdf_get_ap|fdf_get_attachment|fdf_get_encoding|fdf_get_file|fdf_get_flags|fdf_get_option|fdf_get_status|fdf_get_value|fdf_get_version|fdf_next_field_name|fdf_open|fdf_open_string|fdf_remove_item|fdf_save|fdf_save_string|fdf_set_ap|fdf_set_encoding|fdf_set_file|fdf_set_flags)\b/g;
	reserveds[reserveds.length] = /\b(fdf_set_javascript_action|fdf_set_on_import_javascript|fdf_set_opt|fdf_set_status|fdf_set_submit_form_action|fdf_set_target_frame|fdf_set_value|fdf_set_version|feof|fflush|fgetc|fgetcsv|fgets|fgetss|file|file_exists|file_get_contents|fileatime|filectime|filegroup)\b/g;
	reserveds[reserveds.length] = /\b(fileinode|filemtime|fileowner|fileperms|filepro|filepro_fieldcount|filepro_fieldname|filepro_fieldtype|filepro_fieldwidth|filepro_retrieve|filepro_rowcount|filesize|filetype|floatval|flock|floor|flush|fmod|fnmatch|fopen)\b/g;
	reserveds[reserveds.length] = /\b(fpassthru|fread|frenchtojd|fribidi_charset_info|fribidi_get_charsets|fribidi_log2vis|fscanf|fseek|fsockopen|fstat|ftell|ftok|ftp_cdup|ftp_chdir|ftp_close|ftp_connect|ftp_delete|ftp_exec|ftp_fget|ftp_fput)\b/g;
	reserveds[reserveds.length] = /\b(ftp_get|ftp_get_option|ftp_login|ftp_mdtm|ftp_mkdir|ftp_nb_continue|ftp_nb_fget|ftp_nb_fput|ftp_nb_get|ftp_nb_put|ftp_nlist|ftp_pasv|ftp_put|ftp_pwd|ftp_rawlist|ftp_rename|ftp_rmdir|ftp_set_option|ftp_site|ftp_size)\b/g;
	reserveds[reserveds.length] = /\b(ftp_ssl_connect|ftp_systype|ftruncate|func_get_arg|func_get_args|func_num_args|function_exists|fwrite|gd_info|get_browser|get_cfg_var|get_class|get_class_methods|get_class_vars|get_current_user|get_declared_classes|get_defined_constants|get_defined_functions|get_defined_vars|get_extension_funcs)\b/g;
	reserveds[reserveds.length] = /\b(get_html_translation_table|get_include_path|get_included_files|get_loaded_extensions|get_magic_quotes_gpc|get_magic_quotes_runtime|get_meta_tags|get_object_vars|get_parent_class|get_resource_type|getallheaders|getallheaders|getcwd|getdate|getenv|gethostbyaddr|gethostbyname|gethostbynamel|getimagesize|getlastmod)\b/g;
	reserveds[reserveds.length] = /\b(getmygid|getmyinode|getmypid|getmyuid|getopt|getprotobyname|getprotobynumber|getrandmax|getrusage|getservbyname|getservbyport|gettext|gettimeofday|gettype|glob|gmdate|gmmktime|gmp_abs|gmp_add|gmp_and)\b/g;
	reserveds[reserveds.length] = /\b(gmp_clrbit|gmp_cmp|gmp_com|gmp_div_q|gmp_div_qr|gmp_div_r|gmp_divexact|gmp_fact|gmp_gcd|gmp_gcdext|gmp_hamdist|gmp_init|gmp_intval|gmp_invert|gmp_jacobi|gmp_legendre|gmp_mod|gmp_mul|gmp_neg|gmp_or)\b/g;
	reserveds[reserveds.length] = /\b(gmp_perfect_square|gmp_popcount|gmp_pow|gmp_powm|gmp_prob_prime|gmp_random|gmp_scan0|gmp_scan1|gmp_setbit|gmp_sign|gmp_sqrt|gmp_sqrtrem|gmp_strval|gmp_sub|gmp_xor|gmstrftime|gregoriantojd|gzcompress|gzdeflate|gzencode)\b/g;
	reserveds[reserveds.length] = /\b(gzfile|gzinflate|gzopen|gzuncompress|header|headers_sent|hebrev|hebrevc|hexdec|highlight_file|highlight_string|html_doc|html_doc_file|html_entity_decode|htmlentities|htmlspecialchars|hypot|ibase_add_user|ibase_blob_add|ibase_blob_cancel)\b/g;
	reserveds[reserveds.length] = /\b(ibase_blob_close|ibase_blob_create|ibase_blob_echo|ibase_blob_get|ibase_blob_import|ibase_blob_info|ibase_blob_open|ibase_close|ibase_commit|ibase_connect|ibase_delete_user|ibase_errmsg|ibase_execute|ibase_fetch_assoc|ibase_fetch_object|ibase_fetch_row|ibase_field_info|ibase_free_query|ibase_free_result|ibase_modify_user)\b/g;
	reserveds[reserveds.length] = /\b(ibase_num_fields|ibase_pconnect|ibase_prepare|ibase_query|ibase_rollback|ibase_timefmt|ibase_trans|iconv|iconv_get_encoding|iconv_mime_decode|iconv_mime_encode|iconv_set_encoding|iconv_strlen|iconv_strpos|iconv_strrpos|iconv_substr|ifx_affected_rows|ifx_blobinfile_mode|ifx_byteasvarchar|ifx_close)\b/g;
	reserveds[reserveds.length] = /\b(ifx_connect|ifx_copy_blob|ifx_create_blob|ifx_create_char|ifx_do|ifx_error|ifx_errormsg|ifx_fetch_row|ifx_fieldproperties|ifx_fieldtypes|ifx_free_blob|ifx_free_char|ifx_free_result|ifx_get_blob|ifx_get_char|ifx_getsqlca|ifx_htmltbl_result|ifx_nullformat|ifx_num_fields|ifx_num_rows)\b/g;
	reserveds[reserveds.length] = /\b(ifx_pconnect|ifx_prepare|ifx_query|ifx_textasvarchar|ifx_update_blob|ifx_update_char|ifxus_close_slob|ifxus_create_slob|ifxus_free_slob|ifxus_open_slob|ifxus_read_slob|ifxus_seek_slob|ifxus_tell_slob|ifxus_write_slob|ignore_user_abort|image2wbmp|image_type_to_mime_type|imagealphablending|imageantialias|imagearc)\b/g;
	reserveds[reserveds.length] = /\b(imagechar|imagecharup|imagecolorallocate|imagecolorallocatealpha|imagecolorat|imagecolorclosest|imagecolorclosestalpha|imagecolorclosesthwb|imagecolordeallocate|imagecolorexact|imagecolorexactalpha|imagecolormatch|imagecolorresolve|imagecolorresolvealpha|imagecolorset|imagecolorsforindex|imagecolorstotal|imagecolortransparent|imagecopy|imagecopymerge)\b/g;
	reserveds[reserveds.length] = /\b(imagecopymergegray|imagecopyresampled|imagecopyresized|imagecreate|imagecreatefromgd2|imagecreatefromgd2part|imagecreatefromgd|imagecreatefromgif|imagecreatefromjpeg|imagecreatefrompng|imagecreatefromstring|imagecreatefromwbmp|imagecreatefromxbm|imagecreatefromxpm|imagecreatetruecolor|imagedashedline|imagedestroy|imageellipse|imagefill|imagefilledarc)\b/g;
	reserveds[reserveds.length] = /\b(imagefilledellipse|imagefilledpolygon|imagefilledrectangle|imagefilltoborder|imagefilter|imagefontheight|imagefontwidth|imageftbbox|imagefttext|imagegammacorrect|imagegd2|imagegd|imagegif|imageinterlace|imageistruecolor|imagejpeg|imagelayereffect|imageline|imageloadfont|imagepalettecopy)\b/g;
	reserveds[reserveds.length] = /\b(imagepng|imagepolygon|imagepsbbox|imagepscopyfont|imagepsencodefont|imagepsextendfont|imagepsfreefont|imagepsloadfont|imagepsslantfont|imagepstext|imagerectangle|imagerotate|imagesetbrush|imagesetpixel|imagesetstyle|imagesetthickness|imagesettile|imagestring|imagestringup|imagesx)\b/g;
	reserveds[reserveds.length] = /\b(imagesy|imagetruecolortopalette|imagettfbbox|imagettftext|imagetypes|imagewbmp|imap_8bit|imap_alerts|imap_append|imap_base64|imap_binary|imap_body|imap_bodystruct|imap_check|imap_clearflag_full|imap_close|imap_createmailbox|imap_delete|imap_deletemailbox|imap_errors)\b/g;
	reserveds[reserveds.length] = /\b(imap_expunge|imap_fetch_overview|imap_fetchbody|imap_fetchheader|imap_fetchstructure|imap_get_quota|imap_get_quotaroot|imap_getmailboxes|imap_getsubscribed|imap_headerinfo|imap_headers|imap_last_error|imap_list|imap_lsub|imap_mail|imap_mail_compose|imap_mail_copy|imap_mail_move|imap_mailboxmsginfo|imap_mime_header_decode)\b/g;
	reserveds[reserveds.length] = /\b(imap_msgno|imap_num_msg|imap_num_recent|imap_open|imap_ping|imap_qprint|imap_renamemailbox|imap_reopen|imap_rfc822_parse_adrlist|imap_rfc822_parse_headers|imap_rfc822_write_address|imap_scan|imap_search|imap_set_quota|imap_setacl|imap_setflag_full|imap_sort|imap_status|imap_subscribe|imap_thread)\b/g;
	reserveds[reserveds.length] = /\b(imap_uid|imap_undelete|imap_unsubscribe|imap_utf7_decode|imap_utf7_encode|imap_utf8|implode|import_request_variables|in_array|ingres_autocommit|ingres_close|ingres_commit|ingres_connect|ingres_fetch_array|ingres_fetch_object|ingres_fetch_row|ingres_field_length|ingres_field_name|ingres_field_nullable|ingres_field_precision)\b/g;
	reserveds[reserveds.length] = /\b(ingres_field_scale|ingres_field_type|ingres_num_fields|ingres_num_rows|ingres_pconnect|ingres_query|ingres_rollback|ini_get|ini_get_all|ini_restore|ini_set|intval|ip2long|iptcembed|iptcparse|ircg_channel_mode|ircg_disconnect|ircg_fetch_error_msg|ircg_get_username|ircg_html_encode)\b/g;
	reserveds[reserveds.length] = /\b(ircg_ignore_add|ircg_ignore_del|ircg_invite|ircg_is_conn_alive|ircg_join|ircg_kick|ircg_lookup_format_messages|ircg_msg|ircg_nick|ircg_nickname_escape|ircg_nickname_unescape|ircg_notice|ircg_part|ircg_pconnect|ircg_register_format_messages|ircg_set_current|ircg_set_file|ircg_set_on_die|ircg_topic|ircg_who)\b/g;
	reserveds[reserveds.length] = /\b(ircg_whois|is_a|is_array|is_bool|is_callable|is_dir|is_executable|is_file|is_finite|is_float|is_infinite|is_link|is_long|is_nan|is_null|is_numeric|is_object|is_readable|is_resource|is_scalar)\b/g;
	reserveds[reserveds.length] = /\b(is_string|is_subclass_of|is_uploaded_file|is_writable|isset|java_last_exception_clear|java_last_exception_clear|java_last_exception_get|java_last_exception_get|jddayofweek|jdmonthname|jdtofrench|jdtogregorian|jdtojewish|jdtojulian|jdtounix|jewishtojd|join|jpeg2wbmp|juliantojd)\b/g;
	reserveds[reserveds.length] = /\b(key|krsort|ksort|lcg_value|ldap_8859_to_t61|ldap_add|ldap_bind|ldap_compare|ldap_connect|ldap_count_entries|ldap_delete|ldap_dn2ufn|ldap_err2str|ldap_errno|ldap_error|ldap_explode_dn|ldap_first_attribute|ldap_first_entry|ldap_first_reference|ldap_free_result)\b/g;
	reserveds[reserveds.length] = /\b(ldap_get_attributes|ldap_get_dn|ldap_get_entries|ldap_get_option|ldap_get_values|ldap_get_values_len|ldap_list|ldap_mod_add|ldap_mod_del|ldap_mod_replace|ldap_next_attribute|ldap_next_entry|ldap_next_reference|ldap_parse_reference|ldap_parse_result|ldap_read|ldap_rename|ldap_search|ldap_set_option|ldap_set_rebind_proc)\b/g;
	reserveds[reserveds.length] = /\b(ldap_sort|ldap_start_tls|ldap_t61_to_8859|ldap_unbind|leak|levenshtein|link|linkinfo|localeconv|localtime|log10|log1p|log|long2ip|lstat|ltrim|mail|max|mb_convert_case|mb_convert_encoding)\b/g;
	reserveds[reserveds.length] = /\b(mb_convert_kana|mb_convert_variables|mb_decode_mimeheader|mb_decode_numericentity|mb_detect_encoding|mb_detect_order|mb_encode_mimeheader|mb_encode_numericentity|mb_ereg|mb_ereg_match|mb_ereg_replace|mb_ereg_search|mb_ereg_search_getpos|mb_ereg_search_getregs|mb_ereg_search_init|mb_ereg_search_pos|mb_ereg_search_regs|mb_ereg_search_setpos|mb_eregi|mb_eregi_replace)\b/g;
	reserveds[reserveds.length] = /\b(mb_get_info|mb_http_input|mb_http_output|mb_internal_encoding|mb_language|mb_output_handler|mb_parse_str|mb_preferred_mime_name|mb_regex_encoding|mb_regex_set_options|mb_send_mail|mb_split|mb_strcut|mb_strimwidth|mb_strlen|mb_strpos|mb_strrpos|mb_strtolower|mb_strtoupper|mb_strwidth)\b/g;
	reserveds[reserveds.length] = /\b(mb_substitute_character|mb_substr|mb_substr_count|mcal_append_event|mcal_close|mcal_create_calendar|mcal_date_compare|mcal_date_valid|mcal_day_of_week|mcal_day_of_year|mcal_days_in_month|mcal_delete_calendar|mcal_delete_event|mcal_event_add_attribute|mcal_event_init|mcal_event_set_alarm|mcal_event_set_category|mcal_event_set_class|mcal_event_set_description|mcal_event_set_end)\b/g;
	reserveds[reserveds.length] = /\b(mcal_event_set_recur_daily|mcal_event_set_recur_monthly_mday|mcal_event_set_recur_monthly_wday|mcal_event_set_recur_none|mcal_event_set_recur_weekly|mcal_event_set_recur_yearly|mcal_event_set_start|mcal_event_set_title|mcal_expunge|mcal_fetch_current_stream_event|mcal_fetch_event|mcal_is_leap_year|mcal_list_alarms|mcal_list_events|mcal_next_recurrence|mcal_open|mcal_popen|mcal_rename_calendar|mcal_reopen|mcal_snooze)\b/g;
	reserveds[reserveds.length] = /\b(mcal_store_event|mcal_time_valid|mcal_week_of_year|mcrypt_cbc|mcrypt_cfb|mcrypt_create_iv|mcrypt_decrypt|mcrypt_ecb|mcrypt_enc_get_algorithms_name|mcrypt_enc_get_block_size|mcrypt_enc_get_iv_size|mcrypt_enc_get_key_size|mcrypt_enc_get_modes_name|mcrypt_enc_get_supported_key_sizes|mcrypt_enc_is_block_algorithm|mcrypt_enc_is_block_algorithm_mode|mcrypt_enc_is_block_mode|mcrypt_enc_self_test|mcrypt_encrypt|mcrypt_generic)\b/g;
	reserveds[reserveds.length] = /\b(mcrypt_generic_deinit|mcrypt_generic_end|mcrypt_generic_init|mcrypt_get_block_size|mcrypt_get_cipher_name|mcrypt_get_iv_size|mcrypt_get_key_size|mcrypt_list_algorithms|mcrypt_list_modes|mcrypt_module_close|mcrypt_module_get_algo_block_size|mcrypt_module_get_algo_key_size|mcrypt_module_get_supported_key_sizes|mcrypt_module_is_block_algorithm|mcrypt_module_is_block_algorithm_mode|mcrypt_module_is_block_mode|mcrypt_module_open|mcrypt_module_self_test|mcrypt_ofb|mcve_adduser)\b/g;
	reserveds[reserveds.length] = /\b(mcve_adduserarg|mcve_bt|mcve_checkstatus|mcve_chkpwd|mcve_chngpwd|mcve_completeauthorizations|mcve_connect|mcve_connectionerror|mcve_deleteresponse|mcve_deletetrans|mcve_deleteusersetup|mcve_deluser|mcve_destroyconn|mcve_destroyengine|mcve_disableuser|mcve_edituser|mcve_enableuser|mcve_force|mcve_getcell|mcve_getcellbynum)\b/g;
	reserveds[reserveds.length] = /\b(mcve_getcommadelimited|mcve_getheader|mcve_getuserarg|mcve_getuserparam|mcve_gft|mcve_gl|mcve_gut|mcve_initconn|mcve_initengine|mcve_initusersetup|mcve_iscommadelimited|mcve_liststats|mcve_listusers|mcve_maxconntimeout|mcve_monitor|mcve_numcolumns|mcve_numrows|mcve_override|mcve_parsecommadelimited|mcve_ping)\b/g;
	reserveds[reserveds.length] = /\b(mcve_preauth|mcve_preauthcompletion|mcve_qc|mcve_responseparam|mcve_return|mcve_returncode|mcve_returnstatus|mcve_sale|mcve_setblocking|mcve_setdropfile|mcve_setip|mcve_setssl|mcve_settimeout|mcve_settle|mcve_text_avs|mcve_text_code|mcve_text_cv|mcve_transactionauth|mcve_transactionavs|mcve_transactionbatch)\b/g;
	reserveds[reserveds.length] = /\b(mcve_transactioncv|mcve_transactionid|mcve_transactionitem|mcve_transactionssent|mcve_transactiontext|mcve_transinqueue|mcve_transnew|mcve_transparam|mcve_transsend|mcve_ub|mcve_uwait|mcve_verifyconnection|mcve_verifysslcert|mcve_void|md5|md5_file|mdecrypt_generic|metaphone|method_exists|mhash)\b/g;
	reserveds[reserveds.length] = /\b(mhash_count|mhash_get_block_size|mhash_get_hash_name|mhash_keygen_s2k|microtime|mime_content_type|min|mkdir|mktime|money_format|move_uploaded_file|msession_call|msession_connect|msession_count|msession_create|msession_destroy|msession_disconnect|msession_find|msession_get|msession_get_array)\b/g;
	reserveds[reserveds.length] = /\b(msession_get_data|msession_inc|msession_list|msession_listvar|msession_lock|msession_plugin|msession_randstr|msession_set|msession_set_array|msession_set_data|msession_stat|msession_timeout|msession_uniq|msession_unlock|msg_get_queue|msg_receive|msg_remove_queue|msg_send|msg_set_queue|msg_stat_queue)\b/g;
	reserveds[reserveds.length] = /\b(msql_affected_rows|msql_close|msql_connect|msql_create_db|msql_data_seek|msql_db_query|msql_drop_db|msql_error|msql_fetch_array|msql_fetch_field|msql_fetch_object|msql_fetch_row|msql_field_flags|msql_field_len|msql_field_name|msql_field_seek|msql_field_table|msql_field_type|msql_free_result|msql_list_dbs)\b/g;
	reserveds[reserveds.length] = /\b(msql_list_fields|msql_list_tables|msql_num_fields|msql_num_rows|msql_pconnect|msql_query|msql_result|msql_select_db|mssql_bind|mssql_close|mssql_connect|mssql_data_seek|mssql_execute|mssql_fetch_array|mssql_fetch_assoc|mssql_fetch_batch|mssql_fetch_field|mssql_fetch_object|mssql_fetch_row|mssql_field_length)\b/g;
	reserveds[reserveds.length] = /\b(mssql_field_name|mssql_field_seek|mssql_field_type|mssql_free_result|mssql_get_last_message|mssql_guid_string|mssql_init|mssql_min_error_severity|mssql_min_message_severity|mssql_next_result|mssql_num_fields|mssql_num_rows|mssql_pconnect|mssql_query|mssql_result|mssql_rows_affected|mssql_select_db|mt_getrandmax|mt_rand|mt_srand)\b/g;
	reserveds[reserveds.length] = /\b(mysql_affected_rows|mysql_client_encoding|mysql_close|mysql_connect|mysql_create_db|mysql_data_seek|mysql_db_query|mysql_drop_db|mysql_errno|mysql_error|mysql_escape_string|mysql_fetch_array|mysql_fetch_assoc|mysql_fetch_field|mysql_fetch_lengths|mysql_fetch_object|mysql_fetch_row|mysql_field_flags|mysql_field_len|mysql_field_name)\b/g;
	reserveds[reserveds.length] = /\b(mysql_field_seek|mysql_field_table|mysql_field_type|mysql_free_result|mysql_get_client_info|mysql_get_host_info|mysql_get_proto_info|mysql_get_server_info|mysql_info|mysql_insert_id|mysql_list_dbs|mysql_list_fields|mysql_list_processes|mysql_list_tables|mysql_num_fields|mysql_num_rows|mysql_pconnect|mysql_ping|mysql_query|mysql_real_escape_string)\b/g;
	reserveds[reserveds.length] = /\b(mysql_result|mysql_select_db|mysql_stat|mysql_thread_id|mysql_unbuffered_query|natcasesort|natsort|netsnmp_session_gen_auth_key|netsnmp_session_gen_sec_key|netsnmp_session_set_auth_protocol|netsnmp_session_set_sec_level|netsnmp_session_set_sec_name|netsnmp_session_set_sec_protocol|next|ngettext|nl2br|nl_langinfo|node_attributes|node_children|node_namespace)\b/g;
	reserveds[reserveds.length] = /\b(notes_body|notes_copy_db|notes_create_db|notes_create_note|notes_drop_db|notes_find_note|notes_header_info|notes_list_msgs|notes_mark_read|notes_mark_unread|notes_nav_create|notes_search|notes_unread|notes_version|number_format|ob_clean|ob_end_clean|ob_end_flush|ob_flush|ob_get_clean)\b/g;
	reserveds[reserveds.length] = /\b(ob_get_contents|ob_get_flush|ob_get_length|ob_get_level|ob_get_status|ob_gzhandler|ob_iconv_handler|ob_implicit_flush|ob_list_handlers|ob_start|ocibindbyname|ocicancel|ocicloselob|ocicollappend|ocicollassign|ocicollassignelem|ocicollgetelem|ocicollmax|ocicollsize|ocicolltrim)\b/g;
	reserveds[reserveds.length] = /\b(ocicolumnisnull|ocicolumnname|ocicolumnprecision|ocicolumnscale|ocicolumnsize|ocicolumntype|ocicolumntyperaw|ocicommit|ocidefinebyname|ocierror|ociexecute|ocifetch|ocifetchinto|ocifetchstatement|ocifreecollection|ocifreedesc|ocifreestatement|ociinternaldebug|ociloadlob|ocilogoff)\b/g;
	reserveds[reserveds.length] = /\b(ocilogon|ocinewcollection|ocinewcursor|ocinewdescriptor|ocinlogon|ocinumcols|ociparse|ocipasswordchange|ociplogon|ociresult|ocirollback|ocirowcount|ocisavelob|ocisavelobfile|ociserverversion|ocisetprefetch|ocistatementtype|ociwritelobtofile|ociwritetemporarylob|octdec)\b/g;
	reserveds[reserveds.length] = /\b(odbc_autocommit|odbc_binmode|odbc_close|odbc_close_all|odbc_columnprivileges|odbc_columns|odbc_commit|odbc_connect|odbc_cursor|odbc_data_source|odbc_error|odbc_errormsg|odbc_exec|odbc_execute|odbc_fetch_array|odbc_fetch_into|odbc_fetch_object|odbc_fetch_row|odbc_field_len|odbc_field_name)\b/g;
	reserveds[reserveds.length] = /\b(odbc_field_num|odbc_field_scale|odbc_field_type|odbc_foreignkeys|odbc_free_result|odbc_gettypeinfo|odbc_longreadlen|odbc_next_result|odbc_num_fields|odbc_num_rows|odbc_pconnect|odbc_prepare|odbc_primarykeys|odbc_procedurecolumns|odbc_procedures|odbc_result|odbc_result_all|odbc_rollback|odbc_setoption|odbc_specialcolumns)\b/g;
	reserveds[reserveds.length] = /\b(odbc_statistics|odbc_tableprivileges|odbc_tables|opendir|openlog|openssl_csr_export|openssl_csr_export_to_file|openssl_csr_new|openssl_csr_sign|openssl_error_string|openssl_open|openssl_pkcs7_decrypt|openssl_pkcs7_encrypt|openssl_pkcs7_sign|openssl_pkcs7_verify|openssl_pkey_export|openssl_pkey_export_to_file|openssl_pkey_free|openssl_pkey_get_private|openssl_pkey_get_public)\b/g;
	reserveds[reserveds.length] = /\b(openssl_pkey_new|openssl_private_decrypt|openssl_private_encrypt|openssl_public_decrypt|openssl_public_encrypt|openssl_seal|openssl_sign|openssl_verify|openssl_x509_check_private_key|openssl_x509_checkpurpose|openssl_x509_export|openssl_x509_export_to_file|openssl_x509_free|openssl_x509_parse|openssl_x509_read|ora_bind|ora_close|ora_columnname|ora_columnsize|ora_columntype)\b/g;
	reserveds[reserveds.length] = /\b(ora_commit|ora_commitoff|ora_commiton|ora_do|ora_error|ora_errorcode|ora_exec|ora_fetch|ora_fetch_into|ora_getcolumn|ora_logoff|ora_logon|ora_numcols|ora_numrows|ora_open|ora_parse|ora_plogon|ora_rollback|ord|output_add_rewrite_var)\b/g;
	reserveds[reserveds.length] = /\b(output_reset_rewrite_vars|overload|ovrimos_autocommit|ovrimos_close|ovrimos_commit|ovrimos_connect|ovrimos_cursor|ovrimos_exec|ovrimos_execute|ovrimos_fetch_into|ovrimos_fetch_row|ovrimos_field_len|ovrimos_field_name|ovrimos_field_num|ovrimos_field_type|ovrimos_free_result|ovrimos_longreadlen|ovrimos_num_fields|ovrimos_num_rows|ovrimos_prepare)\b/g;
	reserveds[reserveds.length] = /\b(ovrimos_result|ovrimos_result_all|ovrimos_rollback|ovrimos_setoption|pack|parse_ini_file|parse_str|parse_url|passthru|pathinfo|pclose|pcntl_alarm|pcntl_exec|pcntl_fork|pcntl_signal|pcntl_waitpid|pcntl_wexitstatus|pcntl_wifexited|pcntl_wifsignaled|pcntl_wifstopped)\b/g;
	reserveds[reserveds.length] = /\b(pcntl_wstopsig|pcntl_wtermsig|pdf_add_annotation|pdf_add_bookmark|pdf_add_launchlink|pdf_add_locallink|pdf_add_note|pdf_add_pdflink|pdf_add_thumbnail|pdf_add_weblink|pdf_arc|pdf_arcn|pdf_attach_file|pdf_begin_page|pdf_begin_pattern|pdf_begin_template|pdf_circle|pdf_clip|pdf_close|pdf_close_image)\b/g;
	reserveds[reserveds.length] = /\b(pdf_close_pdi|pdf_close_pdi_page|pdf_closepath|pdf_closepath_fill_stroke|pdf_closepath_stroke|pdf_concat|pdf_continue_text|pdf_curveto|pdf_delete|pdf_end_page|pdf_end_pattern|pdf_end_template|pdf_endpath|pdf_fill|pdf_fill_stroke|pdf_findfont|pdf_get_buffer|pdf_get_font|pdf_get_fontname|pdf_get_fontsize)\b/g;
	reserveds[reserveds.length] = /\b(pdf_get_image_height|pdf_get_image_width|pdf_get_majorversion|pdf_get_minorversion|pdf_get_parameter|pdf_get_pdi_parameter|pdf_get_pdi_value|pdf_get_value|pdf_initgraphics|pdf_lineto|pdf_makespotcolor|pdf_moveto|pdf_new|pdf_open|pdf_open_ccitt|pdf_open_file|pdf_open_gif|pdf_open_image|pdf_open_image_file|pdf_open_jpeg)\b/g;
	reserveds[reserveds.length] = /\b(pdf_open_memory_image|pdf_open_pdi|pdf_open_pdi_page|pdf_open_png|pdf_open_tiff|pdf_place_image|pdf_place_pdi_page|pdf_rect|pdf_restore|pdf_rotate|pdf_save|pdf_scale|pdf_set_border_color|pdf_set_border_dash|pdf_set_border_style|pdf_set_char_spacing|pdf_set_duration|pdf_set_font|pdf_set_horiz_scaling|pdf_set_info)\b/g;
	reserveds[reserveds.length] = /\b(pdf_set_info_author|pdf_set_info_creator|pdf_set_info_x_keywords|pdf_set_info_subject|pdf_set_info_title|pdf_set_leading|pdf_set_parameter|pdf_set_text_pos|pdf_set_text_rendering|pdf_set_text_rise|pdf_set_transition|pdf_set_value|pdf_set_word_spacing|pdf_setcolor|pdf_setdash|pdf_setflat|pdf_setfont|pdf_setgray|pdf_setgray_fill|pdf_setgray_stroke)\b/g;
	reserveds[reserveds.length] = /\b(pdf_setlinecap|pdf_setlinejoin|pdf_setlinewidth|pdf_setmatrix|pdf_setmiterlimit|pdf_setpolydash|pdf_setrgbcolor|pdf_setrgbcolor_fill|pdf_setrgbcolor_stroke|pdf_show|pdf_show_boxed|pdf_show_xy|pdf_skew|pdf_stringwidth|pdf_stroke|pdf_translate|pfpro_cleanup|pfpro_init|pfpro_process|pfpro_process_raw)\b/g;
	reserveds[reserveds.length] = /\b(pfpro_version|pfsockopen|pg_affected_rows|pg_cancel_query|pg_client_encoding|pg_close|pg_connect|pg_connection_busy|pg_connection_reset|pg_connection_status|pg_convert|pg_copy_from|pg_copy_to|pg_dbname|pg_delete|pg_end_copy|pg_escape_bytea|pg_escape_string|pg_fetch_all|pg_fetch_array)\b/g;
	reserveds[reserveds.length] = /\b(pg_fetch_assoc|pg_fetch_object|pg_fetch_result|pg_fetch_row|pg_field_is_null|pg_field_name|pg_field_num|pg_field_prtlen|pg_field_size|pg_field_type|pg_free_result|pg_get_notify|pg_get_pid|pg_get_result|pg_host|pg_insert|pg_last_error|pg_last_notice|pg_last_oid|pg_lo_close)\b/g;
	reserveds[reserveds.length] = /\b(pg_lo_create|pg_lo_export|pg_lo_import|pg_lo_open|pg_lo_read|pg_lo_read_all|pg_lo_seek|pg_lo_tell|pg_lo_unlink|pg_lo_write|pg_meta_data|pg_num_fields|pg_num_rows|pg_options|pg_pconnect|pg_ping|pg_port|pg_put_line|pg_query|pg_result_error)\b/g;
	reserveds[reserveds.length] = /\b(pg_result_seek|pg_result_status|pg_select|pg_send_query|pg_set_client_encoding|pg_trace|pg_tty|pg_unescape_bytea|pg_untrace|pg_update|php_egg_logo_guid|php_ini_scanned_files|php_logo_guid|php_sapi_name|php_snmpv3|php_uname|phpcredits|phpinfo|phpversion|pi)\b/g;
	reserveds[reserveds.length] = /\b(png2wbmp|popen|posix_ctermid|posix_get_last_error|posix_getcwd|posix_getegid|posix_geteuid|posix_getgid|posix_getgrgid|posix_getgrnam|posix_getgroups|posix_getlogin|posix_getpgid|posix_getpgrp|posix_getpid|posix_getppid|posix_getpwnam|posix_getpwuid|posix_getrlimit|posix_getsid)\b/g;
	reserveds[reserveds.length] = /\b(posix_getuid|posix_isatty|posix_kill|posix_mkfifo|posix_setegid|posix_seteuid|posix_setgid|posix_setpgid|posix_setsid|posix_setuid|posix_strerror|posix_times|posix_ttyname|posix_uname|pow|preg_grep|preg_match|preg_match_all|preg_quote|preg_replace)\b/g;
	reserveds[reserveds.length] = /\b(preg_replace_callback|preg_split|prev|print|print_r|printf|proc_close|proc_open|pspell_add_to_personal|pspell_add_to_session|pspell_check|pspell_clear_session|pspell_config_create|pspell_config_ignore|pspell_config_mode|pspell_config_personal|pspell_config_repl|pspell_config_runtogether|pspell_config_save_repl|pspell_new)\b/g;
	reserveds[reserveds.length] = /\b(pspell_new_config|pspell_new_personal|pspell_save_wordlist|pspell_store_replacement|pspell_suggest|putenv|qdom_error|qdom_tree|quoted_printable_decode|quotemeta|rad2deg|rand|range|rawurldecode|rawurlencode|readdir|readfile|readgzfile|readline|readline_add_history)\b/g;
	reserveds[reserveds.length] = /\b(readline_clear_history|readline_completion_function|readline_info|readline_list_history|readline_read_history|readline_write_history|readlink|realpath|recode_file|recode_string|register_shutdown_function|register_tick_function|rename|reset|restore_error_handler|restore_include_path|rewind|rewinddir|rmdir|round)\b/g;
	reserveds[reserveds.length] = /\b(rsort|rtrim|sem_acquire|sem_get|sem_release|sem_remove|serialize|session_cache_expire|session_cache_limiter|session_decode|session_destroy|session_encode|session_get_cookie_params|session_id|session_is_registered|session_module_name|session_name|session_register|session_save_path|session_set_cookie_params)\b/g;
	reserveds[reserveds.length] = /\b(session_set_save_handler|session_start|session_unregister|session_unset|session_write_close|set_error_handler|set_include_path|set_magic_quotes_runtime|set_socket_blocking|set_time_limit|setcookie|setlocale|settype|sha1|sha1_file|shell_exec|shm_attach|shm_detach|shm_get_var|shm_put_var)\b/g;
	reserveds[reserveds.length] = /\b(shm_remove|shm_remove_var|shmop_close|shmop_delete|shmop_open|shmop_read|shmop_size|shmop_write|shuffle|similar_text|sin|sinh|sleep|smfi_addheader|smfi_addrcpt|smfi_chgheader|smfi_delrcpt|smfi_getsymval|smfi_replacebody|smfi_setflags)\b/g;
	reserveds[reserveds.length] = /\b(smfi_setreply|smfi_settimeout|snmp3_get|snmp3_real_walk|snmp3_set|snmp3_walk|snmp_get_quick_print|snmp_set_enum_print|snmp_set_oid_numeric_print|snmp_set_quick_print|snmpget|snmprealwalk|snmpset|snmpwalk|socket_accept|socket_bind|socket_clear_error|socket_close|socket_connect|socket_create)\b/g;
	reserveds[reserveds.length] = /\b(socket_create_listen|socket_create_pair|socket_get_option|socket_getpeername|socket_getsockname|socket_iovec_add|socket_iovec_alloc|socket_iovec_delete|socket_iovec_fetch|socket_iovec_free|socket_iovec_set|socket_last_error|socket_listen|socket_read|socket_readv|socket_recv|socket_recvfrom|socket_recvmsg|socket_select|socket_send)\b/g;
	reserveds[reserveds.length] = /\b(socket_sendmsg|socket_sendto|socket_set_block|socket_set_nonblock|socket_set_option|socket_shutdown|socket_strerror|socket_write|socket_writev|sort|soundex|split|spliti|sprintf|sql_regcase|sqrt|srand|sscanf|stat|str_pad)\b/g;
	reserveds[reserveds.length] = /\b(str_repeat|str_replace|str_rot13|str_shuffle|str_word_count|strcasecmp|strchr|strcmp|strcoll|strcspn|stream_context_create|stream_context_get_options|stream_context_set_option|stream_context_set_params|stream_filter_append|stream_filter_prepend|stream_get_meta_data|stream_get_wrappers|stream_register_filter|stream_register_wrapper)\b/g;
	reserveds[reserveds.length] = /\b(stream_select|stream_set_blocking|stream_set_timeout|stream_set_write_buffer|strftime|strip_tags|stripcslashes|stripslashes|stristr|strlen|strnatcasecmp|strnatcmp|strncasecmp|strncmp|strpos|strrchr|strrev|strrpos|strspn|strstr)\b/g;
	reserveds[reserveds.length] = /\b(strtok|strtolower|strtotime|strtoupper|strtr|strval|substr|substr_count|substr_replace|sybase_affected_rows|sybase_affected_rows|sybase_close|sybase_close|sybase_connect|sybase_connect|sybase_data_seek|sybase_data_seek|sybase_deadlock_retry_count|sybase_fetch_array|sybase_fetch_array)\b/g;
	reserveds[reserveds.length] = /\b(sybase_fetch_assoc|sybase_fetch_field|sybase_fetch_field|sybase_fetch_object|sybase_fetch_object|sybase_fetch_row|sybase_fetch_row|sybase_field_seek|sybase_field_seek|sybase_free_result|sybase_free_result|sybase_get_last_message|sybase_get_last_message|sybase_min_client_severity|sybase_min_error_severity|sybase_min_message_severity|sybase_min_server_severity|sybase_num_fields|sybase_num_fields|sybase_num_rows)\b/g;
	reserveds[reserveds.length] = /\b(sybase_num_rows|sybase_pconnect|sybase_pconnect|sybase_query|sybase_query|sybase_result|sybase_result|sybase_select_db|sybase_select_db|sybase_set_message_handler|sybase_unbuffered_query|symlink|syslog|system|tan|tanh|tempnam|textdomain|time|tmpfile)\b/g;
	reserveds[reserveds.length] = /\b(token_get_all|token_name|touch|trigger_error|trim|uasort|ucfirst|ucwords|uksort|umask|uniqid|unixtojd|unlink|unpack|unregister_tick_function|unserialize|urldecode|urlencode|usleep|usort)\b/g;
	reserveds[reserveds.length] = /\b(utf8_decode|utf8_encode|var_dump|var_export|version_compare|virtual|virtual|vprintf|vsprintf|wddx_add_vars|wddx_deserialize|wddx_packet_end|wddx_packet_start|wddx_serialize_value|wddx_serialize_vars|wordwrap|xml_error_string|xml_get_current_byte_index|xml_get_current_column_number|xml_get_current_line_number)\b/g;
	reserveds[reserveds.length] = /\b(xml_get_error_code|xml_parse|xml_parse_into_struct|xml_parser_create|xml_parser_create_ns|xml_parser_free|xml_parser_get_option|xml_parser_set_option|xml_set_character_data_handler|xml_set_default_handler|xml_set_element_handler|xml_set_end_namespace_decl_handler|xml_set_external_entity_ref_handler|xml_set_notation_decl_handler|xml_set_object|xml_set_processing_instruction_handler|xml_set_start_namespace_decl_handler|xml_set_unparsed_entity_decl_handler|xmldoc|xmldocfile)\b/g;
	reserveds[reserveds.length] = /\b(xmlrpc_decode|xmlrpc_decode_request|xmlrpc_encode|xmlrpc_encode_request|xmlrpc_get_type|xmlrpc_is_fault|xmlrpc_parse_method_descriptions|xmlrpc_server_add_introspection_data|xmlrpc_server_call_method|xmlrpc_server_create|xmlrpc_server_destroy|xmlrpc_server_register_introspection_callback|xmlrpc_server_register_method|xmlrpc_set_type|xpath_eval|xpath_eval_expression|xpath_init|xpath_new_context|xpath_register_ns|xpath_register_ns_auto)\b/g;
	reserveds[reserveds.length] = /\b(xptr_eval|xptr_new_context|xslt_backend_info|xslt_backend_name|xslt_backend_version|xslt_create|xslt_errno|xslt_error|xslt_free|xslt_getopt|xslt_process|xslt_set_base|xslt_set_encoding|xslt_set_error_handler|xslt_set_log|xslt_set_object|xslt_set_sax_handlers|xslt_set_scheme_handlers|xslt_setopt|yp_all)\b/g;
	reserveds[reserveds.length] = /\b(yp_cat|yp_err_string|yp_errno|yp_first|yp_get_default_domain|yp_master|yp_match|yp_next|yp_order|zend_logo_guid|zend_version|zip_close|zip_entry_close|zip_entry_compressedsize|zip_entry_compressionmethod|zip_entry_filesize|zip_entry_name|zip_entry_open|zip_entry_read|zip_open)\b/g;
	reserveds[reserveds.length] = /\b(zip_read|array|ascii2ebcdic|atan|checkdnsrr|chop|com_get|com_propput|com_propset|com_set|cpdf_set leading|debugger_off|debugger_on|define_syslog_varaibles|die|diskfreespace|dl|doubleval|ebcdic2ascii|empty)\b/g;
	reserveds[reserveds.length] = /\b(eval|exit|fputs|ftp_quit|get_required_files|getmxrr|gmp_divexact|gmp_sqrtrm|gzclose|gzeof|gzgetc|gzgets|gzgetss|gzpassthru|gzputs|gzread|gzrewind|gzseek|gztell|gzwrite)\b/g;
	reserveds[reserveds.length] = /\b(imap_header|imap_header_decode|imap_listmailbox|imap_listsubscribed|imap_scanmailbox|ini_alter|is_double|is_int|is_integer|is_real|ldap_close|ldap_modify|levenshtein|list|mcrypt_cbc|mcrypt_cfb|mcrypt_ecb|mcrypt_get_block_size|mcrypt_get_cipher_name|mcrypt_get_iv_size)\b/g;
	reserveds[reserveds.length] = /\b(mcrypt_get_key_size|mcrypt_module_enc_get_algo_supported_key_sizes|mcrypt_ofb|mysql_change_user|mysql_db_name|mysql_tablename|OCIBindByName|OCIColumnIsNULL|OCIColumnName|OCIColumnSize|OCIColumnType|OCICommit|OCIDefineByName|OCIError|OCIExecute|OCIFetch|OCIFetchInto|OCIFetchStatement|OCIFreeCursor|OCIFreeDesc)\b/g;
	reserveds[reserveds.length] = /\b(OCIFreeStatement|OCIInternalDebug|OCILogOff|OCILogon|OCINewCursor|OCINewDescriptor|OCINLogon|OCINumCols|OCIParse|OCIPLogon|OCIResult|OCIRollback|OCIRowCount|OCIServerVersion|OCIStatementType|odbc_do|odbc_field_precision|openssl_free_key|openssl_get_privatekey|openssl_get_publickey)\b/g;
	reserveds[reserveds.length] = /\b(Ora_ColumnName|Ora_ColumnSize|Ora_ColumnType|Ora_Error|Ora_ErrorCode|pdf_add_outline|pdf_execute_image|pdf_put_image|pdf_set_text_matrix|pos|posix_getcwd|read_exif_data|recode_string|set_file_buffer|show_source|sizeof|snmpwalkoid|socket_get_status|socket_set_blocking|socket_set_timeout)\b/g;
	reserveds[reserveds.length] = /\b(split|unset|user_error)\b/g;


	x_keywords = /\b(function|as|break|case|class|continue|declare|default|do|else|elseif|endif|endfor|endforeach|endwhile|endswitch|false|FALSE|for|foreach|global|if|include|include_once|new|NULL|parent|require|require_once|return|switch|static|true|TRUE|var|while|array|bool|boolean|int|integer|object|real|string|__LINE__|__FILE__|__FUNCTION__|__CLASS__|EXTR_OVERWRITE|EXTR_SKIP|EXTR_PREFIX_SAME|EXTR_PREFIX_ALL|EXTR_PREFIX_INVALID|EXTR_PREFIX_IF_EXISTS|EXTR_IF_EXISTS|SORT_ASC|SORT_DESC|SORT_REGULAR|SORT_NUMERIC|SORT_STRING|CASE_LOWER|CASE_UPPER|COUNT_NORMAL|COUNT_RECURSIVE|ASSERT_ACTIVE|ASSERT_CALLBACK|ASSERT_BAIL|ASSERT_WARNING|ASSERT_QUIET_EVAL|CONNECTION_ABORTED|CONNECTION_NORMAL|CONNECTION_TIMEOUT|INI_USER|INI_PERDIR|INI_SYSTEM|INI_ALL|M_E|M_LOG2E|M_LOG10E|M_LN2|M_LN10|M_PI|M_PI_2|M_PI_4|M_1_PI|M_2_PI|M_2_SQRTPI|M_SQRT2|M_SQRT1_2|CRYPT_SALT_LENGTH|CRYPT_STD_DES|CRYPT_EXT_DES|CRYPT_MD5|CRYPT_BLOWFISH|DIRECTORY_SEPARATOR|SEEK_SET|SEEK_CUR|SEEK_END|LOCK_SH|LOCK_EX|LOCK_UN|LOCK_NB|HTML_SPECIALCHARS|HTML_ENTITIES|ENT_COMPAT|ENT_QUOTES|ENT_NOQUOTES|INFO_GENERAL|INFO_CREDITS|INFO_CONFIGURATION|INFO_MODULES|INFO_ENVIRONMENT|INFO_VARIABLES|INFO_LICENSE|INFO_ALL|CREDITS_GROUP|CREDITS_GENERAL|CREDITS_SAPI|CREDITS_MODULES|CREDITS_DOCS|CREDITS_FULLPAGE|CREDITS_QA|CREDITS_ALL|STR_PAD_LEFT|STR_PAD_RIGHT|STR_PAD_BOTH|PATHINFO_DIRNAME|PATHINFO_BASENAME|PATHINFO_EXTENSION|CHAR_MAX|LC_CTYPE|LC_NUMERIC|LC_TIME|LC_COLLATE|LC_MONETARY|LC_ALL|LC_MESSAGES|ABDAY_1|ABDAY_2|ABDAY_3|ABDAY_4|ABDAY_5|ABDAY_6|ABDAY_7|DAY_1|DAY_2|DAY_3|DAY_4|DAY_5|DAY_6|DAY_7|ABMON_1|ABMON_2|ABMON_3|ABMON_4|ABMON_5|ABMON_6|ABMON_7|ABMON_8|ABMON_9|ABMON_10|ABMON_11|ABMON_12|MON_1|MON_2|MON_3|MON_4|MON_5|MON_6|MON_7|MON_8|MON_9|MON_10|MON_11|MON_12|AM_STR|PM_STR|D_T_FMT|D_FMT|T_FMT|T_FMT_AMPM|ERA|ERA_YEAR|ERA_D_T_FMT|ERA_D_FMT|ERA_T_FMT|ALT_DIGITS|INT_CURR_SYMBOL|CURRENCY_SYMBOL|CRNCYSTR|MON_DECIMAL_POINT|MON_THOUSANDS_SEP|MON_GROUPING|POSITIVE_SIGN|NEGATIVE_SIGN|INT_FRAC_DIGITS|FRAC_DIGITS|P_CS_PRECEDES|P_SEP_BY_SPACE|N_CS_PRECEDES|N_SEP_BY_SPACE|P_SIGN_POSN|N_SIGN_POSN|DECIMAL_POINT|RADIXCHAR|THOUSANDS_SEP|THOUSEP|GROUPING|YESEXPR|NOEXPR|YESSTR|NOSTR|CODESET|LOG_EMERG|LOG_ALERT|LOG_CRIT|LOG_ERR|LOG_WARNING|LOG_NOTICE|LOG_INFO|LOG_DEBUG|LOG_KERN|LOG_USER|LOG_MAIL|LOG_DAEMON|LOG_AUTH|LOG_SYSLOG|LOG_LPR|LOG_NEWS|LOG_UUCP|LOG_CRON|LOG_AUTHPRIV|LOG_LOCAL0|LOG_LOCAL1|LOG_LOCAL2|LOG_LOCAL3|LOG_LOCAL4|LOG_LOCAL5|LOG_LOCAL6|LOG_LOCAL7|LOG_PID|LOG_CONS|LOG_ODELAY|LOG_NDELAY|LOG_NOWAIT|LOG_PERROR|PHP_VERSION|PHP_OS|DEFAULT_INCLUDE_PATH|PEAR_INSTALL_DIR|PEAR_EXTENSION_DIR|PHP_EXTENSION_DIR|PHP_BINDIR|PHP_LIBDIR|PHP_DATADIR|PHP_SYSCONFDIR|PHP_LOCALSTATEDIR|PHP_CONFIG_FILE_PATH|PHP_OUTPUT_HANDLER_START|PHP_OUTPUT_HANDLER_CONT|PHP_OUTPUT_HANDLER_END|E_ERROR|E_WARNING|E_PARSE|E_NOTICE|E_CORE_ERROR|E_CORE_WARNING|E_COMPILE_ERROR|E_COMPILE_WARNING|E_USER_ERROR|E_USER_WARNING|E_USER_NOTICE|E_ALL)\b/g;

	rvars = /\$\b(argc|argv|DOCUMENT_ROOT|GATEWAY_INTERFACE|GLOBALS|HTTP_ACCEPT|HTTP_ACCEPT_CHARSET|HTTP_ACCEPT_ENCODING|HTTP_ACCEPT_LANGUAGE|HTTP_CONNECTION|HTTP_COOKIE_VARS|HTTP_GET_VARS|HTTP_ENV_VARS|HTTP_HOST|HTTP_POST_FILES|HTTP_POST_VARS|HTTP_REFERER|HTTP_SERVER_VARS|HTTP_SESSION_VARS|HTTP_USER_AGENT|PATH_TRANSLATED|PHP_SELF|QUERY_STRING|REQUEST_METHOD|REMOTE_ADDR|REMOTE_PORT|REQUEST_URI|SCRIPT_FILENAME|SCRIPT_NAME|SERVER_ADMIN|SERVER_NAME|SERVER_PORT|SERVER_PROTOCOL|SERVER_SIGNATURE|SERVER_SOFTWARE|this|_COOKIE|_ENV|_FILES|_GET|_POST|_REQUEST|_SERVER|_SESSION)\b/g;

	for(var i=0; i<el.length; i++) {
		var retorno = '';
		var idcount = 0;
		var foundAt = 0;
		
		var tmp = removeTagP(el[i].innerHTML.replace(/[\r\n]/g,""));
		retorno = formatCode (tmp.replace(/<br(.*?)>/gi,"|br|"),"|br|", 0);
		
		for(var xy=0; xy<reserveds.length; xy++) {
			retorno = retorno.replace(reserveds[xy],"<font color="+colors.reserved+">$1</font>");
		}
		retorno = retorno.replace(/(&lt;\?php|&lt;\?|\?&gt;)/gi, "<font color=red><b>$1</b></font>");
		retorno = retorno.replace(x_keywords,"<font color="+colors.keyword+">$1</font>");
		retorno = retorno.replace(rvars,"<font color="+colors.reserved+">$$$1</font>");
		retorno = retorno.replace(/ ([0-9]+)(;|\|br\| )/g," <font color="+colors.number+">$1</font>$2");
		
		var multi_comment = /\/\*(.*?)\*\//g;
		var single_comment = /(&nbsp;|\|br\|)\/\/(.*?)\|br\|/g;
		retorno = formatString(retorno, colors.string, '|br|');
		
		while((a = multi_comment.exec(retorno)) != null) {
			var nstr = a[1].replace(/<(.+?)>/g,'');
			retorno = retorno.replace(a[0], "/*"+nstr+"*/");
		}
		retorno = retorno.replace(multi_comment,"<font color="+colors.comment+">/*$1*/</font>");

		while((a = single_comment.exec(retorno)) != null) {
			var nstr = a[2].replace(/<(.+?)>/g,'');
			retorno = retorno.replace(a[0], a[1]+"//"+nstr+"|br|");
		}
		retorno = retorno.replace(single_comment,"$1<font color="+colors.comment+">//$2</font>|br|");
		retorno = retorno.replace(/(\(|\]|\[|\{|\}|\))/g,"<b>$1</b>");
		el[i].innerHTML = convertToList( retorno );
	}
}

/***********************************
Formatar ASP (VB)
***********************************/
function FormatASP_VB(el) {
	
	var el = el == undefined ? getCodes() : getDivsByTitle(el);
	var ident = "&nbsp;&nbsp;&nbsp;";
	var colors = new Object();
	colors.keyword = '#0000FF';
	colors.string = '#006600';
	colors.comment = '#999999';
	colors.reserved = '#990099';
	colors.number = '#FF0000';
	colors.aspas	= "#000066"
	colors.vbscript	= "#009999"
	
	x_keywords = /\b(sub|function|And|As|ByRef|Call|Case|Class|Const|Dim|Do|Each|Else|ElseIf|Empty|End|Eqv|Erase|Execute|ExecuteGlobal|Exit|Explicit|False|For|Get|Goto|If|Imp|In|Is|Let|Loop|Mod|Next|Not|Nothing|Null|On|Option|Or|Private|Public|Randomize|ReDim|Rem|Resume|Select|Set|Stop|Then|To|True|Until|Wend|While|With|Xor)\b/gi;

	reserveds = /\b(Abandon|Abs|AbsolutePage|AbsolutePosition|ActiveConnection|ActualSize|AddHeader|AddNew|AppendChunk|AppendToLog|Application|Application_OnEnd|Application_OnStart|Array|Asc|Atn|Attributes|BeginTrans|BinaryRead|BinaryWrite|BOF|Bookmark|Boolean|Buffer|CacheControl|CacheSize|Cancel|CancelBatch|CancelUpdate|CBool|CByte|CCur|CDate|CDbl|Charset|Chr|CInt|Clear|ClientCertificate|CLng|Clone|Close|CodePage|Command|CommandText|CommandTimeout|CommandType|Connection|ConnectionString|ConnectionTimeout|Contents|ContentType|Cookies|Cos|Count|CreateParameter|CreateObject|CSng|CStr|CursorLocation|CursorType|Date|DateAdd|DateDiff|DatePart|DateSerial|DateValue|Day|DefaultDatabase|DefinedSize|Delete|Description|Dictionary|Direction|EditMode|EOF|Err|Error|Errors|Eval|Execute|Exp|Expires|ExpiresAbsolute|Field|Fields|File|FileSystem|Filter|Fix|Flush|Form|FormatCurrency|FormatDateTime|FormatNumber|FormatPercent|GetChunk|GetLocale|GetObject|GetRef|HelpContext|HelpFile|Hex|Hour|HTMLEncode|Index|InputBox|InStr|InStrRev|Int|Integer|IsArray|IsClientConnected|IsDate|IsEmpty|IsNull|IsNumeric|IsObject|IsolationLevel|Item|Join|LBound|LCase|LCID|Left|Len|LoadPicture|Lock|LockType|Log|LTrim|MapPath|MarshalOptions|Match|Mid|Minute|Mode|Month|MonthName|Move|MoveFirst|MoveLast|MoveNext|MovePrevious|MsgBox|Name|NativeError|Now|Number|NumericScale|NumericScale|ObjectContext|Oct|OnTransactionAbort|OnTransactionCommit|Open|OpenSchema|OriginalValue|PageCount|PageSize|Parameter|Parameters|Pics|Precision|Prepared|Properties|Property|PropertyGet|PropertyLet|PropertySet|Provider|QueryString|Raise|RecordCount|Recordset|Redirect|RegExp|Replace|Requery|Request|Response|Resync|RGB|Right|Rnd|RollbackTrans|Round|RTrim|Save|ScriptEngine|ScriptEngineBuildVersion|ScriptEngineMajorVersion|ScriptEngineMinorVersion|ScriptTimeout|Second|Seek|Server|ServerVariables|Session|Session_OnEnd|Session_OnStart|SessionID|SetAbort|SetComplete|SetLocale|Sgn|Sin|Size|Sort|Source|Space|Split|SQLState|Sqr|State|StaticObjects|Status|StrComp|String|StrReverse|Supports|Tan|Test|Time|Timeout|Timer|TimeSerial|TimeValue|TotalBytes|Trim|Type|TypeName|UBound|UCase|UnderlyingValue|Unlock|Update|UpdateBatch|URLEncode|URLPathEncode|Value|VarType|Version|Weekday|WeekdayName|Write|Year)\b/gi;
	// Adapatação 
	vb = /\b(vbArray|vbBinaryCompare|vbBlack|vbBoolean|vbBlue|vbByte|vbCr|vbCrLf|vbCurrency|vbCyan|vbDataObject|vbDate|vbDecimal|vbEmpty|vbError|vbFalse|vbFirstJan1|vbFirstFourDays|vbFirstFullWeek|vbFormFeed|vbFriday|vbGeneralDate|vbGreen|vbInteger|vbLf|vbLong|vbLongDate|vbLongTime|vbMagenta|vbMonday|vbNewLine|vbNull|vbNullChar|vbNullString|vbObject|vbObjectError|vbRed|vbSaturday|vbShortDate|vbShortTime|vbSingle|vbString|vbSunday|vbTab|vbTextCompare|vbThursday|vbTrue|vbTuesday|vbUseDefault|vbUseSystem|vbUseSystemDayOfWeek|vbVariant|vbVerticalTab|vbWednesday|vbWhite|vbYellow)\b/gi;
	
	for(var i=0; i<el.length; i++) {
		var retorno = '';
		var idcount = 0;
		var foundAt = 0;
		
		var tmp = removeTagP(el[i].innerHTML.replace(/[\r\n]/g,""));
		var linhas = tmp.replace(/<br>/g,"<BR>").split("<BR>");
		
		for(var j=0; j<linhas.length; j++) {
			linhas[j] = trim(linhas[j]);
			if(_vbIniBlockTest(linhas[j])) {
				foundAt = j;
				idcount++;
			}
			if(_vbEndBlockTest(linhas[j])) {
				foundAt = j;
				idcount--;
			}
			if(foundAt != j) {
				var s = '';
				for(var k=0; k<idcount; k++) s += ident;
				linhas[j] = s + linhas[j];
			} else if(foundAt == j && _vbEndBlockTest(linhas[j])) {
				var s = '';
				for(var k=0; k<idcount; k++) s += ident;
				linhas[j] = s + linhas[j];
			} else {
				var s = '';
				for(var k=0; k<idcount-1; k++) s += ident;
				linhas[j] = s + linhas[j];
			}
			retorno += linhas[j] + '|br|';
		}
		
		retorno = retorno.replace(reserveds,"<font color="+colors.reserved+">$1</font>");
		retorno = retorno.replace(x_keywords,"<font color="+colors.keyword+">$1</font>");
		retorno = retorno.replace(vb,"<font color="+colors.vbscript+">$1</font>");
		retorno = retorno.replace(/(&nbsp;|\|br\|)'(.*?)\|br\|/g,"<font color="+colors.comment+">'$2|br|</font>");
		//retorno = retorno.replace(/ ([0-9])(;|\|br\| )/g," <font color="+colors[4]+">$1</font>$2");
		
		var string_r = /"(.*?)"/g;
		
		while((a = string_r.exec(retorno)) != null) {
			var nstr = a[1].replace(/<(.+?)>/g,'');
			retorno = retorno.replace(a[0], "\""+nstr+"\"");
		}
		retorno = retorno.replace(string_r,"<font color="+colors.string+">\"$1\"</font>");
		retorno = retorno.replace(/(\(|\]|\[|\{|\}|\))/g,"<span style='color:#000099'>$1</span>");
		el[i].innerHTML = convertToList( retorno );
	}
}
/**********************************
Formatar SQL
**********************************/
function FormatSQL(el) {
	var el = el == undefined ? getCodes() : getDivsByTitle(el);
	var colors = new Object();
	colors.property = '#990099';
	colors.command  = '#0000FF';
	colors.string = '#006600';
	colors.comment = '#999999';

	var commands = /\b(into|values|default|set|database|ROLLBACK|table|create|drop|modify|alter|key|select|insert|update|delete|from|inner|cross|left|right|join|add|sum|count|avg|where|order|by|and|or|concat)\b/gi;
	var properties = /\b(index|unique|float|restrict|current_date|current_time|current_timestamp|int|not|null|auto_increment|longblob|mediumblob|longtext|mediumtext|varchar|year|blob|references|on|type|innodb|myisam|row_format|date|datetime|time|timestamp|primary|foreign|integer|int4|int8|long|text|char|bool|boolean|serial)\b/gi;
	// comentários
	
	for(var i=0; i<el.length; i++) {
		var x = el[i];
		var str = removeTagP(x.innerHTML);
		str = str.replace(/<br(.*?)>/gi,"|br|");
		str = str.replace(commands, '<font color='+colors.command+'>$1</font>');
		str = str.replace(properties, '<font color='+colors.property+'>$1</font>');
		
		var cc = /--(.*?)\|br\|/gi;
		while((a = cc.exec(str)) != null) {
			var nstr = a[1].replace(/<(.*?)>/g,"");
			str = str.replace(a[0], "--"+nstr+"|br|");
		}
		str = str.replace(cc,"<font color="+colors.comment+">--$1|br|</font>");
		
		var teste = /'(.*?)'/g;
		var y = 0;
		while((a = teste.exec(str)) != null) {
			var nstr = a[1].replace(/<(.*?)>/g,'');
			str = str.replace(a[0], "'"+nstr+"'");
		}
		str = str.replace(teste,"<font color="+colors.string+">'$1'</font>");
		//alert(str.replace(/\|br\|/g,"<br />"));
		str = str.replace(/(\(|\)|\{|\})/g,"<b>$1</b>");
		x.innerHTML = convertToList( str );
	}
	
	
}
/***********************************
Formatar CF
***********************************/
function FormatCF(el) {
	var el = el == undefined ? getCodes() : getDivsByTitle(el);
	var colors = new Object();
	colors.x_keywords = '#0033CC';
	colors.string = '#0000FF';
	colors.comment = '#999999';
	colors.reserveds = '#0000FF';
	colors.tags = '#990000';
	
	var scripts = new Object();
	scripts.keyword = '#0000FF';
	scripts.string = '#669900';
	scripts.comment = '#666666';
	scripts.reserved = '#0000FF';
	scripts.number = '#FF0000';
	
	var reserveds = /\b(AND|break|case|CONTAIN|CONTAINS|continue|default|do|DOES|else|EQ|EQUAL|EQUALTO|EQV|false|for|GE|GREATER|GT|GTE|if|IMP|in|IS|LE|LESS|LT|LTE|MOD|NEQ|NOT|OR|return|switch|THAN|TO|true|var|while|XOR)\b/g;
	var x_keywords = /\b(function|Abs|ACos|ArrayAppend|ArrayAvg|ArrayClear|ArrayDeleteAt|ArrayInsertAt|ArrayIsEmpty|ArrayLen|ArrayMax|ArrayMin|ArrayNew|ArrayPrepend|ArrayResize|ArraySet|ArraySort|ArraySum|ArraySwap|ArrayToList|Asc|ASin|Atn|AuthenticatedContext|AuthenticatedUser|BitAnd|BitMaskClear|BitMaskRead|BitMaskSet|BitNot|BitOr|BitSHLN|BitSHRN|BitXor|Ceiling|Chr|CJustify|Compare|CompareNoCase|Cos|CreateDate|CreateDateTime|CreateObject|CreateODBCDate|CreateODBCDateTime|CreateODBCTime|CreateTime|CreateTimeSpan|CreateUUID|DateAdd|DateCompare|DateConvert|DateDiff|DateFormat|DatePart|Day|DayOfWeek|DayOfWeekAsString|DayOfYear|DaysInMonth|DaysInYear|DE|DecimalFormat|DecrementValue|Decrypt|DeleteClientVariable|DirectoryExists|DollarFormat|Duplicate|Encrypt|Evaluate|Exp|ExpandPath|FileExists|Find|FindNoCase|FindOneOf|FirstDayOfMonth|Fix|FormatBaseN|GetBaseTagData|GetBaseTagList|GetBaseTemplatePath|GetClientVariablesList|GetCurrentTemplatePath|GetDirectoryFromPath|GetEncoding|GetException|GetFileFromPath|GetFunctionList|GetHttpTimeString|GetHttpRequestData|GetK2ServerDocCount|GetK2ServerDocCountLimit|GetLocale|GetMetaData|GetMetricData|GetPageContext|GetProfileSections|GetProfileString|GetTempDirectory|GetTempFile|GetTemplatePath|GetTickCount|GetTimeZoneInfo|GetToken|Hash|Hour|HTMLCodeFormat|HTMLEditFormat|IIf|IncrementValue|InputBaseN|Insert|Int|IsArray|IsAuthenticated|IsAuthorized|IsBoolean|IsBinary|IsCustomFunction|IsDate|IsDebugMode|IsDefined|IsK2ServerABroker|IsK2ServerDocCountExceeded|IsK2ServerOnline|IsLeapYear|IsNumeric|IsNumericDate|IsObject|IsProtected|IsQuery|IsSimpleValue|IsStruct|IsUserInRole|IsXMLDoc|IsXMLElem|IsXMLRoot|IsWDDX|JavaCast|JSStringFormat|LCase|Left|Len|ListAppend|ListChangeDelims|ListContains|ListContainsNoCase|ListDeleteAt|ListFind|ListFindNoCase|ListFirst|ListGetAt|ListInsertAt|ListLast|ListLen|ListPrepend|ListQualify|ListRest|ListSetAt|ListSort|ListToArray|ListValueCount|ListValueCountNoCase|LJustify|Log|Log10|LSCurrencyFormat|LSDateFormat|LSEuroCurrencyFormat|LSIsCurrency|LSIsDate|LSIsNumeric|LSNumberFormat|LSParseCurrency|LSParseDateTime|LSParseEuroCurrency|LSParseNumber|LSTimeFormat|LTrim|Max|Mid|Min|Minute|Month|MonthAsString|Now|NumberFormat|ParagraphFormat|ParameterExists|ParseDateTime|Pi|PreserveSingleQuotes|Quarter|QueryAddColumn|QueryAddRow|QueryNew|QuerySetCell|QuotedValueList|Rand|Randomize|RandRange|REFind|REFindNoCase|ReleaseCOMObject|RemoveChars|RepeatString|Replace|ReplaceList|ReplaceNoCase|REReplace|REReplaceNoCase|Reverse|Right|RJustify|Round|RTrim|Second|SetEncoding|SetLocale|SetProfileString|SetVariable|Sgn|Sin|SpanExcluding|SpanIncluding|Sqr|StripCR|StructAppend|StructClear|StructCopy|StructCount|StructDelete|StructFind|StructFindKey|StructFindValue|StructGet|StructInsert|StructIsEmpty|StructKeyArray|StructKeyExists|StructKeyList|StructNew|StructSort|StructUpdate|Tan|TimeFormat|ToBase64|ToBinary|ToString|Trim|UCase|URLDecode|URLEncodedFormat|URLSessionFormat|Val|ValueList|Week|Wrap|WriteOutput|XMLChildPos|XMLElemNew|XMLFormat|XMLNew|XMLParse|XMLSearch|XMLTransform|Year|YesNoFormat)\b/g;

	// para cada div encontrada
	for(var i=0; i<el.length; i++) {
		var retorno = el[i].innerHTML.replace(/(\r|\n)/g,'');
		retorno = retorno.replace(/<br>/gi,"|br|");
		retorno = retorno.replace(/&lt;cf(.+?)&gt;/g,"<cf$1>");
		retorno = retorno.replace(/&lt;\/cf(.+?)&gt;/g,"</cf$1>");
		
		var tags = /<cf(.*?)>/g;
		var endtags = /<\/cf(.*?)>/g;
		var ecomment = /<!--(.+?)-->/g;
		var cfscript = /&lt;cfscript&gt;(.+?)&lt;\/cfscript&gt;/g;
		
		while((a = tags.exec(retorno)) != null) {
			// trocando strings
			var nstr = a[1];
			if(nstr.indexOf(' ') != -1) {
				var t = nstr.substr(0, nstr.indexOf(' '));
				nstr = nstr.substr(nstr.indexOf(' ')+1);
				nstr = nstr.replace(/"(.*?)"/g,"<font color="+colors.string+">\"$1\"</font>");
				retorno = retorno.replace(a[0], "<font color="+colors.tags+">&lt;cf" + t + "</font> " + nstr + "&gt;");
			} else {
				var t = a[1];
				retorno = retorno.replace(a[0],"<font color="+colors.tags+">&lt;cf"+t+"&gt;</font>");
			}
			
			/*
			var nstr = a[2].replace(/"(.*?)"/g, "<font color="+colors.string+">\"$1\"</font>");
			nstr = "<font color="+colors.tags+">&lt;cf"+ a[1] + "</font> " + nstr;
			retorno = retorno.replace(a[0],nstr+"<font color="+colors.tags+">&gt;</font>");
			*/
		}
		retorno = retorno.replace(endtags,"<font color="+colors.tags+">&lt;/cf$1&gt;</font>");
		
		while((a = ecomment.exec(retorno)) != null) {
			var nstr = a[1].replace(/<[\/]*font(.+?)>/g,"");
			retorno = retorno.replace(a[0],"<font color="+colors.comment+">&lt;!--"+nstr+"--&gt;</font>");
		}
		
		retorno = retorno.replace(x_keywords,"<font color="+colors.x_keywords+">$1</font>");
		retorno = retorno.replace(reserveds,"<font color="+colors.reserveds+">$1</font>");
		
		while((a = cfscript.exec(retorno)) != null) {
			var sem_tags = a[1].replace(/<(.*?)>/g,'');
			var myCode = formatCode(sem_tags, '|br|', 1);
			var completo = "&lt;cfscript&gt;</font>" + myCode + "<font color="+colors.tags+">&lt;/cfscript&gt;</font>";
			
			var mc = /\/\*(.*?)\*\//g;
			var sc = /(&nbsp;|\|br\|)\/\/(.+?)\|br\|/g;
			while((b = sc.exec(completo)) != null) {
				var n = b[2].replace(/<(.*?)>/g,"");
				completo = completo.replace(b[0], b[1]+"<font color="+scripts.comment+">//"+n+"</font>|br|");
			}
			while((b = mc.exec(completo)) != null) {
				var n = b[1].replace(/<(.*?)>/g,"");
				completo = completo.replace(b[0], "<font color="+scripts.comment+">/*"+n+"*/</font>");
			}
			completo = completo.replace(x_keywords,"<font color="+scripts.reserved+">$1</font>");
			completo = completo.replace(reserveds,"<font color="+scripts.keyword+">$1</font>");
			completo = completo.replace(/"(.*?)"/g,"<font color="+scripts.string+">\"$1\"</font>");
			completo = completo.replace(/function(.+?)\(/g,"<b>function</b> $1(");
			completo = completo.replace(/(\(|\]|\[|\{|\}|\))/g,"<b>$1</b>");
			retorno = retorno.replace(a[0], completo);
		}
		el[i].innerHTML = retorno.replace(/\|br\|/gi,"<br>");
	}
}

/***********************************
Formatar JS
***********************************/
function FormatJS(el) {
	
	var el = el == undefined ? getCodes() : getDivsByTitle(el);
	var ident = "&nbsp;&nbsp;&nbsp;";
	/* string, comentário, reservadas, chaves, numeros */
	var colors = new Object();
	colors.keyword = '#000099';
	colors.string = '#0000FF';
	colors.comment = '#666666';
	colors.reserved = '#009999';
	colors.number = '#FF0000';
	colors.operator = '#990099';

	reserveds = /\b(abs|acos|Array|asin|atan|atan2|Boolean|ceil|charAt|charCodeAt|concat|cos|Date|eval|exp|floor|fromCharCode|Function|getDate|getDay|getFullYear|getHours|getMilliseconds|getMinutes|getMonth|getSeconds|getSelection|getTime|getTimezoneOffset|getUTCDate|getUTCDay|getUTCFullYear|getUTCHours			|getUTCMilliseconds      |getUTCMinutes|getUTCMonth|getUTCSeconds      |getYear|Image|indexOf|isNaN|join|lastIndexOf|log|match|Math|max|min|Number|Object|parse|parseFloat|parseInt|pop|pow|preference|print|push|random|RegExp|replace|reset|resizeBy|resizeTo|reverse|round|search|select|setDate|setFullYear|setHours|setMilliseconds|setInterval|setMinutes|setMonth|setSeconds|setTime|setTimeout|setUTCDate|setUTCFullYear|setUTCHours|setUTCMilliseconds|setUTCMinutes|setUTCMonth|setUTCSeconds|setYear|shift|sin|slice|sort|splice|split|sqrt|String|substr|substring|tan|toGMTString|toLocaleString|toLowerCase|toString|toUpperCase|toUTCString|unshift|unwatch|UTC|valueOf|watch|write|writeln)\b/g;
	x_keywords = /\b(break|case|continue|default|delete|do|else|export|false|for|if|import|in|item|new|null|return|switch|this|true|var|void|while|with|Infinity|Nan)\b/g;
	operators = /\b(document|alert|all|anchor|back|big|blink|blur|body|bold|byteToString|captureEvents|clearInterval|clearTimeout|click|close|confirm|disableExternalCapture|enableExternalCapture|event|find|fixed|focus|fontcolor|fontsize|forward|getOptionValueCount|getOptionValue|go|handleEvent|home|italics|javaEnabled|link|load|log|mimeTypes|moveAbove|moveBelow|moveBy|moveTo|moveToAbsolute|navigator|open|options|plugins|prompt|refresh|releaseEvents|reload|routeEvent|screen|scroll|scrollBy|scrollTo|small|stop|strike|sub|submit|sup|taintEnabled|unit|window)\b/g;
	for(var i=0; i<el.length; i++) {
		var retorno = '';
		var idcount = 0;
		var foundAt = 0;
		
		var tmp = removeTagP(el[i].innerHTML.replace(/[\r\n]/g,""));
		retorno = formatCode (tmp.replace(/<br(.*?)>/gi,"|br|"),"|br|", 0);
		
		retorno = retorno.replace(/function (.+?)\(/g,"<b>function</b> $1(");																	  		
		retorno = retorno.replace(reserveds,"<font color="+colors.reserved+">$1</font>");
		retorno = retorno.replace(x_keywords,"<font color="+colors.keyword+"><b>$1</b></font>");
		// Acrescentado por adriano rosa
		retorno = retorno.replace(operators,"<font color="+colors.operator+">$1</font>");		
		
		retorno = retorno.replace(/ ([0-9]+)(;|\|br\| )/g," <font color="+colors.number+">$1</font>$2");
		
		var multi_comment = /\/\*(.*?)\*\//g;
		var single_comment = /(&nbsp;|\|br\|)\/\/(.*?)\|br\|/g;
		retorno = formatString(retorno, colors.string, '|br|');
		
		while((a = multi_comment.exec(retorno)) != null) {
			var nstr = a[1].replace(/<(.+?)>/g,'');
			retorno = retorno.replace(a[0], "/*"+nstr+"*/");
		}
		retorno = retorno.replace(multi_comment,"<font color="+colors.comment+">/*$1*/</font>");

		while((a = single_comment.exec(retorno)) != null) {
			var nstr = a[2].replace(/<(.+?)>/g,'');
			retorno = retorno.replace(a[0], a[1]+"//"+nstr+"|br|");
		}
		retorno = retorno.replace(single_comment,"$1<font color="+colors.comment+">//$2</font>|br|");
		retorno = retorno.replace(/(\(|\]|\[|\{|\}|\))/g,"<b style='color:#000099;'>$1</b>");
		el[i].innerHTML = retorno.replace(/\|br\|/g,"<br>");
	}
}

/**********************************
Funções diversas
**********************************/

/**
 function _vbIniBlockTest
 @author Hugo Ferreira da Silva
 @description Testa para ver se acha um inicio de bloco em VB 
 @param str String da linha para procurar o inicio do bloco
 @return boolean
 */
function _vbIniBlockTest(str) {
	var iftest = /\b(then)\b/i;
	var whiletest = /\b(while)\b/i;
	var fortest = /\b(for)\b/i;
	var subtest = /\b(sub )\b/i;
	var functiontest = /\b(function )\b/i;
	return (iftest.test(str) || whiletest.test(str) || fortest.test(str) || subtest.test(str) || functiontest.test(str));
}

/**
 function _vbEndBlockTest
 @author Hugo Ferreira da Silva
 @description testa para ver se acha um final de bloco para o VB 
 @param str String da linha para procurar o final do bloco
 @return boolean
 */
function _vbEndBlockTest(str) {
	var endiftest = /\b(end if)\b/i;
	var endwhiletest = /\b(wend)\b/i;
	var endfortest = /\b(next)\b/i;
	var endsubtest = /\b(end sub)\b/i;
	var endfunctiontest = /\b(end function)\b/i;
	return (endiftest.test(str) || endwhiletest.test(str) || endfortest.test(str)|| endsubtest.test(str) || endfunctiontest.test(str));
}

/**
 function trim
 @author Hugo Ferreira da Silva
 @description Remove os espaços em branco do inicio e final da string
 @param str String para remover os espaços
 @return String
 */
function trim(str) {
	while(str.substr(0, 1) == ' ') {
		str = str.substr(1, str.length - 1);
	}
	while(str.substr(str.length-1, 1) == ' ') {
		str = str.substr(0, str.length - 1);
	}
	return str;
}

/**
 function getCodes
 @author Hugo Ferreira da Silva
 @description Pega todos as DIV's com o ID = codigo
 @return Array
 */
function getCodes() {
	var el = document.getElementsByTagName("pre");
	var r = new Array();
	var c = 0;
	for(var i=0; i<el.length; i++) {
		if(el[i].className=='codeblock') {
			r[c++] = el[i];
		}
	}
	return r;
}

/**
 function getDivsByTitle
 @author Hugo Ferreira da Silva
 @description Pega as divs passadas na Array de parâmetro
 @param list Uma Array contendo os Title's das DIV's desejadas
 @return Array
 */
function getDivsByTitle(list) {
	var el = document.getElementsByTagName("pre");
	var r = new Array();
	var c = 0;
	for(var k=0; k<list.length; k++) {
		for(var i=0; i<el.length; i++) {
			if(el[i].title==list[k]) {
				r[c++] = el[i];
			}
		}
	}
	return r;
}


/**
 function formatString
 @author Hugo Ferreira da Silva
 @description Formata strings com aspas simples e duplas
 @param list String para formatar
 @return String
 */
function formatString(s, color, separador) {
	var count = 0;
	var linhas = s.split(separador);
	var ret = '';
	
	for(var j=0; j<linhas.length; j++) {
		s = linhas[j];
		var r = "";
		var aberto = false;
		var ini = 0;
		var u = '';
		for(var k=0; k<s.length; k++) {
			count++;
			var c=s.substr(k, 1);
			var a=s.substr(k-1,1);
			
			if(c == '"' || c == "'") {
				if(aberto == false) {
					aberto = true;
					u = c;
					ini = k;
				} else {
					if(c == u) {
						aberto = false;
						var st = s.substr(ini, k - ini + 1);
						st = st.replace(/<(.*?)>/g,"");
						if(u == '"') {
							st = st.replace(/'/g,'&#0039;');
							st = "<font color="+color+">"+st+"</font>";
						} else {
							st = st.replace(/"/g,'&#0034;');
							st = "<font color="+color+">"+st+"</font>";
						}
						ret += st;
					}
				}
			} else if (c != '"' && c != "'" && aberto == false) {
				ret += c;
			}
		}
		ret += separador;
	}
	return ret;
}

/**
 function getDivsByTitle
 @author Hugo Ferreira da Silva
 @description Remove a tag <P> e substitui por dois <br>
 @param list String para tirar a tag <P>
 @return String
 */
function removeTagP(str) {
	str = str.replace(/<p>/gi,"<br><br>");
	str = str.replace(/<\/p>/gi,"");
	return str;
}

function convertToList( retorno ) {
	var a = retorno.split('|br|');
	var r  ='<ol>';
	for(var j=0; j<a.length; j++ ) {
		if(a[j].replace(/&nbsp;/g,'') != '') {
			r += '<li>'+a[j]+'</li>';
		}	
	}
	r += '</ol>';
	return r;
}

/**
 function formatCode
 @author Hugo Ferreira da Silva
 @description Formata o código :D
 @param str String para ser formatada
 @param divisor Divisor para separar as linhas
 @return String 
 */
function formatCode(str, divisor, iniIdent) {
	var ident = "&nbsp;&nbsp;&nbsp;";
	var linhas = str.split(divisor);

	var retorno = "";
	var foundAt = 0;
	var idcount=iniIdent == undefined ? 0 : iniIdent;
	
	for(var j=0; j<linhas.length; j++) {
		linhas[j] = trim(linhas[j]);
		if(linhas[j].indexOf('{') != -1) {
			foundAt = j;
			idcount++;
		}
		if(linhas[j].indexOf('}') != -1) {
			foundAt = j;
			idcount--;
		}
		var abrir = linhas[j].indexOf('{');
		var fechar = linhas[j].indexOf('}');
		
		if(foundAt != j) {
			var s = '';
			for(var k=0; k<idcount; k++) s += ident;
			linhas[j] = s + linhas[j];
		} else if(foundAt == j && abrir > -1 && fechar > -1) {
			var s = '';
			if(abrir > fechar) {
				for(var k=0; k<idcount-1; k++) s += ident;
				linhas[j] = s + linhas[j];
			} else {
				for(var k=0; k<idcount; k++) s += ident;
				linhas[j] = s + linhas[j];
			}
		} else if(foundAt == j && fechar != -1) {
			var s = '';
			for(var k=0; k<idcount; k++) s += ident;
			linhas[j] = s + linhas[j];
		} else {
			var s = '';
			for(var k=0; k<idcount-1; k++) s += ident;
			linhas[j] = s + linhas[j];
		}
		retorno += linhas[j] + divisor;
	}

	return retorno;
}