﻿
/*******************/
/*      Master     */
/*******************/

function SetMenuItem() {
    var loc = document.location + '';
    var div = document.getElementById('menu');
    var aChilds = div.childNodes;
    for (var i = 0; i < aChilds.length; i++) {
        if (aChilds.item(i).nodeName.toLowerCase() == 'div') {
            var currDiv = aChilds.item(i);
            var currA;
            var j = 0;
            while (j < currDiv.childNodes.length && currDiv.childNodes[j].nodeName.toLowerCase() != 'a') {
                j++;
            }
            if (j < currDiv.childNodes.length) {
                currA = currDiv.childNodes[j];


                var currHref = currA.href + '';
                currHref = currHref.substr(currHref.lastIndexOf('/'));
                if (loc.indexOf(currHref) > -1 || ((loc + '')[(loc).length - 1] == '/' && currHref.indexOf('default') > -1)) {
                    currDiv.className += ' On';
                }
            }
        }
    }
}

/*******************/
/*  Homepage       */
/*******************/

function WriteHpImages(arr, objname) {
    var sHtml = new Array();
    for (var i = 0; i < arrImages.length; i++) {
        var imageUrl = GetAlbumPict(arrImages[i][0], arrImages[i][1]);
        sHtml[sHtml.length] = ('<div ' + (i == 0 ? 'class="First"' : '') + '><img src="' + imageUrl + '" /></div>');
    }
    document.getElementById(objname).innerHTML = sHtml.join('');
}

/*******************/
/*  Gallery        */
/*******************/

function GoToPage(pageid) {
    //var btnNext = $("#next"); var btnPrev = $("#previous");
    //btnNext.unbind(); btnPrev.unbind();
    if (!bCanGo) { return; }
    var cPage = pageid.data.id;
    if (cPage > iPage) { setTimeout("AnimateBeginNext();", 0); }
    else { setTimeout("AnimateBeginPrev();", 0); }
    if (!arrImages["page" + cPage]) {
        $.getScript("?page=" + cPage);
    }
    else { ShowPage(cPage, arrImages["page" + cPage]); }
}
function WriteImages(arr, objname) {
    var sHtml = new Array();
    var isNext = false;
    for (var i = 0; i < arr.length; i++) {
        if (i == 16) { isNext = true; }
        else {
            var imageUrl = GetAlbumPict(arr[i][0], arr[i][1], true);
            var className = '';
            if (i % 4 == 0) { className = 'First'; if (i != 0) { sHtml[sHtml.length] = "<div class=\"spacer\"></div>"; } }
            sHtml[sHtml.length] = ('<div class="' + className + '"><img id="image' + i + '" onmouseover="ImageOver(this)" onmouseout="ImageOut()" src="' + imageUrl + '" /><a style="display:block;" href="/static/pictures/Albums/'+arr[i][0]+'/' + arr[i][1] + '.jpg">Download...</a></div>');
        } 
    }
    //document.getElementById(objname).innerHTML = sHtml.join('');
    return ({ isNext: isNext, html: sHtml.join('') });
}
function gettrailobj() {
    return document.getElementById('MouseMoveParent');
}

function ImageOver(obj) {
    document.getElementById('FloatWinInner').style.display = 'block';

    ReplaceImage(parseInt(obj.id.replace(/image/, "")));
    //$("#FloatWinInner").fadeIn(500);
}

function ImageOut() {
    $("#FloatWinInner").hide();

    HideImageHandler(document.getElementById('LargeImage'));
}
function HideImageHandler(obj) {
    obj.style.visibility = 'hidden';
    $(obj).hide();
    obj.style.height = ''; obj.style.width = '';
}
function DispImageHandler(obj) {

    if (obj.width > obj.height)
    { obj.style.width = '400px'; obj.style.height = ''; }
    else
    { obj.style.height = '400px'; obj.style.width = ''; }

    obj.style.visibility = 'visible';
}

function GetViewport() {
    var viewportwidth;
    var viewportheight;

    // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight

    if (typeof window.innerWidth != 'undefined') {
        viewportwidth = window.innerWidth,
      viewportheight = window.innerHeight
    }

    // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)

    else if (typeof document.documentElement != 'undefined'
     && typeof document.documentElement.clientWidth !=
     'undefined' && document.documentElement.clientWidth != 0) {
        viewportwidth = document.documentElement.clientWidth,
       viewportheight = document.documentElement.clientHeight
    }

    // older versions of IE

    else {
        viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
       viewportheight = document.getElementsByTagName('body')[0].clientHeight
    }
    return ({ width: viewportwidth, height: viewportheight });
}
$(document).ready(function() {
    $("#MouseMoveParent").mousemove(function(e) {
        var xProp = 'top';
        var objFloatWin = $('#FloatWin');
        var x = e.pageX - this.offsetLeft;
        var y = e.pageY - this.offsetTop;

        var doc_y = e.clientY;
        var scroll_y = window.scrollY;
        if (isNaN(scroll_y)) { scroll_y = document.getElementsByTagName('body')[0].scrollTop }
        var y_on_screen = doc_y - scroll_y;

        var doc_x = e.clientX;
        var scroll_x = window.scrollX;
        if (isNaN(scroll_x)) { scroll_x = document.getElementsByTagName('body')[0].scrollLeft }
        var x_on_screen = doc_x - scroll_x;

        var winSize = GetViewport();

        if (!((y_on_screen + 300) > winSize.height)) {
            document.getElementById('FloatWinInner').style.bottom = "";
            document.getElementById('FloatWinInner').style.top = "10px";
        }
        else {
            document.getElementById('FloatWinInner').style.bottom = "10px";
            document.getElementById('FloatWinInner').style.top = "";
        }

        if (!((x_on_screen + 400) > winSize.width)) {
            document.getElementById('FloatWinInner').style.right = "";
            document.getElementById('FloatWinInner').style.left = "10px";
        }
        else {
            document.getElementById('FloatWinInner').style.right = "10px";
            document.getElementById('FloatWinInner').style.left = "";
        }

        objFloatWin.css("left", (x) + 'px');
        objFloatWin.css("top", (y) + 'px');
    });
});

function ReplaceImage(imgid) {
    var imgobj = arrImages["page" + iPage][imgid];
    //imgobj.imageid=imgobj[1];
    //imgobj.imagealbum=imgobj[0];
    document.getElementById("LargeImage").style.visibility = 'hidden';
    document.getElementById("LargeImage").src = GetAlbumPict(imgobj[0], imgobj[1]);
    document.getElementById("LargeImageTitle").innerHTML = imgobj[2];
    document.getElementById("LargeImageAlbum").innerHTML = imgobj[3];
}

var bCanGo = false;

var arrImages = new Object();
var iPage = -1;

function ShowPage(pageid, arr) {
    //bCanGo = true;

    var objContainer = document.getElementById("picturesParent");
    var currpage = iPage;
    iPage = pageid;
    var bIsPrev;
    if (!(iPage > currpage)) {
        bIsPrev = true;
    }
    else {
        bIsPrev = false;
    }


    //objContainer.innerHTML = '';

    arrImages["page" + pageid] = arr;
    var result = WriteImages(arr, 'picturesParent');
    var isNextPage = result.isNext;
    var btnNext = $("#next"); var btnPrev = $("#previous");
    btnNext.unbind(); btnPrev.unbind();

    if (isNextPage) {
        func = GoToPage;
        document.getElementById("next").src = document.getElementById("next").src.replace("_off.", "_on."); document.getElementById("next").className = "Link";
    }
    else {
        func = function() { };
        document.getElementById("next").src = document.getElementById("next").src.replace("_on.", "_off."); document.getElementById("next").className = "";
    }
    btnNext.bind("click", { id: iPage + 1 }, func);

    if (iPage > 0) {
        func = GoToPage;
        document.getElementById("previous").src = document.getElementById("previous").src.replace("_off.", "_on."); document.getElementById("previous").className = "Link";
    }
    else {
        func = function() { };
        document.getElementById("previous").src = document.getElementById("previous").src.replace("_on.", "_off."); document.getElementById("previous").className = "";
    }
    btnPrev.bind("click", { id: iPage - 1 }, func);
    _txt = result.html;
    //alert('can go?'+bCanGo);
    //alert('is not Finished?' + !_isFinished);
    if (bCanGo && !_isFinished) {
        if (bIsPrev) {
            AnimateEndPrev();
        }
        else {
            AnimateEndNext();
        }
    }
}
