
OneWeb.Analytics={
"TRACK_DOWNLOAD_CLASS":"trackDownload",
"TRACK_EXTERNAL_CLASS":"trackExternal",
"includeSubDirs":false,
"providers":[],
"Provider":function(account){
this.getAccount=function(){return account;}
this.setAccount=function(newAccount){account=newAccount;}},
"formatLink":function(address,fileOnly){
var host="",query="",i=0;
if(address==null||address=="")return "/";
if(address.indexOf("://")>0)address=address.substring(address.indexOf("://")+3);
if(address.indexOf("?")>0){
query=address.substring(address.indexOf("?"),address.length);
address=address.substring(0,address.indexOf("?"));}
if(address.charAt(0)!="/"){
if((i=address.indexOf("/"))<0){
host=address;
address="";}else{
host=address.substring(0,i);
address=address.substring(i,address.length);}
if(document.location.hostname==host)host="";
host=host.replace(/\./g,"_");}
if(address.charAt(0)!="/")address="/"+address;
if(fileOnly)
address=address.substring(address.lastIndexOf("/",address.length));
if(host.length>0)
return "/"+host+address+query;
else
return address+query;},
"track":function(address){
var trackers=OneWeb.Analytics.providers;
if(trackers&&trackers.length>0)
for(var tracker in trackers)
if(trackers[tracker]&&typeof trackers[tracker].track!="undefined")
trackers[tracker].track(address);},
"trackOnClick":function(){
var a=this;
if(window.event)a=event.srcElement;
while(a.parentNode!=null&&a.tagName.toLowerCase()!="a"&&a.tagName.toLowerCase()!="area")
a=a.parentNode;
var address="";
if(a.getAttribute("track")&&a.getAttribute("track")!="")
address=a.getAttribute("track");
else if(a.className==OneWeb.Analytics.TRACK_DOWNLOAD_CLASS&&a.href!=null&&a.href!="")
address="/download"+OneWeb.Analytics.formatLink(a.href,!OneWeb.Analytics.includeSubDirs);
else if(a.className==OneWeb.Analytics.TRACK_EXTERNAL_CLASS&&a.href!=null&&a.href!="")
address="/external"+OneWeb.Analytics.formatLink(a.href,false);
else
return;
OneWeb.Analytics.track(address);},
"trackAndRedirect":function(address,redirect){
OneWeb.Analytics.track(address);
document.location.href=redirect;},
"setTrackingLinks":function(){
var links=document.getElementsByTagName("a");
var a=null;
for(var i=0;i<links.length;i++){
a=links[i];
if((a.getAttribute("track")!=null&&a.getAttribute("track")!="")||(a.className==OneWeb.Analytics.TRACK_DOWNLOAD_CLASS&&a.href!=null&&a.href!="")||(a.className==OneWeb.Analytics.TRACK_EXTERNAL_CLASS&&a.href!=null&&a.href!=""))
OneWeb.Util.addEvent(a,"click",OneWeb.Analytics.trackOnClick,false);}
links=document.getElementsByTagName("area");
a=null;
for(var i=0;i<links.length;i++){
a=links[i];
if((a.getAttribute("track")!=null&&a.getAttribute("track")!="")||(a.className==OneWeb.Analytics.TRACK_DOWNLOAD_CLASS&&a.href!=null&&a.href!="")||(a.className==OneWeb.Analytics.TRACK_EXTERNAL_CLASS&&a.href!=null&&a.href!=""))
OneWeb.Util.addEvent(a,"click",OneWeb.Analytics.trackOnClick,false);}},
"addProvider":function(provider){
if(provider instanceof OneWeb.Analytics.Provider)
OneWeb.Analytics.providers.push(provider);},
"initialize":function(){
if(OneWeb.Analytics.providers.length>0){
for(var provider in OneWeb.Analytics.providers){
try{
if(typeof OneWeb.Analytics.providers[provider].initialize!="undefined")
OneWeb.Analytics.providers[provider].initialize();}catch(e){}}
var body=document.getElementsByTagName("body")[0];
if(body!=null&&body.getAttribute("track")!=null&&body.getAttribute("track").length>0)
track(body.getAttribute("track"));
else if(body!=null&&body.getAttribute("trackAndRedirect")!=null&&body.getAttribute("trackAndRedirect").length>0){
var addrs=body.getAttribute("trackAndRedirect").split(",",2);
if(addrs.length==1)
OneWeb.Analytics.trackAndRedirect(null,addrs[0]);
else if(addrs[0].length==0)
OneWeb.Analytics.trackAndRedirect(null,addrs[1]);
else
OneWeb.Analytics.trackAndRedirect(addrs[2],addrs[1]);
return;}else
OneWeb.Analytics.track();
OneWeb.Analytics.setTrackingLinks();}},
"initializeClasses":function(){
var reo=OneWeb.Admin.RadEditorOverrides;
if(reo!=null){
reo.addStyleClass("A.trackDownload");
reo.addStyleClass("A.trackExternal");
reo.addClasses();}}};
OneWeb.Analytics.Provider.prototype.initialize=function(){}
OneWeb.Analytics.Provider.prototype.track=function(address){}

