<!--

//////////////////////////////////////////////////////////////
///
///  @class   Javascript Operating System Detection
///  @brief   Identifies the operating system being used
///  @note    Copyright (c) 2007 namesuppressed.
///  @author  Kohan Ikin / namesuppressed
///
///  @version 0.01
///  @date    16 July 2007
///
///  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
///  KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
///  WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
///  PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS
///  OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
///  OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
///  OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
///  SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
///
//////////////////////////////////////////////////////////////



//////////////////////////////////////////////////////////////
///  Setup the namesuppressed function namespaces
//////////////////////////////////////////////////////////////

if (typeof NS=="undefined")       { var NS={}; }
if (typeof NS.Tools=="undefined") { NS.Tools={}; }



//////////////////////////////////////////////////////////////
///  Gets the platform string of the user's browser
//////////////////////////////////////////////////////////////

NS.Tools.getUserAgent = function() {
   return navigator.userAgent;
}



//////////////////////////////////////////////////////////////
///  Tests for Windows and for Windows OS level
//////////////////////////////////////////////////////////////

NS.Tools.isWindows = function() {
   var useragent = "";
   useragent = navigator.userAgent.toLowerCase();
   if (useragent.indexOf("windows") > - 1) return true;
   return false;
}

NS.Tools.isWindows2000 = function() {
   var useragent = "";
   useragent = navigator.userAgent.toLowerCase();
   if (useragent.indexOf("windows nt 5.0") > - 1) return true;
   return false;
}



//////////////////////////////////////////////////////////////
///  Tests for Macintosh and for CPU Type
//////////////////////////////////////////////////////////////

NS.Tools.isMacintosh = function() {
   var useragent = "";
   useragent = navigator.userAgent.toLowerCase();
   if (useragent.indexOf("macintosh") > - 1) return true;
   if (useragent.indexOf("mac os x") > - 1) return true;
   return false;
}

NS.Tools.isPPCMac = function() {
   var useragent = "";
   useragent = navigator.userAgent.toLowerCase();
   if (useragent.indexOf("ppc") > - 1) return true;
   return false;
}

NS.Tools.isIntelMac = function() {
   var useragent = "";
   useragent = navigator.userAgent.toLowerCase();
   if (useragent.indexOf("intel mac") > - 1) return true;
   return false;
}


//////////////////////////////////////////////////////////////
///  Tests for validity of the functions (unit testing)
//////////////////////////////////////////////////////////////

NS.Tools.displayResults = function() {
  document.write("User Agent: " + NS.Tools.getUserAgent() + "<br />");
  document.write("Macintosh: " + NS.Tools.isMacintosh() + "<br />");
  document.write("Intel Mac: " + NS.Tools.isIntelMac() + "<br />");
  document.write("PPC Mac: " + NS.Tools.isPPCMac() + "<br /><br />");  
  document.write("Windows: " + NS.Tools.isWindows() + "<br />");  
  document.write("Windows 2000: " + NS.Tools.isWindows2000() + "<br /><br/>");  
}

// -->