gAnalyticsID = 'UA-17305100-1';

cookie_name_source = 'lbsource_track';
cookie_name_campaign = 'lbcampaign_track';
cookie_name_medium = 'lbmedium_track';
cookie_name_term = 'lbterm_track';
cookie_name_content = 'lbcontent_track';

field_name_source = 'Contact0_Source';
field_name_campaign = 'Contact0_Campaign';
field_name_medium = 'Contact0_Medium';
field_name_term = 'Contact0_Keyword';
field_name_content = 'Contact0_Content';
field_name_leadsource = 'Contact0Leadsource';

function cmmtrk_createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

var _gaq = _gaq || [];

_gaq.push(function(){
	var tracker = _gat._getTracker(gAnalyticsID);
	tracker._trackPageview();	
});

_gaq.push(function(){
	var qArr = querySt();

	var sourceQArr = new Array('src','source','utm_source');
	var campaignQArr = new Array('cmp','campaign','utm_campaign');
	var mediumQArr = new Array('med','medium','utm_medium');
	var termQArr = new Array('kw','keyword','utm_term');
	var contentQArr = new Array('code','content','utm_content');

	var referrer = document.referrer;

	/*
	if(referrer!=''){
		var test = parseQueryMajorSearchEngine(referrer);
		if(test != ''){
			//save in term cookie
			cmmtrk_createCookie(cookie_name_term,test[1],365);
			//save source the major search engine
			var seName = parseMajorSearchEngineName(referrer);
			if(seName != ''){
				cmmtrk_createCookie(cookie_name_source,seName,365);
			}
		}
	}
	else */
	if(qArr.length>0){
		
		for(x in qArr){
		
			for(y in sourceQArr){
				if(x==sourceQArr[y]){//key is in source, save source value in cookie
					cmmtrk_createCookie(cookie_name_source,qArr[x],365);
				}
			}
			for(y in campaignQArr){
				if(x==campaignQArr[y]){//key is in campaign, save campaign value in cookie
					cmmtrk_createCookie(cookie_name_campaign,qArr[x],365);
				}
			}
			for(y in mediumQArr){
				if(x==mediumQArr[y]){//key is in medium, save medium value in cookie
					cmmtrk_createCookie(cookie_name_medium,qArr[x],365);
				}
			}
			for(y in termQArr){
				if(x==termQArr[y]){//key is in term, save term value in cookie
					cmmtrk_createCookie(cookie_name_term,qArr[x],365);
				}
			}
			for(y in contentQArr){
				if(x==contentQArr[y]){//content is in term, save term value in cookie
					cmmtrk_createCookie(cookie_name_content,qArr[x],365);
				}
			}

		}
	}
	else{//get data from Google Analytics Cookie
		
		var GACookiesArr = parseAnalyticsCookie();
		var msg = '';
		
		
		for(x in GACookiesArr){
			msg += "" + x + "--" + GACookiesArr[x] + "\n";
			
			if(x=='utmcmd'){//medium
				cmmtrk_createCookie(cookie_name_medium,GACookiesArr[x],365);
			}
			if(x=='utmctr'){//term/keyword
				cmmtrk_createCookie(cookie_name_term,GACookiesArr[x],365);
			}
			if(x=='utmcsr'){//source
				cmmtrk_createCookie(cookie_name_source,GACookiesArr[x],365);
			}
			if(x=='utmccn'){//campaign
				cmmtrk_createCookie(cookie_name_campaign,GACookiesArr[x],365);
			}
			if(x=='utmcct'){//content
				cmmtrk_createCookie(cookie_name_content,GACookiesArr[x],365);
			}
		}
	}

	

	$(document).ready(function(){
	$('form').each(function(){
		var form_action = $(this).attr('action');
		if(form_action!=''){
			//check if 'infusionsoft'
			var loc_match = form_action.search(/infusionsoft/i);
			if(loc_match!=-1){//match
				//populate hidden fields
				$(this).children('input').each(function(){
					var hidden_obj = $(this);
					
					// Set Leadsource field
					if(hidden_obj.attr('name')==field_name_leadsource){
						
						hidden_obj.val(cmmtrk_getLeadSource());
						
					}
					
					// Set Source Custom Field
					if(hidden_obj.attr('name')==field_name_source){
						
						hidden_obj.val(cmmtrk_getCookieValue(cookie_name_source));
						
					}

					// Set CampaignCustom Field
					if(hidden_obj.attr('name')==field_name_campaign){
						
						hidden_obj.val(cmmtrk_getCookieValue(cookie_name_campaign));
					}

					// Set medium Custom Field
					if(hidden_obj.attr('name')==field_name_medium){
						hidden_obj.val(cmmtrk_getCookieValue(cookie_name_medium));
					}

					// Set Term Custom Field
					if(hidden_obj.attr('name')==field_name_term){
						
						hidden_obj.val(cmmtrk_getCookieValue(cookie_name_term));
					}

					// Set Content Custom Field
					if(hidden_obj.attr('name')==field_name_content){
						
						hidden_obj.val(cmmtrk_getCookieValue(cookie_name_content));
					}
				});
			}
		}
	});
});
	
	
});

  (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';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

function querySt() {
	var o = new Array();
	hu = window.location.search.substring(1);
	
	gy = hu.split("&");
	if(gy.length>1){
		
		for (i=0;i<gy.length;i++) {
			ft = gy[i].split("=");
			o[ft[0]]=ft[1];
		}
	}
	
	if(gy.length<=1){
		o.length=0;
	}
	else{
		o.length=gy.length;
	}
	return o;
}

//Cookies


function cmmtrk_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;
}

function cmmtrk_getCookieValue(name) {
	var cookieVal = cmmtrk_readCookie(name);
	if(cookieVal){
		return cookieVal;
	} else {
		return '';
	}
}

function eraseCookie(name) {
	cmmtrk_createCookie(name,"",-1);
}

function parseAnalyticsCookie() {
    var values = {};
    var cookie = cmmtrk_readCookie("__utmz");
	
	if (cookie) {
        var z = cookie.split('|'); 
        
		for(x in z){
			y = z[x].split('=');
			if(z[x].indexOf('utmcsr')!=-1){
				values['utmcsr'] = y[1];
			}
			else{
				values[y[0]] = y[1];
			}
		}
    }
	
    return values;
}

function cmmtrk_getLeadSource(){

	var leadsource = '';

	if(cmmtrk_getCookieValue(cookie_name_source) != '') {leadsource = leadsource + cmmtrk_getCookieValue(cookie_name_source) + "/";}
	if(cmmtrk_getCookieValue(cookie_name_medium) != '') {leadsource = leadsource + cmmtrk_getCookieValue(cookie_name_medium) + "/";}
	if(cmmtrk_getCookieValue(cookie_name_campaign) != '') {leadsource = leadsource + cmmtrk_getCookieValue(cookie_name_campaign) + "/";}
	if(cmmtrk_getCookieValue(cookie_name_term) != '') {leadsource = leadsource + cmmtrk_getCookieValue(cookie_name_term);}

	return leadsource;

}

function parseQueryMajorSearchEngine(str){
	if(str.match(/google./)){
		//var regex = /^.*\/search.*[\?&]q=(.*)$/;
		var regex = /[#&?]q=([^#&]*)[#&]?/i;
	}
	else if(str.match(/bing.com/)){
		//var regex = /^.*q=(.*)$/;
		var regex = /[#&?]q=([^#&]*)[#&]?/i;
	}
	else if(str.match(/yahoo./)){
		//var regex = /^.*[\?&]p=(.*)$/;
		var regex = /[#&?]p=([^#&]*)[#&]?/i;
	}
	else if(str.match(/ask./)){
		//var regex = /^.*[\?&]q=(.*)$/;
		var regex = /[#&?]q=([^#&]*)[#&]?/i;
	}
	else{
		return str;
	}
	
	return regex.exec(str);
}

function parseMajorSearchEngineName(str){
	if(str.match(/google./)){
		return 'google.com';
	}
	else if(str.match(/bing.com/)){
		return 'bing.com';
	}
	else if(str.match(/yahoo./)){
		return 'yahoo.com';
	}
	else if(str.match(/ask./)){
		return 'ask.com';
	}
	else{
		return str;
	}
}
