﻿$.ajaxSettings.cache = false;
var swipeOptions = { swipe: swipe, threshold: 30, allowPageScroll: 'vertical' }
var c1 = $('div.c1');
var c2 = $('div.c2');
var c3 = $('div.c3');
var c4 = $('div.c4');
var hm1 = $('div.t1');
var hm2 = $('div.t2');
var backhash = '';
var cur = document.location.hash;
var hdesc = '';
var hsvc = '';
var rh = '';
var hval = '';
var dval = 10000;
var hctr = -1;
var hlnk = '';
var p2 = $('div.p2-mask');
var pd = $('div.c4 div.l3');
var ap = '';
var bg = $('div.bg');
var bgb = $('div.bgb');
var rnav = $('div.rnav');
// page scroll
var left = $('a.left');
var right = $('a.right');
var rlinks = $('div.lp');
var rctrl = $('div.links');
var pages = '';
var pagew = 920;
var maxpages = 0;
var pagectr = 0;
var section = false;
// portfolio scroll
var sleft = $('a.sleft');
var sright = $('a.sright');
var samples = ''
var samplew = 621
var samplectr = 0;
var maxsamples = 0;
// related link ctrls
var r = $('div.b a');
var rp = $('div.bp');
// mosaic
var intro = $('#intro div');
// aux nav
var axlnks = $('div.f a').not('[href*=http]').click(function () {
    wasclick = true;
    lHandler(this);
    return false;
});

var loader = $('img.ajax');
loader.hide();
var host = 'http://www.voveo.com/'
var loadcomplete = true;
var wasclick = false;
var portfolio = false;

var tnavs = $('ul.A-Menu > li');
$(tnavs.get(1)).css({ marginRight: "165px" }, function() { $('.nav').show(); })

// top navigation
var navs = $('#nav ul a').not('[href*=http]');
$(navs).each(function() {
    this.href = this.getAttribute('href').replace('?', '');
})
// $('#nav ul li ul').each(function (i) { $(this).find('li:first').hide(); });
$(navs).click(function () {
    wasclick = true;
    lHandler(this);
    return false;
});
var snavs = $('#nav ul li ul li ul');
$(snavs).each(function() {
var pleft = $(this).parent().find('a:first').width();
    $(this).css({left: ((130-pleft)/2) + pleft + 'px'});

})
// move nav into position
$('#nav').hover(function () {
    if (!$(this).hasClass('a')) {
        $(this).addClass('a');
        $(this).animate({ top: "15px" }, 500, "easeOutBack");
    }
}, function () { });
//highlight nav
function setNav(n) {
    //alert(n.attr('href'));
    //var ss = n.attr('href').replace('/', '@').replace('/', '$');
    $(n).addClass('active');
};
// related links rollover
$(r).click(function() {
    wasclick = true;
    var i = $(r).index(this);
    $(rp.get(i)).stop().slideToggle();
    $(this).toggleClass('sel').parent('div').toggleClass('sel');
    if ($(r).hasClass('sel')) {
        $(c2).animate({ opacity: 0.1 }, 500);
    } else {
        $(c2).animate({ opacity: 1 }, 500);
    }
});
var hashival = setInterval(chkHash, 2000);
function chkHash() {
    backhash = window.location.hash;
    if (wasclick == true) {
        wasclick = false;
        cur = backhash;
    } else {
        if (backhash != cur) {
            cur = backhash;
            lHandler(backhash.replace('#', ''));
        }; 
    };
};

//************************************************
//********* loading begins 
//************************************************
function lHandler(lnk) {
    $(rp).hide();
    $(r).removeClass('sel');
    if (loadcomplete) {
        try {
            var link = '/' + lnk.pathname.replace(/^\//, '');
        } catch(err) {
            var link = lnk;
        } 
        rnav.hide();
        if (portfolio) {
            sright.hide();
            sleft.hide();
            c4.hide();
            c1.slideToggle(function() { });
            portfolio = false;
            $(bgb).animate({ height: "410px" }, 1000, "easeInBack", function() {
                // call pagetracker
                getContent(link);
            });
        } else {
            getContent(link);
        }
    };
};
// just the portfolio - no content
function pHandler(lnk) {
    $(rp).hide();
    $(r).removeClass('sel');
    if (loadcomplete) {
        c1.empty();
        rnav.hide();
        c3.load("/handlers/pr.ashx?p=" + lnk, function () {
            $(bgb).animate({ height: "530px" }, 1000, "easeOutBack", function () {
                portfolio = true;
                rnav.hide();
                left.hide();
                right.hide();
                c4.slideToggle();
                $(pd.get(0)).show();
                $(ap.get(0)).addClass('psel');
                resetPortfolio();
                resetSampleScroll();
                $('div.c3 a.p:first').click();
                sleft.hide();
                // call pagetracker
            });
        });

    };
};
// fetch data and perform animations
function getContent(url) {
    if (window.location.href.indexOf('#') != -1 || window.location.pathname == "/") {
        loadcomplete = false;
        if (window.location.href != (host + url)) {
            $(navs).removeClass('active');
            left.hide();
            right.hide();
            loader.show();
            var parent = url.substring(0, url.lastIndexOf('/'));
            var isparent = window.location.href.indexOf(parent);
            window.location.hash = url;
            var ap = $('div.c3 a.p');
            $(ap).each(function(i) {
                $(this).delay(i * 75).fadeOut();
            });
            c1.empty();
            c1.hide();
            loadPage(url)
        }
    } else { // redirect the link because the visitor came from an external url
        window.location.href = "/#" + url;
    }
}
// load content
function loadPage(url) {
    _gaq.push(['_trackPageview', url]);
    c1.load("/handlers/cr.ashx?p=" + url, function () {
        setNav($(navs).filter('[href$="' + url + '"]'));
        rlinks.empty();
        rctrl.hide();
        rlinks.load("/handlers/rl.ashx?p=" + url, function () {
            if (rlinks.html() != '') { rctrl.show(); }
            rnav.fadeIn();
            c1.slideToggle(600, function () {
                loadcomplete = true;
                c3.empty();
                c3.load("/handlers/pr.ashx?p=" + url, function () {
                    resetPortfolio();
                    loader.hide();
                    resetPage(function () {
                        if (pages.length > 2) { right.show(); }
                    });
                    $("div.c2-mask").swipe(swipeOptions);
                });
            });
        });
    });
}
// reset page links and scroll bars
function resetPage() {
    pages = $('div.l'); // get length
    c2 = $('div.c2');
    if (pages.length > 2) { right.show(); }
    maxpages = (Math.ceil(pages.length / 2)) - 1;
    pagectr = 0;
    // setup click functions - IE7 should work when live!!!!
    var si = $('ul.si li a').not('[href*=http]').click(function () {
        wasclick = true;
        lHandler(this);
        return false;
    });
    var sm = $('ul.sm li a').not('[href*=http]').click(function () {
        wasclick = true;
        lHandler(this);
        return false;
    });
    var pi = $('ul.portfolio li a').click(function () {
        wasclick = true;
        pHandler($(this).attr('href'));
        return false;
    });
    var ilnks = $('a.int').not('[href*=http]').click(function () {
        wasclick = true;
        lHandler(this);
        return false;
    });
    var rlnks = $('a.r').not('[href*=http]').click(function () {
        wasclick = true;
        lHandler(this);
        return false;
    });
    var flnks = $('a.form').click(function (e) {
        e.preventDefault();
        var mw = $(this).attr('data-width')
        $('#modal').css('width', mw + 'px');
        $('#modal').css('margin-left', (960-mw)/2 + 'px');

        $('div.frm').load($(this).attr('href'), function () {
            $('#modal').reveal({ animation: 'fade', animationspeed: 300, closeonbackgroundclick: true, dismissmodalclass: 'close-reveal-modal' });
        });
        return false;
    });

}

//manage scrollers
left.click(function() {
    scrollPages(c2, 'left');
});
right.click(function() {
    scrollPages(c2, 'right');
});
function scrollPages(obj, param) {
    if (param == 'left') {
       pagectr += 1;
       right.show();
    } else {
        pagectr -= 1;
        left.show();
    }
    if (pagectr == -maxpages) {right.hide(); }
    if (pagectr == 0) { left.hide(); $('img.large').show(); }

    obj.animate({ "left": (pagectr * pagew) + 30 }, 600, function () {
        if (param == 'right') {
            $('img.large').fadeOut('fast');         
        }
    });
}
sleft.click(function() {
    scrollSamples(p2, 'left');
});
sright.click(function() {
    scrollSamples(p2, 'right');
});
//manage scrollers
function scrollSamples(obj, param) {
    if (param == 'left') {
        samplectr += 1;
        sright.show();
    } else {
        samplectr -= 1;
        sleft.show();
    }
    pd.hide();
    obj.animate({ "left": (samplectr * samplew) }, 500, function() {
        $(pd.get(-samplectr)).show();
    });
    $(ap).removeClass('psel');
    $(ap.get(-samplectr)).addClass('psel');
    if (samplectr == -maxsamples) { sright.hide(); }
    if (samplectr == 0) { sleft.hide(); }
}
function resetSampleScroll() {
    p2.css({ left: samplectr * samplew + 'px' });
    if (samplectr != -maxsamples) { sright.show(); }
    if (samplectr != 0) { sleft.show(); }
}
// reset Portfolio
function resetPortfolio() {
    ap = $('div.c3 a.p');
    maxsamples = ap.length-1;
    var params = '';
    $(ap).each(function(i) {
        $(this).delay(i * 75).fadeIn();
        params += $(this).attr('pid') + ",";
    });
    c4.load("/handlers/sr.ashx?p=" + params, function() {
        loader.hide();
        p2 = $('div.p2');
        pd = $('div.l4');
    });
    $(ap).click(function() {
        _gaq.push(['_trackPageview', $(this).attr('href')]);
        if (loadcomplete) {
            if (!portfolio) {
                portfolio = true;
                rnav.hide();
                left.hide();
                right.hide();
                c1.empty();
                samplectr = -($(ap).index(this));
                // bgb.css('background-image', 'url(/images/blank.gif)');
                $(bgb).animate({ height: "530px" }, 1000, "easeOutBack", function() {
                    c4.slideToggle();
                    $(pd.get(-samplectr)).show();
                    resetSampleScroll()
                });
            } else {
                samplectr = -($(ap).index(this));
                pd.hide();
                p2.animate({ "left": (samplectr * samplew) }, 600, function() {
                    $(pd.get(-samplectr)).show();
                });
                if (samplectr != -maxsamples) { sright.show(); }
                if (samplectr != 0) { sleft.show(); }
            }
            $(ap).removeClass('psel');
            $(this).addClass('psel');
        }
        return false;
    });
}

// ******************************************************
//        the following are needed for incoming requests
//        either home page or conventional URL request
// ******************************************************
if (window.location.href.indexOf('#') != -1) {
    var url = window.location.href.substring(window.location.href.indexOf('#') + 1, window.location.href.length);
    c1.hide();
    $('#nav').css({ top: "15px" });
    loadPage(url);
} else {
    if (window.location.pathname.toLowerCase() == '/' || window.location.pathname.toLowerCase() == '/default.aspx') {
        hm = $('div.hm');
        rh = $('div.rh');
        hsvc = $('div.hm li h2 a');
        hdesc = $('div.h');
        hlnk = $('div.hm a.hlnk');
        rnav.hide();
        c3.load("/handlers/pr.ashx?p=" + window.location.pathname, function () {
            resetPage();
            hval = setInterval(animHome, 500);
            $('#pf').hide();
            //resetPortfolio();
        });

    } else {
    c3.load("/handlers/pr.ashx?p=" + window.location.pathname, function() {
            resetPortfolio();
            resetPage();
            if (rlinks.html() == '') { rctrl.hide(); }
        });
    };
    $('#nav ul a[href^="/' + window.location.pathname + '"]').addClass('active');
}

// **********************************
// Home Page
// **********************************
function animHome() {
    clearInterval(hval);
    $(hm).fadeIn('slow', function () {
        $(hm1).delay(3000).fadeOut('slow', function () {
            $(hm2).fadeIn('slow', function () {
                $(this).delay(6000).fadeOut('slow', function () {
                    $('#nav').mouseenter();
                    $('#pf').fadeIn();
                    $(navs.get(0)).click();
                });
            });
        });
    });
}
// swipe
$(function () {
    $("div.c4").swipe(swipeOptions);
});
function swipe(event, direction) {
    if (direction == 'right') {
        if ($(left).is(":visible")) { $(left).click(); }
        if ($(sleft).is(":visible")) { $(sleft).click(); }
    }
    if (direction == 'left') {
        if ($(right).is(":visible")) { $(right).click(); }
        if ($(sright).is(":visible")) { $(sright).click(); }
    }
}

// image preloader.
(function($) {
  var cache = [];
  $.preLoadImages = function() {
    var args_len = arguments.length;
    for (var i = args_len; i--;) {
      var cacheImage = document.createElement('img');
      cacheImage.src = arguments[i];
      cache.push(cacheImage);
    }
  }
})(jQuery);
jQuery.preLoadImages("images/bg-hsvc.gif", "images/bg-contact.gif", "images/bg-p.png", "images/usr/hm-creativity-innovation.png","images/usr/hm-marketing-and-technology.png","images/usr/hm-marketing-different-breed.png","images/usr/hm-vitality-growth.png");

function email(name, domain, extension) {
    if (!document.write) return false;
    if (document.write) {
        var name; var domain; var extension;
        document.write('<a href="' + 'mailto:' + name + '@' + domain + '.' + extension + '">' + name + '@' + domain + '.' + extension + '<\/a>');
    }
}



