$(function() {
   	
    var INIT_URL = "/corridadotejo10/dispatch/application/form_get_resultados_carrera.xml";
    
    //window.location.pathname
    //var myURL = parseURL(window.location);
    /*
    if(myURL.params.year != "undefined") {
        var year = myURL.params.year        
    } else {
        var year = 2009;
    }*/

    var year = 2009;
    var defaultYear = 2009;
    var lang = "pt";
    var showVideos = false;
    var seeTeams = true;
    var currentPage = 1;
    var numPages = 1;
	
    var lastParams = null; //do not touch!!!
        
    /**
     * Check parameters
     */
    if(getParameterValue("lang") != null) lang = getParameterValue("lang");
    if(getParameterValue("year") != null) year = parseInt(getParameterValue("year"));
    
    /**
     * Init actions
     **/
    //Add loading
    $("#resultados").html("<div class=\"loading\"><img src=\"/img/results/loading.gif\" /><b>"+i18n[lang].loading+"</b></div>");
    //Hide text inputs
    $("input[type=text]").hide().attr({
		"disabled":true, 
		"default":true
	}).css("z-index",5);
	
			    
    /**
     * Change language if necessary
     */
	//web title
    document.title = i18n[lang].titulo;
	// la leyenda del formulario
    $("fieldset legend").html( i18n[lang].busqueda );

    // campo de categoria de formulario
    $("#buscador label[for='year'] strong").html(i18n[lang].year); // quitar el hide

    $("#buscador label[for='categoria'] strong").html(i18n[lang].categoria);
    // diferentes labels y sus spans
    $("#buscador label[for='bNombre'] span").html(i18n[lang].nombre);
    $("#buscador label[for='bDorsal'] span").html(i18n[lang].dorsal);
    $("#buscador label[for='bPosicion'] span").html(i18n[lang].puesto);
    $("#buscador label[for='bTodos'] span").html(i18n[lang].todos);
    // boton de enviar 
    //$("#buscador input[type='submit']").attr({value:i18n[lang].enviar});
	$("#nombre").val(i18n[lang].nombre+"...");
    $("#dorsal").val(i18n[lang].dorsal+"...");
    $("#tiempo").val("hh:mm:ss");	
    
    /**
     * Get YEAR classifications and fill form
     */    
    $.ajax({  
        type: "POST",
        url: INIT_URL,
        data: {
            "year" : year
        },
        dataType: "xml",
        complete: function(data) {
            
            handleResults($('year:contains("'+year+'")',data.responseXML),true);           
            //Fill years
            $("#year").children().remove();           
            $("year id",data.responseXML).each(function(i,el){				
                $("#year").append("<option name='"+$(el).text()+"' value='"+$(el).text()+"'>"+$(el).text()+"</option>");
				
				//Select current year
				if(parseInt($(el).text()) == year) {					
					//add try to not crash in IE
					try {$("#year option")[i].selected = true;} catch (e){}
				}
            });			
            
            fillCategories(year, data.responseXML);
            
            //In case of change Year we have to change Categories
            $("#year").change(function() {
                fillCategories($(this).val(), data.responseXML);
            });
        }
    });
    
    //EVENTS
    /*Remove outline from elements on click
    $("input").click(function() {
        $("input").blur();
    });*/
    
    //Show text from radio checked and hide others
    $("input[type=radio]").click(function() {
        $("input[type=text]").hide().attr("disabled","disabled");        
		var text = $(this).parent().next().children("input");
        $(text).removeAttr("disabled").show();
    });
    
    //Actions on focus text input
    $("input[type=text]").click(function() {
		var value = $(this).val();		
		var isDefault = $(this).attr("default");
		
		$("#nombre").attr("default", true).val(i18n[lang].nombre+"...");
        $("#dorsal").attr("default", true).val(i18n[lang].dorsal+"...");
        $("#tiempo").attr("default", true).val("hh:mm:ss");		
		
		if(isDefault == "false") $(this).val(value);
		else $(this).val("");
		
		$(this).attr("default", false);
    });
    
    //On submit form
    $("#buscador").submit(function() {        
        $(".pagination").hide();
		$("#resultados").html("<div class=\"loading\"><img src=\"/img/results/loading.gif\" /><b>"+i18n[lang].loading+"</b></div>");
        
        var error = false;
        // posibles errores

        if( !$("#nombre").attr("disabled") && ( !$("#nombre").val().match(/\D{3,30}/) || $("#nombre").val()==i18n[lang].nombre+"..." ) ){
            error = true;
            $("#resultados").html("<div class=\"error\">"+i18n[lang].err_noname+"</div>");
            return false;
        }
        
        if( !$("#dorsal").attr("disabled") && !$("#dorsal").val().match(/[0-9]{1,5}/) ){
            error = true;
            $("#resultados").html("<div class=\"error\">"+i18n[lang].err_nodorsal+"</div>");
            return false;
        }
        
        if( !$("#posicion").attr("disabled") && !$("#posicion").val().match(/[0-9]{1,9}/) ){
            error = true;
            $("#resultados").html("<div class=\"error\">"+i18n[lang].err_tiempo+"</div>");
            return false;
        }
        
        // no hay fallos ? enviamos el formulario, todo ok : sino nada
        if( !error ){            
			currentPage = 1;			
            year = parseInt($("#buscador #year").val());
			
            //prepare parameters
            var params = $("#buscador :enabled").serializeArray();
            params[params.length] = { "name" : "page", "value" :  currentPage};
            
            $.post($("#buscador").attr("action"), 
                params, 
                function(data){
                    handleResults(data); 
                }
            )
        };
        return false;
        // hacer la peticion a incluir en la zona de carga de html
    });
    
    //Pagination events
    $(".pagination .first").click(function() {
        getResults(1);
        return false;
    });
    
    $(".pagination .previous").click(function() {        
        getResults(currentPage - 1);
        return false;
    });
    
    $(".pagination .next").click(function() {        
        getResults(currentPage + 1);        
        return false;
    });
    
    $(".pagination .last").click(function() {
        getResults(numPages);
        return false;
    });
	
	//Team events
	$(".teams a").click(function() {		
		var aUrl = $(this).attr("href");
		$.ajax({  
			type: "POST",
			url: aUrl,			
			dataType: "xml",
			complete: function(data) {
				var teams = $("equipos",data.responseXML).text();				
				$("#resultados").hide().html(teams);
				
				$("#resultados table thead tr").children("td").each(function() {					
					$(this).text(i18n[lang][$(this).text()]);            
				}); 
				
				var i = 0;      
		        $("#resultados table tr").each(function() {
		           if(i%2 == 0) $(this).attr("class", "odd");
		           else $(this).attr("class", "even");
		            ++i;          
		        });
				
				$("#resultados").slideDown("slow");
				
			}
		});
		return false;	
	});
    
        
    //FUNCTIONS
    function getParameterValue(paramName) {
      var regexS = "[\\?&]"+paramName+"=([^&#]*)";
      var regex = new RegExp( regexS );
      var tmpURL = window.location.href;
      var results = regex.exec( tmpURL );
      if( results == null ) return null;
      else return results[1];
    };
    
    function fillCategories(selectedYear, xml) {
        //Fill categories
        $("#categoria").children().remove();
        $("#categoria").append("<option name='todos' value=''>"+i18n[lang].todos+"</option>");            
        $("data years year",xml).find("id:contains('"+selectedYear+"')").parent().find("category").each( function(i,el){               
           $("#categoria").append("<option name='"+$(el).text()+"' value='"+$(el).text()+"'>"+$(el).text()+"</option>");
        });
    }
    
    var handleResults = function(xml, inicial) {
        numPages = parseInt($("pages",xml).text());                
        
        var runners = $("runners",xml).text();        
        $("#resultados").hide().html(runners);
        
        var videoTd = -1;
        $("#resultados table thead tr").children("td").each(function() {            
			if($(this).text() == "video" && (!showVideos || year != defaultYear)) videoTd = this.cellIndex; 
            $(this).text(i18n[lang][$(this).text()]);            
        });        
        if(videoTd != -1) {
          $("table tr").each(function() {
              $($(this).children("td").get(videoTd)).remove();
          });
        }       
        
        var i = 0;      
        $("#resultados table tr").each(function() {
           if(i%2 == 0) $(this).attr("class", "odd");
           else $(this).attr("class", "even");
            ++i;          
        });
        
        $("#resultados").slideDown("slow")
            .find('.verVideo')
            .click(function(){
                var params = "";
                var hora = $(this).attr('rel');
                var centerX = screen.width / 2 - 375;
                var centerY = screen.height / 2 - 260;
                hora.length<=5?
                    params = "hora=0&minutos="+hora.split(':')[0]+"&segundos="+hora.split(':')[1] :
                    params = "hora="+hora.split(':')[0]+"&minutos="+hora.split(':')[1]+"&segundos="+hora.split(':')[2];
                    params += "&lang="+lang;
                    popup = window.open('/html/videos/?'+params,"Videos",'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=750,height=520,top='+centerY+',left='+centerX);
            });
            
        if(numPages > 1)  {
            //configure pages and show pagination
            $(".pagination .currentPage").html(currentPage);
            $(".pagination .pages").html(numPages);
			$(".first, .previous, .next, .last").css("visibility","visible");
					
			if(currentPage == 1) {
				$(".first, .previous").css("visibility","hidden");
			}
			else if(currentPage == numPages) {
				$(".next, .last").css("visibility","hidden");
			}		
            $(".pagination").show();
        }
		
		//Show teams if necessary
		if(year == defaultYear && seeTeams) $(".teams").show();
		else  $(".teams").hide();
		
    }
    
    var getResults = function( page ){        
        $("#resultados").html("<div class=\"loading\"><img src=\"/img/results/loading.gif\" /><b>"+i18n[lang].loading+"</b></div>");
        
        currentPage = page;
        
        //prepare parameters
		if(lastParams == null) {
			lastParams = new Array({ "name" : "page", "value" : currentPage}, {"name":"year","value":year});
		}
		else {
			//Only edit page number
			for ( param in lastParams ) {
  			    if(lastParams[param].name == "page") {
				   lastParams[param].value = currentPage;
			    }			   
			}			
		}
        
        $.post($("#buscador").attr("action"), 
            lastParams, 
            function(data){ 
                handleResults(data); 
            }
        )
    };
});





/*


function parseURL(url) {
    var a =  document.createElement('a');
    a.href = url;
    return {
        source: url,
        protocol: a.protocol.replace(':',''),
        host: a.hostname,
        port: a.port,
        query: a.search,
        params: (function(){
            var ret = {},
                seg = a.search.replace(/^\?/,'').split('&'),
                len = seg.length, i = 0, s;
            for (;i<len;i++) {
                if (!seg[i]) { continue; }
                s = seg[i].split('=');
                ret[s[0]] = s[1];
            }
            return ret;
        })(),
        file: (a.pathname.match(/\/([^\/?#]+)$/i) || [,''])[1],
        hash: a.hash.replace('#',''),
        path: a.pathname.replace(/^([^\/])/,'/$1'),
        relative: (a.href.match(/tps?:\/\/[^\/]+(.+)/) || [,''])[1],
        segments: a.pathname.replace(/^\//,'').split('/')
    };
}

*/