function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
}
	return [curleft,curtop];
}

function print_r(obj,hideValue){ 
     var objString = '<ul>';
     
     for( var varName in obj ) {
     	objString += '<li>'+ varName +'('+ typeof obj[varName] +')';
     	
     	if ( typeof obj[varName] == 'object' ) {
     		if ( hideValue ) continue;
     		objString += print_r(obj[varName],true);
     	} else {
     		objString += ':'+ escape(obj[varName]);
     	}
     }
     objString += '</ul>';
     return objString;
}

/*has a negative effect on input-field's focus...in IE (whenever deselect is called, the currentinput field, loses its focus)*/
function deselect(){
	if ( document.selection ) document.selection.empty();
	else if ( window.getSelection ) window.getSelection().removeAllRanges();
}

function rdebug(obj){
	debug(print_r(obj));
}

function debug(value){
	document.getElementById('debugOut').innerHTML += '<br>'+value;
}

function stopEvent(event){
	if ( !event ) event = window.event;
	if ( event.stopPropagation ) { event.stopPropagation(); }
	else { event.cancelBubble = true; }
}

function openURL(url,event){
	window.location.href = url;
	stopEvent(event);
}

/* EventHandlerStack start */
function EventHandlerStack(element){
	this.element = element;
	this.functions = new Array();
	
	this._trigger = function (event,eventName){
		if ( !this.functions[eventName] ) return;
		
		var reset = this.element[eventName];
		
		for( var i=0; i<this.functions[eventName].length; i++ ) {
			this.element[eventName] = this.functions[eventName][i];
			this.element[eventName](event);
		}
		
		this.element[eventName] = reset;
	}
	
	this._add = function (eventName,newFunction){
		if ( !this.functions[eventName] ) this.functions[eventName] = new Array();
		this.functions[eventName][this.functions[eventName].length] = newFunction;
	}
}

EventHandlerStack.add = function(element,eventName,newFunction){
	if ( !element.eventHandler ) {
		element.eventHandler = new EventHandlerStack(element);
		if ( element[eventName] ) element.eventHandler._add(eventName,element[eventName]);
		
		element[eventName] = function(event){
			var type = (window.event?window.event.type:event.type);
			this.eventHandler._trigger(event,'on'+type);
		}
	}
	
	element.eventHandler._add(eventName,newFunction);
}
/* EventHandlerStack end */

function setHeight(){
	var height;
	if ( window.innerHeight ) height = window.innerHeight + 'px';
	else height = document.body.clientHeight;
	
	for ( var i in {NaviSub:true,Content:true,FullContent:true,ShoppingCart:true} ) {
		var element = document.getElementById(i);
		if ( element ) element.style.height = height;
	}
}

function initHeight(){
	//window.onresizeend = setHeight;
	setHeight();
}
