function common_trim(aStr)
{
	return aStr.replace(/(^\s*)|(\s*$)/g, "");
}

function common_ltrim(s, a_char)
{
for(var i=0;i<s.length;i++)
if(s.charAt(i)!=a_char)
return s.substring(i,s.length);
return "";
}

function common_rtrim(s, a_char)
{
for(var i=s.length-1;i>=0;i--)
if(s.charAt(i)!=a_char)
return s.substring(0,i+1);
return "";
}

function common_trim2(s, a_char)
{
	s = common_rtrim(common_ltrim(s, a_char), a_char);
	return s;
} 

function common_hideAndShow(aHideIDList, aShowIDList)
{
	var hideIDs = aHideIDList.split(",");
	var showIDs = aShowIDList.split(",");

	var elem;
	var i;

	for(i=0;i<hideIDs.length;i++)
	{
		elem = document.getElementById(hideIDs[i]);
		elem.style.display = "none";
	}

	for(i=0;i<showIDs.length;i++)
	{
		elem = document.getElementById(showIDs[i]);
		elem.style.display = "";
	}
}

function common_copyInner(aSrcID, aDstID)
{
	var obj_src = document.getElementById(aSrcID);
	var obj_dst = document.getElementById(aDstID);
	
	obj_dst.innerHTML = obj_src.innerHTML;
}

function common_addFav(aLink, aTitle)
{
	if(aLink.indexOf("?") > 0)
	{
		aLink += "&source=FAV";
	}
	else
	{
		aLink += "?source=FAV";
	}

	if(window.sidebar)
	{
		window.sidebar.addPanel(aTitle, aLink, ""); 
	}
	else
	{
		window.external.AddFavorite(aLink, aTitle);
	}
}

var common_navHover_runcount = 0;
function common_navHover(){
	if(common_navHover_runcount > 0)
	{
		return;
	}

	common_navHover_runcount ++;

	var lis_main = document.getElementById("indexMenu");
	var s=document.getElementById("ddlcategory");
	if(lis_main == null)
	{
		return;
	}

	var lis = lis_main.getElementsByTagName("LI");
	for (var i = 0; i < lis.length; i++) {
	
		lis[i].onmouseover = function(){
		this.className += " iehover";
			s.style.visibility="hidden";
		}
		lis[i].onmouseout = function(){
			this.className = this.className.replace(new RegExp(" iehover\\b"), "");
			s.style.visibility="visible";
		}
	}
}


var browser=new BrowserDetect();

	function BrowserDetect(){
    var ua = navigator.userAgent.toLowerCase();
    // browser engine name
    this.isGecko = (ua.indexOf('gecko') != -1 && ua.indexOf('safari') == -1);
    this.isAppleWebKit = (ua.indexOf('applewebkit') != -1);
    // browser name
    if (ua.indexOf('opera') != -1) {
        this.isOpera = true;
        this.name = "Opera"
    };
    if ((ua.indexOf('msie') != -1 && !this.isOpera && (ua.indexOf('webtv') == -1))) {
        this.isIE = true;
        this.name = "Internet Explorer"
    };
    if (this.isGecko && ua.indexOf('gecko/') + 14 == ua.length) {
        this.isMozilla = true;
        this.name = "Mozilla"
    };
    if ((this.isGecko) ? (ua.indexOf('netscape') != -1) : ((ua.indexOf('mozilla') != -1) && !this.isOpera && !this.isSafari && (ua.indexOf('spoofer') == -1) && (ua.indexOf('compatible') == -1) && (ua.indexOf('webtv') == -1) && (ua.indexOf('hotjava') == -1))) {
        this.isNS = true;
        this.name = "Netscape"
    };
    if (ua.indexOf('firebird/') != -1) {
        this.isFirebird = true;
        this.name = "Firebird"
    };
    if (ua.indexOf('firefox/') != -1) {
        this.isFirefox = true;
        this.name = "FireFox"
    };
    if (ua.indexOf('safari/') != -1) {
        this.isSafari = true;
        this.name = "Safari"
    };
    if (ua.indexOf('konqueror') != -1) {
        this.isKonqueror = true;
        this.name = "Konqueror"
    };
    if (ua.indexOf('omniweb') != -1) {
        this.isOmniweb = true;
        this.name = "Omniweb"
    };
    if (ua.indexOf('webtv') != -1) {
        this.isWebtv = true;
        this.name = "WebTV"
    };
    if (ua.indexOf('icab') != -1) {
        this.isICab = true;
        this.name = "Icab"
    };
    if (ua.indexOf('camino') != -1) {
        this.isCamino = true;
        this.name = "Camino"
    };
    // spoofing and compatible browsers
    this.isIECompatible = ((ua.indexOf('msie') != -1) && !this.isIE);
    this.isNSCompatible = ((ua.indexOf('mozilla') != -1) && !this.isNS && !this.isMozilla);
    // rendering engine versions
    this.geckoVersion = ((this.isGecko) ? ua.substring((ua.lastIndexOf('gecko/') + 6), (ua.lastIndexOf('gecko/') + 14)) : -1);
    this.equivalentMozilla = ((this.isGecko) ? parseFloat(ua.substring(ua.indexOf('rv:') + 3)) : -1);
    // browser version
    this.versionMinor = parseFloat(navigator.appVersion);
    // correct version number
    if (this.isGecko && !this.isMozilla) {
        if (this.isFirefox) {
            this.versionMinor = parseFloat(ua.substring(ua.indexOf('firefox/') + 8, ua.length));
        }
        else {
            this.versionMinor = parseFloat(ua.substring(ua.indexOf('/', ua.indexOf('gecko/') + 6) + 1));
        }
    }
    else 
        if (this.isMozilla) 
            this.versionMinor = parseFloat(ua.substring(ua.indexOf('rv:') + 3));
        else 
            if (this.isIE && this.versionMinor >= 4) 
                this.versionMinor = parseFloat(ua.substring(ua.indexOf('msie ') + 5));
            else 
                if (this.isSafari) 
                    this.versionMinor = parseFloat(ua.substring(ua.indexOf('safari/') + 7));
                else 
                    if (this.isOmniweb) 
                        this.versionMinor = parseFloat(ua.substring(ua.indexOf('omniweb/v') + 9));
                    else 
                        if (this.isOpera && !this.isMac) 
                            this.versionMinor = parseFloat(ua.substring(ua.indexOf('opera') + 6));
    this.versionMajor = parseInt(this.versionMinor);
    // dom support 
    this.isDOM = (document.getElementById && document.createElement ? true : false);
    this.isDOM1 = (document.getElementById ? true : false);
    this.isDOM2Event = (document.addEventListener && document.removeEventListener ? true : false);
    // dhtml support
    this.isDHTML = (document.getElementById || document.all || document.layers ? true : false);
    // css compatibility mode
    this.mode = document.compatMode ? document.compatMode : 'BackCompat';
    // platform
    if (ua.indexOf('win') != -1) {
        this.isWin = true;
        this.platform = "win"
    }
    if (this.isWin && (ua.indexOf('95') != -1 || ua.indexOf('98') != -1 || ua.indexOf('nt') != -1 || ua.indexOf('win32') != -1 || ua.indexOf('32bit') != -1 || ua.indexOf('xp') != -1)) {
        this.isWin32 = true;
        this.platform = "win32"
    }
    if (ua.indexOf('mac') != -1) {
        this.isMac = true;
        this.platform = "mac"
    }
    if (ua.indexOf('x11') != -1) {
        this.isMac = true;
        this.platform = "unix"
    }
    if (ua.indexOf('linux') != -1) {
        this.isMac = true;
        this.platform = "linux"
    }
    // specific browser shortcuts
    this.isNS6x = (this.isNS && this.versionMajor == 6);
    this.isNS6up = (this.isNS && this.versionMajor >= 6);
    this.isNS7x = (this.isNS && this.versionMajor == 7);
    this.isNS7up = (this.isNS && this.versionMajor >= 7);
    this.isIE5x = (this.isIE && this.versionMajor == 5);
    this.isIE55 = (this.isIE && this.versionMinor == 5.5);
    this.isIE5up = (this.isIE && this.versionMajor >= 5);
    this.isIE6x = (this.isIE && this.versionMajor == 6);
    this.isIE6up = (this.isIE && this.versionMajor >= 6);
    this.isIE7up = (this.isIE && this.versionMajor >= 7);
};

function HashTable() {
    var obj = {};
    this.add = function(key, value){
        obj[key] = value;
    }
    this.get = function(key){
        return obj[key];
    }
    this.contains = function(key){
        return obj.hasOwnProperty(key);
    }
    this.count = function()
    {
        var count = 0;
        for(var i in obj) count++;
        return count;
    }
    this.clear = function()
    {
        obj = {};
    }
};
/*if(browser.isIE6x)
{
if (window.attachEvent) 
	window.attachEvent("onload", common_navHover);
}*/