Object.extend = function(destination, source) {
  for (property in source) {
    destination[property] = source[property];
  }
  return destination;
}
function $() {
  var elements = new Array();
  for (var i=0;i<arguments.length;i++) {
    var element=arguments[i];
    if (typeof element == 'string') element=document.getElementById(element);
    if (arguments.length == 1) return element;
    elements.push(element);
  }
  return elements;
}
function Ajax() {
	// RDA Ajax Framework v1.0
}
Ajax.getTransport = function ()
{
	var ret=false;
	if(window.XMLHttpRequest){ret = new window.XMLHttpRequest();}
	else{if(window.ActiveXObject){try{ret = new ActiveXObject("Msml2.XMLHTTP");}
	catch(err1){try{ret = new ActiveXObject("Microsoft.XMLHTTP");}
	catch(err2){ret=false;alert("Este site foi projetado com a tecnologia AJAX.\n\nSeu navegador não oferece suporte a ela, e será necessário atualizá-lo antes de visualizar este site. \n\n(Necessário: IE6+, FireFox1+,etc...)");}}}}
	return ret;	
}

Ajax.prototype.get = function (page,vars,target,method) {
	var req = Ajax.getTransport();
	if(req)
	{
		if(method.toUpperCase()=="GET")
		{
			rnd=parseInt(Math.random()*99999999);
			req.open("GET",page+"?"+vars+"&rand="+rnd,true);
			if(target!=""){req.onreadystatechange = function () {Ajax.setHTML(target,req);}}
			req.send(null);
			if(typeof pageTracker != 'undefined') {pageTracker._trackPageview(page+"?"+vars);}
		}
		else if(method.toUpperCase()=="POST")
		{
			req.open("POST",page,true);
			req.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
			if(target!=""){req.onreadystatechange = function () {Ajax.setHTML(target,req);}}
			req.send(vars);
			if(typeof pageTracker != 'undefined') {pageTracker._trackPageview(page+"?"+vars);}
		}
	}
}

Ajax.setHTML = function (target,req)
{
	var loader = $('ajax_loader');
	if(loader == null) {
		loader = document.createElement('DIV');loader.innerHTML="Carregando...";loader.id='ajax_loader';
		var ll=(navigator.appName.indexOf("Netscape") != -1)?innerWidth : (document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth);
		with (loader.style) {
			display='none';		position='absolute';	//left=Math.ceil((ll-100)/2)+'px';
			zIndex='10000';		color='#000000';		fontSize='8pt';				height='15px';
			width='auto';		textAlign='center';		backgroundColor='#FFFFFF';	padding='4px';
			fontFamily='Tahoma,Verdana,Arial,sans-serif'; top='20px';				right='20px';
		}
		document.body.appendChild(loader);
	}
	if(req.readyState<4 && req.readyState>0) {
		loader.style.display='block';
		loader.innerHTML='Carregando...';
	}
	if(req.readyState==4) {
		if(req.status==200) {
			var text=req.responseText;
			document.getElementById(target).innerHTML = text;
			Ajax.JSRun(text);
			loader.style.display='none';
		} else {
			Ajax.error(req.status);
		}
	}
}
Ajax.JSRun = function (text){
    var st = 0;
	var end = 0;
	var code = "";
    while (st!=-1){
        st = text.indexOf('<scr'+'ipt', st);
        if (st >=0){
            st  = text.indexOf('>', st)+1;
            end = text.indexOf('</scr'+'ipt>', st);
            code = text.substring(st,end);
			var script = document.createElement('script');
			script.type		= 'text/javascript';
			script.language	= 'javascript';
			script.text 	= code;
			document.body.appendChild(script);
			eval(code);
      }
    }
}
Ajax.CSSRun = function (text){
    var st = 0;
	var end = 0;
	var code = "";
    while (st!=-1){
        st = text.indexOf('<style', st);
        if (st >=0){
            st  = text.indexOf('>', st)+1;
            end = text.indexOf('</style>', st);
            code = text.substring(st,end);
			var script = document.createElement('style');
			script.type		= 'text/css';
			script.text 	= code;
			document.body.appendChild(script);
        }
    }
}
Ajax.error = function (code)
{
	var e = {
	'e204': "A página solicitada está vazia!",
	'e301': "O recurso solicitado foi movido permanentemente para outro endereço",
	'e401': "Você não está autorizado a ver essa página!",
	'e403': "Acesso negado!",
	'e404': "A página solicitada não existe.",
	'e408': "Tempo esgotado. A página não pôde ser exibida porque o tempo de carregamento acabou.",
	'e500': "Erro interno no servidor.",
	'e100': "Este navegador não oferece suporte para a página requisitada!"}
	try{
		$('ajax_loader').style.display='block';
		$('ajax_loader').innerHTML = e['e'+code]?['e'+code]:'Erro desconhecido.';
		setTimeout(function(){try{$('ajax_loader').style.display='none';}catch(e){}},2000);
	}catch(e){}
}

function sendForm(form,target)
{
	var formObject = document.getElementById(form);
	var action = formObject.action;
	var method = formObject.method;
	var i=0;
	var vars=null;
	var fieldValue;
	var brmath=/\n/;
	for(i=0;i<(formObject.elements.length);i++)
	{
		if(formObject.elements[i].name!="") {
		fieldValue=formObject.elements[i].value;
		while(brmath.test(fieldValue)) {fieldValue=fieldValue.replace(brmath,"<br />");}
		if(formObject.elements[i].type!='checkbox')
		{
			if(vars == null) { vars = formObject.elements[i].name + "=" + fieldValue; }
			else { vars += "&" + formObject.elements[i].name + "=" + fieldValue; }
			
		}
		else
		{
			var ckdValue=formObject.elements[i].checked==true?1:"";
			if(vars == null) { vars = formObject.elements[i].name + "=" + ckdValue; }
			else { vars += "&" + formObject.elements[i].name + "=" + ckdValue; }		
		}
	}
	}
	var obj=new Ajax();	
	obj.get(action,vars,target,method);
}

function AjaxGet(page,vars,target,method){
	var obj=new Ajax();
	if(!target) target='conteudo';
	if(!method) method='GET';
	obj.get(page,vars,target,method);
}
function loadpage(page,vars){
	if(page!="")
	AjaxGet(page,vars,"conteudo","GET");
}

function itemSelect(obj,page) {	AjaxGet(page,obj.name+"="+obj.value,'','GET');}

function check(obj,page,id){
	if(obj.checked) {
		AjaxGet(page,obj.name+"="+obj.value+"&id="+id,'','GET');
	}
	else
	{
		AjaxGet(page,obj.name+"=&id="+id,'','GET');
	}
}