function $m(quem){
	
	return document.getElementById(quem);
	
}

function remove(quem){
	
	quem.parentNode.removeChild(quem);
 
}

function addEvent(obj, evType, fn){

	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 micoxUpload(form,url_action,id_elemento_retorno,html_exibe_carregando,html_erro_http){
	
	form = typeof(form)=="string"?$m(form):form;
	
	var erro="";
	
	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 micoxUpload:\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;");
	
	form.parentNode.appendChild(iframe);
	window.frames['micox-temp'].name="micox-temp";
	
	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;
		
		setTimeout(function(){ remove($m('micox-temp'))}, 1000);
	
	}
	
	addEvent( $m('micox-temp'),"load", carregou)
	
	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");
	
	form.submit();	
	
	if(html_exibe_carregando.length > 0){
	 
		$m(id_elemento_retorno ).innerHTML = html_exibe_carregando;
	
	}
 
}
