// JavaScript Document
var collapse;
function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'block':(v=='hide')?'none':v; }
    obj.display=v; }
} 

function mudarCorOK(){
	document.getElementById("btOK").style.border='1px solid #000'
}
function tirarCorOK(){
	document.getElementById("btOK").style.border='none';
}

function excluir(msg, caminho){
	if(confirm("Deseja realmente excluir "+msg+"?")){
		window.location = caminho;
	}
}

function mostrarRepresentantes(estado, url, layer){
	objAjax = new AjaxObject("GET", url);
	objAjax.addRequestValue("estado", estado);
	objAjax.addRequestValue("acao", "mapa");
	objAjax.setCallBackFunction(callBackPadrao, new Array(layer));
	document.getElementById(layer).innerHTML = "<img src='../imagens/ajax-loader.gif' />";
	objAjax.load();
}

var arrInput = new Array(0);
var arrInputValue = new Array(0);
	
function addInput() {

  alert('aa'); return false;

  arrInput.push(arrInput.length);

  arrInputValue.push("");
  display();
}
	
function display() {
	alert('aa'); return false;
  document.getElementById('inserirhtml').innerHTML="";
  for (intI=0;intI<arrInput.length;intI++) {
	document.getElementById('inserirhtml').innerHTML+=createInput();
  }
}
	
function createInput() {
  return"<tr><td colspan='2' width='100%'></td></tr><tr><td style='padding-top:5px;' colspan='2'>\n" +
		"<table width='100%' border='0' cellpadding='0' cellspacing='0' class='txtTahoma11Cinza'>\n" +
		  "<tr>\n" +
			"<td width='280'>Empresa</td>\n" +
			"<td>Cargo</td>\n" +
		  "</tr>\n" +
		  "<tr>\n" +
			"<td height='22'><input name='empresa[]' value='' type='text' style='width:227px;' class='form' id='empresa' /></td>\n" +
			"<td><label for='radio2'>\n" +
			  "<input name='cargo[]' type='text' class='form' id='cargo' style='width:120px;' value='<?=$_POST['cargo']?>'>\n" +
			"</label></td>\n" +
		  "</tr>\n" +
		  "<tr>\n" +
			"<td height='22'>Per&iacute;odo</td>\n" +
			"<td>&nbsp;</td>\n" +
		  "</tr>\n" +
		  "<tr>\n" +
			"<td height='22'><? echo data_mes('mes2[]',$_POST['mes2']).data_ano('ano2[]',$_POST['ano2']);?>\n" +
			  "a\n" +
			  "<? echo data_mes('mes3[]',$_POST['mes3']).data_ano('ano3[]',$_POST['ano3']);?></td>\n" +
			"<td>&nbsp;</td>\n" +
		  "</tr>\n" +
		  "<tr>\n" +
			"<td height='22'>Descri&ccedil;&atilde;o de Tarefas</td>\n" +
			"<td>&nbsp;</td>\n" +
		  "</tr>\n" +
		  "<tr>\n" +
			"<td height='22'><textarea name='descricao_tarefas[]' id='descricao_tarefas' class='form' style='width:250px; height:60px;'><?=$_POST['descricao_tarefas']?></textarea></td>\n" +
			"<td>&nbsp;</td>\n" +
		  "</tr>\n" +
		  "</table>\n" +
		 "</tr>\n" +
		"<tr>\n" +
			"<td>\n" +
				"<b  style='cursor:pointer;' onClick='deleteInput()'><img src='../imagens/btExcluir.gif' border='0'> Delete</b>\n" +
			  "</td><td></td>\n" +
		  "</tr>";
}
	
function deleteInput() {
  if (arrInput.length > 0) { 
	 arrInput.pop(); 
	 arrInputValue.pop();
  }
  display(); 
}

function selecionarTodos(id_select){
	s1 = document.getElementById(id_select);
	
	for(i = 0; i < s1.length; i++){
		s1.options[i].selected = true;
	}
}

function move(s1, s2) {
	var i = new Array();
	var cont = 0;
	for(x=0; x < s1.options.length; x++){
	  	if (s1.options[x].selected){
			i[cont] = s1.selectedIndex;
			cont++;	
		}
	}
	if ( i.length != 0) {
	  	for(x=0; x < i.length; x++){
  			for ( j = 0; j < s2.options.length; j++ ) {
				if ( s2.options[j].value == s1.options[i[x]].value ){
					break;
				}
/*				if ( s2.options[j].text > s1.options[i[x]].text ) {
					for ( z = s2.options.length; z > j ; z-- ) {
 						s2.options[z] = new Option(s2.options[z-1].text, s2.options[z-1].value, false, false);
					}
					break;
  	  			}*/
			}
			s2.options[j] = new Option(s1.options[i[x]].text, s1.options[i[x]].value, false, true);
			s1.options[i[x]] = null;	
		}
  }
}

function setSelectOptions(the_form, the_select, do_check)
{
	var selectObject = document.forms[the_form].elements[the_select];
	if (selectObject.length == 0){
		alert ('Selecione ao menos um email como destinatário.');
		return false;
	}
    var selectCount  = selectObject.length;

    for (var i = 0; i < selectCount; i++) {
		selectObject.options[i].selected = do_check;
    } // end for
	
}
//	document.forms[the_form].submit();
//	return true;

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}
//POPUP
function abrir(theURL,winName,features) { 
	window.open(theURL,winName,features);
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'block':(v=='hide')?'none':v; }
    obj.display=v; }
}

function limpaCamposForm(){}


function alterarStatus(url, id_membro, status_membro, layer){
	objAjax = new AjaxObject("POST", url);
	objAjax.addRequestValue("id", id_membro);
	objAjax.addRequestValue("status", status_membro);
	objAjax.addRequestValue("layer", layer);
	objAjax.setCallBackFunction(callBackPadrao, new Array(layer));
	document.getElementById(layer).innerHTML = "<img src='../imagens/ajax-loader2.gif' />";
	objAjax.load();
}

function ajaxPadrao(formulario, metodo, url, layer) {
	objAjax = new AjaxObject(metodo, url);
	objAjax.addAllRequestObjects(document.forms[formulario]);
	//objAjax.setLoadingFunction(loading);
	objAjax.setCallBackFunction(callBackPadrao, new Array(layer));
	objAjax.load();
	
	document.getElementById(layer).innerHTML = "<font face=verdana size=3><div align=center><b><br><br><img src='../imagens/ajax-loader.gif'/></b></div></font>";
}

function alterarDataAjax(layer, data, id_agenda){
	objAjax = new AjaxObject("post", "../agenda/acao.php");
	objAjax.addRequestValue("data", data);
	objAjax.addRequestValue("acao", "alterarDataAjax");
	objAjax.addRequestValue("id_agenda", id_agenda);
	objAjax.setCallBackFunction(callBackPadraoAgenda, new Array(layer, data));
	document.getElementById(layer).innerHTML = "<img src='../imagens/ajax-loader.gif' style='float:left; padding-right:5px;' />";
	objAjax.load();	
}

function callBackPadraoAgenda(resposta, container, data){
	document.getElementById(container).innerHTML = data;
	data = data.split("/");
	iniciarCalendario(data[0], data[1], data[2]);
}

function montarComboHora(){
		retorno = new Array();
		meia_hora = false;
		i = 0;
		while(i < 24){
			if(meia_hora == true){
				retorno[i] = i+":30";
				meia_hora = false;
				i++;
			}else{
				retorno[i] = i+":00";
				meia_hora = true;
			}			
		}
		return retorno;
}

function ajaxComboProjetos(id_cliente, acao, metodo, url, layer){
	objAjax = new AjaxObject(metodo, url);
	objAjax.addRequestValue("id_cliente", id_cliente);
	objAjax.addRequestValue("acao", acao);
	objAjax.setCallBackFunction(callBackPadrao, new Array(layer));
	document.getElementById(layer).innerHTML = "<img src='../imagens/ajax-loader.gif' style='float:left; padding-right:5px;' />";
	objAjax.load();
}

function ajaxPlayPause(id_job, acao, playpause, metodo, url, layer){
	objAjax = new AjaxObject(metodo, url);
	objAjax.addRequestValue("id_job", id_job);
	objAjax.addRequestValue("acao", acao);
	objAjax.addRequestValue("playpause", playpause);
	objAjax.setCallBackFunction(callBackPadraoPlayPause, new Array(layer));
	document.getElementById(layer).innerHTML = "<img src='../imagens/ajax-loader.gif' style='float:left; padding-right:5px;' />";
	objAjax.load();
}

function ajaxRelatorio(id_cliente,id_projeto,id_atividade,id_usuario,de,ate, metodo, url, layer){
	objAjax = new AjaxObject(metodo, url);
	objAjax.addRequestValue("id_cliente", id_cliente);
	objAjax.addRequestValue("id_projeto", id_projeto);
	objAjax.addRequestValue("id_atividade", id_atividade);
	objAjax.addRequestValue("id_usuario", id_usuario);
	objAjax.addRequestValue("de", de);
	objAjax.addRequestValue("ate", ate);
	objAjax.setCallBackFunction(callBackPadrao, new Array(layer));
	document.getElementById(layer).innerHTML = "<img src='../imagens/ajax-loader.gif' style='float:left; padding-right:5px;' />";
	objAjax.load();
}

function callBackPadraoPlayPause(response, layerName) {
	document.getElementById(layerName).innerHTML = response;
	ajaxMenuRight("menuRight", "get", "ajax.php?secao=jobs", "carregarMenu");
	collapse2=new animatedcollapse("boxtxt", 700, true);
	collapse2._getheight(true);
	
}

function ajaxMenuRight(acao, metodo, url, layer){
	objAjax = new AjaxObject(metodo, url);
	objAjax.addRequestValue("acao", acao);
	objAjax.setCallBackFunction(callBackPadrao, new Array(layer));
	document.getElementById(layer).innerHTML = "<img src='../imagens/ajax-loader.gif' style='float:left; padding-right:5px;' />";
	objAjax.load();
}

function ajaxFixo(id_categoria, metodo, url, layer){
	objAjax = new AjaxObject(metodo, url);
	objAjax.addRequestValue("id_categoria", id_categoria);
	objAjax.setCallBackFunction(callBackPadrao, new Array(layer));
	document.getElementById(layer).innerHTML = "<img src='../imagens/ajax-loader.gif' style='float:left; padding-right:5px;' />";
	objAjax.load();
}

function ajaxComboCliente(id_vinculo, metodo, url, layer){
	objAjax = new AjaxObject(metodo, url);
	objAjax.addRequestValue("id_vinculo", id_vinculo);
	objAjax.setCallBackFunction(callBackPadrao, new Array(layer));
	document.getElementById(layer).innerHTML = "<img src='../imagens/ajax-loader.gif' style='float:left; padding-right:5px;' />";
	objAjax.load();
}

function ajaxFalha(metodo, url, layer){
	objAjax = new AjaxObject(metodo, url);
	objAjax.setCallBackFunction(callBackPadrao, new Array(layer));
	document.getElementById(layer).innerHTML = "<img src='../imagens/ajax-loader.gif' style='float:left; padding-right:5px;' />";
	objAjax.load();
}

function ajaxPadraoLogin(formulario, metodo, url, layer) {
	objAjax = new AjaxObject(metodo, url);
	objAjax.addAllRequestObjects(document.forms[formulario]);
	objAjax.setLoadingFunction(loading);
	objAjax.setCallBackFunction(callBackPadraoLogin, new Array(layer));
	objAjax.load();
}

function callBackPadraoLogin(resposta, container){
	if(resposta == "travadoNao"){
		window.location = 'index.php';
	}else if(resposta == "travadoSim"){
		window.location = 'login.php?acesso=Acesso Negado. <br/>Contate a administração do site.';		
	}else{
		document.getElementById(container).innerHTML = resposta;	
	}
}

function montarCombo(colecao, acao, metodo, url, layer) {
	objAjax = new AjaxObject(metodo, url);
	objAjax.addRequestValue("colecao", colecao);
	objAjax.addRequestValue("acao", acao);
	objAjax.setCallBackFunction(callBackPadrao, new Array(layer));
	document.getElementById(layer).innerHTML = "<img src='../imagens/ajax-loader.gif' style='float:left; padding-right:5px;' />Carregando...<div style='clear:both; font-size:0; height:0; line-height:0; display:block;' /></div>";
	objAjax.load();
}

function carregarPrimeiroAlbum(colecao, acao, metodo, url, layer) {
	objAjax = new AjaxObject(metodo, url);
	objAjax.addRequestValue("colecao", colecao);
	objAjax.addRequestValue("acao", acao);
	objAjax.setCallBackFunction(callBackPadrao, new Array(layer));
	document.getElementById(layer).innerHTML = "<img src='../imagens/ajax-loader.gif' style='float:left; padding-right:5px;' />Carregando...<div style='clear:both; font-size:0; height:0; line-height:0; display:block;' /></div>";
	objAjax.load();
}

function carregarFotos(colecao, album, pagina, acao, metodo, url, layer) {
	objAjax = new AjaxObject(metodo, url);
	objAjax.addRequestValue("colecao", colecao);
	objAjax.addRequestValue("album", album);
	objAjax.addRequestValue("pagina", pagina);
	objAjax.addRequestValue("acao", acao);
	objAjax.setCallBackFunction(callBackPadrao, new Array(layer));
	document.getElementById(layer).innerHTML = "<img src='../imagens/ajax-loader.gif' style='float:left; padding-right:5px;' />Carregando...<div style='clear:both; font-size:0; height:0; line-height:0; display:block;' /></div>";
	objAjax.load();
}

function ajaxPadraoEnviarEmail(formulario, metodo, url, layer) {
	objAjax = new AjaxObject(metodo, url);
	objAjax.addAllRequestObjects(document.forms[formulario]);
/*	objAjax.addRequestValue("tipo", tipo);
	objAjax.addRequestValue("assunto", assunto);
	objAjax.addRequestValue("mensagem", mensagem);
	objAjax.addRequestValue("link_imagem", link_imagem);*/
	objAjax.setCallBackFunction(callBackPadrao, new Array(layer));
	document.getElementById(layer).innerHTML = "<img src='../imagens/ajax-loader.gif' /><br/>Enviando informativo. O envio poderá levar alguns minutos...";
	objAjax.load();
}

function ajaxPadrao2(formulario, metodo, url, layer) {
	objAjax = new AjaxObject(metodo, url);
	objAjax.setLoadingFunction(loading);
	objAjax.setCallBackFunction(callBackPadrao, new Array(layer));
	objAjax.load();
}

function ajaxPadraoFormUnique(valor, metodo, url) {
	objAjax = new AjaxObject(metodo, url);
	objAjax.addRequestValue('key',valor);
	objAjax.setCallBackFunction(callBackAlert, new Array());
	objAjax.setExceptionFunction(exceptionPadrao);
	objAjax.load();
}

function ajaxPadraoUnique(valor, metodo, url,layer,campo,botao) {
	alert('valor: '+valor+' metodo: '+metodo+' url: '+url+' layer: '+layer);
	objAjax = new AjaxObject(metodo, url);
	objAjax.addRequestValue('key',valor);
	objAjax.setCallBackFunction(callBackDetail,new Array(layer, "previsao1","botao1"));
	objAjax.setExceptionFunction(exceptionPadrao);
	objAjax.load();
}

function carregarOrdenar(container, url, acao){
	
	var objAjax = new AjaxObject("POST", url);
	objAjax.setLoadingFunction(loading);
	objAjax.setCallBackFunction(exibirOptions, new Array(container));
	objAjax.addRequestValue('acao', acao);
	objAjax.load();
     
}

function exibirOptions(resposta, container){
	document.getElementById(container).innerHTML = resposta;
}


function exceptionPadrao(cod, status) {
	alert(cod + ": " + status);
}

function callBackDetail(response, layerName, campo, botao) {
	document.getElementById(layerName).style.display = 'block';
	document.getElementById(layerName).innerHTML = response;
	var cal = new Zapatec.Calendar.setup({
	showsTime      : false,//mostrar hora ou não
	range          : [1900.01, 2999.12],//data inicial e final
	singleClick    : true,//selecionar data com um único click
	inputField     : campo,//nome do campo que irá receber a data
	button         : botao,//botão que irá chamar a função da data
	ifFormat       : "%d/%m/%Y"//formata que irá ser mostrado
	});
	
}

function callBackPadrao(response, layerName) {
	document.getElementById(layerName).innerHTML = response;
}

// Função padrao de ajax para formularios
function ajaxPadraoForm(formulario, metodo, url) {
	objAjax = new AjaxObject(metodo, url);
	objAjax.addAllRequestObjects(document.forms[formulario]);
	objAjax.setCallBackFunction(callBackAlert, new Array());
	objAjax.load();
}
function loading(){
		layerName = this.callBackArguments[0];
		document.getElementById(layerName).innerHTML = "<font face=verdana size=3><div align=center><b><br><br><img src='../imagens/ajax-loader.gif'/></b></div></font>";	
}
function loadingEmail(){
		layerName = this.callBackArguments[0];
		document.getElementById(layerName).innerHTML = "<div align=center><b><br><br><img src='../imagens/ajax-loader.gif'/><br/>Enviando Informativo. Levará alguns minutos...</b></div>";	
}

// Função padrão de Callback

function callBackAlert(response) {
	eval(response);
}



var arrInput = new Array(0);
var arrInputValue = new Array(0);
	
function addInput() {

  arrInput.push(arrInput.length);
	
  arrInputValue.push("");
  display();
}
	
function display() {
  document.getElementById('inserirhtml').innerHTML="";
  for (intI=0;intI<arrInput.length;intI++) {
	document.getElementById('inserirhtml').innerHTML+=createInput(arrInput[intI], arrInputValue[intI]);
  }
}
	
function createInput(value) {
  return"<td><input name='foto[]' type='file' class='form2' size='26' /></td><br>";
}




/*
* Javascript pseudo-class to build assynchronous HTTP requests to webservers.
*
* You must inform the HTTP request Method and URL on AjaxObject's constructor,
* and, optionally, you can inform your Javascript function witch will receive
* and process the webserver response (callback function) and an array of 
* arguments that will be assigned to each function parameter.
*
* This callback function is necessary also if you (whe think so) intend to 
* process the server's response to add funcionality to your application.
* Without it, your script will not perceive anything absolutely.
* It accept parameters that you have to pass as an array, but simply consider
* as parameter on your callback function.
* 
* You can, optionally, pass request values (as key/value pairs) or request form 
* input objects that will be encoded and can be had access by the webserver.
* 
* Also it's possible to define a function witch will handle the XMLHttpRequest
* object's onreadystatechange event and another function witch will be called
* when something gone wrong, for examplo, request for Page Not Found (404).
* 
* To send an Ajax request, call load() method on your AjaxObject object.
*
* Usage examples:
* <code>
*	getObj = new AjaxObject("GET", "ajaxtest.php"); // request for some URL on GET method - try it with POST too
*	getObj.setCallBackFunction(callback); // defining the callback function
*	getObj.setLoadingFunction(loading); // setting loading function
*	getObj.addRequestValue('foo', 'bar'); // some request parameter
* 	getObj.addRequestObject(document.forms['aForm'].elements['anElement']); // other request parameter
* 	getObj.addAllRequestObjects(document.forms['anotherForm']); // pass all enabled form elements to request
* 	getObj.load(); // sending the assychronous request
* </code>
* 
* @author Jose Berardo <berardo@especializa.com.br>
* @author Eduardo Lundgren <braeker@gmail.com>
* @version 1.0
* @copyleft Jose Berardo - Especializa Treinamentos - www.especializa.com.br
* @copyleft Eduardo Lundgren - Especializa Treinamentos - www.especializa.com.br
*/ 
// class AjaxObject {

	var AjaxObject;
		AjaxObject.INVALID_REQUEST_OBJECT = 1;

	/*
	* AjaxObject Constructor
	* 
	* @param method Request method (GET or POST)
	* @param url url requested on load() function
	* @param xmlResponse enables xml format to response
	* @param callback function inform your script function whitch will receive the server response
	* @see load()
	* @constructor
	*/ 
	function AjaxObject(method, url) {
		// setting attributes
		this.method                 = method;
		this.url                    = url;
		this.requestObjects         = new Array();
		this.requestValues          = new Array();
		this.responseFormat         = (AjaxObject.arguments[2]) ? "xml" : "text";
		this.queue                  = new Array();

		// setting methods
		this.addRequestObject       = addRequestObject;
		this.addRequestValue        = addRequestValue;
		this.setCallBackFunction    = setCallBackFunction;
		this.setLoadingFunction     = setLoadingFunction;
		this.setExceptionFunction   = setExceptionFunction;
		this.buildRequestString     = buildRequestString;
		this.addAllRequestObjects   = addAllRequestObjects;
		this.load                   = load;

		// setting callback function
		this.callBackFunction       = AjaxObject.arguments[3];
		this.callBackArguments      = AjaxObject.arguments[4];
	}
	
	/*
	* AjaxObject's method that adds an input object to pass in the request
	* 
	* @param requestObject
	*/ 
	function addRequestObject(requestObject) {
		this.requestObjects[this.requestObjects.length] = requestObject;
	}
	
	/*
	* AjaxObject's method that adds a key-value pair to pass in the request as a parameter
	* 
	* @param requestObject
	*/ 
	function addRequestValue(requestKey, requestValue) {
		this.requestValues[this.requestValues.length] = new Array(requestKey, requestValue);
	}

	/*
	* AjaxObject's method that sets the Javascript's function
	* assigned to be onreadstatechange event listener
	* 
	* @param callBackFunction
	* @param arrayArguments Some arguments used by the method
	*/ 
	function setCallBackFunction(callBackFunction) {
		this.callBackFunction	= callBackFunction;
		this.callBackArguments	= setCallBackFunction.arguments[1];
	}
	
	/*
	* AjaxObject's method that sets the Javascript's function
	* called within the load() to change loading status
	* 
	* @param loadingFunction
	* @param loadingFunction Your loading function
	*/ 
	function setLoadingFunction(loadingFunction) {
		this.loadingFunction	= loadingFunction;
	}
	
	/*
	* AjaxObject's method that sets the Javascript's function
	* called within the load() when someting gone wrong
	* 
	* @param exceptionFunction
	* @param exceptionFunction Your exception function
	*/ 
	function setExceptionFunction(exceptionFunction) {
		this.exceptionFunction	= exceptionFunction;
	}
	
	/*
	* AjaxObject's method that processes requestObjects and requestValues
	* arrays and builds the return string used on GET's URL or POST's request parameters
	* 
	* @return the new URL string
	*/ 
	function buildRequestString() {
		var regexArray = /.*\[\]/;
		
		returnString = ((this.url.indexOf('?') > 0) ? "&" : "?") + "requestTime=" + new Date().getTime();
		for (x = 0; x < this.requestValues.length; x++) {
			returnString += '&' + this.requestValues[x][0] + '=' + encodeURIComponent(this.requestValues[x][1]);
		}
		for (x = 0; x < this.requestObjects.length; x++) {
			try {
				if (this.requestObjects[x].type == 'select-multiple') {	

					for (var i = 0; i < this.requestObjects[x].options.length; i++) {
						if (this.requestObjects[x].options[i].selected == true) {
							newName = regexArray.test(this.requestObjects[x].name) ? this.requestObjects[x].name : this.requestObjects[x].name + '[]';
							returnString += '&' + newName + '=' + encodeURIComponent(this.requestObjects[x].options[i].value); 
						}
					}
				}
				else{
					returnString += '&' + this.requestObjects[x].name + '=' + encodeURIComponent(this.requestObjects[x].value);
				}
			} catch (e) {
				if (this.exceptionFunction) {
					for (x in e) {alert(x)}
					this.exceptionFunction(AjaxObject.INVALID_REQUEST_OBJECT,
										   'The object ' + x + ' passed is not a valid form input object!');
				}
			}
		}
		return returnString;
	}

	/*
	* AjaxObject's method that adds all fields of a form passed as parameter
	* 
	* @param aForm HTML form object
	*/ 
	function addAllRequestObjects(aForm) {
		for (x = 0; x < aForm.elements.length; x++) {
			if (!aForm.elements[x].disabled) {
				if ((aForm.elements[x].type != 'checkbox' && aForm.elements[x].type != 'radio')
						|| aForm.elements[x].checked){
					this.addRequestObject(aForm.elements[x]);
				}
			}
		}
	}

	/*
	* AjaxObject's method that loads the new thread of XMLHttpRequest
	*/ 
	function load() {
		var xmlHttpRequest = new XmlHttpRequestObject(this);
		returnString  = this.buildRequestString();
		if (this.method.toUpperCase() == "POST") {
			xmlHttpRequest.thread.open("POST", this.url, true);
			xmlHttpRequest.thread.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
			xmlHttpRequest.thread.setRequestHeader('Content-Length',returnString.length);
		} else if (this.method.toUpperCase() == "GET") {
			this.url += this.buildRequestString();
			xmlHttpRequest.thread.open("GET", this.url, true);
		}
		xmlHttpRequest.thread.send(returnString);

		xmlHttpRequest.thread.onreadystatechange = function() {
			if (xmlHttpRequest.thread.readyState == 0) { state = 'uninitialized' }
			if (xmlHttpRequest.thread.readyState == 1) { state = 'loading' }
			if (xmlHttpRequest.thread.readyState == 2) { state = 'loaded' }
			if (xmlHttpRequest.thread.readyState == 3) { state = 'interactive' }
			if (xmlHttpRequest.thread.readyState == 4) { state = 'complete' }
			if (xmlHttpRequest.ajaxObject.loadingFunction) xmlHttpRequest.ajaxObject.loadingFunction(state);
			
			if (xmlHttpRequest.thread.readyState == 4) {
				if (xmlHttpRequest.thread.status == 200) {
					params = "";
					if (xmlHttpRequest.ajaxObject.callBackArguments) {
						for (x = 0; x < xmlHttpRequest.ajaxObject.callBackArguments.length; x++) {
							params += ", xmlHttpRequest.ajaxObject.callBackArguments[" + x + "]";
						}
					}
					if (xmlHttpRequest.ajaxObject.callBackFunction) {
						if (xmlHttpRequest.ajaxObject.responseFormat == 'text')
							eval("xmlHttpRequest.ajaxObject.callBackFunction( unescape(xmlHttpRequest.thread.responseText)" + params + " )");
						else 
							eval("xmlHttpRequest.ajaxObject.callBackFunction( unescape(xmlHttpRequest.thread.responseXML)" + params + " )");
					}
				} else {
					if (xmlHttpRequest.ajaxObject.exceptionFunction) {
						eval("xmlHttpRequest.ajaxObject.exceptionFunction(xmlHttpRequest.thread.status, xmlHttpRequest.thread.statusText)");
					}
				}
			}
			
		}
	}

// }

/*
* Private class to help AjaxObject in its job
*
*/
// private class XmlHttpRequestObject {

	/*
	* XmlHttpRequestObject Constructor
	* 
	* @param callBackFunction function loaded when response status code is 200 - OK
	* @param callBackArguments array of arguments passed to the callback function
	* @param loadingFunction function called on every change of request state
	*/ 
	function XmlHttpRequestObject(ajaxObject) {
		try { this.thread = new XMLHttpRequest(); }
		catch(e) { try {this.thread = new ActiveXObject("Microsoft.XMLHTTP");} catch(e) {} }
		
		this.ajaxObject	= ajaxObject;
	}
	
function aaa(){
	alert('aew');
}
// }
// JavaScript Document

