/* funçõezinhas padrão pra facilitar */
function $m(quem)
{ 
	//apelido só pra não ficar repetindo o document.getElementById 
	return document.getElementById(quem)
}


function remove(quem)
{ 
	quem.parentNode.removeChild(quem);
}

function addEvent(obj, evType, fn)
{ 
	//o velho do elcio.com.br/crossbrowser    
	if (obj.addEventListener)
		obj.addEventListener(evType, fn, true)    
	if (obj.attachEvent)        
		obj.attachEvent("on"+evType, fn)
}

function removeEvent( obj, type, fn ) 
{  
	if ( obj.detachEvent ) 
	{    
		obj.detachEvent( 'on'+type, fn );  
	} 
	else 
	{    
		obj.removeEventListener( type, fn, false ); 
	}
} 

function mainUpload(form,url_action,id_elemento_retorno,html_exibe_carregando,html_erro_http)
{
	
	form = typeof(form)=="string"?$m(form):form;	
	var erro=""; 
	
	//testando se passou o ID ou o objeto mesmo
	if(form==null || typeof(form)=="undefined")
	{ 
		erro += "O form passado no 1o parâmetro não existe na página.\n";
	} 
	else if(form.nodeName!="FORM")
	{ 
		erro += "O form passado no 1o parâmetro da função não é um form.\n";
	} 
	if($m(id_elemento_retorno)==null)
	{ 
	erro += "O elemento passado no 3o parâmetro não existe na página.\n";
	} 
	if(erro.length>0) 
	{  
		alert("Erro ao chamar a função mainUpload:\n" + erro);  
		return; 
	}	


	var iframe = document.createElement("iframe"); 
	iframe.setAttribute("id","micox-temp"); 
	iframe.setAttribute("name","micox-temp"); 
	iframe.setAttribute("width","0"); 
	iframe.setAttribute("height","0"); 
	iframe.setAttribute("border","0"); 	
	iframe.setAttribute("style","width: 0; height: 0; border: none;"); 
	
	//adicionando ao documento 
	form.parentNode.appendChild(iframe); 
	window.frames['micox-temp'].name="micox-temp"; //ie sucks 

	//adicionando o evento ao carregar
	var carregou = function() 
	{
		removeEvent( $m('micox-temp'),"load", carregou);
		var cross = "javascript: ";
		cross += "window.parent.$m('" + id_elemento_retorno + "').innerHTML = document.body.innerHTML; void(0); ";
	
	
		$m(id_elemento_retorno).innerHTML = html_erro_http;
		$m('micox-temp').src = cross;
		//deleta o iframe
		setTimeout(function(){ remove($m('micox-temp'))}, 250);
 	}	 
 
 	addEvent( $m('micox-temp'),"load", carregou) 	
	
 	//setando propriedades do form 
 	form.setAttribute("target","micox-temp"); 
	form.setAttribute("action",url_action); 
	form.setAttribute("method","post"); 
	form.setAttribute("enctype","multipart/form-data"); 
	form.setAttribute("encoding","multipart/form-data"); 
	//submetendo 
	form.submit();	
	
	//se for pra exibir alguma imagem ou texto enquanto carrega 
	if(html_exibe_carregando.length > 0)
	{  
		$m(id_elemento_retorno ).innerHTML = html_exibe_carregando; 
	}
	
	
}






