﻿
var baseurl;
  
var jqt= new $.jQTouch({
  icon: 'jqtouch.png',
  addGlossToIcon: false,
  startupScreen: 'jqt_startup.png', 
  statusBar: 'black',
  useAnimations: false,
  preloadImages: [
      'scripts/themes/jqt/img/back_button.png',
      'scripts/themes/jqt/img/back_button_clicked.png',
      'scripts/themes/jqt/img/button_clicked.png',
      'scripts/themes/jqt/img/grayButton.png',
      'scripts/themes/jqt/img/whiteButton.png',
      'scripts/themes/jqt/img/loading.gif'
  ]
});

$(function() {
  baseurl = "http://" + window.location.hostname + "/navnelaboratoriet";
  $("#error").ajaxError(function(info, xhr) {
	  $(info.target).html("<p> Kald til server fejlede: " + xhr.status + " " + xhr.statusText + "</p>");
  });  
  $('#searchform').submit(function(){
	  event.preventDefault();
	  $("#search").attr("disabled", true);
	  $("#navne").empty();
	  $("#navne").append("<li  class='sep'>Søger efter navne ...</li>");
	  var url = baseurl+"/fornavne.json";
	  var parameters = new Object;
	  var fornavn = $.trim($('#fornavn').val());
	  if (fornavn != "undefined" && fornavn.length > 0) {
		  parameters["q"] = fornavn;
	  }
	  if ($("#pige")[0].checked != $("#dreng")[0].checked) {
	    parameters["køn"]= $("#pige")[0].checked?"pige":"dreng";
	  }
	  var efternavn = $('#efternavn').val();
	  $.getJSON(url, parameters, function(fornavne, status) {
		  $("#search").attr("disabled", false);
		  $("#navne").empty();
		  $("#navne").append("<li  class='sep'>" + fornavne.length + " navneforslag" + ((fornavne.length>100)?"(viser 100)":"")+":</li>");
		  efternavn= $.trim(efternavn);
      if (efternavn.length>0) efternavn = efternavn.substr(0, 1).toUpperCase() + efternavn.substr(1);
		  $.each(fornavne, function(i, fornavn) {
		    var id= fornavn.køn+fornavn.navn+$.trim(efternavn);
			 /* $("#navne").append("<li><a  id='" + id + "'  href='#navneinfoside'>" + fornavn.navn + (efternavn?" " + efternavn:"") +  " (" + fornavn.køn + ")</a></li>"); */
			  $("#navne").append("<li class='searchitem' id='" + id + "'>" + fornavn.navn + (efternavn?" " + efternavn:"") +  " (" + fornavn.køn.toLowerCase() + ")</li>");
			  $("#"+id).click(function() {
			    jqt.goTo("#navneinfoside"); 
		      visnavneinfo(fornavn, efternavn);
		      return true; 
			  });
			 /* $("#navneinfoside").bind('pageAnimationEnd', function(e, info){
			    if (!$(this).data('loaded')) {   
		        visnavneinfo(fornavn, efternavn);
		        $(this).data('loaded',true);
		      }
		    }); */
		    return (i!=100);		  
	    });
      $("#navne").append("<li class='sep'><a target='_blank' href='http://www.familiestyrelsen.dk/navne/1/?no_cache=1'>Kilde: Familiestyrelsen</a></li>");	
	  });
    /* this.reset(); */
    return false;
  })
});

function vissoejler(id, kategorier, data, titel, undertitel, aksetekst) {
  var chart = new Highcharts.Chart({
   chart: {
      renderTo: id,
      inverted: true,
      defaultSeriesType: 'bar'
   },
   title: {
      text: titel,
      style: {color: 'white'} 

   },
   subtitle: {
      text: undertitel
       },
   xAxis: {
      categories: kategorier,
      gridLineColor: 'white',
      lineColor: 'white',
      title: {
         text: 'Årstal'
      },
      labels: {
        style: {color: 'white'} 
      }
   },
   yAxis: {
      min: 0,
      gridLineColor: 'white',
      lineColor: 'white',
      title: {
         text: aksetekst,
         align: 'high'
      },
      labels: {
        style: {color: 'white'} 
      }
   },
   tooltip: {
      formatter: function() {
         return '<b>'+ this.x +'</b><br/>'+
             this.series.name +': '+ this.y;
      }
   },
   plotOptions: {
      bar: {
         dataLabels: {
            enabled: true,
            color: 'white'
         }
      }
   },
   legend: {
    enabled: false
   },
   credits: {
      enabled: false
   },
   series: [{
    name: aksetekst,
    data: data
   }]
  })
};		

function visnavneinfo(fornavn, efternavn) {
  var fane= "navneinfo";
  var fuldenavn= $.trim(fornavn.navn+" "+efternavn);
  $("#"+fane).empty();
	$("#"+fane)
	  .append("<h1>" + fuldenavn + " (" + fornavn.køn.toLowerCase() +")</h1>")
	  .append("<div id='" + fane + "antal' />")
	  .append("<div id='" + fane + "barometer' />")
	  .append("<div id='" + fane + "hitliste' />")
	  .append("<div id='" + fane + "moreinfo'  />");
	  
	$("#"+fane+"moreinfo").append("<a target='_blank' href='http://da.wikipedia.org/wiki/"+fornavn.navn+"'>Wikipediaartikel om fornavnet " + fornavn.navn+ "</a><br /><br />");
			  
  var url= baseurl + escape("/navne/"+fornavn.køn+"/"+fuldenavn+".json");
  url= url.toLowerCase();
  var beskyttetefternavn= false;
	
  // antal
  $.getJSON(url, function(navn) {
	  $("#"+fane+"antal").append("<div id='" + fane + "antalfornavn'  style='width: 100%; height: 150px' /><br />");
    var nuller= false;
    var fornavndata= new Array(navn.årstal.length);
    var efternavndata= new Array(navn.årstal.length);
    var navndata= new Array(navn.årstal.length);
    var kategorier= new Array(navn.årstal.length);
    $.each(navn.årstal, function(i, årstal) {
      kategorier[i]= årstal.årstal;
      if ($.trim(efternavn).length >0) {
        efternavndata[i]= parseInt(årstal.efternavnet);
        if (!nuller) nuller= parseInt(årstal.efternavnet)==0;
        navndata[i]= parseInt(årstal.navnet);
        if (!nuller) nuller= parseInt(årstal.navnet)==0;
        if (!beskyttetefternavn) beskyttetefternavn= parseInt(årstal.efternavnet)<=2000;
      }       
      fornavndata[i]=parseInt(årstal.fornavnet);
      if (!nuller) nuller= parseInt(årstal.fornavnet)==0; 
    }); 
    
    
    vissoejler(fane + "antalfornavn",kategorier,fornavndata,'Hvor mange hedder ' + fornavn.navn + '?',"Kilde: Danmarks Statistik","Antal");
    if ($.trim(efternavn).length >0) {		
	    $("#"+fane+"antal").append("<div id='" + fane + "antalefternavn'  style='width: 100%; height: 150px' />");	
	    $("#"+fane+"antal").append("<div id='" + fane + "antalnavn' style='width: 100%; height: 150px' />");
      vissoejler(fane + "antalefternavn",kategorier,efternavndata,'Hvor mange hedder ' + efternavn + '?',"Kilde: Danmarks Statistik","Antal");	
      vissoejler(fane + "antalnavn",kategorier,navndata,'Hvor mange hedder ' + fuldenavn + '?',"Kilde: Danmarks Statistik","Antal");		
    }
    if (nuller) {		    		
	    $("#"+fane+"antal").append("<div id='" + fane + "beskyttetnavn' />");		
      $("#"+fane+"beskyttetnavn").append("<p class='kilde'>Af diskretionshensyn dækker værdien 0 over forekomsterne 0, 1 og 2.</p><br />");
    }
     
    if (beskyttetefternavn) {
      $("#"+fane+"moreinfo").append("<p>" + efternavn + " er et <a target='_blank' href='http://www.familiestyrelsen.dk/navne/5/'>beskyttet efternavn</a></p><br />");
    }
  
  }); 
  
  // navnebarometer
  var url= baseurl + escape("/fornavne/"+fornavn.køn+"/"+fornavn.navn+"/antal.json");
  url= url.toLowerCase();
  $.getJSON(url, function(antal) {
    if (antal.length>0) {
	    $("#"+fane+"barometer").append("<div id='" + fane + "barometer' style='width: 100%; height: 500px' />");	
 
      var data= new Array(antal.length);
      var kategorier= new Array(antal.length);
      $.each(antal, function(i, antalpraar) {		      
        kategorier[i]= antalpraar.år;
        data[i]= parseInt(antalpraar.antal);
      });
      
      vissoejler(fane + "barometer",kategorier,data,'Hvor mange bliver navngivet ' + fornavn.navn + '?',"Kilde: Danmarks Statistik","Antal");
    }
  });
  
  // hitlister		  
  var url= baseurl + escape("/fornavne/"+fornavn.køn+"/"+fornavn.navn+"/hitlister.json");
  url= url.toLowerCase();
  $.getJSON(url, function(hitlister) {
    if (hitlister.length>0) {
	    $("#"+fane+"hitliste").append("<div id='" + fane + "hitliste' style='width: 100%; height: 500px' />");        
    
      var data= new Array(hitlister.length);
      var kategorier= new Array(hitlister.length);
      $.each(hitlister, function(i, hitliste) {
        //$("#"+fane+"hitliste").append("<p>" + hitliste.nummer+ ": " + hitliste.antal+ ": " + hitliste.pr1000+ "<br /></p>");
        kategorier[i]= hitliste.år;
        data[i]=  parseInt(hitliste.nummer); 
      });
      
      vissoejler(fane + "hitliste",kategorier,data,"Hvor ligger "+fornavn.navn+" på Top 50?","Kilde: Danmarks Statistik","Placering");
      
    }	
  });		  
}; 
