// Google Analytics support for Food & Water Watch
//Provides cross-domain tracking and Salsa event-based goal tracking


//Provide Regex selector support
//http://james.padolsey.com/javascript/regex-selector-for-jquery/
//Not using this
jQuery.extend(
jQuery.expr[':'].regex = function(elem, index, match) {
    var matchParams = match[3].split(','),
        validLabels = /^(data|css):/,
        attr = {
            method: matchParams[0].match(validLabels) ? 
                        matchParams[0].split(':')[0] : 'attr',
            property: matchParams.shift().replace(validLabels,'')
        },
        regexFlags = 'ig',
        regex = new RegExp(matchParams.join('').replace(/^\s+|\s+$/g,''), regexFlags);
    return regex.test(jQuery(elem)[attr.method](attr.property));
}
);

// Parse URL Queries
//http://www.kevinleary.net/url-parameter-values-javascript-jquery/
function url_query( query ) {
	query = query.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
	var expr = "[\\?&]"+query+"=([^&#]*)";
	var regex = new RegExp( expr );
	var results = regex.exec( window.location.href );
	if( results !== null ) {
		return results[1];
		return decodeURIComponent(results[1].replace(/\+/g, " "));
	} else {
		return false;
	}
}



///////////////////
// _setXDomain: multiple top domains & sub-domains
var crossDomains = /(foodandwaterwatch\.org|salsa\.democracyinaction\.org)/i; // regex matching the list of top domains you own
var baseDomain = location.hostname.match(crossDomains);
baseDomain = (baseDomain ? baseDomain[1].replace(/\:\d+/, '') : location.hostname);
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-948137-1']); // change the UA account!
_gaq.push(['_setDomainName', baseDomain]);
_gaq.push(['_setAllowLinker', true]);
 _gaq.push(['_trackPageview']);
(function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();


//Custom tracking

jQuery(document).ready(function($) {

    // for any link not pointing to the current domain or any of its subdomains, but matching one of our tracked domains...
    
    $('a[href*="http"]:not([href*=' + baseDomain + '])').each(function(i,elem) {
    
    if(this.href.match(crossDomains)) {
    	//track internal cross-domain link
    	$(this).bind('click', function() {
             _gaq.push(['_link', this.href, true]); return false;
    		});
    }
    else {
    	//track external link
    	$(this).bind('click', function() {
        	_gaq.push(['_trackEvent', 'outbound', 'click', this.href]);
    		});
    	}
    });



///////////////////
// _trackDownloads
    // helper function - allow regex as jQuery selector
    

    $('a').each(function(i,elem) {
    
    	if(this.href.match(/\.(zip|mpe*g|pdf|docx*|pptx*|xlsx*|jpe*g|png|gif|tiff*)$/i)) {
    		$(this).bind('click', function() {
       			_gaq.push(['_trackEvent', 'download', 'click', this.href]);
    		});
		}
	});


///////////////////
// _trackMailTo

    $('a[href^="mailto"]').bind('click', function() {
        _gaq.push(['_trackSocial', 'email', 'send', this.href.replace(/^mailto:/i, '')]);
    });



/////////////////
//Salsa goal tracking


//Actions - includes targeted, petitions but not LTE

var action_key = url_query('action_KEY');
if( action_key ) {
	$("form[name='actionForm']").bind("submit", function() {_gaq.push(['_trackEvent', 'Salsa', 'Action', action_key]) ;});
	
}



//Events

var event_key = url_query('event_key');
if( event_key ) {
	$("form[name='event_registration']").bind("submit", function() {_gaq.push(['_trackEvent', 'Salsa', 'Event', event_key]) ;});
	$("form#guestRegistration").bind("submit", function() {_gaq.push(['_trackEvent', 'Salsa', 'Event', event_key]) ;});
	
}

//Distributed Events
var distributed_event_KEY = url_query('distributed_event_KEY');
if( distributed_event_KEY ) {
	$("form[name='eventForm']").bind("submit", function() {_gaq.push(['_trackEvent', 'Salsa', 'Distributed Event', distributed_event_KEY]) ;});
	
}

//TAF

var tell_a_friend_KEY = url_query('tell_a_friend_KEY');
if( tell_a_friend_KEY ) {
	$("form#tafForm").bind("submit", function() {_gaq.push(['_trackEvent', 'Salsa', 'Tell a Friend', tell_a_friend_KEY]) ;});
	
}

//Donation

var donate_key = url_query('donate_page_KEY');
if( donate_key ) {
	$("form[action='https://salsa.democracyinaction.org/salsa/shop/processDonate.jsp']").bind("submit", function() {_gaq.push(['_trackEvent', 'Salsa', 'Donate', donate_key]) ;});
	
}

///////////////////
//Form tracking 

	$("form[action='https://salsa.democracyinaction.org/salsa/shop/processDonate.jsp']").bind("submit", function(){
		_gaq.push(['_linkByPost', this]);
	});


});



