// Funciones JavaScript
///////////////=======================================================================//////////////////
//Funciones --> Confirmar eliminado - Gestiones varias

function borrarcomentario(id){
	if (confirm("¿Esta seguro que desea eliminar el comentario?")){
		location.href="index.php?page=comentario_borrar&idcom=" + id;
	}
}

function borraroferta(id){
	if (confirm("¿Esta seguro que desea eliminar la Oferta?")){
		location.href="index.php?page=oferta_borrar&n_oferta=" + id;
	}
}

function borrarusuario(id){
	if (confirm("¿Esta seguro que desea eliminar al Usuario?")){
		location.href="index.php?page=usuario_borrar&idusuario=" + id;
	}
}

function borrarproducto(id){
	if (confirm("¿Esta seguro que desea eliminar el producto?")){
		location.href="index.php?page=productos_borrar&cod_p=" + id;
	}
}

function borrarhistorico(id){
	if (confirm("¿Esta seguro que desea eliminar esa fila del historial?")){
		location.href="index.php?page=historial_borrar&n_auditoria=" + id;
	}
}

function borrarhistorial(){
	if (confirm("¿Esta seguro que desea eliminar el historial completo?")){
		location.href="index.php?page=historial_destruir";
	}
}
//Fin Funciones --> Confirmar eliminado - Gestiones varias

///////////////=======================================================================//////////////////

//Funcion que mediante otro archivo php comprueban.
//si existe el nombre de usuario.
function comprobarusr(){
	//nombre de la capa donde mostramos el mensaje
	var target="mensaje";
	//nombre del php en la que hago la comprobacion
	var url="usuario_comprobar_usuario.php?usuario=" + document.formulario_registro.usuario.value;
	//Ejecutar el AJAX
	new Ajax.Updater(target,url);
}//Fin Funcion

///////////////////////////////////////////

function comprobarclave(){
	with(document.formulario){
			var conte1=(nuevaclave.value);
			var conte2=(repetirclave.value);
		//Validar tamaño campo clave
		var tma=(nuevaclave.value.length);
		if ((tma<6)||(tma>12)){
			alert ('la clave debe tener entre 6 y 12 caracteres');
			nuevaclave.value="";
			repetirclave.value="";
			nuevaclave.focus()
			return false;
		}
		if (conte1 != conte2){
				alert ('las contraseñas no coinciden');
				nuevaclave.value="";
				repetirclave.value="";
				nuevaclave.focus()
				return false;
			}	
		}//fin with
	return true;
}// fin function

////////////////////////

function comprobar(){
	with(document.formulario_registro){
		//Comprobar campo usuario
		if (usuario.value!="")
		{
			if (isNaN(usuario.value)==false)
			{
				alert ("El campo 'Usuario' no puede empezar por un caracter numerico");
				usuario.value="";
				usuario.focus()
				return false;
			}
		}else{
			alert ("El campo 'Usuario' está vacio");
			usuario.focus()
			return false;
		}
		
		//Validar tamaño campo clave
		var tama=(clave.value.length);
		if ((tama<6)||(tama>12)){
			alert ('la clave debe tener entre 6 y 12 caracteres');
			clave.value="";
			clave2.value="";
			clave.focus()
			return false;
		}
		
		//Validar que las claves no esten vacias
		var contenido=(clave.value);
		var contenido2=(clave2.value);
		if ((contenido=="")&&(contenido2==""))
		{
			alert ('la contraseña no puede estar vacia');
			clave.focus()
			return false;
		}
		
		//Validar que las claves sean iguales
		if (contenido != contenido2)
		{
			alert ('las contraseñas no coinciden');
			clave.value="";
			clave2.value="";
			clave.focus()
			return false;
		}
		
		//Comprobar campo nombre	
		var tama2=(nombre.value.length);
		if (nombre.value!="")
		{
			if (isNaN(nombre.value)==false)
			{
				alert ("El campo 'Nombre' no puede empezar por un caracter numerico");
				nombre.value="";
				nombre.focus()
				return false;
			}else if ((tama2<3)||(tama2>12)){
				alert ('el nombre debe tener entre 3 y 12 caracteres');
				nombre.value="";
				nombre.focus()
				return false;
			}
		}else{
			alert ("El campo 'Nombre' está vacio");
			nombre.focus()
			return false;
		}
		
			//Comprobar campo apellidos	
		var tama3=(apellidos.value.length);
		if (apellidos.value!="")
		{
			if (isNaN(apellidos.value)==false)
			{
				alert ("El campo 'Apellidos' no puede empezar por un caracter numerico");
				apellidos.value="";
				apellidos.focus()
				return false;
			}else if ((tama3<7)||(tama3>20)){
				alert ('el apellido debe tener entre 7 y 20 caracteres');
				apellidos.value="";
				apellidos.focus()
				return false;
			}
		}else{
			alert ("El campo 'Apellidos' está vacio");
			apellidos.focus()
			return false;
		}
		
		//Validar campo email
		var valor=document.getElementById('email').value;
		 if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor))
		 {
                //alert("La dirección de email " + valor + " es correcta.");
         }else{
                alert("La dirección de email es incorrecta. ><");
                email.focus
                return false;
		 }
		
	}//fin with
	return true;
}
//////////////////////////////////////////////

function valorarconfig(){
	with(document.form_usuconfgu){

		//Comprobar campo nombre	
		var tama2=(usunombre.value.length);
		if (usunombre.value!="")
		{
			if (isNaN(usunombre.value)==false)
			{
				alert ("El campo 'Nombre' no puede empezar por un caracter numerico");
				usunombre.value="";
				usunombre.focus()
				return false;
			}else if ((tama2<3)||(tama2>12)){
				alert ('el nombre debe tener entre 3 y 12 caracteres');
				usunombre.value="";
				usunombre.focus()
				return false;
			}
		}else{
			alert ("El campo 'Nombre' está vacio");
			usunombre.focus()
			return false;
		}
		
		//Comprobar campo apellidos
		var tama3=(apellidos.value.length);
		if (apellidos.value!="")
		{
			if (isNaN(apellidos.value)==false)
			{
				alert ("El campo 'Apellidos' no puede empezar por un caracter numerico");
				apellidos.value="";
				apellidos.focus()
				return false;
			}else if ((tama3<7)||(tama3>20)){
				alert ('el apellido debe tener entre 7 y 20 caracteres');
				apellidos.value="";
				apellidos.focus()
				return false;
			}
		}else{
			alert ("El campo 'Apellidos' está vacio");
			apellidos.focus()
			return false;
		}
		
		//Validar campo email
		var valor=document.getElementById('email').value;
		 if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor))
		 {
                //alert("La dirección de email " + valor + " es correcta.");
         }else{
                alert("La dirección de email es incorrecta. ><");
                email.focus
                return false;
		 }

	}//fin with
	return true;
}

//////////////////////////////////////////////

//Bucador gestion productos - desplegable
function cargaproductos(id){
	var capa = "prod";
	var pagina = "cargaproductos.php?cod_f=" + id;
	new Ajax.Updater(capa,pagina);
}

function cargabuscaproductoselect(id){
	var capa = "buscaprod";
	var pagina = "buscaproductoselect.php?cod_p=" + id;
	new Ajax.Updater(capa,pagina);
}

//Buscador gestoin historial - desplegable
function cargahistorial(id){
	var capa = "histofec";
	var pagina = "cargahistorial.php?fecha=" + id;
	new Ajax.Updater(capa,pagina);
}

function cargahistoaccion(id){
	var capa = "histoFecAc";
	var Hisvector = new Array(2);
	Hisvector = id.split('*');
	var pagina = "buscahistorialselect.php?fecha=" + Hisvector[1].toString() + "&accion=" + Hisvector[0].toString();
	new Ajax.Updater(capa,pagina);
}

//////////////////////////////////////////////
//Pc a Medida
//////////////////////////////////////////////

//pedimos el numero y el # de decimales
function clipFloat(num,decimales){
	//creamos variable local String
	var t=num+"";
	/*Al string lo delimitamos desde 0 (inicio) hasta el punto, mas los decimales y 1 (el punto), y lo convertimos a numero flotante (real)
	*/
	num = parseFloat(t.substring(0,(t.indexOf(".")+decimales+1)));
	//regresamos el valor
	return (num)
} 

//Cargamos precio unitario del producto
function cargaprod_precio(id,id2){
	var precio=(parseFloat(id2));
	var precio_fin=clipFloat(precio,3);
	var nombre='precio'+id;
	var nombre2='pre_uni'+id;//precio unitario
	document.getElementById(nombre).value=precio_fin;
	document.getElementById(nombre2).value=precio_fin;
	sum_precio()
}

//Cargamos precio con cantidad de producto
function mul_precio(id,id2){
	var nombre='precio'+id;
	var nombre2='pre_uni'+id;//precio unitario
	var n=parseFloat(document.getElementById(nombre2).value);
	var mul=parseFloat(id2);
	var precio=n*mul;
	var precio_fin=clipFloat(precio,3);
	document.getElementById(nombre).value=precio_fin;
	sum_precio()
}

//Cargamos el total de todo lo seleccionado
function sum_precio(){
	var n=0;
	for(i=1;i<=26;i++){
		n=n+parseFloat(document.getElementById('precio_'+i).value);
	}
	var total_fin=clipFloat(n,3);
	document.getElementById('precio_total').value=total_fin;
	
}//////////////////////////////////////////////
//Fin Pc a Medida
//////////////////////////////////////////////

///////////////=======================================================================//////////////////

//Funciones --> Popup Productos
var miVentana;

function Ventana_Prod(ref) {
	var titulo = "Ficha_Técnica";
    var width = 500;
    var height = 400;
    var left = parseInt((screen.availWidth/2) - (width/2));
    var top = parseInt((screen.availHeight/2) - (height/2));
    var windowFeatures = "width=" + width + ",height=" + height + ",status,resizable,left=" + left + ",top=" + top + "screenX=" + left + ",screenY=" + top + ", scrollbars=1";
    miVentana = window.open("producto_detalle.php?cod_p="+ref,titulo,windowFeatures);
}

var miOtraVentana;

function Ventana_Prod_Fot(ref) {
	var titulo = "Foto_ampliada";
    var width = 700;
    var height = 570;
    var left = parseInt((screen.availWidth/2) - (width/2));
    var top = parseInt((screen.availHeight/2) - (height/2));
    var windowFeatures = "width=" + width + ",height=" + height + ",status,resizable=0,left=" + left + ",top=" + top + "screenX=" + left + ",screenY=" + top + ", scrollbars=1";
    miOtraVentana = window.open("producto_detalle_fotoFULL.php?foto="+ref,titulo,windowFeatures);
    //miOtraVentana = window.open("images/productos/"+ref+".jpg",titulo,windowFeatures);
}
//Fin Funciones --> Popup Productos

///////////////=======================================================================//////////////////

//Funciones --> Popup Ofertas
var miVentana2;

function Ventana_Ofer(of) {
	var titulo = "Ficha_de_la_Oferta";
    var width = 500;
    var height = 400;
    var left = parseInt((screen.availWidth/2) - (width/2));
    var top = parseInt((screen.availHeight/2) - (height/2));
    var windowFeatures = "width=" + width + ",height=" + height + ",status,resizable,left=" + left + ",top=" + top + "screenX=" + left + ",screenY=" + top + ", scrollbars=1";
    miVentana2 = window.open("oferta_detalle.php?n_oferta="+of,titulo,windowFeatures);
}

var miOtraVentana2;

function Ventana_Ofer_Fot(of) {
	var titulo = "Foto_ampliada";
    var width = 700;
    var height = 570;
    var left = parseInt((screen.availWidth/2) - (width/2));
    var top = parseInt((screen.availHeight/2) - (height/2));
    var windowFeatures = "width=" + width + ",height=" + height + ",status,resizable=0,left=" + left + ",top=" + top + "screenX=" + left + ",screenY=" + top + ", scrollbars=1";
    miOtraVentana2 = window.open("oferta_detalle_fotoFULL.php?foto="+of,titulo,windowFeatures);
    //miOtraVentana = window.open("images/productos/"+ref+".jpg",titulo,windowFeatures);
}
//Fin Funciones --> Popup Ofertas

///////////////=======================================================================//////////////////

//Funciones --> Buscador - Sugerencias automaticas.
//Control que el campo del buscador no esté vacio.

function irA(){
	if (document.frmoculto.test_json.value!=""){
		document.frmoculto.producto.value=document.frmoculto.test_json.value;
		document.frmoculto.submit();
	}
}

//-- Controlar cuando se pulsa ENTER -->

function submitonEnter(evt){
	var charCode = (evt.which) ? evt.which : event.keyCode
	if(charCode == "13"){
		irA();
	}
}

//Fin Funciones --> Buscador - Sugerencias automaticas

///////////////=======================================================================//////////////////

//Funciones contenedor del visor de imagenes
function mycarousel_initCallback(carousel)
{
    // Disable autoscrolling if the user clicks the prev or next button.
    carousel.buttonNext.bind('click', function() {
        carousel.startAuto(0);
    });

    carousel.buttonPrev.bind('click', function() {
        carousel.startAuto(0);
    });

    // Pause autoscrolling if the user moves with the cursor over the clip.
    carousel.clip.hover(function() {
        carousel.stopAuto();
    }, function() {
        carousel.startAuto();
    });
};

jQuery(document).ready(function() {
    jQuery('#mycarousel').jcarousel({
        auto: 0,
        wrap: 'last',
        scroll: 3,
        initCallback: mycarousel_initCallback
    });
});
//Fin Funciones --> contenedor del visor de imagenes

///////////////=======================================================================//////////////////

//Funciones --> API Google Maps (geolocalizador)

var map;
var gdir;

function initialize() {
  if (GBrowserIsCompatible()) {      
    map = new GMap2(document.getElementById("map_canvas"));
    gdir = new GDirections(map, document.getElementById("directions"));
    GEvent.addListener(gdir, "error", handleErrors);
    GEvent.addListener(gdir, "addoverlay", onGDirectionsAddOverlay); // Triggers marker swap, Esa
    map.setCenter(new GLatLng(0,0),0);	// inital setCenter()  added by Esa.
    setDirections("españa, malaga, calle La Regente 31", "españa, malaga, calle La Regente 31", "ES_es");
    // api version display added by Esa
    document.getElementById("api-v").innerHTML = '2.'+G_API_VERSION;
  }
}

function setDirections(fromAddress, toAddress, locale) {
  gdir.load("from: " + fromAddress + " to: " + toAddress,
  { "locale": locale , "getSteps":true});
}

function handleErrors(){
  if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
    alert("No se ha podido encontrar la ubicación geográfica correspondiente a la dirección especificada. Esto puede ser debido al hecho de que la dirección es relativamente nueva, o puede ser incorrecta.\n Codigo de error: " + gdir.getStatus().code);
  else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
    alert("Una solicitud de geocodificación o dirección no pudo ser procesada con éxito, sin embargo, la razón exacta del fallo se desconoce.\n Codigo de error: " + gdir.getStatus().code);
  else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
    alert("El parámetro q de HTTP falta o no tenía valor. Para el Codificador geográfico de las solicitudes, esto significa que se ha especificado la dirección de entrada como vacía. Para la solicitud de las direcciones, esto significa que el campo de la consulta no ha sido especificado.\n Codigo de error: " + gdir.getStatus().code);
  else if (gdir.getStatus().code == G_GEO_BAD_KEY)
    alert("La clave dada no es válida o no coincide con el dominio para el que se dio. \n Codigo de error: " + gdir.getStatus().code);
  else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
    alert("Una solicitud de direcciones no puede ser analizada con éxito. \n Codigo de error: " + gdir.getStatus().code);
  else alert("An unknown error occurred.");
}
  
///////////////////////////////////////////////////////////////////////

//Funciones --> API Google Maps (geolocalizador)

/**
* The add-on code for draggable markers
* @author Lestat 2009
*/
var newMarkers = [];
var latLngs = [];
var icons = [];

// Note the 'addoverlay' GEvent listener inside initialize() function of the original code (above).
// 'load' event cannot be used

function onGDirectionsAddOverlay(){ 
  // Remove the draggable markers from previous function call.
  for (var i=0; i<newMarkers.length; i++){
    map.removeOverlay(newMarkers[i]);
  }

  // Loop through the markers and create draggable copies
  for (var i=0; i<=gdir.getNumRoutes(); i++){
    var originalMarker = gdir.getMarker(i);
    latLngs[i] = originalMarker.getLatLng();
    icons[i] = originalMarker.getIcon();
    newMarkers[i] = new GMarker(latLngs[i],{icon:icons[i], draggable:true, title:'Draggable'});
    map.addOverlay(newMarkers[i]);

    // Get the new waypoints from the newMarkers array and call loadFromWaypoints by dragend
    GEvent.addListener(newMarkers[i], "dragend", function(){
      var points = [];
      for (var i=0; i<newMarkers.length; i++){
        points[i]= newMarkers[i].getLatLng();
      }
      gdir.loadFromWaypoints(points);
    });

    //Bind 'click' event to original markers 'click' event
    copyClick(newMarkers[i],originalMarker);

    // Now we can remove the original marker safely
    map.removeOverlay(originalMarker);
  }

  function copyClick(newMarker,oldMarker){
    GEvent.addListener(newMarker, 'click', function(){
      GEvent.trigger(oldMarker,'click');
    });
  }
}
//FIN Funciones --> API Google Maps (geolocalizador)
// >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> FIN FUNCIONES <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<