var addstr = "";
var refdata = "";

function ga_refrecord() {
  
  if ( document.cookie.indexOf("__utmb") != -1 &&
      getCookie( "__utmb" ).split( "." )[ 1 ] == 1 ) {
    
    // addstr
    if (document.referrer == "") {
      addstr = "D";
    } else {
      var z = _uGC(document.cookie, '__utmz=', ';');
      var source = _uGC(z, 'utmcsr=', '|');
      var medium = _uGC(z, 'utmcmd=', '|');
      var term = "none";//_uGC(z, 'utmctr=', '|');
      var content = _uGC(z, 'utmcct=', '|');
      var campaign = _uGC(z, 'utmccn=', '|');
      var gclid = _uGC(z, 'utmgclid=', '|');

      if (gclid != "-") {
        source = 'google';
        medium = 'cpc';
      } else if (source == "(direct)") {
        addstr = "D";
      } else {
        addstr = campaign + '_' + source + '_' + medium +
        '_' + term + '_'  + content;	
      }
    }

    // where addstr
    if (document.cookie.indexOf("__firstvisit") == -1) {
      refdata = addstr + "#";
      setCookie("__firstvisit", refdata);
    } else {
      if (document.cookie.indexOf("__refdata") == -1) {
        refdata = addstr + "*1~";
      } else {
        var refDataArr = getCookie("__refdata").split("~");
        var lastRefRecord = [];
        var firstLength = getCookie;
        var n = 5;

        if (refDataArr[1] == '') {
          refDataArr = [ refDataArr[0] ];
        }

        lastRefRecord = refDataArr.slice(-1)[0].split("*");

        if (lastRefRecord[0] == addstr) {
          lastRefRecord[1] = parseInt(lastRefRecord[1]) + 1;
          refDataArr[refDataArr.length - 1] = lastRefRecord.join("*");
        } else {
          refDataArr.push(addstr + "*1");
          if (refDataArr.length >= n) {
            refDataArr = refDataArr.slice(-(n - 1));
          }
        }

        if (refDataArr.length == 1) {
          refdata = refDataArr[0] + "~";
        } else {
          refdata = refdata + refDataArr.join("~");
        }
      }
      setCookie("__refdata", refdata);
    }
  }
}

// setCustomVar
function send_ref_data(){
    try {
      if ( document.cookie.indexOf("__firstvisit") != -1) {
        var __firstvisit = getCookie( "__firstvisit" );
        var __refdata = ( document.cookie.indexOf("__refdata") != -1 ) ?
          getCookie("__refdata").substr(0, 64 - __firstvisit.length) : "none";

        _gaq.push(
            ['_setCustomVar', 4, 'refdata', __firstvisit + __refdata]
            );
      }
    } catch(err){}
    _gaq.push(['_trackPageview', '/virtual/analytics/offers.html']);
}

// helpers
function setCookie(name, value) {
  var date = new Date();
  date.setYear(date.getFullYear() + 1);
  var expires = "; expires=" + date.toGMTString();
	document.cookie = name + "=" + value + expires + "; path=/";
}

function getCookie(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;
}
//

// parse _utmz, returns utmcsr, utmcmd, etc.
function _uGC(l,n,s) {
  if (!l || l=="" || !n || n=="" || !s || s=="") return "-";
  var i,i2,i3,c="-";
  i=l.indexOf(n);
  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;
}

