(function(window,undefined){
    var History = window.History; 
    if ( !History.enabled ) {
        return false;
    }
    History.Adapter.bind(window,'statechange',function(){ 
        var State = History.getState();
        var hash = History.getHash();
        var partes = hash.split('?')
        var url = partes[0];
        if(url == '') {
            url = State.url;
        }
        if(url != aqui) {
            cargarPagina(State.url, State.data.modulo)
        }
        //History.log(State.data, State.title, State.url);
    });
})(window);

$(document).ready(function(){
     $(".mensaje .titulo").fitText(1);
   anchoVentana = $(window).width();
    if(anchoVentana < 981) {
        anchoVentana = 981;
    }
    var hash = History.getHash();
        var partes = hash.split('?')
        var url = partes[0];
    if(url != '') {
        cargarPagina(url, '')
    }
    $('#ctr-grilla, #enunciados, #pie').width(Math.floor((anchoVentana-20)/198)*198);
    inicializarInicio();    
    $("a[rel='#contacto']").overlay({
        effect: 'apple'
    });
	
    $("a[id!='at16ptx'][rel!='noajax'][rel!='#contacto'][rel!='sel-works-cliente'][rel!='sel-works-categoria'][rel!='sel-noticias'][rel!='sel-noticias-pag']").live("click", function(e) {
        e.preventDefault();
        var urlPedido = $(this).attr("href");
        var modulo = $(this).attr("rel");
		
        $("div#ctr-pie").hide();
        $("div#ctr-cuerpo").fadeOut("slow", function() {
            cargarPagina(urlPedido, modulo);
        });
    });
	
    $("a[rel^='sel-works-']").live("click", function() {
        var urlPedido = $(this).attr("href");
        var tipo = $(this).attr("rel");
        var elemento = $(this);
        $("#clientes-trabajos").slideUp("slow", function() {
            $.ajax({
                url: urlPedido+"/d:int",
                type: "GET",
                cache: false,
                success: function(html){
                    $("#ctr-trabajos").html(html);
                },
                beforeSend: function(){
                    var target_x = parseInt(($('body').innerWidth() - $('div#cargador').innerWidth())/2);
                    var target_y = parseInt(($('body').innerHeight() - $('div#cargador').innerHeight())/2);
                    $('div#cargador').css({
                        'left':target_x,
                        'top':target_y
                    });
                    $("div#cargador").show();
                },
                complete: function(){
                    $("div#cargador").hide();
                    $('div#clientes-lista ul li > a').removeClass("cliente-selec");
                    $('div#clientes-filtro ul li > a').removeClass("cat-selec");
                    if(tipo == 'sel-works-cliente') {
						
                        elemento.addClass("cliente-selec");
                    }
                    else {
						
                        elemento.addClass("cat-selec");
                    }
                    $("#clientes-trabajos").slideDown("slow");
                    var stateObj = {modulo: ''};
                    History.pushState(stateObj, titulo, urlPedido);
					
                }
            });	
        });
        return false;
    });
	
    $("a[rel^='sel-noticias']").live("click", function() {
        var urlPedido = $(this).attr("href");
        var elemento = $(this);
        var tipo = $(this).attr("rel");
        $("#ctr-noticias").slideUp("slow", function() {
            $.ajax({
                url: urlPedido+"/d:int",
                type: "GET",
                cache: false,
                success: function(html){
                    $("#ctr-noticias").html(html);
                },
                beforeSend: function(){
                    var target_x = parseInt(($('body').innerWidth() - $('div#cargador').innerWidth())/2);
                    var target_y = parseInt(($('body').innerHeight() - $('div#cargador').innerHeight())/2);
                    $('div#cargador').css({
                        'left':target_x,
                        'top':target_y
                    });
                    $("div#cargador").show();
                },
                complete: function(){
                    $("div#cargador").hide();
                    //$("div#ctr-pie").show();
                    if(tipo == 'sel-noticias') {
                        $('div#noticias-anios ul li > a').removeClass("anio-selec");
                        elemento.addClass("anio-selec");
                    }
                    $("#ctr-noticias").slideDown("slow");
                    var stateObj = {modulo: ''};
                    History.pushState(stateObj, titulo, urlPedido);
                }
            });	
        });
        return false;
    });
	
    $("div.acordion > h1").live("click", function() {
        $(this).next().slideToggle("normal"); 
        $(this).toggleClass("about-tit-selec");
        return false;
    });
	
    $("#BotonContacto").live("click", function(){
        var urlPedido = $("#ContactoForm").attr("action");
        $.ajax({
            url: urlPedido,
            type: "POST",
            data: $("#ContactoForm").serialize(),
            cache: false,
            success: function(html){
                $("div#contacto-form").html(html);
            },
            beforeSend: function(){
                var target_x = parseInt(($('body').innerWidth() - $('div#cargador').innerWidth())/2);
                var target_y = parseInt(($('body').innerHeight() - $('div#cargador').innerHeight())/2);
                $('div#cargador').css({
                    'left':target_x,
                    'top':target_y
                });
                $("div#cargador").show();
            },
            complete: function(){
                $("div#cargador").hide();
            }
        });
        return false;
    });
});

function cargarPagina(urlPedido, modulo) {
    $.ajax({
        url: urlPedido,
        type: "GET",
        cache: false,
        success: function(html){
            $("div#ctr-cuerpo").html(html);
        },
        beforeSend: function(){
            var target_x = parseInt(($('body').innerWidth() - $('div#cargador').innerWidth())/2);
            var target_y = parseInt(($('body').innerHeight() - $('div#cargador').innerHeight())/2);
            $('div#cargador').css({
                'left':target_x,
                'top':target_y
            });
            $("div#cargador").show();
        },
        complete: function(){
            $("div#cargador").hide();
            $("div#ctr-pie").show();
            $("div#ctr-cuerpo").fadeIn("slow");
            var stateObj = {modulo: modulo};
            History.pushState(stateObj, titulo, urlPedido);
            inicializar(modulo)
        }
    });	
}

function inicializar(modulo){
    seccion = modulo;
    $('#ctr-grilla, #enunciados, #pie').width(Math.floor((anchoVentana-20)/198)*198);
    switch (modulo) {
        case 'inicio':
            flashHome();
            inicializarInicio(); 
            break;
        case 'about':
            $('div.acordion > div.acordion-txt').hide();
			
            $("div.acordion h1").hover(function(){
                $(this).addClass("about-tit-over");
            }, function(){
                $(this).removeClass("about-tit-over");
            });
            
            break;
        case 'blogs':
            $("div.blogs-img").hover(function(){
                $(this).children(".blog-tiempo").fadeOut("slow");
            }, function(){
                $(this).children(".blog-tiempo").fadeIn("slow");
            });
            break;
        case 'links':
            inicializarInicio(); 
            break;
    }
    
}

function marcarMenu(marcador) {
    $('div#menu-principal ul li > a').removeClass("item-selec");
    $('li#menu_'+marcador+' > a').addClass("item-selec");
}

var flashvars = {
    mp3: dir_raiz+'img/musicas/1.mp3|'+dir_raiz+'img/musicas/2.mp3|'+dir_raiz+'img/musicas/3.mp3',
    showlist: '0',
    autoplay: '1',
    loop: '1',
    bgcolor1: '666666',
    bgcolor2: '666666',
    buttoncolor: '999999',
    buttonovercolor: 'ffffff',
    slidercolor1: 'cccccc',
    slidercolor2: 'cccccc',
    sliderovercolor: '666666',
    textcolor: '0',
    showvolume: '0',
    showslider: '0',
    buttoncolor: 'E9E9E9'
	
};
var params = {
    quality: "high",
    scale: "noscale",
    allowFullScreen: "false",
    salign: "tl",
    menu: "false",
    base: dir_raiz+'swf',
    wmode: 'transparent'
};

swfobject.embedSWF(dir_raiz+'swf/player_mp3_multi.swf', "tools-musica", "80", "15", "9.0.124", dir_raiz+'swf/playerProductInstall.swf', flashvars, params);

//http://capmousse.github.com/include.js/
//Include.js A tiny but heavy on-demand async javascript loader
!function(n,s){n[s]=function(c,h){var d=document,i="body",l=function(){},o={},m=0,j=1,k=d.createElement('div');!c.pop&&(c=[c]);h=h||l;k.id=Date();function t(e,f,p,g){g=d.createElement("script");m++;g.onload=g.onreadystatechange=function(a,b){b=0,a=this.readyState||a.type;if(!a.search("load|complete")){p?(e=function(){n[p]?q(f):setTimeout(e,j);++b>j&&(e=l)})():q(f)}};g.async=!0;g.src=e;d[i].appendChild(g)}function q(a){a();!--m&&h()}function u(a,b,e,f){b=d.getElementsByTagName("script");f=l;for(a in b)b[a].src&&(o[b[a].src]=a);for(a=c.length;a--;)c[a].pop?(b=c[a][0],f=c[a][1],e=c[a][2]):(b=c[a]),o[b]?f():t(b,f,e);!m&&h()}!function r(){if(!d[i])return setTimeout(r,j);d[i].appendChild(k);if(!d.getElementById(k.id))return setTimeout(r,j);d[i].removeChild(k);u()}()}}(this,'include')

var carrousel, apuntado = 0, proximo = 0, tmsg = 0, altoCarrousel = 0, anchoVentana = 0, izqCarrusel, derCarrousel;

function inicializarInicio() {
    
    apuntado = 0;
    proximo = 0;
    tmsg = 0;
    altoCarrousel = 0;anchoVentana = 0;
    
    $('#grilla').isotope({
        masonry: {
            columnWidth: 198
        }
    });
    resizeImagenes();
    tmsg = $('#carrousel > div.mensaje').length;
    carrousel = $("#carrousel");
    
    $('#btn-carrousel-izq a').bind("click", function(e){       
        e.preventDefault();
        izqCarrusel();
    });
    
    $('#btn-carrousel-der a').bind("click", function(e){       
        e.preventDefault();
        derCarrousel();
    });
    
    anchoVentana = $(window).width();
    
    if(window.WebKitCSSMatrix === undefined || !Modernizr.cssanimations) {
        $('#carrousel > div.mensaje').each(function() {
            if($(this).index() > 0) {
                $(this).css({
                    left: anchoVentana
                });
            }
        });
        arrancar();
    }
    else {
        include([dir_raiz+"js/public/libs/morf.min.js"], function(){
            arrancar();
        });
        $('#carrousel > div.mensaje').each(function() {
            if($(this).index() > 0) {
                $(this).get(0).style.webkitTransform = "translate3d("+anchoVentana+"px, 0, 0)";
            }
        });
    }
    
}


$(window).bind("load", centradoTextos);

$(window).resize(resizeImagenes);

function arrancar() {
    if(tmsg > 1) {
        carrousel.oneTime(7000, derCarrousel);
    } 
}


 if(window.WebKitCSSMatrix === undefined || !Modernizr.cssanimations) {
    izqCarrusel = function () {
        if($(".mensaje:animated").length == 0) {
            carrousel.stopTime();
            proximo = apuntado - 1;
            if (proximo < 0) {
                proximo = tmsg - 1;
            }
            
            var $mAp = $("div.mensaje:eq("+apuntado+")");
            var $mPr = $("div.mensaje:eq("+proximo+")");

            $mAp.animate({
                left: anchoVentana+"px"
            }, 1200, "swing", arrancar);

            $mPr.css("left", "-"+anchoVentana+"px").animate({
                left: "0px"
            }, 1200, "swing", function() {
                apuntado = proximo;
            });                                                                                    
        }

    }

    derCarrousel = function () {
        if($(".mensaje:animated").length == 0) {
            carrousel.stopTime();
            proximo = apuntado + 1;
            if (proximo > tmsg - 1) {
                proximo = 0;
            }
            
            var $mAp = $("div.mensaje:eq("+apuntado+")");
            var $mPr = $("div.mensaje:eq("+proximo+")");            
            
            $mAp.animate({
                left: "-"+anchoVentana+"px"
            }, 1200, "swing", arrancar);

            $mPr.css("left", anchoVentana+"px").animate({
                left: "0px"
            }, 1200, "swing", function() {
                apuntado = proximo;
            });    
        }
    }    
}
else {
    
    
    izqCarrusel = function () {
        carrousel.stopTime();
        proximo = apuntado - 1;
        if (proximo < 0) {
            proximo = tmsg - 1;
        }
        
        var mAp = $("div.mensaje:eq("+apuntado+")").get(0);
        var mPr = $("div.mensaje:eq("+proximo+")").get(0);    
        
        mPr.style.webkitTransform = "translate3d(-"+anchoVentana+"px, 0, 0)";
        
        Morf.transition(mAp, {
            '-webkit-transform': 'translate3d('+anchoVentana+'px, 0, 0)'
        }, {
            duration: '1200ms',
            timingFunction: 'easeFromTo',
            callback: function (elem) {
                arrancar();
            }
        });
        
        Morf.transition(mPr, {
            '-webkit-transform': 'translate3d(0, 0, 0)'
        }, {
            duration: '1200ms',
            timingFunction: 'easeFromTo',
            callback: function (elem) {
                apuntado = proximo;
            }
        }); 
    }

    derCarrousel = function () {
        carrousel.stopTime();
        proximo = apuntado + 1;
        if (proximo > tmsg - 1) {
            proximo = 0;
        }
        
        var mAp = $("div.mensaje:eq("+apuntado+")").get(0);
        var mPr = $("div.mensaje:eq("+proximo+")").get(0);  
        
        mPr.style.webkitTransform = "translate3d("+anchoVentana+"px, 0, 0)";
           
        
        Morf.transition(mPr, {
            '-webkit-transform': 'translate3d(0, 0, 0)'
        }, {
            duration: '1200ms',
            timingFunction: 'easeFromTo',
            callback: function (elem) {
                apuntado = proximo;
            }
        });
        
        Morf.transition(mAp, {
            '-webkit-transform': 'translate3d(-'+anchoVentana+'px, 0, 0)'
        }, {
            duration: '1200ms',
            timingFunction: 'easeFromTo',
            callback: function (elem) {
                arrancar();
            }
        });  
    }
}

function normalizarCarrousel() {
    if(window.WebKitCSSMatrix === undefined || !Modernizr.cssanimations) {
        $('#carrousel > div.mensaje').each(function() {
            if($(this).index() == apuntado) {
                $(this).stop(true, true).css({left: 0});
            }
            else {
                $(this).stop(true, true).css({left: anchoVentana+"px"});
            }
        });
        apuntado = proximo;
    }
    else {
        $('#carrousel > div.mensaje').each(function() {
            if($(this).index() == apuntado) {
                $(this).get(0).style.webkitTransform = "translate3d(0, 0, 0)";
            }
            else {
                $(this).get(0).style.webkitTransform = "translate3d("+anchoVentana+"px, 0, 0)";
            }
        });
        apuntado = proximo;
    }
}

function pausaPas() {
    carrousel.stopTime();
}

function resizeImagenes() {
    var altoVP = $(window).height();
    altoCarrousel = altoVP-4;
    $('#carrousel').height(altoCarrousel);

    anchoVentana = $(window).width();
    if(anchoVentana < 981) {
        anchoVentana = 981;
    }
    var bAncho = anchoVentana;
    var bAlto = altoCarrousel;
    
    $('#ctr-grilla, #enunciados, #pie').width(Math.floor((anchoVentana-20)/198)*198);
    
    
    
    $(".mensaje, .fnd-t").width(anchoVentana).height(altoCarrousel);
    
    //$('#grilla').isotope('reLayout');

    var bRA = bAncho / bAlto;
    

    var picWidth;
    var picHeight;
    var picRatio;
    var newHeight;
    var newWidth;

    $("img.carrousel-imagen").each(function() {
        picWidth = 1;
        picHeight = 1
        if ($(this).width() > 1) picWidth = $(this).width();
        if ($(this).height() > 1) picHeight = $(this).height();

        picRatio = picWidth / picHeight;
        
        if (bRA > picRatio) {
            newHeight = (bAncho / picWidth) * picHeight;
            newWidth = bAncho;
        }
        else {
            newHeight = bAlto;
            newWidth = (bAlto / picHeight) * picWidth;
        }
        
        $(this).css({
            height: newHeight,
            width: newWidth
        });
    });
    
    centradoTextos();
    
    normalizarCarrousel();
}

function centradoTextos() {
    $(".textos").each(function() {
        var altoTexto = $(this).height();
        var pos = altoCarrousel/2 - altoTexto/2;
        $(this).css('marginTop', pos+'px');
    });
}
