/**
 * Glamorous Google Analytics - Let you track your website with Google Analytics
 * Documentation and usage in README file
 * 
 * @author Jonas De Smet - Glamorous
 * @since 06.11.2009
 * @copyright Jonas De Smet - Glamorous
 * @version 0.7
 * @license BSD http://www.opensource.org/licenses/bsd-license.php
 * 
 */
(function($){$.getScript=function(url,callback,errorhandling,cache){$.ajax({type:"GET",url:url,success:callback,error:errorhandling,dataType:"script",cache:cache})};$.glamGA=function(uatracker,settings){settings=$.extend({},$.glamGA.defaults,settings);var DEBUG=(settings.debug&&$.glamLog!==undefined)?true:false;var pluginname='Glamorous GA (global)';var domain=document.location.host;var extension=domain.substr(domain.lastIndexOf('.')+1);var external=[];var mails=[];var files=[];function init(){var gaHost=(("https:"==document.location.protocol)?"https://ssl.":"http://www.");try{$.getScript(gaHost+"google-analytics.com/ga.js",function(){if(DEBUG){$.glamLog('Google Analytics ga.js file loaded succesful','INFO',pluginname)}setupTracking()},function(){if(DEBUG){$.glamLog('Google Analytics ga.js file failed to load:'+err,'ERROR',pluginname)}},true)}catch(err){if(DEBUG){$.glamLog('A unexpected error has just been triggered','ERROR',pluginname)}}}function setupTracking(){try{var pageTracker=_gat._getTracker(uatracker);if(DEBUG){$.glamLog('Google Analytics pageTracker received successful','INFO',pluginname)}}catch(err){if(DEBUG){$.glamLog('Google Analytics pageTracker failed to receive: '+err,'ERROR',pluginname)}}if(settings.trackPage){pageTracker._trackPageview();if(DEBUG){$.glamLog('trackPage enabled','INFO',pluginname)}}else{if(DEBUG){$.glamLog('trackPage disabled','WARN',pluginname)}}var links=$('a');var l_length=links.length;for(i=0;i<l_length;i++){var href=$(links[i]).attr('href');if(href!==undefined){if((href.match(/^https?\:/i))&&(!href.match(document.domain))){external.push(links[i])}else if(href.match(/^mailto\:/i)){mails.push(links[i])}else if($.inArray(href.split('.')[href.split('.').length-1],settings.filetypes)>=0){files.push(links[i])}}}if(DEBUG){$.glamLog('#external links = '+external.length,'LOG',pluginname);$.glamLog('#mailto links = '+mails.length,'LOG',pluginname);$.glamLog('#download links = '+files.length,'LOG',pluginname)}if(settings.trackLinks){$(external).click(function(){var link=$(this);var linktxt=(link.attr('title')!=''&&settings.titleLinks)?link.attr('title')+' ['+link.attr('href').replace(/^https?\:\/\//i,'')+']':link.attr('href').replace(/^https?\:\/\//i,'');pageTracker._trackEvent(settings.categoryLinks,'Visit',linktxt)});if(DEBUG){$.glamLog('trackLinks enabled','INFO',pluginname)}}else{if(DEBUG){$.glamLog('trackLinks disabled','WARN',pluginname)}}if(settings.trackMails){$(mails).click(function(){var email=$(this);var emailtxt=email.attr('href').substring(7);pageTracker._trackEvent(settings.categoryMails,'Click',emailtxt)});if(DEBUG){$.glamLog('trackMails enabled','INFO',pluginname)}}else{if(DEBUG){$.glamLog('trackMails disabled','WARN',pluginname)}}if(settings.trackFiles){$(files).click(function(){var file=$(this);var filehref=file.attr('href');var fileext=filehref.split('.')[filehref.split('.').length-1];var filename=filehref.substring(filehref.lastIndexOf('/')+1);pageTracker._trackEvent(settings.categoryFiles,fileext,filename)});if(DEBUG){$.glamLog('trackFiles enabled','INFO',pluginname)}}else{if(DEBUG){$.glamLog('trackFiles disabled','WARN',pluginname)}}}if((domain!=='localhost'&&extension!==settings.localextension)||settings.localhost){if(DEBUG){$.glamLog('Google Analytics enabled','INFO',pluginname)}init()}else{if(DEBUG){$.glamLog('Google Analytics disabled','WARN',pluginname)}}};$.glamGA.customTrack=function(uatracker,settings){settings=$.extend({},$.glamGA.customdefaults,settings);var DEBUG=(settings.debug&&$.glamLog!==undefined)?true:false;var pluginname='Glamorous GA (custom)';var domain=document.location.host;var extension=domain.substr(domain.lastIndexOf('.')+1);function init(){var gaHost=(("https:"==document.location.protocol)?"https://ssl.":"http://www.");try{$.getScript(gaHost+"google-analytics.com/ga.js",function(){if(DEBUG){$.glamLog('Google Analytics ga.js file loaded succesful','INFO',pluginname)}trackIt()},function(){if(DEBUG){$.glamLog('Google Analytics ga.js file failed to load:'+err,'ERROR',pluginname)}},true)}catch(err){if(DEBUG){$.glamLog('A unexpected error has just been triggered','ERROR',pluginname)}}}function trackIt(){var pageTracker=_gat._getTracker(uatracker);if(settings.type=='event'){pageTracker._trackEvent(settings.category,settings.action,settings.label)}else if(settings.type=='view'){pageTracker._trackPageview(settings.url)}}if((domain!=='localhost'&&extension!==settings.localextension)||settings.localhost){if(DEBUG){$.glamLog('Google Analytics enabled','INFO',pluginname)}init()}else{if(DEBUG){$.glamLog('Google Analytics disabled','WARN',pluginname)}}};$.fn.glamGA=function(uatracker,settings){settings=$.extend({},$.glamGA.customdefaults,settings);return this.each(function(){var element=$(this);element.bind(settings.event+'.glamGA',function(){$.glamGA.customTrack(uatracker,settings)})})};$.glamGA.defaults={debug:false,localhost:false,localextension:'dev',trackPage:true,trackLinks:true,trackMails:true,trackFiles:true,categoryLinks:'External',categoryMails:'Email',categoryFiles:'Download',titleLinks:true,filetypes:['pdf','doc','xls','csv','jpg','mp3','rar','txt','ppt','zip','dmg','xml','exe','air']};$.glamGA.customdefaults={debug:false,localhost:false,localextension:'dev',type:'event',url:'/AJAX/example',category:'Custom',action:'Click',label:'example',event:'click'}})(jQuery);