var PageDir = "americanbowtie";
var loaderpage = "http://clickstats.regalbuilt.com/track.php";
// 2007.01.20 KJD: JavaScript to load and determine user
var ClickStatsBoxID = "RegalBuilt_ClickStats";
var ClickStatsLink = "http://www.regalbuilt.com/index.php?page=clickstats&string=" + PageDir;
var AltText = "Website ClickStats provided by RegalBuilt - Click Here to find out more";
var BaseImageLocation = "http://www.regalbuilt.com/includes/stats/";
var ImageLocation = BaseImageLocation + "themes/";
// 2008.09.08 KJD: Make Global for testing
var loadpage = "";
function LoadClickStats()
{
var DetectBox = DetectSatsBox();
if( DetectBox )
{
// 2007.01.20 KJD:
// vars Loaded from PHP: PageDir, loaderpage
// 2007.03.17 KJD: Placed into Array
var PageVars = new Array();
PageVars['PageDir'] = PageDir;
PageVars['browser'] = DetectBrowser();
PageVars['os'] = DetectOS();
PageVars['thisPage'] = DetectPage();
PageVars['resolution'] = DetectResolution();
PageVars['domain'] = DetectDomain( document.domain );
PageVars['referrer'] = DetectReferrer();
PageVars['checkstats'] = DetectCheck( PageVars );
loadpage = loaderpage + "?checkstats=" + PageVars['checkstats'];
for( var i in PageVars )
{
loadpage += "&" + i + "=" + escape( PageVars[i] );
}
// 2007.03.17 KJD: Check if to record
if( PageVars['checkstats'] )
{
loadScript( loadpage );
}
}
}
// 2007.03.17 KJD: Check if to record
function DetectCheck( thisArray )
{
var RecordThis = 1;
// 2007.04.01 KJD: Check if domain is an IP address
if( isIPAddress( thisArray['domain'] ) )
{
RecordThis = 0;
}
if( thisArray['domain'].indexOf( "file://" ) != -1 )
{
RecordThis = 0;
}
// 2007.03.24 KJD: Do not record empty domain
if( thisArray['domain'] == "" )
{
RecordThis = 0;
}
// 2007.04.14 KJD: Do not record if referrer is from ClickStar
if( thisArray['referrer'] != "" )
{
if( thisArray['referrer'].indexOf( '/clickstar/construct.php' ) > -1 )
{
RecordThis = 0;
}
}
return RecordThis;
}
// 2007.04.01 KJD: Check if IP address
function isIPAddress( thisString )
{
var isIP = 0;
// 2007.04.01 KJD: Get the TLD and remove numbers
var thisLocation = thisString.lastIndexOf(".");
var thisTLD = thisString.substr( thisLocation, thisString.length );
thisTLD = thisTLD.replace( ".", "");
thisTLD = parseInt( thisTLD );
if( thisTLD )
{
// 2007.04.01 KJD: is an IP address
isIP = 1;
}
return isIP;
}
// 2007.01.25 KJD: Debug Info
function ClickStatsDebug()
{
var DetectBox = DetectSatsBox();
if( DetectBox )
{
document.getElementById( ClickStatsBoxID ).style.visibility = "visible";
if( window.ClickStats )
{
var DebugString = "";
for( var i in ClickStats )
{
DebugString += i + "=" + ClickStats[i] + "
";
}
DebugString += "userAgent=" + navigator.userAgent + "
";
DebugString += "appName=" + navigator.appName + "
";
document.getElementById( ClickStatsBoxID ).innerHTML = DebugString;
}
}
}
// 2007.01.28 KJD: Display stats on page
function StatDisplay()
{
var thisstring = "";
thisstring = "Views Today: " + ClickStats['PageVisits_today'];
return thisstring;
}
// 2007.01.21 KJD: Get the domain name
function DetectDomain( thisdomain )
{
var domainname = ClickStatsTrim( thisdomain + "");
// 2007.03.01 KJD: Get domains without www, add www
var domainnameArray = new Array();
domainnameArray = domainname.split('.');
if( domainnameArray.length == 2 )
{
domainname = "www." + domainname;
}
return domainname;
}
// 2007.01.21 KJD: How did we get to this page
function DetectReferrer()
{
var thisreferrer = ClickStatsTrim( document.referrer );
return thisreferrer;
}
// 2007.01.20 KJD: Check the resolution
function DetectResolution()
{
var screenres = screen.width + "x" + screen.height;
return screenres;
}
// 2007.01.20 KJD: Check the Stats Box
function DetectSatsBox()
{
if( document.getElementById( ClickStatsBoxID ) )
{
return true;
}
else
{
return false;
}
}
// 2007.01.20 KJD: Detect Browser
function DetectBrowser()
{
// 2007.01.15 KJD: Get the Browser and Version
var thisbrowser = navigator.appName;
var BrowserName = "Unknown";
var BrowserVersion = "Unknown";
if ( navigator.userAgent.indexOf("MSIE") !=-1 )
{
BrowserName = navigator.userAgent.split( ';' )[1];
}
else if( navigator.userAgent.toLowerCase().indexOf("chrome") !=-1 ) // 2008.09.08 KJD: Added for Google Chrome
{
BrowserName = "Google Chrome";
}
else if (
( navigator.userAgent.indexOf("Firefox") !=-1 ) ||
( navigator.userAgent.indexOf("Netscape") !=-1 ) ||
( navigator.userAgent.indexOf("Safari") !=-1 )
)
{
var BrowserInfo = navigator.userAgent.split( ' ' );
BrowserName = BrowserInfo[ BrowserInfo.length - 1 ].replace( '/', ' ');
}
else if ( navigator.userAgent.indexOf("Opera") !=-1 )
{
var BrowserInfo = navigator.userAgent.split(' ');
BrowserName = BrowserInfo[0].replace( '/', ' ');
}
else
{
// 2007.03.03 KJD: Use this for time being.
BrowserName = thisbrowser;
// BrowserName = navigator.userAgent;
}
// 2007.03.01 KJD: Check for strangeness
BrowserName = ClickStatsTrim( BrowserName );
// 2007.03.03 KJD: Added
if(
( BrowserName == "(ax)" ) ||
( BrowserName.indexOf("Debian") != -1 )
)
{
BrowserName = thisbrowser;
}
if( BrowserName.indexOf( "Internet Explorer" ) != -1 )
{
BrowserName = "MSIE Unknown";
}
return BrowserName;
}
// 2007.01.20 KJD: Detect the Operating System
function DetectOS()
{
// 2007.01.15 KJD: Get the OS
var thisOS = navigator.userAgent.toLowerCase();
var OSName = "";
if ( thisOS.indexOf("win") !=-1 )
{
if ( ( thisOS.indexOf("win95")!=-1 ) || ( thisOS.indexOf("windows 95")!=-1 ) ) { OSName = "Windows 95"; }
if ( ( thisOS.indexOf("win98")!=-1 ) || ( thisOS.indexOf("windows 98")!=-1 ) ) { OSName = "Windows 98"; }
if ( thisOS.indexOf("win 9x 4.90") != -1 ) { OSName = "Windows ME"; }
if ( ( thisOS.indexOf("winnt")!=-1 ) || ( thisOS.indexOf("windows nt")!=-1 ) ) { OSName = "Windows NT"; }
if ( thisOS.indexOf("windows nt 5.0") != -1 ) { OSName = "Windows 2000"; }
if ( thisOS.indexOf("windows nt 5.1") != -1 ) { OSName = "Windows XP"; }
if ( thisOS.indexOf("windows nt 5.2") != -1 ) { OSName = "Windows Server 2003"; }
if ( thisOS.indexOf("windows nt 6") != -1 ) { OSName = "Windows Vista"; }
if ( !(OSName) ) { OSName = "Windows Unknown"; }
}
else if ( thisOS.indexOf("mac") !=-1 )
{
if( thisOS.indexOf("mac os x") ) { OSName = "Mac OS X"; }
if( !(OSName) ) { OSName = "Mac Unknown"; }
}
else if ( thisOS.indexOf("x11") !=-1 ) { OSName = "UNIX"; }
else if ( thisOS.indexOf("linux") !=-1 ) { OSName = "Linux"; }
else { OSName = "Unknown"; }
return ClickStatsTrim( OSName );
}
// 2007.01.20 KJD: Record the page URL
function DetectPage()
{
var thispage = document.location + "";
thispage = thispage.replace( document.domain, '' );
thispage = thispage.replace( document.location.protocol + '///', '' );
// 2007.03.01 KJD: Added for empty records
thispage = ClickStatsTrim( thispage );
thispage = "/" + thispage;
return thispage;
}
// 2007.01.19 KJD: Added to load JS file
function loadScript( src, callback )
{
var script = document.createElement( 'script' );
script.type = 'text/javascript';
script.src = src;
if (callback)
{
var evl = new Object();
evl.handleEvent = function (e){callback();};
script.addEventListener( 'load', evl, true );
}
document.getElementsByTagName("head")[0].appendChild( script );
return;
}
// 2007.01.25 KJD: Trim info
function ClickStatsTrim( mystring )
{
mystring = mystring.replace(/^\s*|\s*$/g,"");
return mystring;
}
function SetClickStatsBoxStyle( thisvisibility )
{
if( DetectSatsBox() )
{
document.getElementById( ClickStatsBoxID ).style.display = "block";
document.getElementById( ClickStatsBoxID ).style.zIndex = 999;
// 2007.03.24 KJD: Set the visibility
if( thisvisibility )
{
document.getElementById( ClickStatsBoxID ).style.visibility = "visible";
}
else
{
document.getElementById( ClickStatsBoxID ).style.visibility = "hidden";
}
}
}
// 2007.03.24 KJD: Display the stats
function DisplayClickStats()
{
var thisString = "";
var numberVisits = "" + parseInt( ClickStats["PageVisits_total"] );
numberVisits = pad0( numberVisits, 7 ) + "";
if( DetectSatsBox() )
{
thisString = ClickStatsImages( numberVisits, ClickStats["stattheme"] );
}
document.getElementById( ClickStatsBoxID ).innerHTML = thisString;
}
// 2007.03.24 KJD: Generate the images
function ClickStatsImages( thisnumbers, thistheme )
{
var thisString = "";
var thisTheme = new Array();
thisTheme = thistheme.split( "####" );
var numberFilename = thisTheme[1];
for( var i = 0; i < thisnumbers.length; i++ )
{
thisString += "";
}
// 2007.04.22 KJD: Center the images
thisString = "