// VERIFICAR CODIFICACION UTF-8
function encode(v){
	return escape(v).replace(/\+/ig, '%2B').replace(/\//ig, '%2F');
}
function newAjax(){ 
	var xmlhttp=false; 
	try { 
		// No IE
		xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); 
	}catch(e){ 
		try{ 
			// IE 
			xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
		} 
		catch(E) { xmlhttp=false; }
	}
	if (!xmlhttp && typeof XMLHttpRequest!="undefined") { xmlhttp=new XMLHttpRequest(); } 
	return xmlhttp; 
}

function showFailure(originalRequest){
	alert('Error 404: location "' + originalRequest.statusText + '" was not found.')
//	var loader
//	loader = $("loader")
// 	$('loader').style.display = 'none';
}

function showLoad () {
//	$('loader').style.display = 'block';
//	$('loader').innerHTML  = '<IMG src="images/ajax-loader.gif" ALIGN="absmiddle"  /> Cargando....';
}

function showResponse () {
//	alert(originalRequest.responseText);
//	$('loader').style.display = 'none';
//	$('loader').innerHTML  = 'Terminado';
}

// ENVIA ACTUALIZACIONES AL CLIENTE
function ajaxUpdater(layer,url,params) {
    var obj = {
		asynchronous: true,
		evalScripts: true,
        method: 'post',
		parameters: params,
		onLoading: showLoad, 
		onComplete: showResponse,
        onFailure: function (resp,result) { alert("Error of Connection:\n"+ resp.responseText); }
    }
    var myAjax = new Ajax.Updater ( layer, url, obj );
}
// ENVIA SOLICITUDES AL SERVIDOR
function ajaxRequest( url, data, msgAction, Parametros, Content, Page ){
	ajax = newAjax();
	ajax.open("POST", url,true);
	ajax.onreadystatechange=function() {
		showLoad(Content);
		if (ajax.readyState==4) {
			if (ajax.status == 200) {
				if(ajax.responseText!="OK"){
					alert(ajax.responseText);
				}else{
					ajaxUpdater(Content,Page+"?"+Parametros+'&msgAction='+msgAction,'');
				}
			} else {
				alert("An error occurred: "+ newAjax.statusText);
			}
		}
		showResponse();
	}
	ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
	ajax.send(data);
}

function getSelectedRadio( frmName, srcGroupName ) {
	var form = eval( 'document.' + frmName );
	var srcGroup = eval( 'form.' + srcGroupName );
	if (srcGroup[0]) {
		for (var i=0, n=srcGroup.length; i < n; i++) {
			if (srcGroup[i].checked) {
				return srcGroup[i].value;
			}
		}
	} else {
		if (srcGroup.checked) {
			return srcGroup.value;
		} // if the one button is checked, return zero
	}
   // if we get to this point, no radio button is selected
   alert('PLEASE CHOOSE AN ITEM ON THE LIST');
   return false;
}

/**
* Obtener el value de una lista
*
* @param Nombre del formulario
* @param nombre de la lista
* return value del item seleccionado o null si no ha seleccionado
*/

function getSelectedValue( frmName, srcListName ) {
	var form = eval( 'document.' + frmName );
	var srcList = eval( 'form.' + srcListName );
	i = srcList.selectedIndex;
	if (i != null && i > 0) {
		return srcList.options[i].value;
	} else {
		alert("SELECT A VALUE ON THE LIST: "+srcList.title);
		return null;
	}
}
/**
* Obtener el/los value(s) de una lista
*
* @param Nombre del formulario
* @param nombre de la lista
* return value del (los) item (s) seleccionado (s) o null si no ha seleccionado
*/
function getSelectedMultiValue( frmName, srcListName ) {
	var form = eval( 'document.' + frmName );
	var srcList = eval( 'form.' + srcListName );
	var selected = new Array();
	var index = 0;
	for (var intLoop = 0; intLoop < srcList.length; intLoop++) {
	   if ((srcList[intLoop].selected) ||
		   (srcList[intLoop].checked)) {
		  index = selected.length;
		  selected[index] = srcList[intLoop].value;
	   }
	}
	if(selected.length > 0){
		return selected;
	}else{
		return null;	
	}
}
/**
* Mover de posicion item de lista
*
* @param Nombre del formulario
* @param nombre de la lista
* @param posicion actual del item selecionado
* @param posicion a la cual mover el item selecionado
*/
function moveInList( frmName, srcListName, index, to) {
	var form = eval( 'document.' + frmName );
	var srcList = eval( 'form.' + srcListName );
	var total = srcList.options.length-1;
	if (index == -1) {
		return false;
	}
	if (to == +1 && index == total) {
		return false;
	}
	if (to == -1 && index == 0) {
		return false;
	}
	var items = new Array;
	var values = new Array;
	for (i=total; i >= 0; i--) {
		items[i] = srcList.options[i].text;
		values[i] = srcList.options[i].value;
	}
	for (i = total; i >= 0; i--) {
		if (index == i) {
			srcList.options[i + to] = new Option(items[i],values[i], 0, 1);
			srcList.options[i] = new Option(items[i+to], values[i+to]);
			i--;
		} else {
			srcList.options[i] = new Option(items[i], values[i]);
	   }
	}
	srcList.focus();
}

/****** VERIFICACION DE CAMPOS ************************/
// VACIO
function vacio(variable){
	if(variable.value.length > 0){
		return true;
	}else{
		alert("Enter a value in the field: " + variable.name.toUpperCase());
		variable.value="";
        variable.focus();
		return false;
	}
}
//NUMEROS OBLIGATORIO
function valnumeros(variable){
	var campo_valido =  /^([0-9]|\.)+$/
	if(!campo_valido.test(variable.value)){
		alert('The contents of the field ' + variable.name.toUpperCase() + " is not valid.");
		variable.value="";
        variable.focus();
		return false;
	}else{
		return true;
	}
}
/****** VERIFICACION DE EMAIL *******/
function valemail(variable){
	var campo_valido =  /^(.+\@.+\..+)$/
	if(!campo_valido.test(variable.value)){
		alert('The contents of the field ' + variable.name.toUpperCase() + " is not valid.");
		variable.value="";
        variable.focus();
		return false;
	}else{
		return true;
	}
}
/* standard small functions */
function $m(quem){
 return document.getElementById(quem);
}
function remove(quem){
 quem.parentNode.removeChild(quem);
}
function addEvent(obj, evType, fn){
 // 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 ); }
} 
/* THE UPLOAD FUNCTION */
function micoxUpload(form,url_action,id_element,html_show_loading,html_error_http){
 //testing if 'form' is a html object or a id string
 form = typeof(form)=="string"?$m(form):form;
 
 var erro="";
 if(form==null || typeof(form)=="undefined"){ erro += "The form of 1st parameter does not exists.\n";}
 else if(form.nodeName.toLowerCase()!="form"){ erro += "The form of 1st parameter its not a form.\n";}
 if($m(id_element)==null){ erro += "The element of 3rd parameter does not exists.\n";}
 if(erro.length>0) {
  alert("Error in call micoxUpload:\n" + erro);
  return;
 }

 //creating the iframe
 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;");
 
 //add to document
 form.parentNode.appendChild(iframe);
 window.frames['micox-temp'].name="micox-temp"; //ie sucks
 
 //add event
 var carregou = function() { 
   removeEvent( $m('micox-temp'),"load", carregou);
   var cross = "javascript: ";
   cross += "window.parent.$m('" + id_element + "').innerHTML = document.body.innerHTML; void(0); ";
   
   $m(id_element).innerHTML = html_error_http;
   $m('micox-temp').src = cross;
   //del the iframe
   setTimeout(function(){ remove($m('micox-temp'))}, 250);
  }
 addEvent( $m('micox-temp'),"load", carregou)
 
 //properties of 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");
 //submit
 form.submit();
 //while loading
 if(html_show_loading.length > 0){
  $m(id_element).innerHTML = html_show_loading;
 }
}

// UPLOAD DE IMAGENES 2


