/*
         some other system properties
document.write("<tr><td>platform<td>"         + navigator.platform        );
document.write("<tr><td>cpuClass<td>"         + navigator.cpuClass        );
document.write("<tr><td>appName<td>"          + navigator.appName         );
document.write("<tr><td>appCodeName<td>"      + navigator.appCodeName     );
document.write("<tr><td>appVersion<td>"       + navigator.appVersion      );
document.write("<tr><td>appMinorVersion<td>"  + navigator.appMinorVersion );
document.write("<tr><td>product<td>"          + navigator.product         );
document.write("<tr><td>userAgent<td>"        + navigator.userAgent       );
*/
//
//
//
//alert("gf_determine_user_system");
function gf_determine_user_system ( ) // called from HTML; 
  { //alert("gf_determine_user_system");
	
	// all browsers can read JS ( as long as it is enabled )
    // IE will read this and then get deferred to VBscript to identify SW version // OBSOLETE only for SWv's 8 and below 
	// IE will read this and then use              Jscript to identify SW version 
	// NS will read this and then use              Jscript to identify SW version
	
	// Determine the platform using navigator.platform
    var lvb_win = (navigator.platform.toLowerCase().indexOf("win") != -1) ;
    var lvb_mac = (navigator.platform.toLowerCase().indexOf("mac") != -1) ;
	gf_handle_message_appending( "navigator.platform  : " + navigator.platform  ) ;
	gf_handle_message_appending( "navigator.cpuClass  : " + navigator.cpuClass  ) ;
	
    // Determine the browser (IE or Netscape) using navigator.appName 
    var lvb_ie = ( navigator.appName.toLowerCase().indexOf("microsoft") != -1) ;
    var lvb_ns = ( navigator.appName.toLowerCase().indexOf("netscape" ) != -1) ;
    var lvb_op = ( navigator.appName.toLowerCase().indexOf("opera"    ) != -1) ;
    //alert("navigator.appName : " + navigator.appName  ) ;
	gf_handle_message_appending( "navigator.appName : " + navigator.appName  ) ;
	gf_ri( "navigator.appName   : " + navigator.appName  ) ;
	gf_ri( "navigator.product   : " + navigator.product ) ; //== 'Gecko'
	gf_ri( "navigator.userAgent : " + navigator.userAgent ) ; //== 'Gecko'
	
	// Determine the browser version
    var lvs_bv = navigator.appVersion ; // bv ==> browser version
	var lvi_bv = parseFloat( lvb_ie ? lvs_bv.substring( lvs_bv.toLowerCase().indexOf( "msie" ) + 4 ) : lvs_bv ) ;
    //alert("gf_manage_shockwave_issue : " + lvb_ie + " , " + lvb_ns + " , " + lvb_win + " , " + lvb_mac + " , " + lvs_bv + " , " + lvi_bv ) ;
    gf_handle_message_appending( "navigator.appVersion : " + lvi_bv  ) ;
    gf_ri( "navigator.appVersion : " + lvi_bv  ) ;
	
	
  } ;

//----------------------------------------------------------------------------------
//----------------------------------------------------------------------------------
//----------------------------------------------------------------------------------
function gf_check_for_IEv ( ) 
  { var lvi_IEv = -1 ;
    
	var lvb_IE = ( navigator.appName.toLowerCase().indexOf('microsoft') != -1)                           ;                                
    if ( lvb_IE )                                                                                                                          
      {                                                                                                                                  
        var lvi_A = gf_check_for_IEv_A ( ) ;
	    var lvi_B = gf_check_for_IEv_B ( ) ;
	
	    lvi_IEv = Math.max ( lvi_A , lvi_B ) ;
	  } ;
	  
	return lvi_IEv ;
  } ;
  
//----------------------------------------------------------------------------------
function gf_check_for_IE6 ( ) 
  {	// specificall checks for IE6 ... quick and dirty;
    
    var lvi_IEv = gf_check_for_IEv( ) ;
  
    if ( lvi_IEv == -1 )
      { // must NOT be a IE browser
	    return false ;
	  }
	else if ( lvi_IEv <= 6 )
      { return true ;
	  }
	else
	  { // must be an IEv > 6 
	    return false ;
	  } 
  } ;	                                                                                                                                      

//----------------------------------------------------------------------------------
function gf_check_for_IEv_A ( ) 
  { var lvs_IEv = navigator.appVersion                                                                ;                               
    var lvi_IEv = parseFloat( lvs_IEv.substring( lvs_IEv.toLowerCase().indexOf( 'msie' ) + 4 ) ) ;                      
    gf_ri( "detect_user_system.js , gf_check_for_IEv_A : " + lvi_IEv ) ;
	
	return lvi_IEv ; 
  } ;	                                                                                                                                      
  
//----------------------------------------------------------------------------------
function gf_check_for_IEv_B ( ) 
  {
    var lvi_lvi_IEv = -1; // Return value assumes failure.

    if ( navigator.appName == 'Microsoft Internet Explorer') 
	  {
        var lvs_ua    = navigator.userAgent                         ;
        var lvo_regEx = new RegExp( "MSIE ([0-9]{1,}[\.0-9]{0,})" ) ;
		//gf_ri( "detect_user_system.js , gf_check_for_IEv_B : " + lvs_ua + " , " + lvo_regEx  ) ;

        if ( lvo_regEx.exec( lvs_ua ) != null )
          { lvi_IEv = parseFloat( RegExp.$1 ) ; // HOW DOES THIS EVEN WORK ???????? ... see http://msdn.microsoft.com/en-us/library/cc817582.aspx
		    //gf_ri( "detect_user_system.js , gf_check_for_IEv_B : " + lvo_regEx.exec( lvs_ua ) ) ;
		    gf_ri( "detect_user_system.js , gf_check_for_IEv_B : " + lvi_IEv                  ) ;
		  } ;
      }
    
    return lvi_IEv ;
  } ;
  
//----------------------------------------------------------------------------------
//----------------------------------------------------------------------------------
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------
//----------------------------------------------------------------------------------
//----------------------------------------------------------------------------------
// downloaded from http://www.quirksmode.org/js/detect.html  March 7, 10;
//    uses a hardcoded database ( see dataBrowser  and   dataOS ) of browser properties to provide a summary of basic browser facts:
//                     ;                                                       browser , version , and OS
//
//  !!!!!!!! DANGER probably within a year the hardcoded arrays will be outdated ;
function gf_determine_user_system_Vquirksmode ( ) // called from HTML; 
  { //alert( "gf_determine_user_system_Vquirksmode" );
   
    // provides "browser : " + BrowserDetect.browser  
    // provides "version : " + BrowserDetect.version  
    // provides "OS      : " + BrowserDetect.OS       
    
	var BrowserDetect = {
        init: function () 
		  {
		    this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
	    	this.version = this.searchVersion(navigator.userAgent)
		            	|| this.searchVersion(navigator.appVersion)
            			|| "an unknown version";
    		this.OS      = this.searchString(this.dataOS) || "an unknown OS";
    	  },
    	searchString: function (data) 
		  {
    		for (var i=0;i<data.length;i++)	
			  {
    			var dataString = data[i].string ;
    			var dataProp   = data[i].prop   ;
    			this.versionSearchString = data[i].versionSearch || data[i].identity ;
    			if (dataString) 
				  {
    				if (dataString.indexOf(data[i].subString) != -1)
    					return data[i].identity;
    			  }
    			else if (dataProp)
    				return data[i].identity;
    		  }
    	  },
    	searchVersion: function (dataString) 
		  {
    		var index = dataString.indexOf(this.versionSearchString) ;
	    	if (index == -1) return;
    		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
    	  },
    	dataBrowser: 
		  [
    		{
    			string: navigator.userAgent,
    			subString: "Chrome",
    			identity: "Chrome"
    		},
    		{ 	string: navigator.userAgent,
    			subString: "OmniWeb",
    			versionSearch: "OmniWeb/",
    			identity: "OmniWeb"
    		},
    		{
    			string: navigator.vendor,
    			subString: "Apple",
    			identity: "Safari",
    			versionSearch: "Version"
    		},
    		{
    			prop: window.opera,
    			identity: "Opera"
    		},
    		{
    			string: navigator.vendor,
    			subString: "iCab",
    			identity: "iCab"
    		},
    		{
    			string: navigator.vendor,
    			subString: "KDE",
    			identity: "Konqueror"
	    	},
    		{
    			string: navigator.userAgent,
    			subString: "Firefox",
    			identity: "Firefox"
    		},
    		{
      			string: navigator.vendor,
	    		subString: "Camino",
			identity: "Camino"
		    },
    		{		// for newer Netscapes (6+)
    			string: navigator.userAgent,
    			subString: "Netscape",
    			identity: "Netscape"
    		},
    		{
    			string: navigator.userAgent,
    			subString: "MSIE",
    			identity: "Explorer",
    			versionSearch: "MSIE"
    		},
    		{
    			string: navigator.userAgent,
    			subString: "Gecko",
    			identity: "Mozilla",
    			versionSearch: "rv"
    		},
    		{ 		// for older Netscapes (4-)
    			string: navigator.userAgent,
    			subString: "Mozilla",
    			identity: "Netscape",
    			versionSearch: "Mozilla"
    		}
    	  ],
    	dataOS : 
		  [
		    {
    			string: navigator.platform,
    			subString: "Win",
    			identity: "Windows"
    		},
    		{
    			string: navigator.platform,
    			subString: "Mac",
    			identity: "Mac"
    		},
    		{
    			   string: navigator.userAgent,
    			   subString: "iPhone",
    			   identity: "iPhone/iPod"
    	    },
    		{
    			string: navigator.platform,
    			subString: "Linux",
    			identity: "Linux"
    		}
    	  ]
    
    };
    BrowserDetect.init();
//    gf_ri( "browser : " + BrowserDetect.browser ) ;
//    gf_ri( "version : " + BrowserDetect.version ) ;
//    gf_ri( "OS      : " + BrowserDetect.OS      ) ;
    
	return BrowserDetect ;
  } ;
  
//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------

//----------------------------------------------------------------------------------


