/*! Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
 * Licensed under the MIT License (LICENSE.txt).
 *
 * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
 * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
 *
 * Version: 3.0.3-pre
 * 
 * Requires: 1.2.2+
 */

(function($) {

var types = ['DOMMouseScroll', 'mousewheel'];

$.event.special.mousewheel = {
    setup: function() {
        if ( this.addEventListener )
            for ( var i=types.length; i; )
                this.addEventListener( types[--i], handler, false );
        else
            this.onmousewheel = handler;
    },
    
    teardown: function() {
        if ( this.removeEventListener )
            for ( var i=types.length; i; )
                this.removeEventListener( types[--i], handler, false );
        else
            this.onmousewheel = null;
    }
};

$.fn.extend({
    mousewheel: function(fn) {
        return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel");
    },
    
    unmousewheel: function(fn) {
        return this.unbind("mousewheel", fn);
    }
});


function handler(event) {
    var args = [].slice.call( arguments, 1 ), delta = 0, returnValue = true;
    
    event = $.event.fix(event || window.event);
    event.type = "mousewheel";
    
    if ( event.wheelDelta ) delta = event.wheelDelta/120;
    if ( event.detail     ) delta = -event.detail/3;
    
    // Add event and delta to the front of the arguments
    args.unshift(event, delta);

    return $.event.handle.apply(this, args);
}

})(jQuery);


(function() {

    var script = findScript();
    
    if (!script) return;

    var query  = script.src.replace(/^[^\?]+\??/, ''),
        params = parseQuery(query),
        rand   = Math.floor(Math.random()*(new Date().getTime()));

    (function() {
        var pixels = [
                'http://i.simpli.fi/dpx?cid=' + getParam('cid') + '&sub=' + getParam('sub') + '&action=' + getParam('action') + '&tag=' + getParam('tag') + '&ctype=' + getParam('ctype') + '&c=' + getParam('c') + '&m=' + getParam('m') + '&campaign=' + getParam('campaign') + '&cbri=' + rand + '&referrer=' + escape(document.referrer)
            ],
            matching_pixels = [
                'http://um.simpli.fi/pm_match?http://image2.pubmatic.com/AdServer/Pug?vcode=bz0yJnR5cGU9MSZjb2RlPTgwNiZ0bD01MTg0MDA=&piggybackCookie=uid:$UID',
                'http://um.simpli.fi/ab_match',
		'http://cm.g.doubleclick.net/pixel?nid=simplifi',
		'http://um.simpli.fi/ox_match'
            ];
        if (getParam('m') != "0") {
            pixels = pixels.concat(matching_pixels);
        }
        for (var i=pixels.length; i--;) {
            var img = document.createElement('img');
            img.src = pixels[i];
        }
    })();

    function parseQuery(query) {
        var params = {}, pairs = query.split(/[;&]/);
        for (var i=0,l=pairs.length; i<l; i++) {
            var pair = pairs[i].split('='), key, val;
            if (pair.length !== 2) {
                continue;
            }
            key = unescape(pair[0]);
            val = unescape(pair[1]);
            val = val.replace(/\+/g, ' ');
            params[key] = val;
        }
        return params;
    }

    function getParam(key) {
        return params[key] || '';
    }

    function findScript() {
        var scripts = document.getElementsByTagName('script');

        for (var i = scripts.length-1; i >= 0; i--) {
            var script = scripts[i],
                src    = script.src || '';
            if (src.indexOf('http://i.simpli.fi/dpx.js') === 0) {
                return script;
            }
        }

        return null;
    }

})();


