﻿
function get_w(w,pr,pl)
{
    if (brow.name=="Explorer")
        return w;
    else if (brow.name=="Firefox")
        return w-pr-pl;
    else if (brow.name=="Chrome")
        return w-pr-pl;
}

function get_h(h,pt,pb)
{
    if (brow.name=="Explorer")
        return h;
    else if (brow.name=="Firefox")
        return h-pt-pb;
    else if (brow.name=="Chrome")
        return h-pt-pb;
}

function pos(w,h,pr,pt,pl,pb)
{
    var cur=new Object();
    if (brow.name=="Explorer")
    {    
        cur.w=w;
        cur.h=h;
    }
    else if (brow.name=="Firefox")
    {
        cur.w=w-pr-pl;
        cur.h=h-pt-pb;
    }
    else if (brow.name=="Chrome")
    {
        cur.w=w-pr-pl;
        cur.h=h-pt-pb;
    }
    return cur;
}

function set_size(el,w,h,pr,pt,pl,pb)
{
    var cur=new Object();
    if (brow.name=="Explorer")
    {    
        if (w<0) cur.w=document.getElementById(el).style.width;
        else cur.w=w;
        if (h<0) cur.h=document.getElementById(el).style.height;
        else cur.h=h;
    }
    else if (brow.name=="Firefox" || brow.name=="Chrome")
    {        
        if (w<0) cur.w=document.getElementById(el).style.width-pr-pl;
        else cur.w=w-pr-pl;
        if (h<0) cur.h=document.getElementById(el).style.height-pt-pb;        
        else cur.h=h-pt-pb;
        alert(cur.w+","+cur_h);
    }
    if (document.getElementById)
    {
        document.getElementById(el).style.width=cur.w;
        document.getElementById(el).style.height=cur.h;
    }
    else 
    {
        document[el].width=cur.w;
        document[el].height=cur.h;
    }
}


function fix_size(el,w,h,pr,pt,pl,pb)
{
    var cur=new Object();
    if (brow.name=="Explorer")
    {    
        //cur.w=w;
        //cur.h=h;
        return;
    }
    else if (brow.name=="Firefox" || brow.name=="Chrome")
    {        
        if (w<0) cur.w=document.getElementById(el).style.width-pr-pl;
        else cur.w=w-pr-pl;
        if (h<0) cur.h=document.getElementById(el).style.height-pt-pb;        
        else cur.h=h-pt-pb;
    }
    if (document.getElementById)
    {
        document.getElementById(el).style.width=cur.w;
        document.getElementById(el).style.height=cur.h;
    }
    else 
    {
        document[el].width=cur.w;
        document[el].height=cur.h;
    }
    //alert(w+','+h+','+pr+','+pt+','+pl+','+pb);
    //alert(cur.w+','+cur.h);
}

function show_pos(w,h,pr,pt,pl,pb)
{
    var ww=get_w(w,pr,pl);
    var hh=get_h(h,pt,pb);
    if (brow.name=="Explorer")
    {    
        alert("IE:"+ww+","+hh);
    }
    else if (brow.name=="Firefox")
    {
        alert("Firefox:"+ww+","+hh);
    }
    else if (brow.name=="Chrome")
    {
        alert("Chrome:"+ww+","+hh);
    }
}

function show_browser()
{
    alert(brow.name+","+brow.ver+","+brow.os);
    if (brow.name=="Explorer")
        alert("IE");
    else if (brow.name=="Firefox")
        alert("Firefox");
    else if (brow.name=="Chrome")
        alert("Chrome");
}

var brow = {
    init: function () {
	    this.name = this.searchString(this.dataBrowser) || "An unknown browser";
	    this.ver = 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"
	    }
    ]

};
brow.init();

