/*
    The purpose of this script is to generate CSS classe names which idicate both
    the operating system and browser the user is running.
*/

function getOS()
{
    var result = "";
    
    result = navigator.platform.toLowerCase();
    //TODO: Format above string to be more CSS user-friendly
    
    return result;
}

/*
    Determine general browser category/name
*/
var browser =
{
    isNetscape: navigator.appName.indexOf("Netscape") != -1,
    isMicrosoft: navigator.appName.indexOf("Microsoft") != -1,
    isSafari: navigator.appName.indexOf("Safari") != -1
    //TODO: Verify above on Safari
};


/*
    Generate browser name and version to be used as a CSS class.
    Current possible outputs (which also indicate supported browsers) are the following:
    - ie6
    - ie7
    - firefox1.5
    - firefox2
*/
function getBrowserNameAndVersion()
{
    var result = "";
    
    var IE_PATTERN = /msie\s\d\.\d/i;
    var FIREFOX_PATTERN = /firefox\/\d\.\d/i;
    var SAFARI_PATTERN = /safari/i; //TODO: Add version number pattern
    
    if (browser.isMicrosoft)
    {
        result = navigator.userAgent.match(IE_PATTERN);
        result = "ie" + result.toString().match(/\d/);
    }
    else if (browser.isNetscape)
    {
        result = navigator.userAgent.match(FIREFOX_PATTERN);
        result = result.toString().match(/\d\.\d/);
        result = "firefox" + result.toString().replace(".", "_");
    }
    else if (browser.isSafari)
    {
        result = navigator.userAgent.match(SAFARI_PATTERN);
        //TODO: Complete formatting
    }
    else
    {
        result = "Unsupported_browser";
    }
    
    return result;
}


/*
    kdf
*/
function applyOSAndBrowserCSSClasses(osElementId, browserElementId)
{
    var osElement = document.getElementById(osElementId);
    var browserElement = document.getElementById(browserElementId);
    
    osElement.className = getOS();
    browserElement.className = getBrowserNameAndVersion();
}


/*
    Print all properties of the 'navigator' object (primarily for debugging purposes)
*/
function printNavigatorInfo()
{
    document.write("<table border='1px' cellpadding='5px' cellspacing='5px'>");
    for (var navProperty in navigator)
        document.write("<tr><th align='left'>" + navProperty + "</th>" + "<td>" + navigator[navProperty] + "</td></tr>");
    document.write("</table>");
}