﻿var originalChildren = 0;

function updateSize() {
    var children = $(".projects-in-grid").children().size();
    var cols = Math.floor(($(window).width() / 460));
    if ($(window).width() < 1000) {
        $(".header").width(880);
        $(".footer").width(880);
        $(".contentbody").width(880);
    }
    else {
        if (cols > 3) {
            cols = 3;
        }
        $(".header").width(cols * 460 - 40);
        $(".footer").width(cols * 460 - 40);
        $(".contentbody").width(cols * 460 - 40);
        while (children % cols != 0) {
            if (children - originalChildren > 3) {
                removeChild();
            }
            else
                appendChild();
            children = $(".projects-in-grid").children().size();
        }
    }
    $("#imgHome").removeAttr("height");
    $("#imgHome").removeAttr("width");
    if ($(window).width() > $(window).height()) {
        var h = $("#imgHome").height() * $(window).width() / $("#imgHome").width();
        if (h < $(window).height()) {
            h = $(window).height();
            $("#imgHome").attr("height", h);
        } else {
            $("#imgHome").attr("width", $(window).width());
        }
    } else {
        var w = $("#imgHome").width() * $(window).height() / $("#imgHome").height();
        if (w < $(window).width()) {
            w = $(window).width();
            $("#imgHome").attr("width", w);
        } else {
            $("#imgHome").attr("height", $(window).height());
        }
    }
}

function appendChild() {
    $(".projects-in-grid").append("<span class='center-floater' style='padding: 0px 20px; height: 1px; overflow: hidden;'><div class='project'></div></span>");
}
function removeChild() {
    $(".projects-in-grid span:last-child").remove();
}
$(window).load(function() { updateSize(); });
$(window).resize(function() { updateSize(); });

var projectImages = new Array();
var currentImage = "";
var imgHome = new Array();
var firstImageIndex = 0;
$(document).ready(function() {
    $(document).bind("contextmenu", function(e) {
        return false;
    });
    $("#currentImg").load(function() {
        $("#imgLoading").hide();
        $(this).css("height", "");
        if ($(this).height() > $(window).height() - 125) {
            $(this).height($(window).height() - 125);
        }
        $("#imgContainer").width($(this).width());
        $("#imgContainer").height($(this).height());
        $("#imgContainer").css("margin-top", -1 * $(this).height() / 2);
        $("#imgContainer").css("margin-left", -1 * $(this).width() / 2);
        updateNavigationPosition();
        $(this).fadeIn(250);
        $(".navigation").show();
    });
    $("#imgHome").load(function() {
        $("#imgLoading").hide();
        $("#imgHome").fadeIn(500, function() { setTimeout("window.location = 'portfolio.aspx'", 5000); });
    });
    LoadHomeImage();
});

function LoadHomeImage() {
    $("#imgLoading").show();
    var rand = Math.floor(Math.random() * imgHome.length);
    $("#imgHome").attr("src", imgHome[rand]);
}

function updateNavigationPosition() {
    var marginTop = parseInt($("#imgContainer").css("margin-top").replace("px", "")) + $("#imgContainer").height() / 2 - $(".navigation").height() / 2;
    var marginLeft = parseInt($("#imgContainer").css("margin-left").replace("px", "")) + $("#imgContainer").width() + 30;
    $(".navigation").css("margin-top", marginTop);
    $(".navigation").css("margin-left", marginLeft);
}

function showGallery(obj) {
    $("#currentImg").attr("src", "");
    $("#currentImg").hide();
    currentImage = "";

    $(".navigation").hide();

    firstImageIndex = parseInt($(obj).attr("index"));
    
    GetImages($(obj).attr("file"));
}

function hideGallery() {
    $(".zoom").fadeOut(250, function() {
        currentImage = "";
        projectImages = null;
    });
}
function LoadNextImage() {
    var temp = getNextImage(currentImage);
    if (temp != "") {
        $("#currentImg").fadeOut(250, function() {
            $("#imgLoading").show();
            currentImage = temp;
            $("#currentImg").attr("src", currentImage);
            $("#imgPrev").attr("src", $("#imgPrev").attr("src").replace("_off.png", "_on.png"));
            $("#imgPrev").show();
            if (getNextImage(currentImage) == "") {
                $("#imgNext").attr("src", $("#imgNext").attr("src").replace("_on.png", "_off.png"));
                $("#imgNext").hide();
            }
        });
    }
}
function LoadPrevImage() {
    var temp = getPrevImage(currentImage);
    if (temp != "") {
        $("#currentImg").fadeOut(250, function() {
            $("#imgLoading").show();
            currentImage = temp;
            $("#currentImg").attr("src", currentImage);
            $("#imgNext").attr("src", $("#imgNext").attr("src").replace("_off.png", "_on.png"));
            $("#imgNext").show();
            if (getPrevImage(currentImage) == "") {
                $("#imgPrev").attr("src", $("#imgPrev").attr("src").replace("_on.png", "_off.png"));
                $("#imgPrev").hide();
            }
        });
    }
}
function getNextImage(str) {
    var found = false;
    var i = 0;
    for (i = 0; i < projectImages.length && !found; i++) {
        if (projectImages[i] == str)
            found = true;
    }
    if (i >= projectImages.length)
        return "";
    else
        return projectImages[i];
}
function getPrevImage(str) {
    var found = false;
    var i = 0;
    for (i = 0; i < projectImages.length && !found; i++) {
        if (projectImages[i] == str)
            found = true;
    }
    if (i - 2 < 0)
        return "";
    else
        return projectImages[i - 2];
}

function GetImages(str) {
    Roxana.Services.ProjectImages.GetImages(str, OnGetImages, OnError);
}

function OnGetImages(res) {
    projectImages = res;
    LoadFirstImage();
}

function OnError(res) {
    AlertError();
}

function AlertError() { 
    alert("Error! Please reload page.");
}

function LoadFirstImage() {
    if (projectImages.length > 0) {
        currentImage = projectImages[firstImageIndex];
        $(".zoom").fadeIn(50);
        $("#imgLoading").show();
        $("#currentImg").attr("src", currentImage);
        if (getNextImage(currentImage) == "") {
            $("#imgNext").attr("src", "./images/arrow_right_off.png");
            $("#imgNext").hide();
        } else {
            $("#imgNext").attr("src", "./images/arrow_right_on.png");
            $("#imgNext").show();
        }
        if (getPrevImage(currentImage) == "") {
            $("#imgPrev").attr("src", "./images/arrow_left_off.png");
            $("#imgPrev").hide();
        } else {
            $("#imgPrev").attr("src", "./images/arrow_left_on.png");
            $("#imgPrev").show();
        }
        if (projectImages.length == 1) {
            $("#imgPrev").hide();
            $("#imgNext").hide();
        }
    }
    else {
        AlertError();
    }
}