FTRequestUninitialized=     0;
FTRequestLoading=           1;
FTRequestLoaded=            2;
FTRequestInteractive=       3;
FTRequestComplete=          4;

FTRequestOKStatus=          200;
FTRequestNotFoundStatus=    404;

FTRequestGETRequestMethod=  "GET";
FTRequestPOSTRequestMethod= "POST";

function email_href()
{
    var at= "@";
    document.writeln("<a href='mailto:francisco"+at+"tolmasky.com'>francisco |at| tolmasky.com</a>");
}

function drift(elements, wrap, direction, speed)
{
    var left= 0,
        custom_drift= function()
        {
            var i= 0;
            for(;i<elements.length; ++i)
                if(left<=-wrap) elements[i].style.left= (left= -1)+"px";
                else elements[i].style.left= (left+=direction)+"px";
            
            window.setTimeout(custom_drift, speed);
        }
    
    custom_drift();
}

function ahref(url, newActiveLink)
{
    activeLink.style.color= "#a1a5a9";
    (activeLink= newActiveLink).style.color= "#ffffff";

    loadInnerHTML(url);
}

function smooth_grow(x)
{
    var prevElement= x.parentNode.previousSibling.previousSibling,
        nextElement= x.parentNode.nextSibling.nextSibling;
    
    x.style.fontSize= '20px';
    if(prevElement) prevElement.firstChild.style.fontSize= '16px';
    if(nextElement) nextElement.firstChild.style.fontSize= '16px';
    
}

function smooth_lessen(x)
{
    var prevElement= x.parentNode.previousSibling.previousSibling,
        nextElement= x.parentNode.nextSibling.nextSibling;

    x.style.fontSize= '12px';
    if(prevElement) prevElement.firstChild.style.fontSize= '12px';
    if(nextElement) nextElement.firstChild.style.fontSize= '12px';
}

function loadInnerHTML(url)
{
    if(request.readyState!=FTRequestUninitialized && request.readyState!=FTRequestComplete)
        request.abort();
    
    request.open(FTRequestGETRequestMethod, url, true);
    request.send(null);
}

function updateLoadInnerHTML()
{
    switch(request.readyState)
    {
        case FTRequestComplete: contentElement.innerHTML= request.responseText;
                                break;
    }
}

if(XMLHttpRequest) request= new XMLHttpRequest();
else if(ActiveXObject) request= new ActiveXObject("Microsoft.XMLHTTP");

request.onreadystatechange= updateLoadInnerHTML;

window.addEventListener("load", function()
{
    activeLink= document.getElementById("home");
    contentElement= document.getElementById("content");
    drift([document.getElementById('clouds'), document.getElementById('cloudcover')], 766, -1, 100, 0);
}, false);