
function browser ()
{
var b = navigator.appName;
var v = this.version = navigator.appVersion;
var ua = navigator.userAgent.toLowerCase();
this.v = parseInt(v);
this.safari = ua.indexOf("safari")>-1;// always check for safari & opera 
this.opera = ua.indexOf("opera")>-1;// before ns or ie
this.firefox = ua.indexOf("firefox")>-1;
this.ns = !this.opera && !this.safari && (b=="Netscape");
this.ie = !this.opera && (b=="Microsoft Internet Explorer");
this.gecko = ua.indexOf('gecko')>-1; // check for gecko engine

//Firefox Vendor Version
this.vvmajor = 0;
this.vvminor = 0;
this.vvext = 0;
if(this.firefox)
{
var index1 = ua.indexOf("firefox")+8;
var index2 = ua.length;
var vvstr = ua.substring(index1,index2);

var vvarr = vvstr.split('.');

for(i=0;i<vvarr.length;i++)
{
if(i==0) this.vvmajor = parseInt(vvarr[i]);
if(i==1) this.vvminor = parseInt(vvarr[i]);
if(i==2) this.vvext = parseInt(vvarr[i]);
}
}
//End Firefox Vendor Version

if (this.ns)
{
this.ns4 = (this.v==4);
this.ns6 = (this.v>=5);
this.b = "Netscape";
}
else if (this.ie)
{
this.ie4 = this.ie5 = this.ie55 = this.ie6 = false;
if (v.indexOf('MSIE 4')>0) {this.ie4 = true; this.v = 4;}
else if (v.indexOf('MSIE 5.5')>0) {this.ie55 = true; this.v = 5.5;}
else if (v.indexOf('MSIE 5')>0) {this.ie5 = true; this.v = 5;}
else if (v.indexOf('MSIE 6')>0) {this.ie6 = true; this.v = 6;}
else if (v.indexOf('MSIE 7')>0) {this.ie7 = true; this.v = 7;}
this.b = "MSIE";
}
else if (this.opera)
{
this.v=parseInt(ua.substr(ua.indexOf("opera")+6,1)); // set opera version
this.opera6=(this.v>=6);
this.opera7=(this.v>=7);
this.b = "Opera";
}
else if (this.safari)
{
this.ns6 = (this.v>=5);// ns6 compatible correct?
this.b = "Safari";
}

this.dom = (document.createElement && document.appendChild && document.getElementsByTagName)? true : false;
this.def = (this.ie||this.dom);
this.win32 = ua.indexOf("win")>-1;
this.mac = ua.indexOf("mac")>-1;
this.other = (!this.win32 && !this.mac);
this.supported = (this.def||this.ns4||this.ns6||this.opera)? true:false;
};