/**
 * Init file
 *
 * @author smanu85
 * @version 1.0
 * @package artestampa
 */
$(document).ready(function() {
    var astampa = new ArteStampa();
});


/**
 * ArteStampa Class
 */
function ArteStampa() {

    /* Private variables */
    var $ = jQuery;
    var _class = this;
    var _menu = new astampaMenu(_class);
    var _setup = {
        pagePath: "pages/"
    };
    var _pages = ["home", "tecnologie", "packaging", "publishing", "contattaci"];
    var url = document.location.href;
    var stripes = false;

    /* Public properties */
    _class.dom = {
        colonna_sx: "#colonna_sx",
        menu: "#menu",
        page: "#page .cont"
    };

    (function _constructor() {
        // Blink logo
        blinkLogo();

        // Controlla l'url passata
        url = url.split("#");
        //$.log("ulr passata: "+url[1]);
        if (typeof url[1] !== "undefined") {
            if (!checkIntro()) {
                loadPage(url[1]);
            }
        } else {
            url[1] = "home";
            if (!checkIntro()) {
                loadPage(url[1]);
            }
        }

        pos_colonna_sx();

        $("a.fancybox_privacy").live("click", function() {
            $.fancybox(
                $("#box_privacy").html(),
                {
                "transitionIn": "elastic",
                "transitionOut": "elastic",
                "speedIn": 600,
                "speedOut": 200,
                "autoDimensions": false,
                "width": 450,
                "height": 180,
                "padding": 20,
                "overlayShow": true,
                "overlayColor": "#000"
            });
            return false;
        });
        
        $("a.fancybox_map").live("click", function() {
            _class.openMap();
            return false;
        });
    })();
    
    // Avviso Phishing
    function checkIntro() {
        if (!$.cookie("showIntro")) {
            //$.log("Il cookie dell'intro non esiste, procedo all'animazione...");
            $.cookie("showIntro", true);
            intro();
            return true;
        } else {
            //$.log("Cookie già presente, saltare l'esecuzione dell'intro!");
            $("#site").removeAttr("style").fadeOut(0).fadeIn(1000).parent().addClass("stripes");
            return false;
        }
    }
    
    function intro() {
        //$.log("Intro animata!");
        $.get(_setup.pagePath+"intro.php", function(data) {
            $("body").append(data);
            $("#intro").css({
                "width": $(window).width(),
                "height": $(window).height()
            });
            // Intro content
            var introc = $("#intro").find(".content");
            // Content width
            var content = {
                "width": introc.width(),
                "height": introc.height()
            }
            introc
            .css({
                "left": Math.round(($(window).width()-content.width)/2),
                "top": Math.round(($(window).height()-content.height)/2)
            })
            .find("div")
            //.fadeOut(0);
            var totdiv = 4;
            for (var i=0; i<totdiv; i++) {
                introc.find(".logo_e").find("div:eq("+i+")").fadeTo(0,.001).delay((i+1)*1000).fadeTo(2000, 1);
            };
            introc.delay(7000).fadeOut(1000, function() {
                $("#site").removeAttr("style").parent().addClass("stripes");
                $(this).parent().fadeOut(1000);
                loadPage(url[1]);                
            });
        });
    }

    function pos_colonna_sx(skip) {
        //$.log("Moving...");
        if (typeof skip === "undefined") { skip = false; }
        if (!skip) { $(window).bind("resize", pos_colonna_sx, "skip"); }
        var leftPos = Math.round((($(window).width()-960)/2)/2);
        if(leftPos > 0) {
            $(_class.dom.colonna_sx).css("left", -leftPos);
        }
    }

    this.loadPage = function(name) {
        loadPage(name);
    }

    this.openMap = function() {
        //$.log("openMap()");
        $.fancybox(
        '<div id="map_canvas"></div>',
        {
            'transitionIn': 'elastic',
            'transitionOut': 'elastic',
            'speedIn': 600,
            'speedOut': 200,
            'autoDimensions': false,
            'width': 660,
            'height': 350,
            'padding': 20,
            'overlayShow': true,
            'overlayColor': "#000",
            'onComplete': function() {
                createMap();
            }
        });
    }

    function loadPage(name) {
        //$.log("Caricamento pagina: "+name);
        document.location.href = "#"+name;
        $("#slideshow").cycle("stop");
        jQuery(_class.dom.page)
        .fadeOut(500, function() {
            $(this)
            .empty()
            .load(_setup.pagePath+name+".php", function() {
                var title = $(this).find(".title");
                var titleText = title.find("h1");
                title
                .prepend('<div class="mask"><h1></h1></div>')
                .find("div:first")
                .find("h1").text(titleText.text())
                .parent(".mask")
                .height(0)
                .delay(500)
                .animate({"height": 40}, 500)
                .parent(".title")
                .find("h2")
                .hide()
                .delay(1000)
                .show("slide", {direction: "right"}, 500);
                // Fadeout-in page
                $(this)
                .fadeOut(0)
                .delay(300)
                .fadeIn(1000);
                // Create slideshow
                createSlideshow($(this));
            });
        });
        _menu.setActive(_pages.findIndex(name));
        if (!stripes) {
            stripes = true;
            $("body").addClass("stripes");
        }
    }
}

function createSlideshow(el) {
    //jQuery.info("Creating slideshow...");
    var img = {
        width: 660,
        height: 350
    }
    var slideshowTag = el.find("#slideshow");
    var folder = slideshowTag.attr("folder");
    var num = slideshowTag.attr("num");
    var autoMode = slideshowTag.attr("auto");
    if (typeof autoMode == 'undefined') { autoMode = true; }
    //jQuery.info("Slideshow info... folder: "+folder+" - num: "+num+" - automode: "+autoMode);
    if (String(autoMode) == "true") {
        var cont = [];
        for (var i=1; i<num; i++) {
            cont.push('<img width="'+img.width+'" width="'+img.height+'" src="'+folder+'img'+i+'.jpg" alt="Immagine '+i+'" />');
        }
        slideshowTag
        .append(cont.join(''))
        .cycle({ 
            fx: "fade", 
            easing: "easeOutQuint", 
            delay: 0,
            timeout: 3500,
            speed: 3000
        });
    } else {
        for (var i=0; i<=num; i++) {
            var cImg = slideshowTag.find("img:eq("+i+")");
            cImg.attr({
                "src": folder+"img"+(i+1)+".jpg",
                "width": img.width,
                "height": img.height
            });
        }
        // Start jQuery cycle
        slideshowTag
        .find("div")
        .cycle({ 
            fx: "fade", 
            easing: "easeOutQuint", 
            delay: 0,
            timeout: 3500,
            speed: 3000,
            before: onBefore
        });
    }
    el.find("#slideshow").fadeOut(0).fadeIn(1000);
    
    function onBefore() { 
        slideshowTag.find(".title").text(this.alt).fadeOut(0).delay(200).fadeIn(250).delay(3000);
    }
}

function createMap() {
    var $ = jQuery;
    //$.log("Creating map...");
    //$("#box_map").append('');
    var pos = ["ARTE_STAMPA", 45.199155,11.446853, 1];
    /* Carica mappa */
    function loadMap() {
        var myOptions = {
            zoom: 16,
            center: new google.maps.LatLng(pos[1], pos[2]),
            mapTypeId: google.maps.MapTypeId.ROADMAP
        }
        //setTimeout(function() {
            var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
            setMarker(map, pos);
        //}, 450);
    }
    loadMap();
    /* Imposta marker */
    function setMarker(map, pos) {
        var myLatLng = new google.maps.LatLng(pos[1], pos[2]);
        var image = new google.maps.MarkerImage('images/core/map_marker.gif',
            new google.maps.Size(40, 35),
            new google.maps.Point(0, 0),
            new google.maps.Point(0, 32));
        var shape = {
            coord: [1, 1, 1, 40, 1, 35, 35, 40],
            type: 'poly'
        };
        var marker = new google.maps.Marker({
            position: myLatLng,
            map: map,
            icon: image,
            shape: shape,
            title: pos[0],
            zIndex: pos[3]
        });
    }
}

function blinkLogo() {
    var $ = jQuery;
    $("#colonna_sx .logo_e")
    .find(".img")
    .fadeTo(500, 0.8)
    .delay(50)
    .fadeTo(500, 1, function() {
        setTimeout(blinkLogo, 1500);
    });
}
