//
// library something something
//



var GLOBALS={
	addElement:function(parent,type,params){
		var newElem=document.createElement(type);
		if(params)for(key in params){newElem.setAttribute(key,params[key]);if(key=="class")newElem.setAttribute("className",params[key]);}
		if(parent)parent.appendChild(newElem);
	 	return newElem;
		},
	addOnload:function(func){
		if(document.getElementById&&(window.addEventListener||window.attachEvent)){
			var prev=window.onload;
			if(!GLOBALS.isFunction(window.onload)){
				window.onload=func;
				}
			else{
				window.onload=function(){prev();func();};
				}
		}
	},
	addOnScroll:function(func){
		// var prev=window.onscroll;
		if(window.addEventListener)
			{
			window.addEventListener("DOMMouseScroll", func, false);
			window.addEventListener("scroll", func, false);
			}
		else if(document.addEventListener) // Opera 7+
			{
			document.addEventListener("scroll", func, false);
			}
		else if(document.all && document.compatMode && (document.compatMode == "CSS1Compat"||document.compatMode == "BackCompat"))
			{
			if("onscroll" in self)
				{
				window.onscroll = func;
				};
			};
		document.onmousewheel = func;

		},
  	// is the item an array
	isArray:function(o) {
  		return (o!=null && typeof(o)=="object" && typeof(o.length)=="number" && (o.length==0 || GLOBALS.isDefined(o[0])));
		},
  	// is the item defined
	isDefined:function(o) {
  		return (typeof(o)!="undefined"&&o!="undefined");
		},
  	// is the item a function
	isFunction:function(o) {
  		return (o!=null && typeof(o)=="function");
		},
  	// is the item an object
	isObject:function(o) {
  		return (o!=null && typeof(o)=="object" && GLOBALS.isDefined(o.constructor) && o.constructor==Object && !GLOBALS.isDefined(o.nodeName));
		},
	parseQueryString:function(query){
   		var Params = {};
   		if ( ! query ) {return Params;}// return empty object
   		var Pairs = query.split(/[;&]/);
		  for ( var i = 0; i < Pairs.length; i++ ) {
		     var KeyVal = Pairs[i].split('=');
		     if ( ! KeyVal || KeyVal.length != 2 ) {continue;}
		     var key = unescape( KeyVal[0] );
		     var val = unescape( KeyVal[1] );
		     val = val.replace(/\+/g, ' ');
		     Params[key] = val;
		  }
		  return Params;
		},
	removeElement:function(elem){
		if(typeof elem=='string')elem=$.getById(elem);
		try{
			elem.parentNode.removeChild(elem);
			}catch(err){
				alert(elem.id+":"+err);
				}
		},
  	// default a bad number to 0
  	zero:function(n) {
    	return (!GLOBALS.isDefined(n) || isNaN(n))?0:n;
  		}


};

var $={
	getByClass:function(str,node,tag){
		var classEls=new Array();
		var elements;
		node=!node?document:node;
		elements=!tag?node.all||node.getElementsByTagName('*'):node.getElementsByTagName(tag);
		var pattern=new RegExp('(^|\\s)'+str+'(\\s|$)');
		for(counter=0,found=0;counter<elements.length;counter++){
			if(pattern.test(elements[counter].className)){
				classEls[found]=elements[counter];
				found++;
				}
			}
		return classEls;
		},
	getById:function(){
		var elements=new Array();
		for(var counter=0;counter<arguments.length;counter++){
			var arg=arguments[counter];
			if(typeof arg=='string')arg=document.getElementById(arg);
			if(arguments.length==1)return arg;
			elements.push(arg);
			}
		return elements;
		},
	getByTag:function(str,node){
		if(node==null)node=document;
		return node.getElementsByTagName(str);
		},
	getStyle:function(elem,style){
   		if(!document.getElementById) return;
		var value = 0;
		try{
			if(document.defaultView)
            	value = document.defaultView.getComputedStyle(elem, "").getPropertyValue(style);
			else if(elem.currentStyle){
            	value = elem.currentStyle[style];
			}
		}
     	catch(e){
			value=elem.style[style];
		}
     	return value;
		}
	};


var TARGET={ // v1.1
	init:function(){
		var anchors=$.getByTag("a");
		for(var counter=0;counter<anchors.length;counter++){
			var anch=anchors[counter];
			if(anch.getAttribute("href")&&anch.getAttribute("rel")=="external")anch.target="_ext";
			}
		}
	};

GLOBALS.addOnload(TARGET.init);
//