MGZ.debug = true;

/***************************************
****************************************
    GENERAL SCRIPTS
****************************************
***************************************/
(function($) {
    $.fn.customFadeIn = function(speed, callback) {
        $(this).fadeIn(speed, function() {
            if (jQuery.browser.msie)
                $(this).get(0).style.removeAttribute('filter');
            if (callback != undefined)
                callback();
        });
    };
    $.fn.customFadeOut = function(speed, callback) {
        $(this).fadeOut(speed, function() {
            if (jQuery.browser.msie)
                $(this).get(0).style.removeAttribute('filter');
            if (callback != undefined)
                callback();
        });
    };
})(jQuery);

/***************************************
    ON DOCUMENT LOAD
    ------------------------------------
    Any code between this function
    executs when the page had loaded
    fully.
***************************************/
$(function () {
    $('a[href^=http://]').attr('target', '_blank');

    //Pagintion styles
    $(".pagination a:not(.pagNext):last").css("background", "none");

    //Portfolio
    var DURATION = 300;

    //    $(".overlay").css({ opacity: .67 });
    $(".infobar").css({ top: "-6px" });
    $(".overlay").css({ top: "-330px" });


    $(".dropdown li").hover(function () {
        $("> ul", this).css("visibility", "visible");
    },function () {
        $("> ul", this).css("visibility", "hidden");
    });


    //    $(".portItem").mouseover(function() {
    //        $(".overlay", this)
    //            .animate({ opacity: 0 },
    //            { queue: false, duration: 200, easing: "swing" });
    //    });
    //    $(".portItem").mouseout(function() {
    //        $(".overlay", this)
    //            .animate({ opacity: .67 },
    //            { queue: false, duration: 200, easing: "swing" });
    //    });

    $(".portItem").mouseover(function () {
        $(".overlay", this)
                .animate({ top: "-1000px" },
               { queue: false, duration: 200, easing: "swing" });
    });
    $(".portItem").mouseout(function () {
        $(".overlay", this)
                .animate({ top: "-330px" },
                { queue: false, duration: 200, easing: "swing" });
    });



    $(".portItem").mouseover(function () {
        $(".infobar", this)
        .animate({ top: "-65px" },
        { queue: false, duration: 200, easing: "swing" });
    });
    $(".portItem").mouseout(function () {
        $(".infobar", this)
        .animate({ top: "-6px" },
        { queue: false, duration: 200, easing: "swing" });
    });



    //home icons
    var bubbleEndPos = "135px",
        bubbleStartPos = "115px";

    $(".bubble").css({ "opacity": 0,
        "bottom": bubbleStartPos
    });

    //maybe only do first time
    $(".hicon").mouseover(function () {
        $(".bubble", this)
            .animate({ bottom: bubbleEndPos, opacity: 1 },
            { queue: false, duration: 100, easing: "swing" });
    });
    $(".hicon").mouseout(function () {
        $(".bubble", this)
            .animate({ bottom: bubbleStartPos, opacity: 0 },
            { queue: false, duration: 100, easing: "swing" });
    });





    $(".bespoke").equalHeights();



    $('.slideshow')
        .after('<div id="nav" class="nav">').cycle({
            fx: 'fade',
            speed: 650,     // speed of the transition (any valid fx speed value)
            timeout: 4000,
            pager: '#nav'
        });




    $(".lightbox").prettyPhoto();







    $("table tbody tr:odd").addClass("odd");
    $(".localnav li:last").css("border", "none");

    $('.content img[title]').jcaption({
        //Element to wrap the image and caption in
        wrapperElement: 'div',

        //Class for wrapper element
        wrapperClass: 'img yellow',

        //Class for wrapper element
        attrsToRemove: "class",

        //Caption Element
        captionElement: 'p',

        //Attribute of image to use as caption source
        imageAttr: 'title',

        //If true, it checks to make sure there is caption copy before running on each image
        requireText: true,

        //Should inline style be copied from img element to wrapper
        copyStyle: true,

        //Strip inline style from image
        removeStyle: true,

        //Strip align attribute from image
        removeAlign: true,

        //Assign the value of the image's align attribute as a class to the wrapper
        copyAlignmentToClass: false,

        //Assign the value of the image's float value as a class to the wrapper
        copyFloatToClass: false,

        //Assign a width to the wrapper that matches the image
        autoWidth: false,

        //Animate on hover over the image
        animate: false,

        //Show Animation
        show: { opacity: 'show' },
        showDuration: 200,

        //Hide Animation
        hide: { opacity: 'hide' },
        hideDuration: 200
    });


});


/* ------------------------------------------------------------------------
Class: prettyPhoto
Use: Lightbox clone for jQuery
Author: Stephane Caron (http://www.no-margin-for-errors.com)
Version: 2.5.1
------------------------------------------------------------------------- */

(function(a) { a.prettyPhoto = { version: "2.5" }; a.fn.prettyPhoto = function(t) { t = jQuery.extend({ animationSpeed: "normal", padding: 40, opacity: 0.8, showTitle: true, allowresize: true, counter_separator_label: "/", theme: "light_rounded", callback: function() { } }, t); if (a.browser.msie && a.browser.version == 6) { t.theme = "light_square" } if (a(".pp_overlay").size() == 0) { u() } else { o = a(".pp_pic_holder"); x = a(".ppt") } var d = true, h = false, s, o, x, t, m, n, r, v, e = "image", c = 0, j = f(); a(window).scroll(function() { j = f(); i() }); a(window).resize(function() { i(); q() }); a(document).keydown(function(y) { switch (y.keyCode) { case 37: a.prettyPhoto.changePage("previous"); break; case 39: a.prettyPhoto.changePage("next"); break; case 27: a.prettyPhoto.close(); break } }); a(this).each(function() { a(this).bind("click", function() { link = this; theRel = a(this).attr("rel"); galleryRegExp = /\[(?:.*)\]/; theGallery = galleryRegExp.exec(theRel); images = new Array(), titles = new Array(), descriptions = new Array(); if (theGallery) { a("a[rel*=" + theGallery + "]").each(function(y) { if (a(this)[0] === a(link)[0]) { c = y } images.push(a(this).attr("href")); titles.push(a(this).find("img").attr("alt")); descriptions.push(a(this).attr("title")) }) } else { images = a(this).attr("href"); titles = (a(this).find("img").attr("alt")) ? a(this).find("img").attr("alt") : ""; descriptions = (a(this).attr("title")) ? a(this).attr("title") : "" } a.prettyPhoto.open(images, titles, descriptions); return false }) }); a.prettyPhoto.open = function(A, z, y) { if (!z) { z = Array() } if (!y) { y = Array() } if (a.browser.msie && a.browser.version == 6) { a("select").css("visibility", "hidden") } a("object,embed").css("visibility", "hidden"); if (A) { images = a.makeArray(A) } if (z) { titles = a.makeArray(z) } if (y) { descriptions = a.makeArray(y) } if (a(".pp_overlay").size() == 0) { u() } else { o = a(".pp_pic_holder"); x = a(".ppt") } o.attr("class", "pp_pic_holder " + t.theme); isSet = (a(images).size() > 0) ? true : false; w(images[c]); i(); g(a(images).size()); a(".pp_loaderIcon").show(); a("div.pp_overlay").show().fadeTo(t.animationSpeed, t.opacity, function() { o.fadeIn(t.animationSpeed, function() { o.find("p.currentTextHolder").text((c + 1) + t.counter_separator_label + a(images).size()); if (descriptions[c]) { o.find(".pp_description").show().html(unescape(descriptions[c])) } else { o.find(".pp_description").hide().text("") } if (titles[c] && t.showTitle) { hasTitle = true; x.html(unescape(titles[c])) } else { hasTitle = false } if (e == "image") { imgPreloader = new Image(); nextImage = new Image(); if (isSet && c > a(images).size()) { nextImage.src = images[c + 1] } prevImage = new Image(); if (isSet && images[c - 1]) { prevImage.src = images[c - 1] } pp_typeMarkup = '<img id="fullResImage" src="" />'; o.find("#pp_full_res")[0].innerHTML = pp_typeMarkup; o.find(".pp_content").css("overflow", "hidden"); o.find("#fullResImage").attr("src", images[c]); imgPreloader.onload = function() { s = l(imgPreloader.width, imgPreloader.height); _showContent() }; imgPreloader.src = images[c] } else { movie_width = (parseFloat(b("width", images[c]))) ? b("width", images[c]) : "425"; movie_height = (parseFloat(b("height", images[c]))) ? b("height", images[c]) : "344"; if (movie_width.indexOf("%") != -1 || movie_height.indexOf("%") != -1) { movie_height = (a(window).height() * parseFloat(movie_height) / 100) - 100; movie_width = (a(window).width() * parseFloat(movie_width) / 100) - 100; h = true } movie_height = parseFloat(movie_height); movie_width = parseFloat(movie_width); if (e == "quicktime") { movie_height += 13 } s = l(movie_width, movie_height); if (e == "youtube") { pp_typeMarkup = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + s.width + '" height="' + s.height + '"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://www.youtube.com/v/' + b("v", images[c]) + '" /><embed src="http://www.youtube.com/v/' + b("v", images[c]) + '" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="' + s.width + '" height="' + s.height + '"></embed></object>' } else { if (e == "quicktime") { pp_typeMarkup = '<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="' + s.height + '" width="' + s.width + '"><param name="src" value="' + images[c] + '"><param name="autoplay" value="true"><param name="type" value="video/quicktime"><embed src="' + images[c] + '" height="' + s.height + '" width="' + s.width + '" autoplay="true" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/"></embed></object>' } else { if (e == "flash") { flash_vars = images[c]; flash_vars = flash_vars.substring(images[c].indexOf("flashvars") + 10, images[c].length); filename = images[c]; filename = filename.substring(0, filename.indexOf("?")); pp_typeMarkup = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="' + s.width + '" height="' + s.height + '"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="' + filename + "?" + flash_vars + '" /><embed src="' + filename + "?" + flash_vars + '" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="' + s.width + '" height="' + s.height + '"></embed></object>' } else { if (e == "iframe") { movie_url = images[c]; movie_url = movie_url.substr(0, movie_url.indexOf("iframe") - 1); pp_typeMarkup = '<iframe src ="' + movie_url + '" width="' + (s.width - 10) + '" height="' + (s.height - 10) + '" frameborder="no"></iframe>' } } } } _showContent() } }) }) }; a.prettyPhoto.changePage = function(y) { if (y == "previous") { c--; if (c < 0) { c = 0; return } } else { if (a(".pp_arrow_next").is(".disabled")) { return } c++ } if (!d) { d = true } k(); a("a.pp_expand,a.pp_contract").fadeOut(t.animationSpeed, function() { a(this).removeClass("pp_contract").addClass("pp_expand"); a.prettyPhoto.open() }) }; a.prettyPhoto.close = function() { o.find("object,embed").css("visibility", "hidden"); a("div.pp_pic_holder,div.ppt").fadeOut(t.animationSpeed); a("div.pp_overlay").fadeOut(t.animationSpeed, function() { a("div.pp_overlay,div.pp_pic_holder,div.ppt").remove(); if (a.browser.msie && a.browser.version == 6) { a("select").css("visibility", "visible") } a("object,embed").css("visibility", "visible"); c = 0; t.callback() }); d = true }; _showContent = function() { a(".pp_loaderIcon").hide(); if (a.browser.opera) { windowHeight = window.innerHeight; windowWidth = window.innerWidth } else { windowHeight = a(window).height(); windowWidth = a(window).width() } projectedTop = j.scrollTop + ((windowHeight / 2) - (s.containerHeight / 2)); if (projectedTop < 0) { projectedTop = 0 + o.find(".ppt").height() } o.find(".pp_content").animate({ height: s.contentHeight }, t.animationSpeed); o.animate({ top: projectedTop, left: ((windowWidth / 2) - (s.containerWidth / 2)), width: s.containerWidth }, t.animationSpeed, function() { o.width(s.containerWidth); o.find(".pp_hoverContainer,#fullResImage").height(s.height).width(s.width); o.find("#pp_full_res").fadeIn(t.animationSpeed); if (isSet && e == "image") { o.find(".pp_hoverContainer").fadeIn(t.animationSpeed) } else { o.find(".pp_hoverContainer").hide() } o.find(".pp_details").fadeIn(t.animationSpeed); if (t.showTitle && hasTitle) { x.css({ top: o.offset().top - 20, left: o.offset().left + (t.padding / 2), display: "none" }); x.fadeIn(t.animationSpeed) } if (s.resized) { a("a.pp_expand,a.pp_contract").fadeIn(t.animationSpeed) } if (e != "image") { o.find("#pp_full_res")[0].innerHTML = pp_typeMarkup } }) }; function k() { o.find(".pp_hoverContainer,.pp_details").fadeOut(t.animationSpeed); o.find("#pp_full_res object,#pp_full_res embed").css("visibility", "hidden"); o.find("#pp_full_res").fadeOut(t.animationSpeed, function() { a(".pp_loaderIcon").show() }); x.fadeOut(t.animationSpeed) } function g(y) { if (c == y - 1) { o.find("a.pp_next").css("visibility", "hidden"); o.find("a.pp_arrow_next").addClass("disabled").unbind("click") } else { o.find("a.pp_next").css("visibility", "visible"); o.find("a.pp_arrow_next.disabled").removeClass("disabled").bind("click", function() { a.prettyPhoto.changePage("next"); return false }) } if (c == 0) { o.find("a.pp_previous").css("visibility", "hidden"); o.find("a.pp_arrow_previous").addClass("disabled").unbind("click") } else { o.find("a.pp_previous").css("visibility", "visible"); o.find("a.pp_arrow_previous.disabled").removeClass("disabled").bind("click", function() { a.prettyPhoto.changePage("previous"); return false }) } if (y > 1) { a(".pp_nav").show() } else { a(".pp_nav").hide() } } function l(z, y) { hasBeenResized = false; p(z, y); imageWidth = z; imageHeight = y; windowHeight = a(window).height(); windowWidth = a(window).width(); if (((v > windowWidth) || (r > windowHeight)) && d && t.allowresize && !h) { hasBeenResized = true; notFitting = true; while (notFitting) { if ((v > windowWidth)) { imageWidth = (windowWidth - 200); imageHeight = (y / z) * imageWidth } else { if ((r > windowHeight)) { imageHeight = (windowHeight - 200); imageWidth = (z / y) * imageHeight } else { notFitting = false } } r = imageHeight; v = imageWidth } p(imageWidth, imageHeight) } return { width: imageWidth, height: imageHeight, containerHeight: r, containerWidth: v, contentHeight: m, contentWidth: n, resized: hasBeenResized} } function p(z, y) { o.find(".pp_details").width(z).find(".pp_description").width(z - parseFloat(o.find("a.pp_close").css("width"))); m = y + o.find(".pp_details").height() + parseFloat(o.find(".pp_details").css("marginTop")) + parseFloat(o.find(".pp_details").css("marginBottom")); n = z; r = m + o.find(".ppt").height() + o.find(".pp_top").height() + o.find(".pp_bottom").height(); v = z + t.padding } function w(y) { if (y.match(/youtube\.com\/watch/i)) { e = "youtube" } else { if (y.indexOf(".mov") != -1) { e = "quicktime" } else { if (y.indexOf(".swf") != -1) { e = "flash" } else { if (y.indexOf("iframe") != -1) { e = "iframe" } else { e = "image" } } } } } function i() { if (a.browser.opera) { windowHeight = window.innerHeight; windowWidth = window.innerWidth } else { windowHeight = a(window).height(); windowWidth = a(window).width() } if (d) { $pHeight = o.height(); $pWidth = o.width(); $tHeight = x.height(); projectedTop = (windowHeight / 2) + j.scrollTop - ($pHeight / 2); if (projectedTop < 0) { projectedTop = 0 + $tHeight } o.css({ top: projectedTop, left: (windowWidth / 2) + j.scrollLeft - ($pWidth / 2) }); x.css({ top: projectedTop - $tHeight, left: (windowWidth / 2) + j.scrollLeft - ($pWidth / 2) + (t.padding / 2) }) } } function f() { if (self.pageYOffset) { scrollTop = self.pageYOffset; scrollLeft = self.pageXOffset } else { if (document.documentElement && document.documentElement.scrollTop) { scrollTop = document.documentElement.scrollTop; scrollLeft = document.documentElement.scrollLeft } else { if (document.body) { scrollTop = document.body.scrollTop; scrollLeft = document.body.scrollLeft } } } return { scrollTop: scrollTop, scrollLeft: scrollLeft} } function q() { a("div.pp_overlay").css({ height: a(document).height(), width: a(window).width() }) } function u() { toInject = ""; toInject += "<div class='pp_overlay'></div>"; toInject += '<div class="pp_pic_holder"><div class="pp_top"><div class="pp_left"></div><div class="pp_middle"></div><div class="pp_right"></div></div><div class="pp_content"><a href="#" class="pp_expand" title="Expand the image">Expand</a><div class="pp_loaderIcon"></div><div class="pp_hoverContainer"><a class="pp_next" href="#">next</a><a class="pp_previous" href="#">previous</a></div><div id="pp_full_res"></div><div class="pp_details clearfix"><a class="pp_close" href="#">Close</a><p class="pp_description"></p><div class="pp_nav"><a href="#" class="pp_arrow_previous">Previous</a><p class="currentTextHolder">0' + t.counter_separator_label + '0</p><a href="#" class="pp_arrow_next">Next</a></div></div></div><div class="pp_bottom"><div class="pp_left"></div><div class="pp_middle"></div><div class="pp_right"></div></div></div>'; toInject += '<div class="ppt"></div>'; a("body").append(toInject); a("div.pp_overlay").css("opacity", 0); o = a(".pp_pic_holder"); x = a(".ppt"); a("div.pp_overlay").css("height", a(document).height()).hide().bind("click", function() { a.prettyPhoto.close() }); a("a.pp_close").bind("click", function() { a.prettyPhoto.close(); return false }); a("a.pp_expand").bind("click", function() { $this = a(this); if ($this.hasClass("pp_expand")) { $this.removeClass("pp_expand").addClass("pp_contract"); d = false } else { $this.removeClass("pp_contract").addClass("pp_expand"); d = true } k(); o.find(".pp_hoverContainer, #pp_full_res, .pp_details").fadeOut(t.animationSpeed, function() { a.prettyPhoto.open() }); return false }); o.find(".pp_previous, .pp_arrow_previous").bind("click", function() { a.prettyPhoto.changePage("previous"); return false }); o.find(".pp_next, .pp_arrow_next").bind("click", function() { a.prettyPhoto.changePage("next"); return false }); o.find(".pp_hoverContainer").css({ "margin-left": t.padding / 2 }) } }; function b(e, d) { e = e.replace(/[\[]/, "\\[").replace(/[\]]/, "\\]"); var c = "[\\?&]" + e + "=([^&#]*)"; var g = new RegExp(c); var f = g.exec(d); if (f == null) { return "" } else { return f[1] } } })(jQuery);




//Shortcut to Firebug's console.log. Also doesn't break code browsers without Firebug/console
function log() {
    if (!MGZ.debug) return;
    try {
        var args = [];
        for (var i = 0; i < arguments.length; i++)
            args.push("arguments[" + i + "]");

        eval("console.log(" + args.join(",") + ")");

    } catch (e) { }
}
