//Copyright 2001-2011 O2mc BV.
var o2mc = {};
o2mc.client = "302";
o2mc.accounts = {"a1": "124"};
o2mc.cookieName = "o2mc_" + o2mc.client;
o2mc.searchQueryParam = "o2mc";
o2mc.displayQueryParam = "o2mc";
o2mc.emailQueryParam = "o2mc";
o2mc.version = "2.0.1";

o2mc.defineEvents = function() {
  // do not remove {beginGeneratedEvents}
  if(window.document && document) {
    o2mc.setEvent({name:"m9"});
  }
  // do not remove {endGeneratedEvents}
  
};

o2mc.plugins = function() {
	if (window.s && s.pageName) {
		var pageName = s.pageName.split(" ").join("%20");
	}else{
		var pageName = "pagename not found";
	}
	o2mc.cookie.set(o2mc.cookieName, pageName, 1);
}

// WARNING: Don't change anything below this line
o2mc.events = {};
o2mc.isReady = false;
o2mc.process = function() {
  if((o2mc.accounts["a1"] && o2mc.getParameter(o2mc.searchQueryParam)) || (o2mc.accounts["a2"] && o2mc.getParameter(o2mc.displayQueryParam)) || (o2mc.accounts["a3"] && o2mc.getParameter(o2mc.emailQueryParam))) {
    o2mc.setEvent({name:"m8"});
  }
  o2mc.plugins&&o2mc.plugins();
  var searchResponse = o2mc.accounts["a1"] && o2mc.getResponse(o2mc.getParameter(o2mc.searchQueryParam), o2mc.cookieName);
  var displayResponse = o2mc.accounts["a2"] && o2mc.getResponse(o2mc.getParameter(o2mc.displayQueryParam), o2mc.cookieName+"_2");
  var emailResponse = o2mc.accounts["a3"] && o2mc.getResponse(o2mc.getParameter(o2mc.emailQueryParam), o2mc.cookieName+"_3"); 
  searchResponse && o2mc.cookie.set(o2mc.cookieName, searchResponse, 1);
  displayResponse && o2mc.cookie.set(o2mc.cookieName+"_2", displayResponse, 1);
  emailResponse && o2mc.cookie.set(o2mc.cookieName+"_3", emailResponse, 1);
  if(searchResponse||displayResponse||emailResponse) {
    o2mc.responses = {
      "c1": searchResponse&&searchResponse.indexOf('_')!=-1?searchResponse.split('_')[1]:searchResponse,
      "c2": displayResponse,
      "v": emailResponse
    };
    if(o2mc.getVisit("visit", o2mc.cookieName+"Rsp")) {
      o2mc.setEvent({name:"m1"});
    }
    o2mc.defineEvents&&o2mc.defineEvents();    
  }
  if(searchResponse||displayResponse||emailResponse) {
    if(!o2mc.isEmpty(o2mc.events)) {
      o2mc.send();
    }
  }
  o2mc.events = {};
};

o2mc.isEmpty = function(obj) {
	for(var prop in obj) {
		if(obj.hasOwnProperty(prop))
			return false;
	}
	return true;
}

o2mc.send = function() {
  var protocol = document.location.protocol == "http:"?"http:":"https:";
  var random = o2mc.generateUniqueId(); 
  var url = protocol + "//" + "a.trusted-code.com/" + "?r=" + random + '&c=' + o2mc.client;
  
  url += o2mc.getUrlString(o2mc.responses); 
  url += o2mc.getUrlString(o2mc.accounts);
  url += o2mc.getUrlString(o2mc.events);

  var img = document.createElement("img");
  img.onload = function(){};
  img.src = url;
};

o2mc.getUrlString = function(obj) {
  var url = "";
  for(var i in obj) {
    if(obj.hasOwnProperty(i) && obj[i]) {
      url += "&" + i + "=" + obj[i];
    } 
  }
  return url;
}

o2mc.setEvent = function(event) {
  if(!event || !event.name) {
    return;
  }
  o2mc.events[event.name] = event.value||1;
};

o2mc.cookie = {
  set: function(name, value, daysToExpire) {
    var expire = '';
    var domein = '';
    var path = '';
    var host = o2mc.cookie.getHost();
    if (daysToExpire != undefined) {
      var d = new Date();
      d.setTime(d.getTime() + (86400000 * parseFloat(daysToExpire)));
      expire = '; expires=' + d.toGMTString();
    }
    path = '; path=/';
    domein = '; domain='+host;
    
    return (document.cookie = name + '=' + (value || '') + path + domein + expire);
  },
  
  get: function(name) {
    var cookie = document.cookie.match(new RegExp('(^|;)\\s*' + escape(name) + '=([^;\\s]*)'));
    return (cookie ? unescape(cookie[2]) : null);
  },
  
  erase: function(name) {
    var cookie = o2mc.cookie.get(name) || true;
    o2mc.cookie.set(name, '', -1);
    return cookie;
  },
                    
  getHost: function() {
    var newHost = "";
    try {
      var host = document.location.host;
      var values = host.split('.');
      if(!isNaN(values[(values.length-1)])) {
         return host;
      }
      if(values.length > 1) {
        if((values[values.length-2] == 'co' || values[values.length-2] == 'com') && values.length >= 3) {
          newHost = '.' + values[values.length-3] + '.' + values[values.length-2] + '.' + values[values.length-1];
        } else {
          newHost = '.' + values[values.length-2] + '.' + values[values.length-1];
        }
      }
    } catch(e) {}
    return newHost;
  }
};

o2mc.generateUniqueId = function() {
  var dateObject = new Date();
  var uniqueId = dateObject.getTime() + '' + Math.floor(1000000 * Math.random());
  return uniqueId;
};

o2mc.getParameter = function(parm, url) {
  if(typeof(url) == "undefined") {
    url = top.document.location.href;
  }
  if(url.indexOf("?") != -1) {
    var string = url.substring(url.indexOf("?")).substring(1).split('#')[0];
    var parameters = string.split("&");
    
    for(var i=0; i<parameters.length; i++) {
      var pair = parameters[i].split("=");
      if(pair.length) {
        if(pair[0].toLowerCase() == parm) {
          return unescape(pair[1]);  
        }
      }
    }
  }
  return '';
};

o2mc.getResponse = function(response, cookieName) {
  response = response?response:o2mc.cookie.get(cookieName);
  return response;
};

o2mc.DOMReady = function(f) {
  if (/(?!.*?compatible|.*?webkit)^mozilla|opera/i.test(navigator.userAgent) || /(.*?webkit)/i.test(navigator.userAgent)){
    document.addEventListener("DOMContentLoaded", function(){
      o2mc.isReady = true;
      window.setTimeout(f, 1);
    }, false);
  }  else {
    var docReadyProcId = setInterval(function(){
        try{
            // throws errors until DOM is ready
            o2mc.isReady || (document.documentElement.doScroll('left'));
        }catch(e){
            return;
        }
        o2mc.isReady = true;
        if(docReadyProcId){
            clearInterval(docReadyProcId);
            docReadyProcId = null;
        }
        window.setTimeout(f, 100);  // no errors, fire
    }, 200);

		document.onreadystatechange = function(){
			if(document.readyState == 'complete' && o2mc.isReady == false){
				document.onreadystatechange = null;
				o2mc.isReady = true;
				if(docReadyProcId){
            clearInterval(docReadyProcId);
            docReadyProcId = null;
        }
				f();
			}
    }
  }
};

o2mc.getVisit = function(value, cookieName) {
  if(o2mc.cookie.get(cookieName) != value) {
    o2mc.cookie.set(cookieName, value);
    return true;
  }
  
  return false;
}

o2mc.DOMReady(function(){
  o2mc.process();
});
