var strParamName = 'ecid';
var strParamCCID = 'ccid';
var strHref = window.location.href;

if (document.referrer) if (!fscDomain(document.referrer)) checkaff(); // has referrer and referrer is not fsc
if (!document.referrer) 
    if (ecId() && !ccId()) checkaff(); // no referrer but ecID (ie. email)
    if (ccId()) setCCID(); // no referrer but ecID (ie. email)


//alert(getParam(strParamName));

function checkaff() {
       var strReturn = "";
      var cookieName = 'fs_af_edv';
     var cookieValue = '0';
       var cookieExp = '30';
    var cookieDomain = getDomain(document.domain);
     if (cookieExp) { //setting date exp
	     var date = new Date();
	     date.setTime(date.getTime()+(cookieExp*24*60*60*1000));
	     var expires = date.toGMTString();
     } else var expires = "";
	document.cookie = cookieName+"="+affId(getParam(strParamName))+"; expires="+expires+"; path=/; domain="+cookieDomain;
//	document.cookie = cookieName+"="+affId(613)+"; expires="+expires+"; path=/; domain="+cookieDomain;
}

function setCCID() {
       var strReturn = "";
      var cookieName = 'fs_af_edv';
     var cookieValue = '0';
       var cookieExp = '30';
    var cookieDomain = getDomain(document.domain);
     if (cookieExp) { //setting date exp
	     var date = new Date();
	     date.setTime(date.getTime()+(cookieExp*24*60*60*1000));
	     var expires = date.toGMTString();
     } else var expires = "";
	document.cookie = cookieName+"="+cookieValue+"; expires="+expires+"; path=/; domain="+cookieDomain;
//	document.cookie = cookieName+"="+affId(613)+"; expires="+expires+"; path=/; domain="+cookieDomain;
}

function ecId(){
    if ( strHref.indexOf("?") > -1 ) if ( strHref.indexOf(strParamName) > -1 ) {
	 var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
	 var iParam = strQueryString.substr(1).split("&");
	
	  for ( var i in iParam ){
		var aParam = iParam[i].split("=");
		if ( aParam[0] == strParamName )
            return true
          }
	}return false

}

function ccId(){
    if ( strHref.indexOf("?") > -1 ) if ( strHref.indexOf(strParamCCID) > -1 ) {
	 var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
	 var iParam = strQueryString.substr(1).split("&");

	  for ( var i in iParam ){
		var aParam = iParam[i].split("=");
		if ( aParam[0] == strParamCCID )
            return true
          }
    }return false

}

function getParam(param){
    if ( strHref.indexOf("?") > -1 ) if ( strHref.indexOf(strParamName) > -1 ) {
         var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
         var iParam = strQueryString.substr(1).split("&");

          for ( var i in iParam ){
                var aParam = iParam[i].split("=");
                if ( aParam[0] == strParamName ) return aParam[1]
          }
        }return 0

}

function affId(id) {
     if(!id) var aId=1;
     else var aId=id
     switch (true){
	  //cj DE
	  case ( (583<=aId) && (aId<=592) ): return 7; break;
	  case ( (860<=aId) && (aId<=860) ): return 7; break;
	  //cj UK
	  case ( (603<=aId) && (aId<=612) ): return 5; break;
	  case ( (861<=aId) && (aId<=861) ): return 5; break;
          case ( (1021<=aId) && (aId<=1022) ): return 5; break; 
	  //cj FR
	  case ( (728<=aId) && (aId<=737) ): return 6; break;
	  case ( (862<=aId) && (aId<=862) ): return 6; break;
	  //cj US
	  case ( (758<=aId) && (aId<=767) ): return 1; break;
	  case ( (863<=aId) && (aId<=863) ): return 1; break;
          case ( (1066<=aId) && (aId<=1072) ): return 1; break;
	  //td
	  case ( (613<=aId) && (aId<=622) ): return 2; break;
	  case ( (738<=aId) && (aId<=747) ): return 2; break;
	  case ( (768<=aId) && (aId<=777) ): return 2; break;
	  case ( (788<=aId) && (aId<=797) ): return 2; break;
	  case ( (808<=aId) && (aId<=808) ): return 2; break;
	  case ( (810<=aId) && (aId<=810) ): return 2; break;
	  case ( (812<=aId) && (aId<=821) ): return 2; break;
	  case ( (832<=aId) && (aId<=832) ): return 2; break;
	  case ( (834<=aId) && (aId<=843) ): return 2; break;
	  case ( (864<=aId) && (aId<=864) ): return 2; break;
	  case ( (569<=aId) && (aId<=572) ): return 2; break;
	  case ( (870<=aId) && (aId<=870) ): return 2; break;
          case ( (1019<=aId) && (aId<=1020) ): return 2; break;
          case ( (1031<=aId) && (aId<=1050) ): return 2; break;
	  //aw
	  case ( (623<=aId) && (aId<=632) ): return 3; break;
	  case ( (865<=aId) && (aId<=865) ): return 3; break;
          case ( (1023<=aId) && (aId<=1026) ): return 3; break;
	  //toolbox
	  case ( (593<=aId) && (aId<=602) ): return 4; break;
	  case ( (633<=aId) && (aId<=642) ): return 4; break;
	  case ( (748<=aId) && (aId<=757) ): return 4; break;
	  case ( (778<=aId) && (aId<=787) ): return 4; break;
	  case ( (798<=aId) && (aId<=807) ): return 4; break;
	  case ( (809<=aId) && (aId<=809) ): return 4; break;
	  case ( (811<=aId) && (aId<=811) ): return 4; break;
	  case ( (822<=aId) && (aId<=831) ): return 4; break;
	  case ( (833<=aId) && (aId<=833) ): return 4; break;
	  case ( (844<=aId) && (aId<=853) ): return 4; break;	
	  case ( (866<=aId) && (aId<=866) ): return 4; break;	
	  //zanox
	  case ( (573<=aId) && (aId<=580) ): return 8; break;
          case ( (1158<=aId) && (aId<=1159) ): return 8; break;
	  default: return 0; break;
     }
   return true
}
function fscDomain(domain){
     //could be improved with better a more greedy regex
     var match = /http:\/\/.*\.f-secure\..*/.test(domain);
     if (match) return true
     else return false
}

function getDomain (str) {
     if (str == null || str.length == 0)
	  return "";
 
     str = str.toLowerCase();
     var i = str.indexOf("/");
     if (i > -1)
	  str = str.substring(0, i);
     var parts = str.split('.');
     var len = parts.length;
     if (len < 3)
	  return str;
     var lastPart = parts[len-1];
     var secondPart;
     secondPart = parts[len-2];
     var two = 2;
     if (lastPart == "uk" && secondPart == "co")
	  ++two;
     if (len >= 0)
	  return parts.splice(len-two, two).join('.');
     return "";
}