
function BrowserModule(){
    this.userAgent = navigator.userAgent.toLowerCase();
    this.appVersion = navigator.appVersion.toLowerCase();
    this.isMinor = parseFloat(this.appVersion);
    this.isMajor = parseInt(this.isMinor);


	setPlatform(this);
	setOpera(this);
	setKonqueror(this);
	setSafari(this);
    this.isKhtml  = (this.safari || this.konqueror);
	setGecko(this);
	setMozilla(this);
	setNavigator(this);
	setMsie(this);
	setFirefox(this);
	setCookieSupport(this);
	
	// Dette workaround er ikke længere aktuelt.
    this.zeroIndex = 0; // this.isMozilla==false?0:1;

}

function setPlatform(browser){
	browser.isMac = (browser.userAgent.indexOf("mac")!=-1);
	browser.isWin = (browser.userAgent.indexOf("win")!=-1);
}

function setCookieSupport(browser){
	document.cookie = "cookies=true";
	browser.cookieSupport = (document.cookie) ? true : false;
}

function setOpera(browser) {
    browser.opera = (browser.userAgent.indexOf("opera") != -1);
    browser.opera2 = (browser.userAgent.indexOf("opera 2") != -1 || browser.userAgent.indexOf("opera/2") != -1);
    browser.opera3 = (browser.userAgent.indexOf("opera 3") != -1 || browser.userAgent.indexOf("opera/3") != -1);
    browser.opera4 = (browser.userAgent.indexOf("opera 4") != -1 || browser.userAgent.indexOf("opera/4") != -1);
    browser.opera5 = (browser.userAgent.indexOf("opera 5") != -1 || browser.userAgent.indexOf("opera/5") != -1);
    browser.opera6 = (browser.userAgent.indexOf("opera 6") != -1 || browser.userAgent.indexOf("opera/6") != -1); 
    browser.opera7 = (browser.userAgent.indexOf("opera 7") != -1 || browser.userAgent.indexOf("opera/7") != -1); 
    browser.opera5up = (browser.opera && !browser.opera2 && !browser.opera3 && !browser.opera4);
    browser.opera6up = (browser.opera && !browser.opera2 && !browser.opera3 && !browser.opera4 && !browser.opera5); // new020128
    browser.opera7up = (browser.opera && !browser.opera2 && !browser.opera3 && !browser.opera4 && !browser.opera5 && !browser.opera6); // new021205 -- dmr
	browser.isOpera = browser.opera;
}

function setKonqueror(browser) {
    browser.konqueror = false;
    var kqPos   = browser.userAgent.indexOf('konqueror');
    if (kqPos !=-1) {                 
       browser.konqueror  = true;
       browser.isMinor = parseFloat(browser.userAgent.substring(kqPos+10,browser.userAgent.indexOf(';',kqPos)));
       browser.isMajor = parseInt(browser.isMinor);
    }                                 
}

function setSafari(browser){
    browser.safari = ((browser.userAgent.indexOf('safari')!=-1)&&(browser.userAgent.indexOf('mac')!=-1))?true:false;
}

function setGecko(browser){
    browser.isGecko = ((!browser.isKhtml)&&(navigator.product)&&(navigator.product.toLowerCase()=="gecko"))?true:false;
}

function setMozilla(browser){
    browser.isMozilla = ((browser.userAgent.indexOf('mozilla/5')!=-1) && (browser.userAgent.indexOf('spoofer')==-1) &&
						(browser.userAgent.indexOf('compatible')==-1) && (browser.userAgent.indexOf('opera')==-1)  &&
						(browser.userAgent.indexOf('webtv')==-1) && (browser.userAgent.indexOf('hotjava')==-1)     &&
						(browser.isGecko) && 
						((navigator.vendor=="")||(navigator.vendor=="Mozilla")));
}

function setNavigator(browser){
	browser.isNavigator = ((browser.userAgent.indexOf('mozilla')!=-1) && (browser.userAgent.indexOf('spoofer')==-1)
			&& (browser.userAgent.indexOf('compatible') == -1) && (browser.userAgent.indexOf('opera')==-1)
			&& (browser.userAgent.indexOf('webtv')==-1) && (browser.userAgent.indexOf('hotjava')==-1)
			&& (!browser.isKhtml) && (!(browser.isMozilla)));
	if ((navigator.vendor) && ((navigator.vendor=="Netscape6") || (navigator.vendor=="Netscape")) && (browser.isNavigator)) {
	   browser.isMajor = parseInt(navigator.vendorSub);
	   browser.isMinor = parseFloat(navigator.vendorSub);
	}
    browser.nav2 = (browser.isNavigator && (browser.isMajor == 2));
    browser.nav3 = (browser.isNavigator && (browser.isMajor == 3));
    browser.nav4 = (browser.isNavigator && (browser.isMajor == 4));
  	browser.ns4 = browser.nav4;
    browser.nav4up = (browser.isNavigator && browser.isMinor >= 4);
    browser.isNavigatorOnly = (browser.isNavigator && ((browser.userAgent.indexOf(";nav") != -1) || (browser.userAgent.indexOf("; nav") != -1)) );
    browser.nav6   = (browser.isNavigator && browser.isMajor==6);    
	browser.ns6 = browser.nav6;
    browser.nav6up = (browser.isNavigator && browser.isMinor >= 6) 
    browser.nav5   = (browser.isNavigator && browser.isMajor == 5 && !browser.nav6); 
    browser.nav5up = (browser.isNavigator && browser.isMinor >= 5);
    browser.nav7   = (browser.isNavigator && browser.isMajor == 7);
    browser.nav7up = (browser.isNavigator && browser.isMinor >= 7);
}

function setMsie(browser){
    var iePos  = browser.appVersion.indexOf('msie');
    if (iePos !=-1) {
       browser.isMinor = parseFloat(browser.appVersion.substring(iePos+5,browser.appVersion.indexOf(';',iePos)))
       browser.isMajor = parseInt(browser.isMinor);
    }
    browser.ie   = ((iePos!=-1) && (!browser.opera) && (!browser.isKhtml));
    browser.ie3  = (browser.ie && (browser.isMajor < 4));
    browser.ie4   = (browser.ie && browser.isMajor == 4);
    browser.ie4up = (browser.ie && browser.isMinor >= 4);
    browser.ie5   = (browser.ie && browser.isMajor == 5);
    browser.ie5up = (browser.ie && browser.isMinor >= 2);
    browser.ie5_2  = (browser.ie && (browser.userAgent.indexOf("msie 5.23") !=-1)); 
    browser.ie5_2up =(browser.ie5_2 && browser.isMajor >= 5);                
    browser.ie5_5  = (browser.ie && (browser.userAgent.indexOf("msie 5.5") !=-1)); 
    browser.ie5_5up =(browser.ie && browser.isMinor >= 5.5);                
    browser.ie6   = (browser.ie && browser.isMajor == 6);
    browser.ie6up = (browser.ie && browser.isMinor >= 6);
}

function setFirefox(browser){
    browser.firefox = ((browser.userAgent.indexOf('firefox')!=-1))?true:false;
}
