/**
 *  Client Side
 *  Main JavaScript file
 */

//var projectsInfo = false;
var rewriteFix = '';

$(document).ready(function() {
    //console.log(projectsInfo);
    rewriteFix = $("#rewrite-fix").text();
    //projectsInfo = jQuery.parseJSON(projectsInfo);
    
    
    /*
    $(".project-thumb-wrapper").flip({
        direction:'lr',
        color: $(this).find(".project-thumb-mask").css("backgroundColor"),
        speed: 300,
        onBefore: function(){
            
        }
    })
    */
    initFooter();
    onLoadProject();
    
    $(".blank").attr("target", "_blank");
    $("#categories-switch").click(function() {
        var $this = $(this);
        if( $(this).hasClass('categories-links') ) {
            $this.removeClass("categories-links").addClass("categories-links-selected");
            $("#categories-menu").slideDown('fast');
        }
        else {
            $("#categories-menu").slideUp('fast', function() {
                $this.removeClass("categories-links-selected").addClass("categories-links");
            });
        }
        return false;
    })
    
    $("#contacts-btn").click(function() {
        var $this = $(this);
        if( $(this).hasClass('contacts-links') ) {
            $this.removeClass("contacts-links").addClass("contacts-links-selected");
            $("#contacts-container").slideDown('fast');
        }
        else {
            $("#contacts-container").slideUp('fast', function() {
                $this.removeClass("contacts-links-selected").addClass("contacts-links");
            });
        }
        return false;
    })
    
    $(".projectlink").mouseenter(function() {
        $(this).find("span.project-thumb-mask").fadeOut("fast");
    })
    
    $(".projectlink").mouseleave(function() {
        $(this).find("span.project-thumb-mask").animate({opacity: 0.83}, 10);
    })
    
    $(".left-arrow-large, .right-arrow-large").mouseenter(function() {
        $(this).fadeTo('slow', 1);
    })
    
    $(".left-arrow-large, .right-arrow-large").mouseleave(function() {
        $(this).fadeTo('slow', 0.0);
    })
    
    if(!document.location.hash.match(/project\/([0-9]+)/gi)) {
        var interval = 1;
        $(".project-thumb-wrapper").each(function() {
            var $this = $(this);
            interval++;
            var tempColor = $this.find(".project-thumb-mask").css("backgroundColor");
            setTimeout(function() {
                $this.flip({
                    direction:'lr',
                    color: tempColor,
                    speed: 300,
                    onEnd: function() {
                        $this.find("a").fadeIn('slow');
                    }
                })
            }, interval*200);
            
        })
    }
    
    $(".projectlink").click(function() {
        var idProject = $(this).parent(".project-thumb-wrapper").attr("id").split("-")[1];
        /*
        var interval = 1;
        $(".project-thumb-wrapper").each(function() {
            var $this = $(this);
            interval++;
            var tempColor = $this.find(".project-thumb-mask").css("backgroundColor");
            setTimeout(function() {
                $this.flip({
                    direction:'lr',
                    color: tempColor,
                    speed: 300
                })
            }, interval*150);
            
        })
        */
        initProject(idProject, projectsInfo);
    })
    
    $(".next-project, .prev-project").click(function() {
        var idProject = $(this).attr("href").match(/project\/([0-9]+)/gi);
        idProject = idProject[0].split("/")[1];
        initProject(idProject, projectsInfo);
        
        location.href = "#/project/"+idProject+"/"+projectsInfo[idProject].page_url+"/";
        return false;
    })
    
    $(".close-project-btn").click(function() {
        $(".project-thumb-wrapper").css("visibility", "visible");
        $("#single-project-container").fadeOut();
        
        $(".projectlink").css({"visibility": "visible", "display": "block"});
        /*
        var interval = 1;
        $(".project-thumb-wrapper").each(function() {
            var $this = $(this);
            interval++;
            var tempColor = $this.find(".project-thumb-mask").css("backgroundColor");
            setTimeout(function() {
                $this.flip({
                    direction:'lr',
                    color: tempColor,
                    speed: 300,
                    onEnd: function() {
                        $this.find("a").fadeIn('slow');
                    }
                })
            }, interval*200);
            
        })
        */
        return false;
    })
    
    
    $(".projectlink").mouseleave(function() {
        $(this).find("span.project-thumb-mask").fadeIn();
    })
    
})

function onLoadProject() {
    var projectIdMatch = document.location.hash.match(/project\/([0-9]+)/gi);
    
    if(projectIdMatch) {
        var projectId = projectIdMatch[0].split("/")[1]
        initProject(projectId, projectsInfo);
    }
}

function initProject(idProject, projectsInfo) {
    //$("#project-name, #project-category-label, #project-description").hide();
    $(".project-thumb-wrapper, .projectlink").css("visibility", "hidden");
    
    $("div#slider-container, div#project-info-container, div#next-project-navigation").hide();
    
    var selectedProjectData = projectsInfo[idProject];
    var roundProject = getRoundProjects(projectsInfo, idProject);
    
    document.title = selectedProjectData.project_name + " - Projects - Archabits";
    
    //$("div#slider-container, div#project-info-container, div.small-thumb-arrows").css("backgroundColor", selectedProjectData.color_theme);
    $("div#project-info-container, div.small-thumb-arrows").css("backgroundColor", selectedProjectData.color_theme);
    $(".next-project").attr("href", "#/project/"+roundProject.next.id_project+"/"+roundProject.next.page_url+"/");
    $(".prev-project").attr("href", "#/project/"+roundProject.prev.id_project+"/"+roundProject.prev.page_url+"/");
    
    $(".next-project").attr("title", roundProject.next.page_url);
    $(".prev-project").attr("title", roundProject.prev.page_url);
    
    var newArrowBtnID = {
        prev : selectedProjectData.category_page_url + "-prev-hover-arrow",
        next : selectedProjectData.category_page_url + "-next-hover-arrow"
    }
    
    $(".next-project").attr("id", newArrowBtnID.next);
    $(".prev-project").attr("id", newArrowBtnID.prev);
    
    $("#project-name").text(selectedProjectData.project_name);
    $("#project-category-label").text(selectedProjectData.category_name);
    $("#project-description").html(selectedProjectData.description);
    
    $("#single-project-container").show();
    
    $("#slider-container").fadeIn("slow");
    setTimeout(function() {
        $("#project-info-container").fadeIn("slow");
        setTimeout(function() {
            $("#next-project-navigation").fadeIn("slow");
        }, 300);
    }, 300);
    
    /*
    $("#slider-container").flip({
        direction:'lr',
        color: selectedProjectData.color_theme,
        speed: 300,
        onBefore: function(){
            
        }
    })
    
     $("#project-info-container").flip({
        direction:'tb',
        color: selectedProjectData.color_theme,
        speed: 300,
        onEnd: function() {
            setTimeout(function() {
                $("#project-name, #project-category-label, #project-description").fadeIn("fast");
            }, 100);
        }
    })
     
    $("#next-project-navigation").flip({
        direction:'rl',
        color: selectedProjectData.color_theme,
        speed: 300
    })
    */
    var lastImageHeight = 0;
    var galleryHTML = "";
    for(var i in selectedProjectData.gallery) {
        var galleryItemInfo = selectedProjectData.gallery[i];
        selectedProjectData.gallery[i].title;
        selectedProjectData.gallery[i].file_common
        galleryHTML += '<div class="single-slide-item">';
        galleryHTML += '<span id="largeimggallery-'+galleryItemInfo.id_image+'" class="img_gallery_item"><img src="'+rewriteFix+'content/gallery/'+galleryItemInfo.file_common+'" alt="'+galleryItemInfo.title+'" /></span>';
        galleryHTML += '</div>';
        /*
        var tmpImage = new Image();
        tmpImage.src = rewriteFix+'content/gallery/'+galleryItemInfo.file_common;
        tmpImage.onload = function() {
            lastImageHeight = tmpImage.height;
            $("#project-info-container").height(parseInt(lastImageHeight, 10) - 71 - 40);
        }
        */
    }
    
    if(selectedProjectData.text_block_height > 0) {
        $("#project-info-container").height(parseInt(selectedProjectData.text_block_height, 10) - 71 - 40);
    }
    else {
        $("#project-info-container").height('auto');
    }
    
    $(".left-arrow-large").removeClass("left-arrowtype-1, left-arrowtype-2, left-arrowtype-3").addClass("left-arrowtype-" + selectedProjectData.slider_arrow_type);
    $(".right-arrow-large").removeClass("right-arrowtype-1, right-arrowtype-2, right-arrowtype-3").addClass("right-arrowtype-" + selectedProjectData.slider_arrow_type);
    
    $("#project-gallery-slider-holder").html(galleryHTML);
    
    $(".thumbnail-holder-large").css({left: 0, width : 0});
    
    $(".gallery-slideshow-large").slider({
        controls : {left : ".left-arrow-large", right : ".right-arrow-large"},
        container : ".thumbnail-holder-large",
        visibleContainer : ".overflow-holder-large",
        xStep : 640
    });
}

function updateColor(colorHex) {
    $("#project-info-container, .small-thumb-arrows").css("backgroundColor", colorHex);
}

function getRoundProjects(projectInfo, projectID) {
    if(!projectInfo) {
        return false;
    }
    
    var returnData = {};
    returnData.prev = projectInfo[projectInfo[projectID].previous];
    returnData.next = projectInfo[projectInfo[projectID].next];
    
    return returnData;
}

function initPanels() {
    var documentWidth = $(document).width();
    var headerMainWidth = $("#header-content").width();
    var footerMainWidth = $("#footer-content").width();
    var mainPanelWidth = $("#page-content").width();
    var margin = Math.round((documentWidth - headerMainWidth)/2);
    //margin = 175*Math.floor(margin/175) + 12;
    margin = 175*Math.floor(margin/175);
    $("#page-content").css("margin-left", margin+12+"px");
    $("#header-content, #footer-content").css("margin-left", margin+"px");
}

function initFooter() {
    var browserFix = 0;
    
    if($.browser.mozilla) {
        browserFix = 0;
    }
    else if($.browser.msie) {
        browserFix = -4;
    }
    
    var wrapperHeight = $("#wrapper").height();
    var windowHeight = $(document).height();
    if(wrapperHeight < windowHeight) {
        $("#footer").css("margin-top", (windowHeight - wrapperHeight + browserFix) + "px");
    }
}
