
function activar_input(campo) {
	if( ! campo.id ) { campo.id = campo.name; }
	var jframe_input = $(campo.id);
	var jframe_inputFx = jframe_input.effect('background-color', {wait: false});
	jframe_inputFx.start('#FFFFFF');
	jframe_inputFx.start('#e28ac3').chain(jframe_inputFx.start.pass('#FFFFFF', jframe_inputFx));
}

function desactivar_segundo_estado(id_j_frame,class_name ) {
 $ES('a',id_j_frame).each( function(enlace) {
 	      if(enlace.className==class_name+'_sel'){enlace.className=class_name;}
 	 }
 )
}

function activar_segundo_estado(id_j_frame,id_elemento,class_name ) {
  desactivar_segundo_estado(id_j_frame,class_name )
  $(id_elemento).className=class_name+'_sel';
}

function dispara_evento(id_elemento,name_evento) {
	sentencia = $(id_elemento).getProperty(name_evento);
	if(sentencia) {
		sentencia = sentencia.replace('this', "$('"+id_elemento+"')");
		eval( sentencia );
	}
}

/** function prepara_scroll(id_j_frame)
 * si queremos hacer un scroll con o sin barra los requisitos son:
		1) El scroll estara formado por dos capas:
			a) La capa contenedora que tiene un ancho y alto concreto y position:relative o absolute (como queramos)
					Ademas tendra overflow:hidden
					La capa contededora debe tener el className 'scroller_undanet' y el id que queramos (por ejemplo 'myid').
			b) La capa que tiene el contenido que tendra un ancho fijo y el alto dependera de su contenido
					Su position debe ser absolute.
					La capa de contenido debe tener el className 'Scroller-Container' y el id debe ser el de la contenedora
					con '_contenido' (por ejemplo 'myid_contenido').
		2) Si ademas queremos que tenga barra de scroll tendremos una capa con el id de la capa contenedora del scroll
					seguido de '_barra' (por ejemplo 'myid_barra').
					esta capa tendra los botones de subir y bajar (si no se quieren poner no son obligatorios) y la capa
					que determina el carril de scroll, dentro de esta capa de carril estara la capa que determina la pieza que
					podremos mover por el carril para desplazar el scroll. Siguiendo el ejemplo tendriamos:
						<div id="myid_barra">
							<a href="javascript:;" class="Scrollbar-Up"></a>
							<div class="Scrollbar-Track">
								<a href="javascript:;" class="Scrollbar-Handle"></a>
							</div>
							<a href="javascript:;" class="Scrollbar-Down"></a>
						</div>
					como se puede ver es obligatorio que los className de los componentes que forman la barra de scroll sean
					los del ejemplo ('Scrollbar-Up', 'Scrollbar-Track', 'Scrollbar-Handle', 'Scrollbar-Down') aun así
					podemos incluir otros estilos css para darle el aspecto visual deseado.
**/
function prepara_scroll(id_j_frame) {
	$ES('.scroller_undanet',id_j_frame).each( function(scroller) {
		if( $(scroller.id + '_contenido') ) {
				var contenido = $(scroller.id + '_contenido'); // sin el var en IE falla
				if( scroller.offsetHeight + 10 < contenido.offsetHeight ) {
						/* necesitamos el scroller porque el contenido es mas grande que el marco */
						var width_scroller = scroller.getStyle('width').toInt();
						var height_scroller = scroller.getStyle('height').toInt();
						var obj_scroller = new jsScroller( contenido, width_scroller, height_scroller );
						if( $(scroller.id + '_barra') ) {
								var barra = $(scroller.id + '_barra');
								barra.setStyle('visibility','visible');
								barra.setStyle('display','block');
								var obj_scrollbar = new jsScrollbar(barra, obj_scroller, false, false , 'Scrollbar-Up', 'Scrollbar-Down', 'Scrollbar-Track', 'Scrollbar-Handle' );
						}
				} else if( $(scroller.id + '_barra') ) {
						var barra = $(scroller.id + '_barra');
						barra.setStyle('visibility','hidden');
						barra.setStyle('display','none');
				}
		}
	} );
}

/** function prepara_efecto_alargado(id_j_frame)
	Establece un efecto de carga que estira las capas con className 'alargado'
**/
function prepara_efecto_alargado(id_j_frame) {
	$ES('.alargado',id_j_frame).each(function(barra){
		var w = barra.getStyle('width').toInt();
		var fx = barra.effects({
			duration: 1000,
			transition: Fx.Transitions.Back.easeOut 
		});
		fx.start({
			'opacity': [0, 1],
			'width': [0, w]
		})
	});
}

/** function prepara_calendario(id_j_frame)
	Establece el calendario js para aquellos input con un id que lo identifique y el className 'calendario_undanet'
	Si queremos que solo permita seleccionar fechas pasadas o solo fechas futuras fijaremos la propiedad direction="-1"
	o direction="1" respectivamente.
**/
function prepara_calendario(id_j_frame) {
	$ES('.calendario_undanet',id_j_frame).each( function(calendario) {
		var id_calendario = calendario.id.toString();

		Calendar.setup( {
			inputField : id_calendario,
			ifFormat : '%d/%m/%Y',
			align:'bR',
			step: 1,
			firstDay: 1
		} );
		
	} );
}

/** function prepara_textarea(id_j_frame)
			siempre que haya un textarea en un formulario con
			el class='editor_undanet_myid' donde 'myid' sea el id del textarea
			automaticamente lo transforma en un editor visual
**/
function prepara_textarea(id_j_frame) {
	$ES('textarea',id_j_frame).each( function(tipo_textarea) {
		if(tipo_textarea.hasClass('editor_undanet_'+tipo_textarea.id)) {
			tinyMCE.init({
				mode : "textareas",
				theme : "advanced",
				language : "es",
				plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
				theme_advanced_buttons1 : "bold,italic,underline,separator,link,justifyleft,justifycenter,justifyright, justifyfull",
				theme_advanced_buttons2 : "",
				theme_advanced_buttons1_add: "pastetext,pasteword",
				theme_advanced_toolbar_location : "top",
				theme_advanced_toolbar_align : "left",
				theme_advanced_resizing : true,
				apply_source_formatting : false,
				width : "254",
				editor_selector : 'editor_undanet_'+tipo_textarea.id
			});
		}
	} );
}

function cambia_pais(pais,capaboton,capacaja) {
	if(pais==724) {
		capaboton =document.getElementById(capaboton).style;
		capaboton.display = "block";
		$('d_local_localidad').value = 'Selecciona la localidad';
		$('d_local_localidad').readOnly = true;
	} else {
		capaboton =document.getElementById(capaboton).style;
		capaboton.display = "none";
		$('d_local_localidad').readOnly = false;
		$('d_local_localidad').value = '';
		$('d_local_localidad').focus();
	}
}
function vacia_subcategoria(id_caja,id_caja_oculta) {
	document.getElementById(id_caja).value='';
	document.getElementById(id_caja_oculta).value='';
}

function validarEnter(oEvento) {
 if (oEvento.keyCode == 13) {   // Para que directamente funcione el ENTER = Tabulador
 
  return true; 
 }
 return false;
}

