if(location.host.indexOf("www")==-1){
	var DEV = true;
	var path = location.pathname;
	path = path.substring(0,path.indexOf("/",1));
	var URL = "http://" + location.host + path + "/";
}else{
	var DEV = false;
	var URL = "http://" + location.host + "/";
}
function $(){
	for(var i=0, elements=[], args=$.arguments; i<args.length;
		elements.push( ( (document.getElementById(args[i]) || (document.all && document.all[args[i]])) || document[args[i]] ) || null ), i++);
	return elements.length == 1 ? elements[0] : elements;
}
var isset = function(variable){
	if((typeof variable) != "undefined") {
		if(variable != null) return true;
	}
	return false;
}
var empty = function(variable){
	if(variable.toString().length < 1) return true;
	return false;
}
var isnumeric = function(variable){
	if(isNaN(parseFloat(variable))) return false;
	return true;
}

Object.extend = function(obj, ext){
	for (var p in ext) obj[p] = ext[p];
	return obj;
}

if(!Array.prototype.push) {
	Array.prototype.push = function(a){
		this[this.length] = a;
	}
}

var BodyLoad = {
	onloads: new Array(),
	add: function(f){ if(typeof f == "function") BodyLoad.onloads.push(f); },
	onLoad: function(){ for(var i=0; i<BodyLoad.onloads.length; i++) BodyLoad.onloads[i].call(this); },
	init: function(){
		if(!window.onload){
			window.onload = BodyLoad.onLoad;
		} else {
			var oldLoad = window.onload;
			window.onload = function(){
				oldLoad();
				Delegate.create(window, BodyLoad.onLoad)();
			}
		}
	}
}

Delegate = { version: "1.1b" };
Delegate.create = function(obj, func, args){
	var f = function(){
		var target = arguments.callee.target;
		var func = arguments.callee.func;
		var args = arguments.callee.args;
		return func.apply(target, (args.length < 1 ? arguments : args));
	};
	Object.extend(f, {
		args: (args != undefined && args.length > 0 ? args : new Array()),
		target: obj, func: func
	});
	return f;
}
window.Delegate = Delegate;

Array.prototype.each = function(f){
	var a = this || [];
	for(var i=0; i<a.length; i++){
		Delegate.create(a, f, [i])();
	}
}
Object.extend(Array.prototype, {
	
	find: function(e){
		var a = this || [];
		for(var i=0; i<a.length; i++){
			if(a[i] == e) return true;
		}
		return false;
	},
	
	remove: function(i){
		this.splice(i, 1);
	},
	
	toObject: function(){
		var a = this, o = new Object();
		for(var i=0; i<a.length; i++){
			o[i.toString()] = a[i];
		}
		return o;
	}
	
});

if(!window.Event){
	var Event = {version: "1.2"};
}

Object.extend(Event, {
	add: function(obj, evType, fn){
		if(typeof obj == "array"){
			obj.each(function(i){ Event.add(this[i], evType, fn); });
			return true;
		}
		var obj = (typeof obj == "string") ? $(obj) : obj;
		if(!obj || obj == null) return false;
		if(obj.attachEvent) obj.attachEvent("on" + evType, fn);
		else if(obj.addEventListener) obj.addEventListener(evType, fn, true);
		else obj["on" + evType] = fn;
	},
	remove: function(obj, evt, func){
		if(typeof obj == "array"){
			obj.each(function(i){ Event.remove(this[i], evType, fn); });
			return true;
		}
		var obj = (typeof obj == "string") ? $(obj) : obj;
		if(!obj || obj == null) return false;		
		if(obj.detachEvent) obj.detachEvent("on" + evt, func);
		if(obj.removeEventListener) obj.removeEventListener(evt, func, true);
		if(obj["on" + evt]){
			obj["on" + evt] = function(){};
			delete obj["on" + evt];
		}
	}
});

window.addEvent = Event.add;

function initValue(o){
	var o = getTargetByEvent(o || window.event);
	if(o.initVal == undefined) {
		o.initVal = o.value;
		Event.add(o, "blur", function(e){
			var o = getTargetByEvent(e);
			if(o.value.length < 1) o.value = o.initVal;
		});
	}
	if(o.value == o.initVal) o.value = "";
}

function getElementsBySelect(rule) {
	for(var i = 0, parts = rule.split(" "), nodes = [document];
		i < parts.length; nodes = getSelectedNodes(parts[i], nodes), i++);
	return nodes;
}

var $$ = getElementsBySelect;

function getSelectedNodes(select, elements) {
	var nodes = [], doc = document;
	var identify = (/\#([a-z0-9_-]+)/i).exec(select);
	if(identify) {
		var element = $(identify[1]);
		return element ? [element] : nodes;
	}
	var classname = (/\.([a-z0-9_-]+)/i).exec(select);
	var tagName = select.replace(/(\.|\#|\:)[a-z0-9_-]+/i, '');
	var classReg = classname ? new RegExp('\\b' + classname[1] + '\\b') : false;
	for(var i=0; i<elements.length; i++) {
		var result = tagName ? ( elements[i].getElementsByTagName(tagName) || (elements[i].all && elements[i].all.tags(tagName)) )
				: ( elements[i].getElementsByTagName("*") || elements[i].all ); 
		for(var j = 0; j < result.length; j++) {
			var node = result[j];
			if(classReg && !classReg.test(node.className)) continue;
			nodes[nodes.length] = node;
		}
	}	
	return nodes;
}
