parseQuery = function(url) {
    var parts1 = url.split('?');
    var parts = '';
    if(parts1.length < 2) {
        parts = url;
    } else {
        parts = parts1[1];
    }
    if(parts.indexOf('&amp;') >= 0) {
        parts1 = parts.split('&amp;');
    } else {
        parts1 = parts.split("&");
    }
    if(parts1 != null) {
        var jsonStr = '{';
        for(var i = 0; i < parts1.length; i++) {
            var parts2 = parts1[i].split('=');
            if(i > 0) {
                jsonStr += ',';
            }
            jsonStr += '"'+parts2[0]+'":"'+parts2[1]+'"';
        }
        jsonStr += "}";
    }
    return eval('('+jsonStr+')');
}



var urlAct = parseQuery(window.location.href);

var lastRequestSent = "?act=getImgUrlAyer&interval=ayer&idNodo="+urlAct.idNodo;

var idNodoActual = urlAct.idNodo;


seleccionFechaInit = function(evento) {
    var destino = evento.target.href;
    if(window.event) {
        destino = evento.srcElement.href;
    }
    dojo.stopEvent(evento);
    lastRequestSent = destino;
    destino += getDispositivoElegido();
    try {
        var ventana = new creaVentana("ventanaSeleccionFecha"+(new Date().getTime()),"Seleccione fecha",seleccionFechaChangeImg,true, false,'json');
        ventana.asignarContenidoUrl(destino);
    } catch (e) {
        alert("Excepcion en seleccionFechaInit: "+e);
    }
    return true;
}


seleccionFechaChangeImg = function(response, evento) {
    if(response.url.length > 0 && response.url != "null") {
        document.getElementById("imgGrafico").setAttribute("src",response.url);
    }
    dateDayStart = new Date();
    dateDayStart.setTime(response.actual);
    dateDayStart.setDate(dateDayStart.getDate()-1);
    var backButton = document.getElementById("backButton");
    backButton.setAttribute("href", "?act=getImgUrlBack&b="+dateDayStart.getTime()+"&interval="+response.interval);
    var forwardButton = document.getElementById("forwardButton");
    forwardButton.setAttribute("href", "?act=getImgUrlFwd&f="+response.actual+"&interval="+response.interval);
    var fechaText = document.getElementById("cadenaFecha");
    fechaText.innerHTML = response.cadenaFecha;
    var mensaje1 = document.getElementById("mensaje1");
    mensaje1.innerHTML = response.mensaje1;
    var mensaje2 = document.getElementById("mensaje2");
    mensaje2.innerHTML = response.mensaje2;
    var mensaje3 = document.getElementById("mensaje3");
    mensaje3.innerHTML = response.mensaje3;
    var mensaje4 = document.getElementById("mensaje4");
    mensaje4.innerHTML = response.mensaje4;
    var mensaje5 = document.getElementById("mensaje5");
    mensaje5.innerHTML = response.mensaje5;
    if(response.urlcambio != null && response.urlcambio != "undefined") {
        lastRequestSent = response.urlcambio;
    }
}

seleccionFechaChangeImgRwd = function(response, evento) {
    if(response.url.length > 0 && response.url != "null") {
        document.getElementById("imgGrafico").setAttribute("src",response.url);
    }
    dateDayStart = new Date();
    dateDayStart.setTime(response.actual);
    if(response.interval == "dia") {
        dateDayStart.setDate(dateDayStart.getDate()+1);
    } else if(response.interval == "semana") {
        dateDayStart.setDate(dateDayStart.getDate()+7);
    } else if(response.interval == "mes") {
        dateDayStart.setMonth(dateDayStart.getMonth()+1,dateDayStart.getDate());
    } else if(response.interval == "ano") {
        dateDayStart.setMonth(dateDayStart.getMonth()+12,dateDayStart.getDate());
    }
    var backButton = document.getElementById("backButton");
    backButton.setAttribute("href", "?act=getImgUrlBack&b="+response.actual+"&interval="+response.interval);
    var forwardButton = document.getElementById("forwardButton");
    forwardButton.setAttribute("href", "?act=getImgUrlFwd&f="+dateDayStart.getTime()+"&interval="+response.interval);
    var fechaText = document.getElementById("cadenaFecha");
    fechaText.innerHTML = response.cadenaFecha;
    var mensaje1 = document.getElementById("mensaje1");
    mensaje1.innerHTML = response.mensaje1;
    var mensaje2 = document.getElementById("mensaje2");
    mensaje2.innerHTML = response.mensaje2;
    var mensaje3 = document.getElementById("mensaje3");
    mensaje3.innerHTML = response.mensaje3;
    var mensaje4 = document.getElementById("mensaje4");
    mensaje4.innerHTML = response.mensaje4;
    var mensaje5 = document.getElementById("mensaje5");
    mensaje5.innerHTML = response.mensaje5;
    if(response.urlcambio != null && response.urlcambio != "undefined") {
        lastRequestSent = response.urlcambio;
    }
}

seleccionFechaChangeImgFwd = function(response, evento) {
    if(response.url.length > 0 && response.url != "null") {
        document.getElementById("imgGrafico").setAttribute("src",response.url);
    }
    dateDayStart = new Date();
    dateDayStart.setTime(response.actual);
    if(response.interval == "dia") {
        dateDayStart.setDate(dateDayStart.getDate()-1);
    } else if(response.interval == "semana") {
        dateDayStart.setDate(dateDayStart.getDate()-7);
    } else if(response.interval == "mes") {
        dateDayStart.setMonth(dateDayStart.getMonth()-1,dateDayStart.getDate());
    } else if(response.interval == "ano") {
        dateDayStart.setMonth(dateDayStart.getMonth()-12,dateDayStart.getDate());
    }
    var backButton = document.getElementById("backButton");
    backButton.setAttribute("href", "?act=getImgUrlBack&b="+dateDayStart.getTime()+"&interval="+response.interval);
    var forwardButton = document.getElementById("forwardButton");
    forwardButton.setAttribute("href", "?act=getImgUrlFwd&f="+response.actual+"&interval="+response.interval);
    var fechaText = document.getElementById("cadenaFecha");
    fechaText.innerHTML = response.cadenaFecha;
    var mensaje1 = document.getElementById("mensaje1");
    mensaje1.innerHTML = response.mensaje1;
    var mensaje2 = document.getElementById("mensaje2");
    mensaje2.innerHTML = response.mensaje2;
    var mensaje3 = document.getElementById("mensaje3");
    mensaje3.innerHTML = response.mensaje3;
    var mensaje4 = document.getElementById("mensaje4");
    mensaje4.innerHTML = response.mensaje4;
    var mensaje5 = document.getElementById("mensaje5");
    mensaje5.innerHTML = response.mensaje5;
    if(response.urlcambio != null && response.urlcambio != "undefined") {
        lastRequestSent = response.urlcambio;
    }
}

changeImg = function(response, interval) {
    if(response.url.length > 0 && response.url != "null") {
         document.getElementById("imgGrafico").setAttribute("src",response.url);
    }
    dateDayStart = new Date();
    dateDayStart.setTime(response.actual);
    if(response.interval == "dia") {
        dateDayStart.setDate(dateDayStart.getDate()-1);
    } else if(response.interval == "semana") {
        dateDayStart.setDate(dateDayStart.getDate()-7);
    } else if(response.interval == "mes") {
        dateDayStart.setMonth(dateDayStart.getMonth()-1,dateDayStart.getDate());
    } else if(response.interval == "ano") {
        dateDayStart.setMonth(dateDayStart.getMonth()-12,dateDayStart.getDate());
    }
    var backButton = document.getElementById("backButton");
    backButton.setAttribute("href", "?act=getImgUrlBack&b="+dateDayStart.getTime()+"&interval="+interval);
    var forwardButton = document.getElementById("forwardButton");
    forwardButton.setAttribute("href", "?act=getImgUrlFwd&f="+response.actual+"&interval="+interval);
    var fechaText = document.getElementById("cadenaFecha");
    fechaText.innerHTML = response.cadenaFecha;
    var mensaje1 = document.getElementById("mensaje1");
    mensaje1.innerHTML = response.mensaje1;
    var mensaje2 = document.getElementById("mensaje2");
    mensaje2.innerHTML = response.mensaje2;
    var mensaje3 = document.getElementById("mensaje3");
    mensaje3.innerHTML = response.mensaje3;
    var mensaje4 = document.getElementById("mensaje4");
    mensaje4.innerHTML = response.mensaje4;
    var mensaje5 = document.getElementById("mensaje5");
    mensaje5.innerHTML = response.mensaje5;
}

changeTipoDispositivo = function(evento) {
    dojo.stopEvent(evento);
    var destino = lastRequestSent;
    destino += getDispositivoElegido();
    var parametros = {
        url: destino,
        handleAs: "json",
        load: seleccionFechaChangeImg,
        error: function(t, e) {
            alert("Error en el envío de la solicitud "+ t + e);
        },
        sync: true
    };
    dojo.xhrGet(parametros);
}

goForward = function(evento) {
    var destino = evento.target.href;
    if(window.event) {
        destino = evento.srcElement.href;
    }
    dojo.stopEvent(evento);
    lastRequestSent = destino;
    destino += getDispositivoElegido();
    var parametros = {
        url: destino,
        handleAs: "json",
        load: seleccionFechaChangeImgFwd,
        error: function(t, e) {
            alert("Error en el envío de la solicitud "+ t + e);
        },
        sync: true
    };
    dojo.xhrGet(parametros);
}

goBack = function(evento) {
    var destino = evento.target.href;
    if(window.event) {
        destino = evento.srcElement.href;
    }
    dojo.stopEvent(evento);
    lastRequestSent = destino;
    destino += getDispositivoElegido();
    var parametros = {
        url: destino,
        handleAs: "json",
        load: seleccionFechaChangeImgRwd,
        error: function(t, e) {
            alert("Error en el envío de la solicitud "+ t + e);
        },
        sync: true
    };
    dojo.xhrGet(parametros);
}

getDispositivoElegido = function() {
    var selectDevice = document.getElementById("selectDevice");
    var returnPart = "";
    if(selectDevice != null) {
        returnPart = "&tipoDispositivo=" + selectDevice.options[selectDevice.selectedIndex].value;
    }
    if(idNodoActual != null && idNodoActual.length > 0) {
        returnPart += "&idNodo="+idNodoActual;
    }
    return returnPart;
}

goYesterday = function(evento) {
    var destino = evento.target.href;
    if(window.event) {
        destino = evento.srcElement.href;
    }
    dojo.stopEvent(evento);
    lastRequestSent = destino;
    destino += getDispositivoElegido();
    var parametros = {
        url: destino,
        handleAs: "json",
        load: function(response, ioArgs){
            changeImg(response, "dia");
    	},
        error: function(t, e) {
            alert("Error en el envío de la solicitud "+ t + e);
        },
        sync: true
    };
    dojo.xhrGet(parametros);
}

goMonth = function(evento) {
    var destino = evento.target.href;
    if(window.event) {
        destino = evento.srcElement.href;
    }
    dojo.stopEvent(evento);
    lastRequestSent = destino;
    destino += getDispositivoElegido();
    var parametros = {
        url: destino,
        handleAs: "json",
        load: function(response, ioArgs){
            changeImg(response, "mes");
    	},
        error: function(t, e) {
            alert("Error en el envío de la solicitud "+ t + e);
        },
        sync: true
    };
	dojo.xhrGet(parametros);
}

goInit = function(evento) {
    var destino = evento.target.href;
    if(window.event) {
        destino = evento.srcElement.href;
    }
    dojo.stopEvent(evento);
    lastRequestSent = destino;
    destino += getDispositivoElegido();
    var parametros = {
        url: destino,
        handleAs: "json",
        load: function(response, ioArgs){
            changeImg(response, "ano");
    	},
        error: function(t, e) {
            alert("Error en el envío de la solicitud "+ t + e);
        },
        sync: true
    };
	dojo.xhrGet(parametros);
}

goIncludeEmail = function(evento) {
    var destino = evento.target.href;
    if(window.event) {
        destino = evento.srcElement.href;
    }
    dojo.stopEvent(evento);
    destino += getDispositivoElegido();
    try {
        var ventana = new creaVentana("ventanaNuevoContacto"+(new Date().getTime()),"Contacto",addContact,true, false,'json');
        ventana.asignarContenidoUrl(destino);
    } catch (e) {
        alert("Excepcion en goIncludeEmail: "+e);
    }
    return true;
}

addContact = function(response, event) {
    try {
        var ventana = new creaVentana("ventanaConfirmacion"+(new Date().getTime()),"Hecho",addContact,true, false,'json');
        ventana.asignarContenidoCadena(response.mensaje);
    } catch (e) {
        alert("Excepcion en addContact: "+e);
    }
    return true;
}

showInitialAlert = function() {
    try {
        var initialAlert = new creaVentana("alertInicial","¿Quieres ayudarnos?", null, true, false, 'json');
        initialAlert.asignarContenidoCadena('<div style="font-size: 120%; color: red;">Para ver el flujo de personas de una calle <br />por favor, vótanos en el concurso BBVA OpenTalent.<br /><strong>Tu voto marca una diferencia.</strong></div>');
    } catch(e) {}
    return true;
}

startLoading = function() {
  var dateSelector = document.getElementById("dateSelector");
  dojo.connect(dateSelector,"onclick", this,"seleccionFechaInit", false);
  var backButton = document.getElementById("backButton");
  dojo.connect(backButton,"onclick",this, "goBack",false);
  var forwardButton = document.getElementById("forwardButton");
  dojo.connect(forwardButton,"onclick",this, "goForward",false);
  var yesterdayButton = document.getElementById("yesterdayButton");
  dojo.connect(yesterdayButton,"onclick",this,"goYesterday",false);
  var monthButton = document.getElementById("the30daysButton");
  dojo.connect(monthButton,"onclick",this,"goMonth",false);
  var initButton = document.getElementById("initButton");
  dojo.connect(initButton,"onclick",this,"goInit",false);
  var solicitarSuscripcion = document.getElementById("interesados");
  dojo.connect(solicitarSuscripcion, "onclick", this, "goIncludeEmail",false);
  var selectorDispositivos = document.getElementById("selectDevice");
  dojo.connect(selectorDispositivos,"onchange",this,"changeTipoDispositivo",false);
}

tabsAnimation = function() {
	if(!window.ie6) {
            myTabs = new SlidingTabs('buttons', 'panes',{
            startingSlide: false, // sets the slide to start on, either an element or an id
            activeButtonClass: 'active', // class to add to selected button
            activationEvent: 'click', // you can set this to ‘mouseover’ or whatever you like
            wrap: true, // calls to previous() and next() should wrap around?
            slideEffect: { // options for effect used to animate the sliding, see Fx.Base in mootools docs
              duration: 400 // 0.4 of a second
            },
            animateHeight: true, // animate height of container
            rightOversized: 0 // how much of the next pane to show to the right of the current pane
          });

            // this sets up the previous/next buttons, if you want them
            $('previous1').addEvent('click', myTabs.previous.bind(myTabs));
            $('previous2').addEvent('click', myTabs.previous.bind(myTabs));
            $('previous3').addEvent('click', myTabs.previous.bind(myTabs));
            $('previous4').addEvent('click', myTabs.previous.bind(myTabs));
            $('next1').addEvent('click', myTabs.next.bind(myTabs));
            $('next2').addEvent('click', myTabs.next.bind(myTabs));
            $('next3').addEvent('click', myTabs.next.bind(myTabs));
            $('next4').addEvent('click', myTabs.next.bind(myTabs));

            // this sets it up to work even if it's width isn't a set amount of pixels
            window.addEvent('resize', myTabs.recalcWidths.bind(myTabs));
	  } else {
	    $('li1').onclick = function(){
	      $('c1').setStyle('display','block');
	      $('c2').setStyle('display','none');
	      $('c3').setStyle('display','none');
	      $('c4').setStyle('display','none');
	      $('c5').setStyle('display','none');
	      $('li1').className = "active";
	      $('li2').className = "";
	      $('li3').className = "";
	      $('li4').className = "";
	      $('li5').className = "";
	    }
	    $('li2').onclick = function(){
	      $('c1').setStyle('display','none');
	      $('c2').setStyle('display','block');
	      $('c3').setStyle('display','none');
	      $('c4').setStyle('display','none');
	      $('c5').setStyle('display','none');
	      $('li1').className = "";
	      $('li2').className = "active";
	      $('li3').className = "";
	      $('li4').className = "";
	      $('li5').className = "";
	    }
	    $('li3').onclick = function(){
	      $('c1').setStyle('display','none');
	      $('c2').setStyle('display','none');
	      $('c3').setStyle('display','block');
	      $('c4').setStyle('display','none');
	      $('c5').setStyle('display','none');
	      $('li1').className = "";
	      $('li2').className = "";
	      $('li3').className = "active";
	      $('li4').className = "";
	      $('li5').className = "";
	    }
	    $('li4').onclick = function(){
	      $('c1').setStyle('display','none');
	      $('c2').setStyle('display','none');
	      $('c3').setStyle('display','none');
	      $('c4').setStyle('display','block');
	      $('c5').setStyle('display','none');
	      $('li1').className = "";
	      $('li2').className = "";
	      $('li3').className = "";
	      $('li4').className = "active";
	      $('li5').className = "";
	    }
	    $('li5').onclick = function(){
	      $('c1').setStyle('display','none');
	      $('c2').setStyle('display','none');
	      $('c3').setStyle('display','none');
	      $('c4').setStyle('display','none');
	      $('c5').setStyle('display','block');
	      $('li1').className = "";
	      $('li2').className = "";
	      $('li3').className = "";
	      $('li4').className = "";
	      $('li5').className = "active";
	    }
	  }
}

var defaultLogin = "";
var defaultPasswd = "";

others = function() {
    var fieldLogin = document.getElementById("field_login");
    var fieldPwd = document.getElementById("field_passwd");
    defaultLogin = fieldLogin.getAttribute("value")+"";
    defaultPasswd = fieldPwd.getAttribute("value")+"";
    dojo.connect(fieldLogin,"onfocus",this,"clear",false);
    dojo.connect(fieldLogin,"onblur",this,"setDefaultState",false);
    dojo.connect(fieldPwd,"onfocus",this,"clearPwd",false);
    dojo.connect(fieldPwd,"onblur",this,"setDefaultStatePwd",false);
}


clear = function(evento) {
    var fieldLogin = document.getElementById("field_login");
    if(fieldLogin.getAttribute("value") == defaultLogin) {
        fieldLogin.setAttribute("value","");
    }
}

clearPwd = function(evento) {
    var fieldPwd = document.getElementById("field_passwd");
    if(fieldPwd.getAttribute("value") == defaultPasswd) {
        fieldPwd.setAttribute("value","");
    }
}

setDefaultState = function(evento) {
    var destino = evento.target;
    if(destino.getAttribute("value") == "") {
        destino.setAttribute("value",defaultLogin);
    }
}

setDefaultStatePwd = function(evento) {
    var fieldPwd = document.getElementById("field_passwd");
    if(fieldPwd.getAttribute("value") == defaultPasswd) {
        fieldPwd.setAttribute("value",defaultPasswd);
        fieldPwd.setAttribute("type","text");
    }
}

init = function() {
    startLoading();
    tabsAnimation();
    others();
    //showInitialAlert();
    dojo.body().className = "soria";
}

dojo.connect(window,'onload',init);
