// ---------------------------------------------
// Javascript Browser Identifier/Comparer

// ---------------------------------------------
// Get Browser Identification: 
function idBrowser(){

    this.thresholds = new Array();

    var vB = navigator.userAgent;   // Browser Version/Release Date Info
    var nB = navigator.appName;     // Browser Name
    var tB = navigator.appVersion;  // Browser Version/Other Info

    this.platform='unknown';
    this.browser='unknown';
    this.version='unknown';

// = = = Platform Test = = =

        if (vB.indexOf('Mac')!=-1){this.platform = 'mac';}
        if ((vB.indexOf('Windows')!=-1)||(vB.indexOf('win')!=-1)){this.platform = 'win';}

// = = = Browser Test = = =

// [1] MS Internet Explorer:
        if (nB=='Microsoft Internet Explorer'){
            this.browser = 'ie';

            // Version Test:
            if (vB.indexOf('MSIE')!=-1){ 
                var start=vB.indexOf('MSIE')+5; 
                var end=vB.indexOf(';',vB.indexOf('MSIE')); 
                this.version = setVersion(start, end, vB); 
            }
            else {
                this.version=parseFloat(tB);
                this.version = setVersion(0,this.version.length, tB);
            }
        }

// [2] Netscape/Mozilla:

		// Later Netscape Versions:
        if (vB.indexOf('Gecko')!=-1){

	// = = = Version Test = = =
           var start=vB.indexOf('Gecko')+6; 
           var end=vB.indexOf('Gecko')+14; 
           this.version = vB.substring(start,end);

            // Netscape:
            if (vB.indexOf('Netscape')!=-1){this.browser = 'ns';}

            //Assume Mozilla:
            else {this.browser = 'mz';}
        }


// [3] Default Reading:  

        if ((nB!='Microsoft Internet Explorer')&&(vB.indexOf('Gecko')==-1)){
			this.browser=nB; 

			// Older Netscape Versions:
			if (nB=='Netscape'){this.browser = 'ns';}

            var start=0; 
            var vString=parseFloat(tB) + '';
            var end=vString.length; 
            this.version = setVersion(start, end, vString);
        }

// [Debugger] Display BrowserTest Results:
// alert('CURRENT BROWSER \n' + '-------------------------- \n' + 'PLATFORM: ' + this.platform + '\n' + 'BROWSER: ' +this.browser + '\n' + 'VERSION: ' +this.version);
}


// ---------------------------------------------  
// Modify Version Number: 

function setVersion (start, end, vString) {
	// Remove noninteger characters: 
    var versArray = vString.substring(parseInt(start), parseInt(end)).split('.');
    for (i=0;i<3 ;i++ ){
		if ((!versArray[i])||(isNaN(versArray[i]))){versArray[i]=0;}
	// Reconstruct Version Number:
		var rV = versArray[0] + versArray[1] + versArray[2]; 
	}
// Truncate Version Number:
        if (rV.length>3){rV = rV.substring(0,3);}
        return rV;
}


// ---------------------------------------------  

// Compare/Test Browser with Current Browser Identification: 


function compareBrowser() { 	
		if (parseFloat(rB.version)>parseFloat(rB.thresholds[rB.platform][rB.browser])){return true} 
		else {return false;}

}


// --------------------------------------------
// Add Browser Threshold:

function addT(Platform, Browser, Version) { 

// Set Browser Threshold:
	if (!rB.thresholds[Platform])
	{rB.thresholds[Platform] = new Array();}
	rB.thresholds[Platform][Browser] = Version;

}

// Create Threshold Property:
idBrowser.prototype.addThreshold=addT;

// Create browser ID:
var rB = new idBrowser();




// --------------------------------------------- 
// >>> Enter Browser Threshold Changes Here:

// -----------------
// Platform Legend:

     // Windows -- SYNTAX: use 'win'
     // Macintosh -- SYNTAX: use 'mac'

// -----------------
// Browser List: 

     // Internet Explorer: {"ie"}
     // IE -- 6.x;5.x;4.7;4.x;3.x;2.x;1.x
     // SYNTAX: use version number w/o decimals (eg. 6.1.1 = 611)

     // Netscape: {"ns"}
     // ns -- 4.x;3.x;2.x;1.x
     // SYNTAX: use version number w/o decimals (eg. 4.7.9 = 479)
	 // ns -- 7.x;6.x
     // SYNTAX: use release date (eg. '20020416')

     // Mozilla: {"mz"}
     // mz -- rc 1.x;
     // SYNTAX: use release date (eg. '20020416')

     // Opera: {"op"}
     // op -- n/a
     // SYNTAX: n/a

// ---------------------------------------------
// Set Browser Thresholds:

// Windows Platform:
rB.addThreshold('win', 'ie', '510');
rB.addThreshold('win', 'ns', '20020313');
rB.addThreshold('win', 'mz', '20020416');

// MacIntosh Platform:
rB.addThreshold('mac', 'ie', '600');
rB.addThreshold('mac', 'ns', '20001111');
rB.addThreshold('mac', 'mz', '20020416');

// --------------------------------------------- 
