var components = function() {
this.lp = location.pathname;
this.ref = document.referrer;
};
components.prototype = {
init: function() {
this.originalReferrer();
this.pageviews();
this.sessionviews();
},
cookie: function( name, value, op ) {
if ( typeof value !== 'undefined' ) {
var op = op || {};
if ( value === null ) {
value = '';
op.expires = -1;
}
var expires = '',  date;
if ( op.expires && typeof op.expires === 'number' ) {
date = new Date();
date.setTime( date.getTime() + ( op.expires * 24 * 60 * 60 * 1000 ) );
expires = '; expires=' + date.toUTCString();
}
var path = op.path  ?  '; path=' + op.path  :  '';
var domain = op.domain  ?  '; domain=' + op.domain  :  '';
var secure = op.secure  ?  '; secure'  :  '';
document.cookie = [ name, '=', encodeURIComponent( value ), expires, path, domain, secure ].join( '' );
}
else {
var cookieValue = null;
if ( document.cookie && document.cookie !== '' ) {
var cookies = document.cookie.split( ';' );
for ( var i = -1, l = cookies.length;  ++i < l; ) {
var cookie = ( cookies[i] || '' ).replace( /^\s+|\s+$/g, '' );
if ( cookie.substring( 0, name.length + 1 ) === ( name + '=' ) ) {
cookieValue = decodeURIComponent( cookie.substring( name.length + 1 ) );
break;
}
}
}
return cookieValue;
}
},
addEvent: function( elm, event, func ) {
try {
elm.addEventListener( event, func, false );
}
catch( e ) {
try {
elm.detachEvent( 'on' + event, func );
elm.attachEvent( 'on' + event, func );
}
catch( e ) {
elm[ 'on' + event ] = func;
}
}
},
removeEvent: function( elm, event, func ) {
try {
elm.removeEventListener( event, func, false );
}
catch( e ) {
try {
elm.detachEvent( 'on' + event, func );
}
catch( e ) {
elm[ 'on' + event ] = null;
}
}
},
originalReferrer: function() {
var op = {
name: 'originalReferrer',
path: '/',
expires: 730
};
if ( ifm.cookie( op.name ) === null ) {
if ( this.ref && this.ref.indexOf( document.domain ) === -1 ) {
ifm.cookie( op.name, this.ref, { expires: op.expires, path: op.path } );
}
}
else {
ifm.cookie( op.name, ifm.cookie( op.name ), { expires: op.expires, path: op.path } );
}
},
pageviews: function() {
var op = {
name: 'pageviews',
path: '/',
expires: 730
};
var flag = true;
if ( ifm.cookie( op.name ) ) {
var before = ifm.cookie( op.name ),
views = before.split( ',' );
for ( var i = -1, l = views.length;  ++i < l; ) {
if ( views[i] === this.lp ) {
flag = false;
break;
}
}
if ( flag === true ) {
ifm.cookie( op.name, before + ',' + this.lp, { expires: op.expires, path: op.path } );
}
else {
ifm.cookie( op.name, before, { expires: op.expires, path: op.path } );
}
}
else {
ifm.cookie( op.name, this.lp, { expires: op.expires, path: op.path } );
}
},
sessionviews: function() {
var op = {
name: 'sessionviews',
path: '/'
};
if ( ifm.cookie( op.name ) ) {
var before = ifm.cookie( op.name ),
views = before.split( ',' );
if ( views[ views.length - 1 ] !== this.lp ) {
ifm.cookie( op.name, before + ',' + this.lp, { path: op.path } );
}
}
else {
ifm.cookie( op.name, this.lp, { path: op.path } );
}
}
};
var ifm = new components();
ifm.init();

