var checkFor = { Explorer: 6.5, IE: 6.5, Firefox: 3.0, Safari: 4.0, Flash: 9.0, Java: 1.6, Chrome: 4.0 };

var enjava   	= 1;
var enflash  	= 1;
var enbrowser	= 0;
var enos     	= 0;
var pluginlist = '';

if (window.ActiveXObject) {
var isInstalled = false;
    var control = null;
    try {
        control = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');
    } catch (e) {
     //   return;
    }
    if (control) {
        isInstalled = true;
        enflash = 0;
        var pVerFlash = control.GetVariable('$version').substring(4);
        pVerFlash = pVerFlash.split(',');
        pVerFlash = parseFloat(pVerFlash[0] + '.' + pVerFlash[1]);
        if(pVerFlash < checkFor.Flash){
            enflash = 2;
        }
    }
} else {
    // Check navigator.plugins for "Shockwave Flash"

	for (i=0; i < navigator.plugins.length; i++)
	{
		var name = navigator.plugins[i].name.toLowerCase();
		var pName  = (name.indexOf('java') > -1) ? 'Java': (name.indexOf('flash') > -1) ? 'Flash': 'NA';
		if(pName=="Java" && checkFor.Java > 0){
			enjava=0;
			var jName=navigator.plugins[i].name;
		    var pVerJava=name.substring(17);
		    if(parseFloat(pVerJava.substring(0,3)) < checkFor.Java) enjava=2;
		    pVerJava=parseFloat(pVerJava.substring(0,3));
		    //alert (pVerJava);
		}
		if(pName=="Flash" && checkFor.Flash > 0){
			enflash=0;
			var fName=navigator.plugins[i].description;
		    var pVerFlash=navigator.plugins[i].description.substring(16);
		    if(parseFloat(pVerFlash.substring(0,4)) < checkFor.Flash) enflash=2;
		    pVerFlash= parseFloat(pVerFlash.substring(0,4));
		}
	}

}

var useragent = navigator.userAgent.toLowerCase();

//.................. Browser Check .....................//

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();

var bName = BrowserDetect.browser;
var bVer = BrowserDetect.version;

if(bVer < checkFor[bName]){
    if(bName == "FireFox" && checkFor.Firefox > 0){
        enbrowser=1;
    }else if(bName=="Explorer" && checkFor.Explorer > 0){
        enbrowser=2;
    }else if(bName=="Safari" && checkFor.Safari > 0){
        enbrowser=3;
    }else if(bName=="Chrome" && checkFor.Chrome > 0){
        enbrowser=4;
    }else{
        enbrowser=5;
    }       
}

//.................. OS Check ..........................//
//var oName = (useragent.indexOf('linux') > -1) ? 'Linux': (useragent.indexOf('windows') > -1) ? 'Windows':(useragent.indexOf('mac') > -1) ? 'Mac':'NA';
//if((oName!="Linux")&&(oName!="Windows")&&(oName!="Mac")) enos=1;
var oName = BrowserDetect.OS;
//BrowserDetect.OS
enos = 0; // dont check operating systems

var htmlTpl = '<div id="browserError" align="center" style="padding-bottom:120px;padding-top:120px;background-color:#fff;"><table width="420" cellspacing="0" cellpadding="0" border="0" style="border-top:1px solid #000000;border-right:1px solid #000000;border-left:1px solid #000000;border-bottom:1px solid #000000;"><tbody><tr><td class="top"/></tr><tr><td align="center" class="miiddle"><table width="380" border="0"><tbody><tr><td>&nbsp;</td></tr><tr><td><hr></td></tr><tr><td><span class="errtitle">:ReqTitle:</span></td></tr><tr><td>&nbsp;</td></tr><tr><td><p>:SysReq:</p></td></tr><tr><td>&nbsp;</td></tr><tr><td>&nbsp;</td></tr><tr><td align="center"><span class="stillcontinue"> <a href="#" onclick="reloadReserway(\':bk:\');" style="color:#ffffff;">STILL I WANT TO CONTINUE</a></span></td></tr><tr><td>&nbsp;</td></tr></tbody></table></td></tr><tr><td></td></tr></tbody></table></div>';   
//if(parseInt(enos)+parseInt(enbrowser)+parseInt(enjava)+parseInt(enflash)>0){
if(parseInt(enos) + parseInt(enbrowser)>0){
	var o=new Array("", "Detected Operating System is not compatible, This application is tested only on Windows, Linux or Mac<br/>");
	var b=new Array("", "Detected Firefox version is '"+bVer+"', Minimum Requirement is Firefox "+checkFor.Firefox+"!<br/>", "Detected IE version is '"+bVer+"', Minimum Requirement is IE "+checkFor.Explorer+"!<br/>", "Detected Safari version is '"+bVer+"', Minimum Requirement is Safari "+checkFor.Safari+"!<br/>", "Detected Chrome version is '"+bVer+"', Minimum Requirement is Chrome "+checkFor.Chrome+"!<br/>", "Detected browser is not compatible. You need Firefox, IE, Chrome or Safari to use this Application!<br/>");
	var j=new Array("", "No Java Version Detected. JRE 1.6 or higher version is required!<br/>", "Detected Java version is '"+pVerJava+"', Minimum requirement is JRE "+checkFor.Java+"!<br/>");
	var f=new Array("", "No Flash Version Detected. Flash 9.0 or higher version is required!<br/>", "Detected Flash version is '"+pVerFlash+"', Minimum requirement is Flash "+checkFor.Flash+"!<br/>");
    document.title="Reserway - System Not Compatible";
        var tmessage = o[enos]+b[enbrowser]+f[enflash]+"<br/>Please ensure your system meets the minimum system requirements.<br/>Operating System -  Windows XP or higher,  Mac OS 10.4.x or higher <br/> Browser -  Firefox 3.1+ ( Windows and Mac), Safari 4.0(Mac), Flash - Shockwave Flash 9.0";
	document.write( htmlTpl.replace(/:ReqTitle:/,"System Not Compatible").replace(/:SysReq:/,tmessage).replace(/:bk:/, bName+'_'+bVer ) );
}
else{
  reloadReserway('OK');
}


function reloadReserway(k){
    var exp = '';
    if(k !== 'OK')
        document.getElementById('browserError').style.display = 'none';
    else{
        e = new Date();
        e.setDate(e.getDate() + 365);
        exp = '; expires=' + e.toString();
    }
	document.cookie = "continueReserway=" + k + exp;
	window.location = "/";
}

