
/*******************************************************************
	This function returns the browser name as a string
*******************************************************************/
function getBrowserName()
{
    var name = "Unknown";

    if(navigator.userAgent.indexOf("MSIE")!=-1)
    {
        name = "MSIE";
    }
    else if(navigator.userAgent.indexOf("Firefox")!=-1)
    {
        name = "Firefox";
    }
    else if(navigator.userAgent.indexOf("Opera")!=-1)
    {
        name = "Opera";
    }
    else if(navigator.userAgent.indexOf("Safari")!=-1)
    {
        name = "Safari";
    }

    return name;
}

/*******************************************************************
	This function returns the browser version as a string
*******************************************************************/
function getBrowserVersion()
{
    var version = "0";

    //look for IE browser
    if (navigator.userAgent.indexOf("MSIE")!=-1)
    {
        var temp   = navigator.userAgent.split("MSIE");

        version = temp[1].substring(0, temp[1].indexOf(";"));

        //alert("You are using Microsoft Internet Explorer version " + version);

        return version;
    }

    //look for Firefox browser
    if(navigator.userAgent.indexOf("Firefox")!=-1)
    {
        var versionIndex=navigator.userAgent.indexOf("Firefox")+8;

        if (parseInt(navigator.userAgent.charAt(versionIndex))>=1);
        {
            version = navigator.userAgent.substring(versionIndex, versionIndex+7);
        }

        //alert("You are using Firefox version " + version);

        return version;
    }

    //look for Opera browser
    if(navigator.userAgent.indexOf("Opera")!=-1)
    {
        //check if Opera 10+
        if(navigator.userAgent.indexOf("Version/")!=-1) {
            var temp   = navigator.userAgent.split("Version/");
            version = temp[1];
        }
        else {  //we have Opera 9-
            var temp   = navigator.userAgent.split("Opera");
            version = temp[1].substring(1, temp[1].indexOf(" "));
        }

        return version;
    }

    //look for Safari browser
    if(navigator.userAgent.indexOf("Safari")!=-1)
    {
        var temp   = navigator.userAgent.split("Version/");

        version = temp[1].substring(0,temp[1].indexOf(" "));

        //alert("You are using Safari version " + version);

        return version;
    }
}
/*************************************************************************************
	This function detects the user's browser type and version and then enables
    the appropriate stylesheet for the browser version.

        stylesheets[0] = IE v7 browser />
	stylesheets[1] = GC v2 browser />
	stylesheets[2] = FF v3 browse />
	stylesheets[3] = Safari v3.1 browser />
	stylesheets[4] = Opera v9.6 browser />
        stylesheets[5] = IE v8 browser />

*************************************************************************************/
var browserName 		= getBrowserName();
var browserVer  		= parseFloat(getBrowserVersion());
//var browserVer  		= 6;
//alert("Browser = "+browserName+"\n\nVersion = "+browserVer);
var isBrowserSupported 	= false;

function setCSSforBrowser()
{
    //get browser type and version.
    //Reference:  http://72.14.253.104/search?q=cache:Q9XmhTNMkiUJ:www.javascriptkit.com/javatutors/navigator.shtml+get+browser+version+javascript&hl=en&ct=clnk&cd=1
    //enable the appropriate stylesheet for the browser and version number
    //Reference: http://72.14.253.104/search?q=cache:r45FqjxbqJ8J:www.howtocreate.co.uk/tutorials/javascript/domcss+change+css+stylesheet+javascript&hl=en&ct=clnk&cd=2
    //Reference: http://72.14.253.104/search?q=cache:rR0fydIZobEJ:www.alistapart.com/stories/alternate/+alternate+stylesheets+javascript&hl=en&ct=clnk&cd=1

    //display the user's browser and version
    //alert("You are using browser: "+browserName+" v"+browserVer);

    //disable all the stylesheets
    /*
    var styles = document.getElementsByTagName("link");

    for ( i=0; styles && i < styles.length; i++)
    {
        styles[i].disabled = true;
    }
    */
    /*
    for ( i=0; styles && i < 6; i++)
    {
        alert(styles[i].disabled);
    }
    */

    if(browserName == "MSIE" && browserVer >= 8)
    {
        //we have IE8 or higher
        document.write('<link rel="stylesheet" type="text/css" href="./stylesheets/mvc_IE8.css" />');
        isBrowserSupported = true;
    }
    else if(browserName == "MSIE" && browserVer >= 7)
    {
        //we have IE7 or higher
        /*
        alert("Your browser is Microsoft Internet Explorer version 7 !!!!"+
         		"\n\nYour screen width :\t" + screen.width + " pixels." +
                "\nYour screen height:\t" + screen.height +  " pixels." +
         		"\n\nThis page is optimised for Microsoft Internet Explorer V7 \nwith screen size 1280 x 1024 pixels.");
	*/
        document.write('<link rel="stylesheet" type="text/css" href="./stylesheets/mvc_IE7.css" />');
        isBrowserSupported 	= false;
    }
    else if(browserName == "MSIE" && browserVer <= 6)
    {
        //we have IE6 or lower

        alert("** Warning **\n\nYour browser is Microsoft Internet Explorer version 6 or lower.\n\nThis website has features not supported by IE v6\nand is best viewed with:"+
            "\n\nInternet Explorer v7+\nFirefox v2+\nOpera v9.63+\nSafari for Windows v3.1+\nGoogle Chrome v2+\n\n"+
            "Please consider updating or changing your browser\nto one of the above.\n\nThank you.");

        document.write('<link rel="stylesheet" type="text/css" href="./stylesheets/mvc_IE6.css" />');
        isBrowserSupported 	= false;
    }
    else if(browserName == "Firefox")
    {
        document.write('<link rel="stylesheet" type="text/css" href="./stylesheets/mvc_FF3.css" />');

        if(browserVer >= 3.5)
            isBrowserSupported 	= true;
        else
            isBrowserSupported 	= false;
    }
    else if(browserName == "Safari")
    {
        document.write('<link rel="stylesheet" type="text/css" href="./stylesheets/mvc_SAF.css" />');

        if(browserVer >= 4)
            isBrowserSupported 	= true;
        else
            isBrowserSupported 	= false;
    }
    else if(browserName == "Opera")
    {
        document.write('<link rel="stylesheet" type="text/css" href="./stylesheets/mvc_OP.css" />');

        if(browserVer >= 10)
            isBrowserSupported 	= true;
        else
            isBrowserSupported 	= false;
    }
    else	//we have an unsupported browser  - use the FF css and hope for the best !!!
    {
        document.write('<link rel="stylesheet" type="text/css" href="./stylesheets/mvc_FF3.css" />');
        isBrowserSupported  = false;
        browserName         = "Unsupported";
        browserVer          = "Unknown";
    }

    //reset the MSIE browser name
    if(browserName == "MSIE") browserName = "Internet Explorer"
}

/************************************************************************************
	This function checks if the user's browser is supported or not
************************************************************************************/
function checkForUnsupportedBrowser()
{
    if(!isBrowserSupported)
    {
        alert("** Warning **\n\nThis website is best viewed with:"+
            "\n\nInternet Explorer v7\nFirefox Portable Edition v3.0.5\nOpera v9.63\nSafari v3.1\n\n"+
            "It appears your browser is not one of the above.\n\n");
    }
}

//----------------------------------------------------------------------------
//** This function gets a browser's viewport width and height
//----------------------------------------------------------------------------

function getViewportInfo(minWidth)
{
    var viewportwidth  = 0;
    var viewportheight = 0;

    // the more standards compliant browsers (mozilla/netscape/opera/IE7) use window.innerWidth and window.innerHeight

    if (typeof window.innerWidth != 'undefined')
    {
        viewportwidth = window.innerWidth,
        viewportheight = window.innerHeight
    }

    // IE6 in standards compliant mode (i.e. with a valid doctype as the first line in the document)

    else if (typeof document.documentElement != 'undefined'
        && typeof document.documentElement.clientWidth != 'undefined' && document.documentElement.clientWidth != 0)
        {
        viewportwidth = document.documentElement.clientWidth,
        viewportheight = document.documentElement.clientHeight
    }

    // older versions of IE

    else
    {
        viewportwidth = document.getElementsByTagName('body')[0].clientWidth,
        viewportheight = document.getElementsByTagName('body')[0].clientHeight
    }

    //alert user if his broweer window is too small

    if(viewportwidth > 0 && viewportwidth < minWidth)
    {
        alert('** Warning ** \n\nYour browser width is '+viewportwidth+' pixels wide.'+
            '\n\nYour browser needs to be at least '+minWidth+' pixels wide to view this page correctly.'+
            '\n\nPlease maximise your browser window or increase your monitor\nscreen width to at least '+minWidth+' pixels\n\n');
    }
}
