var dw = new Function("x", "document.write(x)") ;

function $() {
	return document.getElementById(arguments[0]) ;
}

function $$() {
	return document.getElementsByTagName(arguments[0]) ;
}

window.wnLoad = function(_f) {
	register(window, "load", _f) ;
}

document.wnClick = function(_f) {
	register(document, "click", _f) ;
}

document.wnKeyUp = function(_f) {
	register(document, "keyup", _f) ;
}

document.table = function(r, c) {
	var table = document.createElement("<table border='0' cellpadding='0' cellspacing='0'>") ;
	var tbody = document.createElement("TBODY") ;
	table.appendChild(tbody) ;
	for ( var a = 0 ; a < r ; a++ ){
		var tr = document.createElement("TR") ;
		tbody.appendChild(tr) ;
		for ( var b = 0 ; b < c ; b++ ){
			var td = document.createElement("TD") ;
			tr.appendChild(td) ;
		}
	}
	return table ;
}

document.load = function(url, attach) {
	var file = url.substring(url.lastIndexOf("/")+1, url.lastIndexOf(".")) ;
	var ext = url.substring(url.lastIndexOf(".")+1) ;
	var id = "lib-" + file + "-" + ext;
	if ($(id)) {
		alert("bu zaten var : " + id) ;
		return ;
	}
	if (url.endsWith(".css")) {
		var element = document.createElement("<link rel='stylesheet' type='text/css' href='"+url+"'>") ;
	} else {
		var element = document.createElement("<script type='text/javascript' src='"+url+"'>") ;
		if (attach) {
			window.attachEvent("onload", attach) ;
		}
	}
	element.setAttribute("id", id) ;
	document.getElementsByTagName("HEAD")[0].appendChild(element) ;
}


document.add = function(element) {
	document.body.appendChild(element) ;
}

document.prop = function(object) {
	if (navigator.appName == "Microsoft Internet Explorer") {
		var array = new Array() ;
		for (var property in object) {
			array.push(property + " = " + object[property]) ;
		}
		return array.sort() ;
	} else {
		for (var property in object) {
			dw(property + ' = ' + object[property] + "<br />") ;
		}
	}
}

document.urlvars = function() {
	var url = document.location.href ;
	var vars = url.substring(url.indexOf("?")+1).split("&") ;
	var array = new Array() ;
	for (var i = 0 ; i < vars.length ; i++ ) {
		var avar = vars[i] ;
		var name  = avar.substring(0, avar.indexOf("=")) ;
		var value = avar.substring(avar.indexOf("=")+1) ;
		array[name] = value ;
	}

	return array ;
}

String.prototype.startsWith = function(str) {
	return this.substr(0, str.length) == str ;
}

String.prototype.endsWith = function(str) {
	return this.substr(this.length - str.length, this.length) == str ;
}

String.prototype.trim = function() {
	return this.ltrim().rtrim() ;
}

String.prototype.ltrim = function() {
	return this.replace(/^\s+/g, '') ;
}

String.prototype.rtrim = function() {
	return this.replace(/\s+$/g, '') ;
}

String.prototype.isEmail = function() {
	var regexp = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i ;
	return regexp.test(this) ;
}

String.prototype.isNumber = function() {
	return this.match(/^\d+$/) ;
}


var P = {
	x: function(obj) {
		var curleft = 0;
		if (obj.offsetParent) {
			while (obj.offsetParent) {
				curleft += obj.offsetLeft
				obj = obj.offsetParent;
			}
		} else if (obj.x) {
			curleft += obj.x;
		}
		return curleft;
	},
	y: function(obj) {
		var curtop = 0;
		if (obj.offsetParent) {
			while (obj.offsetParent) {
				curtop += obj.offsetTop
				obj = obj.offsetParent;
			}
		} else if (obj.y) {
			curtop += obj.y;
		}
		return curtop ;
	}
}

function isOwner(element, owner) {
	while (element = element.parentNode) {
		if (element == owner) {
			return true ;
		}
	}
	return false ;
}

function register(_element, _event, _f) {
	if (navigator.appName == 'Microsoft Internet Explorer') {
		_element.attachEvent("on"+_event, _f) ;
	} else {
		_element.addEventListener(_event, _f, true) ;
	}
}
