var code2string = function(code)
	{
		if(typeof(code) == 'number')
		{
			code = [code];
		}
		
		var str = '';
		for(i=0;i<code.length;i++)
		{
			str += String.fromCharCode(code[i]);
		}
		return str;
	};

var setScroll = function(id, callback)
	{
		var setup = function()
			{
				$(id).jScrollPane
					({
						showArrows: true,
						scrollbarWidth: 15
					});
					
				if(typeof callback == 'function') callback();
			};
			
		$(id).css('overflow', 'hidden');
		setTimeout(setup, 200);
	};

var modal =
	{
		msg: function(msg)
			{
				return '<div id="modalBox"><table><tr><td class="item_titulo">'+msg+'</td></tr></table>';  
			},
		wait: function()
			{
				return '<div id="modalBox"><table><tr><td class="item_titulo">Carregando ... </td><td><img src="'+_PHP_.incroot+'img/home/acoes/loading.gif" alt=""/></td></tr></table>';  
			},
		erro: function()
			{ 
				return '<div id="modalBox"><table><tr><td class="item_titulo">Erro ao se comunicar com o servidor, por favor tente novamente.</td></tr></table>';
			}
	};

function loadPage(page, url, callback)
{
	$("#rows").load
		(
			url + page,
			null,
			function(responseText, textStatus, XMLHttpRequest)
			{
				//$("#rows")[0].scrollTop = 0;
				//GOOGLE ANALYTICS
				if(typeof window.pageTracker != 'undefined')
				{
					pageTracker._trackPageview(url + page);	
				}
				callback(responseText, textStatus, XMLHttpRequest);
			}
		);
}

function loadStartPage(page, url, hasText)
{
	$('#middle_right').block(modal.wait());
	
	loadPage(page, url, function(responseText, textStatus, XMLHttpRequest)
		{
			$('#middle_right').unblock();
			
			if(textStatus != 'success')
			{
				$(modal.erro()).appendTo('#middle_right').displayBox();
				if(hasText) $('#bt_texto').hide();
				$('#pager').hide();
			}
			else
			{
				$("#rows").fadeIn("slow");
			
				if(hasText)
				{
					collapses.collapsable
						({
							bt_id: '#bt_texto',
							content_id: '#collapsable',
							images: ['arrow_up', 'arrow_down'],
							speed: 'normal'
						});
				}
			}
		});
}

var IERacks = 
	{
		fixAllFonts: function(element)
			{
				this.ifIE(7, function()
					{
						$(element).each(function(index, domElemen)
							{
								IERacks.fixFonts(domElemen);
							});
					});
			},
		fixAllPNG: function()
			{
				this.ifIE([5,6], function()
					{
						$('img[@src$=.png]').each(function(index, element)
							{
								IERacks.fixPNG(element);
							});
					});
			},
		fixFonts: function(element)
			{
				element.style.removeAttribute('filter');
			},
		fixPNG: function(image)
			{
				$(image).css('filter', 'progid:DXImageTransform.Microsoft.AlphaImageLoader(enabled=true, sizingMethod=image, src="'+$(image).attr('src')+'", sizingMethod="scale");');
				$(image).attr('src', _PHP_.incroot+'js/extjs/ext-2.0/resources/images/default/s.gif');
				return true;
			},
		ifIE: function(version, callback)
			{
				if(typeof version == 'number') version = [version, version];
				var ie = parseInt($.browser.version);
				
				if($.browser.msie && (parseInt(version[0]) <= ie && ie <= parseInt(version[1])) && typeof callback == 'function')
				{
				 	callback();
				}
			}
	};

var config =
	{
		link: function()
			{
				$('a[@rel~="external"]').attr('target', '_blank');
			},
		all: function()
			{
				this.link();
				
				$.blockUI.defaults =
					{ 
					    pageMessage: '', 
					    elementMessage: '',
					    overlayCSS:  {}, 
					    pageMessageCSS: {}, 
					    elementMessageCSS: {}, 
					    displayBoxCSS: { width: '200px', height: '100px', top:'50%', left:'50%' }, 
					    ie6Stretch: 1, 
					    allowTabToLeave: 0, 
					    closeMessage: 'Click to close', 
					    fadeIn: 1, 
					    fadeInTime: 300, 
					    fadeOut: 1, 
					    fadeOutTime: 300 
					};
				
				$.ajaxSetup
					({
						async: true,
						cache: false,
						type: 'POST'/*,
						beforeSend: function(XMLHttpRequest)
							{
								$('#middle_right').block();
							},
						success: function(data, textStatus)
							{
								$('#middle_right').unblock();
							},
						error: function(XMLHttpRequest, textStatus, errorThrown)
							{
								$('#middle_right').unblock();
								$(modal.erro()).displayBox();
							}*/
					});
					
				collapses.images = ['arrow_up', 'arrow_down'];
			}
	};

var collapses =
{
	images: null,
	set: function(ids, callback)
		{
			for(var idx in ids)
			{
				this.collapsable
					({
						bt_id: '#'+ids[idx]+'_bt',
						content_id: '#'+ids[idx],
						images: this.images,
						speed: 'normal',
						fieldset:
							{
								id: '#'+ids[idx]+'_fieldset',
								'class': 'collapsed'
							}
					});
			}
			
			if(typeof callback == 'function') callback();
		},
	collapsable: function(params)
		{
			$(params.bt_id).click(function(event)
				{
					event.preventDefault();
					$(params.content_id).slideToggle(params.speed, function()
						{
							var image = $(params.bt_id);
							image.attr('src', _PHP_.incroot+'img/home/acoes/'+((image.attr('src').match(params.images[0]) || (image.css('filter') && image.css('filter').match(params.images[0]))) ? params.images[1] : params.images[0])+'.png');
							
							IERacks.ifIE([5,6], function()
								{
									IERacks.fixPNG(image);
								});
							
							if(params.fieldset)
							{
								$(params.fieldset.id).toggleClass(params.fieldset['class']);
							}
							
							setScroll('#rows', function()
								{
									if($('#rows').height() > $('.jScrollPaneContainer').height())
									{
										$('#rows').get(0).scrollTo(params.content_id + '_fieldset', true);
									}
								});
						});
				});
		}
};