function lib_bwcheck() {
	this.ver=navigator.appVersion;
	this.agent=navigator.userAgent;
	this.dom=document.getElementById?1:0;
	this.opera5 = this.agent.indexOf("Opera 5")>-1;
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
	this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
	this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
	this.ie=this.ie4||this.ie5||this.ie6
	this.mac=this.agent.indexOf("Mac")>-1
	this.ns6=(this.dom && parseInt(this.ver) >= 5) ? 1:0;
	if (!this.ns6) this.ns6 = (this.dom && this.agent.indexOf("Firebird")>-1);
	if (!this.ns6) this.ns6 = (this.dom && this.agent.indexOf("Firefox")>-1);
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)
	return this;
}
var bw = new lib_bwcheck()

function fixFocus() {
	var bw_i = new lib_bwcheck()
	if (bw_i.ie4 || bw_i.ns4) {
	} else {
		var v=Array('button','a', 'input');var a,m,i,j,b;for(j=0;j<v.length;j++){if(document.getElementsByTagName)a=document.getElementsByTagName(v[j]);
		for(i=0;i<a.length;i++){m=a[i];b=false;if(v[j]=='input'){if(m.type=='button' || m.type=='submit' || m.type=='image'|| m.type=='radio'){b=true;}}else{b=true;}if(b){m.onfocus=m.blur;}}}
	}
}

function fixAll() {
	fixFocus();
	externalLinks();
}

function externalLinks() {
	if (!document.getElementsByTagName) {
		return;
	}
	var anchors = document.getElementsByTagName("a");
	for (var i = 0; i < anchors.length; i++) {
		var anchor = anchors[i];
		if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") {
			anchor.target = "_blank";
		}
	}
}

function isURL(url) {
	re = /^((http[s]?|ftp):\/\/)?([^\/:]+)(:\d{1,5})?(\/[^\s\"\'`]*)?$/i;
	found = re.exec(url);
	if (!found) 
		return false;

	return chk_dom(found[3]);
}

function ltrim(str) {

	var whitespace = new String(" \t\n\r");
	var s = new String(str);

	if (whitespace.indexOf(s.charAt(0)) != -1) {
		var j = 0, i = s.length;

		while (j < i && whitespace.indexOf(s.charAt(j)) != -1) {
			j++;
		}

		s = s.substring(j, i);
	}

	return s;
}

function rtrim(str) {

	var whitespace = new String(" \t\n\r");
	var s = new String(str);

	if (whitespace.indexOf(s.charAt(s.length - 1)) != -1) {
		var i = s.length - 1;

		while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1) {
			i--;
		}

		s = s.substring(0, i + 1);
	}

	return s;
}

function trim(str) {
	return ltrim(rtrim(str));
}

var ctx = getContextPath();
function getContextPath() {
	return "";
	var selfUrl = document.location.href;
	var e = 0;
	var s = selfUrl.indexOf("//");
	if (s > -1) {
		s += 2;
		s = selfUrl.indexOf("/", s + 1);
		if (s > -1)
			e = selfUrl.indexOf("/", s + 1 );
	}
	if (e > s)
		return selfUrl.substring(s, s + (e - s));

	return 0;
}

var urlCode = new Array("__", " ", "!", "?", ".", ",", ":", ";", "\"", "'", "-", "+", "&", ".", "/", "\\", "(", ")", "*", "=", "^", "%", "$", "#", "@", "`", "~");
function urlRewrite(str) {
	var i;
	if (str && str.length > 0) {
		for (i = urlCode.length; --i >= 0;) {
			if (str.indexOf(urlCode[i]) > -1) {
				str = replace(str, urlCode[i], "_");
			}
		}
		while (str.length > 0 && str.substring(str.length - 1) == "_") {
			str = str.substring(0, str.length - 1);
		}
	}
	return str;
}

function replace (instr, inchar, outchar) {
  return partitionString (inchar, outchar, instr, 0, instr.length - 1);
}

function partitionString (inchar, outchar, instr, left, right) {
  if (left == right) {
    var ch = instr.charAt(left);
    return (ch == inchar) ? outchar : ch;
  }
  var mid = (left+right) >> 1;
  return partitionString (inchar,outchar,instr,left,mid) +
         partitionString (inchar,outchar,instr,mid+1,right); 
}

function frameMe() {
	var frameset = ctx + "/"; //name of the frameset page
	var frame = "frameMain"; //name of the frame to load document into
	var page = new String(self.document.location);
	if (page.indexOf("error.jsp") == -1) {
		var pos = page.lastIndexOf(ctx + "/") + 1;
		var file = page.substr(pos);
		if (window.name != frame){
			var s = frameset + "?" + file + "&" + frame;
			top.location.replace(s);
		}
	}
	return;
}
//frameMe();
/**
 * Sets the selected index of a <SELECT> item.<b> 
 *
 * @param elem the <SELECT> element object.
 * @param idx the index of the object.
 */
function setSelectedIndex(elem, idx) {
	var i;
	for (i = 0; i < elem.options.length; i++) {
		if (i == idx) {
			elem.selectedIndex = i;
			break;
		}
	}
}
