var total_level = 5;
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		//return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
		return dataString.substring(index+this.versionSearchString.length+1);
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

//Detectamos el navegador y OS para los pixeles en el eje X de los avisos
var navegador = BrowserDetect.browser;
var SO = BrowserDetect.OS;
var versionNav = BrowserDetect.version;
var versionFloat = parseFloat(versionNav);


$.validator.addMethod('onecheck', function(value, ele) {
    return $("[name^='data[Encuestas][sectores][]']:checked").length >= 5;
}, 'Selecciona al menos 5 sectores.')

function lanzaPanel()
{
	$("#logindiv").slideToggle("slow");
	$(".recordarpsw").slideToggle("slow");
}

$(document).ready(function(){
	
//BORDES REDONDEADOS
//$(function(){ 
//settings = {
//  tl: { radius: 10 },
//  tr: { radius: 10 },
//  bl: { radius: 10 },
//  br: { radius: 10 },
//  antiAlias: true,
//  autoPad: true,
//  validTags: ["div"]
//	}
//	  $('.rounded').corner(settings);
//});
if ($('.rounded'))
{
    $('.rounded').corner('top 10px');
    $('.rounded').corner('bottom 10px');
    $('.rounded').corner('antiAlias', true);
    $('.rounded').corner('validTags', 'div');
}


//CUFÓN RELPLACE
Cufon.replace('h1'); //titulo header
Cufon.replace('h2'); //titulares secciones
Cufon.replace('h6'); // Texto normal


//TOGGLE MOSTRAR RUTAS, DIRECCIONES:

$("#butmostrarutas").click(function () {
  $("#mostrarutas").slideToggle("fast");
});
$("#butmostrardirecciones").click(function () {
  $("#mostrardirecciones").slideToggle("fast");
});	
	
/*TOGGLE LOGIN */
$(".iniciarsesion").click(function () {
  $("#logindiv").slideToggle("slow");
  return false;
});
$(".olvidopsw").click(function () {
  $(".recordarpsw").slideToggle("slow");
  return false;
});
	
	
//TOGGLE PAGINA GOBIERNO
	//Hide (Collapse) the toggle containers on load
	$(".toggle_container").hide(); 

	//Switch the "Open" and "Close" state per click then slide up/down (depending on open/close state)
	$("h2.trigger").click(function(){
		//$(this).toggleClass("active").next().slideToggle("fast");
		//$('h2.trigger').removeClass('active').prev().slideUp();
		$('h2.trigger').removeClass('active').next().slideUp();
		if( $(this).next().is(':hidden') ) { 
			$(this).toggleClass('active').next().slideDown("fast"); 
		}
		return false;
	});
	
//TOGGLE 
refreshToggleEvents();

//URL aacesible mediante hash para las tiendas en el map
var hash_url = location.hash;
var array_hash = hash_url.split("/");

if (array_hash.length>0 && hash_url!="")
{
  var categoria = array_hash[0].substr(1, array_hash[0].length);
  $('#l_'+categoria).trigger('click');
  if (array_hash[1]!="")
  {
    var subcategoria = array_hash[1];
    $('#l_'+subcategoria).trigger('click');
  }
}

/* JQUERY SORTABLE */
$("#sortable").sortable({
		placeholder: 'ui-state-highlight',
		cursor: 'move',
		opacity: 0.6,
		update: function(event, ui)
		{
		   //var index = $(ui.item).parent().children().index(ui.item);
		   //$('#orden_'+ui.item.get(0).id).val(ui.item.get(0).id+"|"+index);
		   indices = 0;
		   $(ui.item).parent().children().each(function()
		    {
		     //console.log($(this).attr('id'));
		     //$('#orden_'+$(this).attr('id')).val($(this).attr('id')+"|"+indices);
		     $('#orden_'+$(this).attr('id')).attr('name', 'data[Ruta][orden_'+indices+']');
		     indices++;
		    });
		}
	});
	$("#sortable").disableSelection();

//ANCLAS PÁGINA COMUNIDADES

$('.subir a[href*=#], .animate_scroll a[href*=#]').click(function() {
if (location.pathname.replace(/^\//,'') == this.pathname.replace(/^\//,'') && location.hostname == this.hostname) {
	var $target = $(this.hash);
	$target = $target.length && $target || $('[name=' + this.hash.slice(1) +']');
	if ($target.length) {
	    var targetOffset = $target.offset().top;
	    $('html,body').animate({scrollTop: targetOffset}, 1000);
	    return false;
       }
  }
});

initSolicitud();
//Si el navegador es Explorer, quitamos el select de refresco de oficinas, ya que peta
if (navegador=="Explorer")
{
 $('.inputselect2').css('display', 'none');   
}

//$('.inputselect').css('display', 'none');

$('#fecha_nac').mask("99-99-9999",{placeholder:" "});

// Registro
$('#but_forma').click(function()
{
	   var form = $('#solicitud').get(0);
            $.removeData(form, 'validator');
            $("#solicitud").validate({
                rules: {
                        'data[Solicitud][selectprovincia]': { required: true },
                        'data[Solicitud][nombre]': { required: true },
                        'data[Solicitud][apellidos]': { required: true },
                        'data[Solicitud][nif]': { required: true },
                        'data[Solicitud][direccion]': { required: true },
                        'data[Solicitud][tfno]': { required: true },
                        'data[Solicitud][email]': { required: true },
                        'data[Solicitud][fecha_nac]': { required: true },
                        'data[Solicitud][image]': { required: true }
                },
                messages: {
                        'data[Solicitud][selectprovincia]': 'Campo obligatorio.',
                        'data[Solicitud][nombre]': 'Campo obligatorio.',
                        'data[Solicitud][apellidos]': 'Campo obligatorio.',
                        'data[Solicitud][nif]': 'Campo obligatorio.',
                        'data[Solicitud][direccion]': 'Campo obligatorio.',
                        'data[Solicitud][tfno]': 'Campo obligatorio.',
                        'data[Solicitud][email]': 'Campo obligatorio.',
                        'data[Solicitud][fecha_nac]': 'Campo obligatorio.',
			'data[Solicitud][image]': 'Campo obligatorio.'
                },
                submitHandler: function()
                {
                    if (validaNIF())
                    {
			$('#reg_forma').hide();
			$('#reg_formb').show('slow');
                    }
                    return false;
                }
            });
});

$('#but_formb').click(function()
{
	   var form = $('#solicitud').get(0);
            $.removeData(form, 'validator');
            $("#solicitud").validate({
                rules: {
                        'data[Encuestas][renueva]': { required: true },
                        'data[Encuestas][medio]': { required: true },
                        'data[Encuestas][usado]': { required: true },
                        'data[Encuestas][europa]': { required: true },
                        'data[Encuestas][sectores][]': { onecheck: true },
                        'data[Encuestas][info_mail]': { required: true },
                        'data[Encuestas][info_sms]': { required: true }
                },
                messages: {
                        'data[Encuestas][renueva]': 'Campo obligatorio.',
                        'data[Encuestas][medio]': 'Campo obligatorio.',
                        'data[Encuestas][usado]': 'Campo obligatorio.',
                        'data[Encuestas][europa]': 'Campo obligatorio.',
                        'data[Encuestas][sectores][]': 'Campo obligatorio.',
                        'data[Encuestas][info_mail]': 'Campo obligatorio.',
                        'data[Encuestas][info_sms]': 'Campo obligatorio.'
                },
                submitHandler: function(form)
                {
			form.submit();
                    return false;
                }
            });
});



});	//FIN DE DOCUMENT.READTY


var contadorGlobalAdded = 0;

function changeRadioOficina(valor, url)
{
  if ($('#selectprovincia').val()!="")
  {
    showSelecOficinas($('#selectprovincia').val(), url);
  }
}

function initSolicitud()
{
  var emailInput = $('#data[Solicitud][email]');
  $("#solicitud").validate({
    rules: {
      emailInput: {
	required: true,
	email: true
      }
    }
  });
}


function validaNIF()
{
    if (!nif_correcto($('#nif').val()))
    {
	alert("El NIF introducido no es correcto.");
	return false;
    } else {
	var fecha_nac = $('#fecha_nac').val();
	var fechas = fecha_nac.split("-");
	var ahora = new Date();
	var agno = ahora.getFullYear();
	var resta = parseInt(agno)-parseInt(fechas[2]);
	if (resta < 14 || resta > 30)
	{
	    alert("Rango de edad: de 14 a 30 años.");
	    return false;
	} else {
	    return true;
	}
    }
}

function showSelecOficinas(valor, url)
{
    var tipo = "";
    if($('#ibercaja:checked').val()!=undefined)
    {
      tipo = $('#ibercaja').val();
    }
    if($('#cai:checked').val()!=undefined)
    {
      tipo = $('#cai').val();
    }
    if (tipo!="")
    {
      $('#select_oficinas').html('<label for="data[Solicitud][oficina_id]">Seleccione oficina</label><select name="data[Solicitud][oficina_id]"><option value="">Cargando</option></select>');
      var toLoad = url+"showSelectOficinas/"+tipo+"/"+valor;
      //alert(toLoad);
      $.post(toLoad,function (responseText){
	      $('#select_oficinas').html(responseText);
	      //$('#select_oficinas').css('display', 'block');
	      initSolicitud();
      });
    } else {
      alert("Seleccione una de las oficinas.");
    }
}

function showOficinaDetails(cual, url)
{
$('#detalles_oficina').html('<img src="'+url+'images/loader.gif" alt="loader" />');
  var toLoad = url+"showOficinaDetails/"+cual;
  $.post(toLoad,function (responseText){
	  $('#detalles_oficina').html(responseText);
	  //console.log(responseText);
  });
}

function refreshMap(category_slug, slug, url)
{
  $('#carga').css('display', 'block');
  var toLoad = url+"gettiendas/"+category_slug+"/"+slug;
  $.post(toLoad,function (responseText){
	  //$('#'+destino).html(responseText);
	  //console.log(responseText);
	  
	  var div_mapa = document.getElementById('mapa');
	  if (div_mapa)
	  {
	      var map = new GMap2(div_mapa);
	      var data = jQuery.parseJSON(responseText);
	      var contador = 1;
	      for (a in data)
	      {
		//console.log(data[a].Tienda.nombre);
		var lat = data[a].Tienda.lat;
		var lng = data[a].Tienda.lng;
		var id = data[a].Tienda.id;
		if (contador==1)
		{
		  var latZ = data[a].Tienda.lat;
		  var lngZ = data[a].Tienda.lng;
		}
		
		var icono = new GIcon();
		icono.image = url+"images/marker_carne.png";
		icono.shadow = "http://www.google.com/mapfiles/shadow50.png";
		icono.iconSize = new GSize(20, 34);
		icono.shadowSize = new GSize(37, 34);
		icono.iconAnchor = new GPoint(9, 34);
		icono.infoWindowAnchor = new GPoint(9, 2);
		icono.infoShadowAnchor = new GPoint(18, 25);
		
		var opt;
		opt = {};
		opt.icon = icono;
		//opt.draggable = false;
		//opt.clickable = true;
		//opt.dragCrossMove = true;
		
		window["marker_"+id] = new GMarker(new GLatLng(lat, lng), opt);
		window["marker_"+id].id = id;
		window["marker_"+id].nombre = data[a].Tienda.nombre;
		window["marker_"+id].direccion = data[a].Tienda.direccion;
		window["marker_"+id].cp = data[a].Tienda.cp;
		window["marker_"+id].localidad = data[a].Tienda.localidad;
		window["marker_"+id].ventajas = data[a].Tienda.ventaja;
		map.addOverlay(window["marker_"+id]);
		GEvent.addListener(window["marker_"+id], "click", function() {
			var html = '<div style="width:250px; padding-right:10px;"><h4>'+this.nombre+'</h4><p>'+this.direccion+'</p><p>'+this.cp+" - "+this.localidad+'</p><p style="font-size:10px;color:#999999;">'+this.ventajas+'</p></div>';
			this.openInfoWindow(html);
			map.setZoom(15);
		});
		
		contador++;
	      }
	      
	      map.setCenter(new GLatLng(latZ, lngZ), 7);
	      map.addControl(new GSmallMapControl());
	      
	      $('#carga').css('display', 'none');
	      
	      actualizaDatosDiv(category_slug, slug, url);
	      
	      location.hash = "#"+category_slug+"/"+slug;
	  }
  });
}


function refreshRoute(category_slug, url)
{
  $('#carga').css('display', 'block');
  var toLoad = url+"getroute/"+category_slug;
  $.post(toLoad,function (responseText){	  
	  var div_mapa = document.getElementById('mapa');
	  if (div_mapa)
	  {
	      var map = new GMap2(div_mapa);
	      var data = jQuery.parseJSON(responseText);
	      var contador = 1;
	      var latYLng = [];
	      for (a in data)
	      {
		for (b in data[a].Tienda)
		{
		    var icono = new GIcon();
		icono.image = url+"images/marker_carne.png";
		icono.shadow = "http://www.google.com/mapfiles/shadow50.png";
		icono.iconSize = new GSize(20, 34);
		icono.shadowSize = new GSize(37, 34);
		icono.iconAnchor = new GPoint(9, 34);
		icono.infoWindowAnchor = new GPoint(9, 2);
		icono.infoShadowAnchor = new GPoint(18, 25);
		
		var opt;
		opt = {};
		opt.icon = icono;
		//opt.draggable = false;
		//opt.clickable = true;
		//opt.dragCrossMove = true;
		
		  //console.log(data[a].Tienda[b].nombre);
		  var lat = data[a].Tienda[b].lat;
		  var lng = data[a].Tienda[b].lng;
		  var id = data[a].Tienda[b].id;
		  window["marker_"+id] = new GMarker(new GLatLng(lat, lng), opt);
		  //window["marker_"+id].texto_cab = "";
		  if (contador==1)
		  {
		    var latZ = data[a].Tienda[b].lat;
		    var lngZ = data[a].Tienda[b].lng;
		  }
		  window["marker_"+id].texto_cab = "<h1 style='font-size:14px;'>* Paso "+contador+" de la ruta *</h1><br />";
		  window["marker_"+id].id = id;
		  window["marker_"+id].nombre = data[a].Tienda[b].nombre;
		  window["marker_"+id].direccion = data[a].Tienda[b].direccion;
		  window["marker_"+id].cp = data[a].Tienda[b].cp;
		  window["marker_"+id].localidad = data[a].Tienda[b].localidad;
		  window["marker_"+id].ventajas = data[a].Tienda[b].ventaja;
		  map.addOverlay(window["marker_"+id]);
		  GEvent.addListener(window["marker_"+id], "click", function() {
		  	var html = '<div style="width:250px; padding-right:10px;">'+this.texto_cab+'<h4>'+this.nombre+'</h4><p>'+this.direccion+'</p><p>'+this.cp+" - "+this.localidad+'</p><p style="font-size:10px;color:#999999;">'+this.ventajas+'</p></div>';
		  	this.openInfoWindow(html);
		  	map.setZoom(12);
		  });
		  
		  latYLng[contador-1] = new GLatLng(lat, lng);
		  
		  contador++;
		}
	      }
	      
	      var polyline = new GPolyline(latYLng, "#8a1e4e",5);
	      map.addOverlay(polyline);
	      
	      map.setCenter(new GLatLng(latZ, lngZ), 11);
	      map.addControl(new GSmallMapControl());
	      
	      $('#carga').css('display', 'none');
	//      var la_url = String(document.location).split("/");
	//      var url_final = "";
	//      //console.log(la_url+" = "+la_url.length+" > "+total_level);
	//      if (la_url.length>total_level)
	//      {
	//	for (u=0; u<(la_url.length-1); u++)
	//	{
	//	  url_final += la_url[u]+"/";
	//	}
	//	document.location = url_final;
	//      }
	      location.hash = "#"+category_slug;
	  }
  });
}


function actualizaDatosDiv(category_slug, slug, url)
{
  $('#resultados').html('<img src="'+url+'images/loader.gif" alt="loader" />');
  var toLoad = url+"gettiendasdesc/"+category_slug+"/"+slug;
  $.post(toLoad,function (responseText){
	  $('#resultados').html(responseText);
	  //console.log(responseText);
  });
}

function refreshData(origen, destino, url)
{
	$('#'+destino).html('<option selected>Cargando</option>');
	var id = $('#'+origen).val();
	var toLoad = url+"/"+id;
	$.post(toLoad,function (responseText){
		$('#'+destino).html(responseText);
		//alert(responseText);
	});
}

function getTiendasRutas(url)
{
  $('#filtrado').html('<img src="'+url+'images/loader.gif" alt="loader" />');
  var toLoad = url+"gettiendasrutas";
//  $.post(toLoad,function (responseText){
//	  $('#filtrado').html(responseText);
//	  //console.log(responseText);
//  });
  dataString = $("#busqueda_tienda").serialize();
  $.ajax({
    type: "POST",
    url: toLoad,
    data: dataString,
    success: function(responseText){
      $('#filtrado').html(responseText);
    }
  });
}


function getSearch(tipo, url)
{
  $('#categorias').html('<img src="'+url+'images/loader_pink.gif" style="margin-left:20px;padding-bottom:10px;" alt="loader" />');
  var toLoad = url+"getSearch/"+tipo;
//  $.post(toLoad,function (responseText){
//	  $('#filtrado').html(responseText);
//	  //console.log(responseText);
//  });
  dataString = $("#busqueda").serialize();
  $.ajax({
    type: "POST",
    url: toLoad,
    data: dataString,
    success: function(responseText){
      $('#categorias').html(responseText);
      refreshToggleEvents();
      //URL aacesible mediante hash para las tiendas en el map
      var hash_url = location.hash;
      var array_hash = hash_url.split("/");
      
      if (array_hash.length>0 && hash_url!="")
      {
	var categoria = array_hash[0].substr(1, array_hash[0].length);
	$('#l_'+categoria).trigger('click');
	if (array_hash[1]!="")
	{
	  var subcategoria = array_hash[1];
	  $('#l_'+subcategoria).trigger('click');
	}
      }
    }
  });
}

function refreshToggleEvents()
{
  //Set default open/close settings
  $('.acc_container').hide(); //Hide/close all containers
  //$('.acc_trigger:first').addClass('active').next().show(); //Add "active" class to first trigger, then show/open the immediate next container
  
  //On Click
  $('.acc_trigger').click(function(){
	  $('.acc_trigger').removeClass('active').next().slideUp(); //Remove all "active" state and slide up the immediate next container
	  if( $(this).next().is(':hidden') ) { //If immediate next container is closed...
		  $(this).toggleClass('active').next().slideDown("fast"); //Add "active" state to clicked trigger and slide down the immediate next container
	  }
	  return false; //Prevent the browser jump to the link anchor
  });  
}


function appendTienda(id,cp,nombre,direccion)
{
  $('#tienda_'+id).css('display', 'none');
  $('#sortable').append($('<ul class="ordenaelemento" id="'+id+'"><li class="cp">'+cp+'</li><li class="nombre">'+nombre+'</li><li class="direccion">'+direccion+'</li><li class="eliminar"><a href="#" onclick="deleteTienda('+id+'); return false;">Eliminar</a></li><input type="hidden" name="data[Ruta][orden_'+contadorGlobalAdded+']" id="orden_'+id+'" value="'+id+'" /></ul>'));
  contadorGlobalAdded++;
  $('#totales_added').val(contadorGlobalAdded);
}

function deleteTienda(id)
{
  $('#tienda_'+id).css('display', 'block');
  $('#'+id).remove();
  contadorGlobalAdded--;
}

