var z;         
var source;
var medium;
var term;
var content;
var campaign;
var gclid;
var a;
var aParts;
var nVisits;   

function _uGC(l,n,s) {
 if (!l || l=="" || !n || n=="" || !s || s=="") return "-";
 var i,i2,i3,i4,c="-";
 i=l.indexOf(n);
 i4=l.indexOf(n,i+n.length);
 if (i4 > -1){
   i = i4;
 }
 i3=n.indexOf("=")+1;
 if (i > -1) {
  i2=l.indexOf(s,i); if (i2 < 0) { i2=l.length; }
  c=l.substring((i+i3),i2);
 }
 return c;
}

function analytic_populateHiddenFields(f) { 
      f.source.value  = source; 
      f.medium.value  = medium; 
      f.term.value    = term; 
      f.content.value = content; 
      f.campaign.value = campaign; 
      //f.segment.value = csegment; 
      f.numVisits.value = nVisits;
      //f.varGA.value = "Source : "+source+"  |  Medium : "+medium+"  |  Term : "+term+"  |  Content : "+content+"  |  Campaign : "+campaign+"  |  Segment : "+csegment+"  |  Number of visits : "+nVisits;
      f.varGA.value = "Source : "+source+"  |  Medium : "+medium+"  |  Term : "+term+"  |  Content : "+content+"  |  Campaign : "+campaign+"  |  Number of visits : "+nVisits;
      //alert(f.varGA.value);
      //var myGA = document.getElementById('edit-submitted-googleanalytic');
      //myGA.value = f.varGA.value;
      return true; 
} 

Drupal.behaviors.initAnalytic = { 
  attach: function (context, settings) {                  
  
  z = _uGC(document.cookie, '__utmz=', ';'); 
  
  source = Drupal.settings.analytic.source;
  if (source == '') {
    source  = _uGC(z, 'utmcsr=', '|');
  }
  
  medium = Drupal.settings.analytic.medium;
  if (medium == '') {
    medium  = _uGC(z, 'utmcmd=', '|');
  }
  
  term = Drupal.settings.analytic.term;
  if (term == '') {
    term = _uGC(z, 'utmctr=', '|');
  }
  content = _uGC(z, 'utmcct=', '|');
  campaign = Drupal.settings.analytic.campaign;
  if (campaign == '') {
    campaign = _uGC(z, 'utmccn=', '|');
  }
  
  gclid   = _uGC(z, 'utmgclid=', '|');
  
  if (gclid !="-") { 
        source = 'google'; 
        medium = 'cpc'; 
  } 
  
  /*csegment = _uGC(document.cookie, '__utmv=', ';');   
  if (csegment != '-') { 
        var csegmentex = /[1-9]*?\\.(.*)/;
        csegment    = csegment.match(csegmentex);         
        csegment    = csegment[1]; 
  } else { 
        csegment = '(not set)'; 
  } */
  
  a = _uGC(document.cookie, '__utma=', ';');
  aParts = a.split(".");  
  nVisits = aParts[5];
        
  }                                       
};
(function ($) {

$(document).ready(function() {

  // Accepts a string; returns the string with regex metacharacters escaped. The returned string
  // can safely be used at any point within a regex to match the provided literal string. Escaped
  // characters are [ ] { } ( ) * + ? - . , \ ^ $ # and whitespace. The character | is excluded
  // in this function as it's used to separate the domains names.
  RegExp.escapeDomains = function(text) {
    return (text) ? text.replace(/[-[\]{}()*+?.,\\^$#\s]/g, "\\$&") : '';
  }

  // Attach onclick event to document only and catch clicks on all elements.
  $(document.body).click(function(event) {
    // Catch the closest surrounding link of a clicked element.
    $(event.target).closest("a,area").each(function() {

      var ga = Drupal.settings.googleanalytics;
      // Expression to check for absolute internal links.
      var isInternal = new RegExp("^(https?):\/\/" + window.location.host, "i");
      // Expression to check for special links like gotwo.module /go/* links.
      var isInternalSpecial = new RegExp("(\/go\/.*)$", "i");
      // Expression to check for download links.
      var isDownload = new RegExp("\\.(" + ga.trackDownloadExtensions + ")$", "i");
      // Expression to check for the sites cross domains.
      var isCrossDomain = new RegExp("^(https?|ftp|news|nntp|telnet|irc|ssh|sftp|webcal):\/\/.*(" + RegExp.escapeDomains(ga.trackCrossDomains) + ")", "i");

      // Is the clicked URL internal?
      if (isInternal.test(this.href)) {
        // Is download tracking activated and the file extension configured for download tracking?
        if (ga.trackDownload && isDownload.test(this.href)) {
          // Download link clicked.
          var extension = isDownload.exec(this.href);
          _gaq.push(["_trackEvent", "Downloads", extension[1].toUpperCase(), this.href.replace(isInternal, '')]);
        }
        else if (isInternalSpecial.test(this.href)) {
          // Keep the internal URL for Google Analytics website overlay intact.
          _gaq.push(["_trackPageview", this.href.replace(isInternal, '')]);
        }
      }
      else {
        if (ga.trackMailto && $(this).is("a[href^=mailto:],area[href^=mailto:]")) {
          // Mailto link clicked.
          _gaq.push(["_trackEvent", "Mails", "Click", this.href.substring(7)]);
        }
        else if (ga.trackOutbound && this.href) {
          if (ga.trackDomainMode == 2 && isCrossDomain.test(this.href)) {
            // Top-level cross domain clicked. document.location is handled by _link internally.
            _gaq.push(["_link", this.href]);
          }
          else if (ga.trackOutboundAsPageview) {
            // Track all external links as page views after URL cleanup.
            // Currently required, if click should be tracked as goal.
            _gaq.push(["_trackPageview", '/outbound/' + this.href.replace(/^(https?|ftp|news|nntp|telnet|irc|ssh|sftp|webcal):\/\//i, '').split('/').join('--')]);
          }
          else {
            // External link clicked.
            _gaq.push(["_trackEvent", "Outbound links", "Click", this.href]);
          }
        }
      }
    });
  });
});

})(jQuery);
;

