$(document).ready(function () {    
    $('.projectLink').click(projectLinkClick);    
    $('.newsLink').click(newsLinkClick);    
    loadAltSection('main');
    loadAltSection('news');
    loadAltSection('project');
});

function projectLinkClick() {
    var linkId = this.id;
    var id = getIdFromLink(linkId);        
    loadProject(id);
}

function newsLinkClick() {
    var linkId = this.id;
    var id = getIdFromLink(linkId);        
    loadPage(id);
}

function loadAltSection(section) {    
    $.post('/index/altcontent',
        {section: section, permalinkType:permalinkType, permalinkId:permalinkId},
        function(content) {
            $("#altSection_"+section).html(content);
            
            $('#langFr').click(langFrClick);    
            $('#langEn').click(langEnClick);    
            $('.projectLink').click(projectLinkClick);    
            $('.newsLink').click(newsLinkClick);
            $('.projectLink').click(langProjectLinkClick);    
            $('.newsLink').click(langNewsLinkClick);     
            $('.closeProject').click(closeClick);    
            $('.closeNews').click(closeClick);
            $('.linkBioFrank').click(linkBioFrankClick);    
            $('.bioFrank').click(stopEvent);    
            $('.bioMike').click(stopEvent);    
            $('.linkBioMike').click(linkBioMikeClick);
            $('.content').click(contentClick);
            $('.linkAboutBg').click(linkAboutBgClick);
            $('.projectLink').mouseover(projectLinkMouseOver);    
            $('.projectLink').mouseout(projectLinkMouseOut);
            
            $(".bioFrank").css("visibility", "hidden");
            $(".bioMike").css("visibility", "hidden");
        }
    );    
}

function getIdFromLink(link){    
    return link.substr(link.indexOf('_')+1);
}

function loadProject(id){
    $.post('/index/project', {id: id}, populateProject, "json");
}

function populateProject(project) {
    populateProjectByLang(project, 'en');
    populateProjectByLang(project, 'fr');
}

function populateProjectByLang(project, lang) {
    
    $(".showHideProjectBlockFr").scrollTop(0);
    $(".showHideProjectBlockEn").scrollTop(0);    
    
    $("#project-title-"+lang).html(eval("project.name_"+lang));
    $("#project-link-"+lang).attr("href", project.url);
    $("#project-link-"+lang).html(project.url);
    
    if(project.url && lang == "fr") $("#link-label-"+lang).html('Lien: ');
    if(project.url && lang == "en") $("#link-label-"+lang).html('Link: ');    
    else $("#link-label-"+lang).html('');
    
    $("#project-client-"+lang).html(eval("project.client_"+lang));
    $("#project-agency-"+lang).html(eval("project.partners_"+lang));
    $("#project-technology-"+lang).html(eval("project.technology_"+lang));
    $("#project-description-"+lang).html(eval("project.description_"+lang));
    if(project.permalink) {
        $("#project-source-label-"+lang).html('&#8212;Permalink ');
        $("#project-source-"+lang).attr("href", SITE_URL+'/'+lang+'/p/'+project.permalink);
        $("#project-source-"+lang).html(SITE_URL+'/'+lang+'/p/'+project.permalink);
    }else{    
        $("#project-source-label-"+lang).html('');
        $("#project-source-"+lang).attr("href", '');
        $("#project-source-"+lang).html('');
    }
    
    //Add pictures.
    var projectPicture = '';
    var projectMainPicture = '';
    $("#project-media-"+lang).html('');
    $("#project-main-medium-"+lang).html('');
    
    if(project.mainPicture) {
        projectMainPicture = projectMainPicture + '<div class="project-picture"><img alt="'+eval("project.mainPicture.caption_"+lang)+'" src="'+project.mainPicture.url+'"/></div>';
    }
    
    for(var i in project.pictures) {
        if(projectMainPicture == '') {
            projectMainPicture = projectMainPicture + '<div class="project-picture"><img alt="'+eval("project.pictures[i].caption_"+lang)+'" src="'+project.pictures[i].url+'"/></div>';
        }else{
            projectPicture = projectPicture + '<div class="project-picture"><img alt="'+eval("project.pictures[i].caption_"+lang)+'" src="'+project.pictures[i].url+'"/></div>';    
        }        
    }
    
    for(var i in project.urls) {
        
        var currentEmbed =
            '<div class="project-video">' +
                '<object width="525" height="350">' +
                    '<param name="allowfullscreen" value="true" />' +
                    '<param name="allowscriptaccess" value="always" />' +
                    '<param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id='+project.urls[i].src+'&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=1&amp;color=ffffff&amp;fullscreen=1" />' +
                    '<embed src="http://vimeo.com/moogaloop.swf?clip_id='+project.urls[i].src+'&amp;server=vimeo.com&amp;show_title=0&amp;show_byline=0&amp;show_portrait=1&amp;color=ffffff&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="525" height="350"></embed>' +
                '</object>' +
            '</div>';
        projectPicture = projectPicture + currentEmbed;        
    }  
    
    $("#project-media-"+lang).html(projectPicture);
    $("#project-main-medium-"+lang).html(projectMainPicture);
        
    showHideBlock();
}

function make2ColumnText(content, enclosureStart, enclosureEnd) {
    
    var IE = /*@cc_on!@*/false;
    
    result = enclosureStart;
    totalLength = content.length;
    
    if(totalLength > 350) {
        if(IE) {
            var closeToEndPos = 0;
            var newPos = 0;
            var splitPos = 999999;
            var charToSplitOn = '.,:!?';
            
            for(var i in charToSplitOn){
                newPos = content.indexOf(charToSplitOn[i], Math.floor(totalLength/2));
                if(newPos < splitPos && newPos > 0) splitPos = newPos+1;
            }
            if(splitPos <= 0) splitPos = content.indexOf(' ', Math.floor(totalLength/2));
         
            result += content.substring(0,splitPos);
            result += enclosureEnd + enclosureStart;
            result += content.substring(splitPos);
            result += enclosureEnd;
        }else{
            result = content;
        }
    }else{
        result = content;
    }
    
    
    return result;     
}

function loadPage(id){
    $.post('/index/page', {id: id, lang: 'en'}, function(data){ 
        populatePage(data, 'en')
    }, "json");
    
    $.post('/index/page', {id: id, lang: 'fr'}, function(data){ 
        populatePage(data, 'fr')
    }, "json");
}

function populatePage(page, lang) {
    
    $(".showHideNewsBlockFr").scrollTop(0);
    $(".showHideNewsBlockEn").scrollTop(0);
    
    //$("#page-category-en").text(page.category);
    $("#page-date-"+lang).html(formatDate(page.date_posted));
    $("#page-title-"+lang).html(page.title);
    $("#page-content-"+lang).html(page.content);
    
    if(page.sourcelink) {
        $("#page-source-label-"+lang).html('&#8212;via ');
        $("#page-source-"+lang).html(page.sourcelink); 
    }else{
        $("#page-source-label-"+lang).html('');
        $("#page-source-"+lang).html('');
    }    
    
    if(page.permalink) {
        if(lang == 'en') {
            $("#page-permalink-label-"+lang).html('&#8212;Permalink ');
        }else{
            $("#page-permalink-label-"+lang).html('&#8212;Permalien ');
        }        
        $("#page-permalink-"+lang).attr("href", SITE_URL+'/'+lang+'/n/'+page.permalink);     
        $("#page-permalink-"+lang).html(SITE_URL+'/'+lang+'/n/'+page.permalink); 
    }else{
        $("#page-permalink-label-"+lang).html('');
        $("#page-permalink-"+lang).attr("href", '');
        $("#page-permalink-"+lang).html('');
    }    
    
    
    if(lang == currentLang) {
        showHideBlock();
    }    
}

function formatDate(date) {
    if(date) {
        var d = new Date(mysqlTimeStampToDate(date));
        var curr_date = d.getDate();
        var curr_month = d.getMonth();
        curr_month++;
        var curr_year = d.getFullYear();
        return pad(curr_month,2) + "/" + pad(curr_date,2) + "/" + pad(curr_year,2);
    }
}
function mysqlTimeStampToDate(timestamp) {
    if(timestamp) {
        var regex=/^([0-9]{2,4})-([0-1][0-9])-([0-3][0-9]) (?:([0-2][0-9]):([0-5][0-9]):([0-5][0-9]))?$/;
        var parts=timestamp.replace(regex,"$1 $2 $3 $4 $5 $6").split(' ');
        return new Date(parts[0],parts[1]-1,parts[2],parts[3],parts[4],parts[5]);
    }    
}
function pad(number, length) {   
    var str = '' + number;
    while (str.length < length) {
        str = '0' + str;
    }   
    return str;
}


