var qxLib = qxLib ? qxLib : function () {
	var private = {
		igsRules: null,
		igsResize: function () {
			var i, igsConWidth;
				igsConWidth = document.getElementById("igsCon").clientWidth;
			for(i=0; i<private.igsRules.length; i++) {
				if (private.igsRules[i]['selectorText'].substring(0,5)=='.igs-')
					private.igsRules[i].style.width = igsConWidth - private.igsRules[i]['selectorText'].substring(5) + "px";
				else if (private.igsRules[i]['selectorText'].substring(0,8)=='.igsrel-')
					private.igsRules[i].style.width = igsConWidth - private.igsRules[i]['selectorText'].substring(8) + "%";
			}
		}
	}
	var public = {
		getChildrenByName: function (el, name) {
			var i;
			var children = el.childNodes;
			var found = new Array();
			alert(children.length);
			for(i=0; i<children.length; i++){alert(children[i].name);
				if (children[i].name == name) found.push(children[i]);
			}
			return found[0]?found:false;
		},
		fixIEPngBug: function () {
			//var images = document.getElementsByTagName("img");
		},
		findPos: function (obj) {
			var left=0, top=0;
			do {
				left += obj.offsetLeft;
				top += obj.offsetTop;
			}
			while (obj = obj.offsetParent);
			return [left,top];
		},
		include: function (src) {
			var js = document.createElement('script');
			js.setAttribute('type', 'text/javascript');
			js.setAttribute('src', src);
			document.getElementsByTagName('head')[0].appendChild(js);

			var cur_file = {};
			cur_file[window.location.href] = 1;
		 
			if (!this.php_js) this.php_js = {};
			if (!this.php_js.includes) this.php_js.includes = cur_file;
			if (!this.php_js.includes[src])
				this.php_js.includes[src] = 1;
			else this.php_js.includes[src]++;
			return this.php_js.includes[src];
		},
		include_once: function (src) {
//			var cur_file = {};
//			cur_file[window.location.href] = 1;
//			if (!this.php_js) this.php_js = {};
//			if (!this.php_js.includes) this.php_js.includes = cur_file;
//			if (!this.php_js.includes[src])
//				if(public.include(src)) return true;
//			else return true;
//			return false;
			var i, scripts;
			for(i=0, scripts=document.getElementsByTagName("script"); i<scripts.length; i++)
				if (scripts[i].src==src) return false;
			public.include(src);
			return true;
		},
		eventTarget: function (e, wnd) {
			if (!wnd) wnd = window;
			if (!e) var e = wnd.event;
			if (e.currentTarget) return e.currentTarget;
			else if (e.srcElement) return e.srcElement;
		},
		event: function (ev, handler, el) {
			var i;
			if (!el) el = window;
			if(el.addEventListener) {
				el.addEventListener(ev, handler, false);
			}
			else if(el.attachEvent) {
				if (!el.qxPageHandlers) el.qxPageHandlers = new Array();
				if (!el.qxPageHandlers[ev]) {
					el.qxPageHandlers[ev] = new Array();
					el.attachEvent("on" + ev, function(e) {e.target=window.event.srcElement;e.currentTarget=el;e.preventDefault=function(){window.event.returnValue = false};for(var i in el.qxPageHandlers[ev]) el.qxPageHandlers[ev][i](e);});
				}
				el.qxPageHandlers[ev].push(handler);
			}
		},
		eventRemove: function (ev, handler, el) {
			var i;
			if (!el) el = window;
			if(el.removeEventListener) el.removeEventListener(ev, handler, false);
			else if(el.attachEvent) {
				for (i in el.qxPageHandlers[ev])
					if (el.qxPageHandlers[ev][i]===handler) {
						el.qxPageHandlers[ev].splice(i, 1);
						break;
					}
			}
		},
		fireEvent: function (el, type) {
			if (document.createEventObject){
				var evt = document.createEventObject();
				return el.fireEvent('on'+type, evt)
			}
			else if (document.createEvent) {
				var evt = document.createEvent('HTMLEvents');
				evt.initEvent(type, true, true);
				el.dispatchEvent(evt);
			}		
		},
		domLoad: function (handler) {
			var init = function () {
				if (arguments.callee.done) return;
				arguments.callee.done = true;
				if (_timer) clearInterval(_timer);
				handler();
			}
			if (document.addEventListener && !/Opera/i.test(navigator.userAgent)) { //Mozilla/Opera9
			  document.addEventListener("DOMContentLoaded", init, false);
			}
			/* Internet Explorer */
			/*@cc_on @*/
			/*@if (@_win32)
				document.write("<script id=__ie_onload defer src=javascript:void(0)><\/script>");
				var script = document.getElementById("__ie_onload");
				public.event("readystatechange", function(e) {if (e.target.readyState == "complete") init();}, script);
			/*@end @*/
			if (/WebKit/i.test(navigator.userAgent)) { // Safari, sniff
				var _timer = setInterval(function() {
					if (/loaded|complete/.test(document.readyState)) {
						init();
					}
				}, 10);
			}
			/* for other browsers */
			window.onload = init;
		},
		init: function () {
			if (document.styleSheets && document.styleSheets[0] && document.styleSheets[0].title=="intelligs") {
				if (document.styleSheets[0].cssRules)
					private.igsRules = document.styleSheets[0].cssRules
				else if (document.styleSheets[0].rules)
					private.igsRules = document.styleSheets[0].rules
				else return;
				private.igsResize();
				qxLib.event("resize", private.igsResize);
			}
		}
	}
	return public;
}();
qxLib.domLoad(qxLib.init);