/*
 * This is the typematic. All work and no play make Jack a dull boy, if you get what I mean. 
 * It's a quickly hacked together script to swap images inside a div and type some text.
 * Don't ever expect it to be reusable. 
 */
 
var quickNDirtySlides =  new Array(3);

// Q: which famous computer scientist has always said "two or more, use a for"?
// He must be in pain right now. Voodoo coding, it's called. Or cargo cult coding, I can't remember right now.
quickNDirtySlides[0] =  new Object();
quickNDirtySlides[0].top = "Oltre la bellezza,";
quickNDirtySlides[0].bottom = "l'emozione della qualit&agrave;.";
quickNDirtySlides[0].background = "/media/static/img/0_900x468.jpg";
quickNDirtySlides[0].top_marginLeft = "200px";
quickNDirtySlides[0].top_marginTop = "100px";
quickNDirtySlides[0].bottom_marginLeft = "205px";
quickNDirtySlides[0].bottom_marginTop = "-30px";
quickNDirtySlides[0].tvDinner =  new Image();
quickNDirtySlides[0].tvDinner.src = quickNDirtySlides[0].background;  
quickNDirtySlides[1] =  new Object();
quickNDirtySlides[1].top = "Le soluzioni piu adatte";
quickNDirtySlides[1].bottom = "a qualunque tipo di contesto abitativo.";
quickNDirtySlides[1].background = "/media/static/img/1_900x468.jpg";
quickNDirtySlides[1].top_marginLeft = "-100px";
quickNDirtySlides[1].top_marginTop = "200px";
quickNDirtySlides[1].bottom_marginLeft = "-100px";
quickNDirtySlides[1].bottom_marginTop = "-20px";
quickNDirtySlides[1].tvDinner =  new Image();
quickNDirtySlides[1].tvDinner.src = quickNDirtySlides[1].background;
quickNDirtySlides[2] =  new Object();
quickNDirtySlides[2].top = "Dettagli e cura artigianale che,";
quickNDirtySlides[2].bottom = "da sempre, fanno la differenza.";
quickNDirtySlides[2].background = "/media/static/img/2_900x468.jpg";
quickNDirtySlides[2].top_marginLeft = "-80px";
quickNDirtySlides[2].top_marginTop = "10px";
quickNDirtySlides[2].bottom_marginLeft = "-220px";
quickNDirtySlides[2].bottom_marginTop = "-25px";
quickNDirtySlides[2].tvDinner =  new Image();
quickNDirtySlides[2].tvDinner.src = quickNDirtySlides[2].background;

// Preloading stuff is always a good idea, you see. 

if (typeof (console) === 'undefined') {
    var console = {
    }
    console.log = console.error = console.info = console.debug = console.warn = console.trace = console.dir = console.dirxml = console.group = console.groupEnd = console.time = console.timeEnd = console.assert = console.profile = function () {
    };
}
var timingbase = 1000

function typematic_swap(typematicObj, quickNDirtySlide, timing, i) {
    // This is typematic PLUS swap. The monkeys in your PC type the stuff,
    // and at the same time we change the background.
    // I suspect this is what those CS majors call an embarassingly parallel problem.
    // (*)
 
    setTimeout(function () {
        $(typematicObj.top).fadeTo(2 * timingbase, 0, function () {
            $(typematicObj.top).html(quickNDirtySlide.top);
            $(typematicObj.top).css("margin-left", quickNDirtySlide.top_marginLeft);
            $(typematicObj.top).css("margin-top", quickNDirtySlide.top_marginTop);
            $(typematicObj.top).fadeTo(2 * timingbase, 1);
          
        }
        );
    }
    , 0 * timingbase);
    $(typematicObj.main + " img").first().fadeOut(3000, function () {
        $(this).remove();
    }
    );
    $(typematicObj.main).append($(quickNDirtySlides[i].tvDinner).css("position", "absolute").fadeIn(2000));
    setTimeout(function () {
        $(typematicObj.bottom).fadeTo(1 * timingbase, 0, function () {
            $(typematicObj.bottom_text).html(quickNDirtySlide.bottom);
            $(typematicObj.bottom).width(0);
            $(typematicObj.bottom).css("margin-left", quickNDirtySlide.bottom_marginLeft);
            $(typematicObj.bottom).css("margin-top", quickNDirtySlide.bottom_marginTop);
            $(typematicObj.bottom).animate( {width:$(typematicObj.main).width(), opacity:1}, 2.5*timingbase)
        }
        );
    }
    , 1 * timingbase);
    return 1;
}
typematicObj =  new Object();
typematicObj.top = "#typematic_inner_top";
typematicObj.bottom = "#typematic_inner_bottom";
typematicObj.bottom_text = "#typematic_inner_bottom_text";
typematicObj.main = "#typematic_main";
typematicObj.overdog = "#typematic_overdog";
typematicObj.underdog = "#typematic_underdog";
i =  - 1;

function type_o_matic_stop() {
    // Stop typing. What else?
    window.license_to_type = 0;
}
function keep_calm_and_type() {
    // Recursive function that triggers the smaller bits every 10t.
    if (window.license_to_type) {
        i++;
        i = i % quickNDirtySlides.length;
        typematic_swap(typematicObj, quickNDirtySlides[i], 0, i);
	setTimeout(arguments.callee, 10*timingbase);
    }
}
function type_o_matic_start() {
    // Fires up the whole shebang.
    if (!window.license_to_type) {
        // "Close, but no cigar, Moneypenny".
        // Actually, it's just a stupid flag you raise
        // when you want the monkeys in your computer to stop 
        // typing on their virtual teletypes.
 
        window.license_to_type = 1;
        keep_calm_and_type();
    }
    else {
        // We can't afford to have infinite monkeys typing away, can we?
        // Next time The Matrix gets upgraded, maybe.
        //
        // Oh, wait, nononono, I mean THE Matrix, not "The Matrix".
        // The last thing we need is the Wachowski (or whatever it's meant to be spelled) brothers
        // raping The Matrix trilogy in the same fashion George Lucas has ruined Star Wars.
        // Just picture Trinity hugging a CGI Ewok.
        // Oh, the horror.
    }
}

// (*) Oh, BTW: it's not true. 

