
function generar_cropper(id_imagen) {
	/*
	 * Genero el cropper asignándole ancho y alto y declaro los campos donde voy a guardar
	 * las coordenadas y tamaños de la selección
	 */
	new ImageSelect(id_imagen,
									{
									  onEndCrop: function(coords) {
										  	$(id_imagen+'_x').setProperties({ value: coords.x1 });
												$(id_imagen+'_y').setProperties({ value: coords.y1 });
										  	$(id_imagen+'_ancho').setProperties({ value: coords.x2 - coords.x1 });
												$(id_imagen+'_alto').setProperties({ value: coords.y2 - coords.y1 });
									  	},
										startCoords: [0, 0],
							      startWidthHeight: [$(id_imagen+'_ancho').getValue().toInt(), $(id_imagen+'_alto').getValue().toInt()],
							      displayOnInit: true,
										minWidth: $(id_imagen+'_ancho_min').getValue(),
										maxWidth: $(id_imagen+'_ancho_max').getValue(),
										minHeight: $(id_imagen+'_alto_min').getValue(),
										maxHeight: $(id_imagen+'_alto_max').getValue()
  								});
}

function reload_foto(id_imagen, id_capa_imagen, imagen) {
	/*
	 * Recupero el ancho y alto de la imágen por si estaba ya redimensionada
	 */
	 
	tamano=$(id_imagen).getSize();
	valor_x=tamano['size']['x'];
	valor_y=tamano['size']['y'];
	
	/*
	 * Vuelvo a generar la imágen
	 */
	 
	$(id_capa_imagen).setHTML('');
	$(id_capa_imagen).setHTML('<a href="javascript:redimensionar();" onDblClick="hacer_resizable(\''+id_imagen+'\',\''+id_capa_imagen+'\',\''+imagen+'\');"><img id="'+id_imagen+'" class="imagen_editable" style="width:'+valor_x+'px;height:'+valor_y+'px;" src="'+imagen+'" /></a>');

	$(id_imagen+'_x').setProperties({ value: 0 });
	$(id_imagen+'_y').setProperties({ value: 0 });
}

function redimensionar() {
	a = 'esta funcion no hace nada, solo se usa para evitar la navegacion del link.';
}

function generar_seleccion_cropper(id_imagen, id_capa_imagen, imagen) {
	/*
	 * Recargo la foto porque sino da problemas y se queda el cropper antigüo
	 */
	 
	 reload_foto(id_imagen, id_capa_imagen, imagen);
	
	/*
	 * Llamo a la función que me genera el cropper
	 */
	 
	 $(id_imagen).onload = function() { generar_cropper(this.id); }
}

function ajustar_proporcion(id_imagen, id_capa_imagen, imagen) {
	if($('check_'+id_imagen).getValue()) {
		temp_width = $('temp_width').getValue();
		temp_height = $('temp_height').getValue();
		tam = $(id_imagen).getSize();
		actual_width = tam['size']['x'];
		actual_height = tam['size']['y'];
		
		prop_width = actual_width;
		prop_height = (prop_width * temp_height) / temp_width;
		if(prop_height<actual_height) {
			prop_height = actual_height;
			prop_width = (prop_height * temp_width) / temp_height;
		}
		
		$(id_imagen).setStyle( 'width', prop_width );
		$(id_imagen).setStyle( 'height', prop_height );
		if(prop_width > $(id_imagen+'_ancho_max').getValue()) {
			$(id_imagen+'_ancho').setProperty( 'value', $(id_imagen+'_ancho_max').getValue() );
		}else if(prop_width < $(id_imagen+'_ancho_min').getValue()) {
			$(id_imagen+'_ancho').setProperty( 'value', $(id_imagen+'_ancho_min').getValue() );
		} else {
			$(id_imagen+'_ancho').setProperty( 'value', prop_width );
		}
		if(prop_height > $(id_imagen+'_alto_max').getValue()) {
			$(id_imagen+'_alto').setProperty( 'value', $(id_imagen+'_alto_max').getValue() );
		}else if(prop_height < $(id_imagen+'_alto_min').getValue()) {
			$(id_imagen+'_alto').setProperty( 'value', $(id_imagen+'_alto_min').getValue() );
		} else {
			$(id_imagen+'_alto').setProperty( 'value', prop_height );
		}
	}
	generar_seleccion_cropper(id_imagen, id_capa_imagen, imagen);
}

function hacer_resizable(id_imagen, id_capa_imagen, imagen) {
	/*
	 * Recargo la foto porque sino da problemas y se queda el cropper antigüo
	 */
	
	reload_foto(id_imagen, id_capa_imagen, imagen);
	
	/*
	 * Le doy a la imágen la propiedad para poder redimensionarla
	 */
	 
	$(id_imagen).makeResizable( {
		limit:	{
							x: [$(id_imagen+'_ancho_min').getValue(), $(id_imagen+'_ancho_max').getValue() * 3],
							y: [$(id_imagen+'_alto_min').getValue(), $(id_imagen+'_alto_max').getValue() * 3]
						},
		onComplete: function()	{
															ajustar_proporcion(id_imagen, id_capa_imagen, imagen);
														}
	} );
}

function enviar_formulario_imagenes(id_formulario) {
	for (i=0 ; i<document.images.length ; ++i) {
		imagen = document.images[i];
		if( imagen.className == 'imagen_editable' ) {
			$(imagen.id+'_width').setProperties({ value: imagen.width });
			$(imagen.id+'_height').setProperties({ value: imagen.height });
		}
	}
	submit_formulario( document.getElementById(id_formulario) );
}

function seguro_borrar(id_j_frame, servicio, otros_parametros, run_js, codificacion){
 	if (confirm('Desea borrar el elemento')){
    ir_a(id_j_frame, servicio, otros_parametros, run_js, codificacion);
	}
}

function seguro_borrar_seleccion(id_j_frame, id_formulario){
	if (!comprobar_seleccion(id_formulario)) {
		show_error('Debe seleccionar algun registro');
	}else if (confirm('Desea borrar los registros seleccionados')){
		ir_a_formulario(id_j_frame, id_formulario);
	}
}

function seleccionar_todos(id_formulario,valor)
{
	for (var i=0;i < document.forms[id_formulario].elements.length;i++) {
		if (document.forms[id_formulario].elements[i].type == "checkbox") {
			 document.forms[id_formulario].elements[i].checked =valor;
		}
	}	
}

function comprobar_seleccion(id_formulario)
{
	for (var i=0;i < document.forms[id_formulario].elements.length;i++) {
		  if (document.forms[id_formulario].elements[i].type == "checkbox") {
			   if (document.forms[id_formulario].elements[i].checked) {
			       return true;
		     }  
		  }
	}
	return false;	
}
