// bare essentials
var agent = navigator.userAgent.toLowerCase();
var version = navigator.appVersion.toLowerCase();
var is_minor = parseFloat(version);
var is_major = parseInt(is_minor);

// detect platform
var is_win   = (agent.indexOf("win")!=-1);
var is_mac    = (agent.indexOf("mac")!=-1);
var is_sun   = (agent.indexOf("sunos")!=-1);
var is_linux = (agent.indexOf("inux")!=-1);

// detect safari 1.0+
var is_konq = false;
var kqPos   = agent.indexOf('konqueror');
if (kqPos !=-1) {
   is_konq  = true;
   is_minor = parseFloat(agent.substring(kqPos+10,agent.indexOf(';',kqPos)));
   is_major = parseInt(is_minor);
}
var is_safari = ((agent.indexOf('safari')!=-1)&&is_mac)?true:false;
var is_khtml  = (is_safari || is_konq);

// detect IE 5.0+
var is_opera = (agent.indexOf("opera") != -1);
var iePos  = version.indexOf('msie');
if (iePos !=-1) {
   is_minor = parseFloat(version.substring(iePos+5,version.indexOf(';',iePos)));
   is_major = parseInt(is_minor);
}
var is_ie   = ((iePos!=-1) && (!is_opera) && (!is_khtml));
var is_ie5up = (is_ie && is_minor >= 5);
var is_ie5_5up =(is_ie && is_minor >= 5.5);
var is_ie6up = (is_ie && is_minor >= 6);

// detect mozilla 1.5+
var is_gecko = ((!is_khtml)&&(navigator.product)&&(navigator.product.toLowerCase()=="gecko"))?true:false;
var is_moz = ((agent.indexOf('mozilla/5')!=-1) && (agent.indexOf('spoofer')==-1) && (agent.indexOf('compatible')==-1) && (agent.indexOf('opera')==-1)  && (agent.indexOf('webtv')==-1) && (agent.indexOf('hotjava')==-1) && (is_gecko) && ((navigator.vendor=="")||(navigator.vendor=="Mozilla")));
if (is_moz) {
   var is_moz_ver = (navigator.vendorSub)?navigator.vendorSub:0;
   if(!(is_moz_ver)) {
       is_moz_ver = agent.indexOf('rv:');
       is_moz_ver = agent.substring(is_moz_ver+3);
       is_paren   = is_moz_ver.indexOf(')');
       is_moz_ver = is_moz_ver.substring(0,is_paren);
   }
   is_minor = is_moz_ver;
   is_major = parseInt(is_moz_ver);
   is_minor = parseFloat(is_minor);
}
is_moz15up = (is_moz && is_minor >= 1.5);

// detect netscape 6.0+
var is_ns  = ((agent.indexOf('mozilla')!=-1) && (agent.indexOf('spoofer')==-1) && (agent.indexOf('compatible') == -1) && (agent.indexOf('opera')==-1) && (agent.indexOf('webtv')==-1) && (agent.indexOf('hotjava')==-1) && (!is_khtml) && (!(is_moz)));
if ((navigator.vendor)&& ((navigator.vendor=="Netscape6")||(navigator.vendor=="Netscape"))&& (is_ns)) {
   is_major = parseInt(navigator.vendorSub);
   is_minor = parseFloat(navigator.vendorSub);
}
var is_ns5up = (is_ns && is_minor >= 5);

// detect AOL 6.0+
var is_aol   = (agent.indexOf("aol") != -1);
var is_aol6  = (agent.indexOf("aol 6") != -1);
var is_aol7  = ((agent.indexOf("aol 7")!=-1) || (agent.indexOf("aol7")!=-1));
var is_aol8  = ((agent.indexOf("aol 8")!=-1) || (agent.indexOf("aol8")!=-1));
var is_aol9  = ((agent.indexOf("aol 9")!=-1) || (agent.indexOf("aol9")!=-1));
var is_aol10  = ((agent.indexOf("aol 10")!=-1) || (agent.indexOf("aol10")!=-1));
var is_aol6up = (is_aol && (is_aol6 || is_aol7 || is_aol8 || is_aol9 || is_aol10));

// fruits of our labor
var bBrowser = false;
var bBrowserMac = false;
var bBrowserOther = false;
var bCookie = false;

// windows tests
if (is_win)
{
    // test valid windows browsers
    if (is_ie5up || is_ns5up || is_moz15up || is_aol6up)
    {
        bBrowser = true;
    }
}
// mac tests
else if (is_mac)
{
    // test valid mac browsers
    if (is_safari || is_ns5up || is_moz15up || is_aol6up)
    {
        bBrowser = true;
    }
}
// other os's
else
{
    // test valid browsers for other os's
    if (is_ns5up || is_moz15up)
    {
        bBrowser = true;
    }
}

// cookie test
if (document.cookie != '')
{
    bCookie = true;
}
else
{
    document.cookie = 'cookies=true';
    if (document.cookie)
    {
        bCookie = true;
    }
    else
    {
        bCookie = false;
    }
}

// one final browser test (these are managed afterwards in global.js)
if (!bBrowser)
{
    if (is_mac && !(is_safari || is_moz15up || is_ns5up) && document.getElementById)
    {
        // non-supported dom browsers for mac users
        // these might work for these users, but we'll let them decide
        bBrowserMac = true;
    }
    else if (!is_ns && !is_ie && !is_moz && !is_aol && !is_safari && document.getElementById)
    {
        // non-supported dom browsers for other os's
        // these might work for these users too, but we'll let them decide
        bBrowserOther = true;
    }
}

if ((!bBrowser && !bBrowserMac && !bBrowserOther) || !bCookie)
{
    // we can't support this users browser configuration
    //alert(bBrowserMac);
    window.location.href = '/requirements.html';
}

