﻿/// <reference path="jquery-1.6.1.js" />
/// <reference path="jquery-ui.js" />
/// <reference path="jquery.hoverIntent.minified.js" />
/// <reference path="jquery-jtemplates.js" />
/// <reference path="jquery.jscrollpane.min.js" />
/// <reference path="jquery.mousewheel.js" />
/// <reference path="jquery.watermark.min.js" />
/// <reference path="jquery.highlight-3.js" />

/////////////////////////////////////////////////
/////////////////////////////////////////////////
// helper popup

function helperShow(obj, vpos, hpos, text) {
    $('.helper-text').html(text);
    $('.helper-text').addClass('helper-shadow-b');

    if (vpos == "bottom")
        $('.helper').css({ top: $(obj).offset().top + $(obj).outerHeight() + 5 });
    else if (vpos == "top")
        $('.helper').css({ top: $(obj).offset().top - $(obj).outerHeight() - 8 });

    if (hpos == "left")
        $('.helper').css({ left: $(obj).offset().left });
    else if (hpos == "right")
        $('.helper').css({ left: $(obj).offset().left - $('.helper').outerWidth() + $(obj).outerWidth() });

    $('.helper').hide().fadeIn(250);
}

function helperHide() {
    $('.helper').hide();
}

/////////////////////////////////////////////////
/////////////////////////////////////////////////
// get browser dimesions js

var h;
var w;

$(function () {
    getBrowserWidthHeight();
});

function getBrowserWidthHeight() {
    h = (typeof window.innerHeight != 'undefined' ? window.innerHeight : document.body.offsetHeight);
    w = (typeof window.innerWidth != 'undefined' ? window.innerWidth : document.body.offsetWidth);
}

/////////////////////////////////////////////////
/////////////////////////////////////////////////
// get cookie

function readCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

/////////////////////////////////////////////////
/////////////////////////////////////////////////
// sticky menu bar

$(function () {
    $('#login').fadeIn(1500);
    
    return false;
});

function moveScroller() {
    var a = function () {
        var b = $(window).scrollTop();
        var d = $('.logo').height();
        var c = $("#menu-container");

        if (b > d)
            c.css({ position: "fixed", top: "0px" });
        else {
            if (b <= d)
                c.css({ position: "relative", top: "" });
        }
    };

    $(window).scroll(a);
    a();

    return false;
};

// call on page load
$(function () {
    moveScroller();
    return false;
});

// anim scroll to top
$(function () {
    $('#login img').click(function () {
        $("html, body").animate({ scrollTop: 0 }, 500);
    });
});

// drop down effects
$(function () {
    $("#menu ul.menu li").hoverIntent(
        function () {
            if ($(this).find("div.dropdown").length) {
                if ($.browser.msie)
                    $(this).find("div.dropdown").stop(true, true).css({ position: "absolute", top: "26px", left: "0" });
                else
                    $(this).find("div.dropdown").stop(true, true).css({ position: "absolute", top: "27px", left: "0" });

                $(this).addClass("rtl").addClass("rtr");
                $(this).find("div.rounded-menu-bottom").show();

                $(this).find("div.dropdown").stop(true, true).show('bounce', { times: 3, distance: 10 }, 100);

                if ($(this).find("div.dropdown").hasClass("mail-div"))
                    showMailPopup($(this).find("div.dropdown"));
            }
        },
        function () {
            if ($(this).find("div.dropdown").length) {
                $(this).removeClass("rtl").removeClass("rtr");
                $(this).find("div.rounded-menu-bottom").hide();

                $(this).find("div.dropdown").stop(true, true).fadeOut('fast');
            }
        }
    );
    return false;
});

/////////////////////////////////////////////////
/////////////////////////////////////////////////
// articles popup

$(function () {
    // watermark
    $('input#menu-articles-searchTerms').watermark('Search');

    // do search on button press
    $('div#menu-articles-articleSearch').mouseup(function () {
        doMenuArticlesSearch();
    });

    // do search on enter press
    $('input#menu-articles-searchTerms').bind('keypress', function (e) {
        if (e.which == 13) { // enter
            e.preventDefault();
            doMenuArticlesSearch();
        }
    });

    // shrink grow menu article search
    var articlesSearchOrig = $('input#menu-articles-searchTerms').width();

    $('input#menu-articles-searchTerms').focusin(function () {
        $(this).animate({ width: '250px' }, 750);
    });

    $('#articles-li').mouseleave(function () {
        if ($(this).find('input#menu-articles-searchTerms').width() != articlesSearchOrig)
            $(this).find('input#menu-articles-searchTerms').animate({ width: articlesSearchOrig }, 100);
    });
});

// build search url and do search
function doMenuArticlesSearch() {
    var url = 'http://' + window.location.host + '/articles/?';
    var _searchTerms = $('input#menu-articles-searchTerms').val();
    var valid = false;

    if (_searchTerms.length > 1) {
        url += 'q=' + _searchTerms;
        valid = true;
    }

    if (valid == true) window.location = url;
}

/////////////////////////////////////////////////
/////////////////////////////////////////////////
// mail popup

var mailTimeout;

function showMailPopup(div) {
    var cookie = readCookie('notpleased');
    
    $('.mail-div').css("max-height", h - 250);

    if (!cookie)
        $(div).html('You must be logged in to use the PM features.');
    else {
        $(div).html("<div id=\"loading\" style=\"width: 100%; text-align: center; display: block;\"><img src=\"/images/load-ani.gif\" /></div>");

        mailTimeout = setTimeout(function () {
            loadMailPopup(div, cookie);
        }, 500);
    }

    return false;
};

// stop the timeout when mouse leaves the mail li
$(function () {
    $('#menu ul.menu li').mouseleave(function () {
        if (mailTimeout > 0)
            clearTimeout(mailTimeout);
    });
});

// delayed loading of mail popup js
function loadMailPopup(div, cookie) {
    $(div).find("#loading").hide();
    $(div).append("<div style=\"width: 100%; text-align: center;\">You're logged in but this hasn't been developed yet... soon, though.</div>");

    return false;
};

/////////////////////////////////////////////////
/////////////////////////////////////////////////
// hide popup

function hidePopup() {
    $("body").css("overflow", "auto");
    $('#popupContent').scrollTop(0);
    $('#popupContainer').hide();
    $('#popupOverlay').hide();

    return false;
};

// hide popup on close button click
$(function () {
    $(".close-button", "#popup").click(function () {
        hidePopup();
    });

    return false;
});

// hide popup on escape press
$(function () {
    $(document).keyup(function (e) {
        if (e.which == 27) { // escape
            // hide popup
            if ($('#popupContainer').is(":visible"))
                hidePopup();
        }
    });
});

// hide popup if click outside of popup
var mouse_is_inside = false;

$(function () {
    $('#popup').hover(function () {
        mouse_is_inside = true;
    }, function () {
        mouse_is_inside = false;
    });

    $("body").mouseup(function () {
        if (!mouse_is_inside)
            hidePopup();
    });

    return false;
});

/////////////////////////////////////////////////
/////////////////////////////////////////////////
// Read a page's GET URL variables and return them as an associative array.

function getUrlVars() {
    var vars = [], hash;
    var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
    for (var i = 0; i < hashes.length; i++) {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}

function getStrUrlVars(string) {
    var vars = [], hash;
    var hashes = string.slice(string.indexOf('?') + 1).split('&');
    for (var i = 0; i < hashes.length; i++) {
        hash = hashes[i].split('=');
        vars.push(hash[0]);
        vars[hash[0]] = hash[1];
    }
    return vars;
}
