var pending = {
	param: {
		length: 0
	}
};
var loading = false;
var buffer = new Array();

/**
 * Fuhrt ein Kommando in der et_gui Klasse aus
 * 
 * Parameter 1: Ist die Objektrefernez vonjavascript
 * Parameter 2: ObjektID der GUI Session
 * Parameter 3: KommandoID des Kommandos welches ausgefuehrt werden soll (auch in der Session hinterlegt) 
 */
function et_call() {
	var args = et_call.arguments;
	if(args[0].type=='submit') {
		if(loading) {
			callFromArguments(args);
		} else {
			setTimeout(function() {
				window.mouseup = true;
				callFromArguments(args);
			}, 1);
		}
	} else {
		callFromArguments(args);
	}
}
function callFromArguments(args) {
	var my_args = new Array();
	var i, arg, arg2, elm, name;
	if(!loading && (window.mouseup || args[0].nodeName == 'SELECT')) {
		loading = true;
		pending = {param: args};
		window.mouseup = false;
		for(i=3; arg=args[i]; i++) {
			arg2 = '';
			if(typeof(arg)=="string") {
				elm = document.getElementById(arg);
				if(elm) {
					arg2 = elm.value;
				} else if(arg.indexOf('.')!=-1) {
					var arg3 = arg.replace('this.', 'args[0].');
					var arg4 = arg3.split('.');
					try {
						if((parseInt(arg4[0])+'')==arg4[0]) {
							arg2 = arg;
						} else {
							eval('arg3='+arg3);
							arg2 = arg3;
						}
					} catch(e) {
						arg2 = arg;
					}
				} else {
					arg2 = arg;
				}
			} else {
				arg2 = arg;
			}
			my_args.push(arg2);
		}
		try {
			eval('var res=gui_'+args[1]+'.call("'+args[2]+'", my_args, et_callback);');
			et_viewElement('et_photo_wait');
			var elm = document.getElementById('362114f061eb8f7112eec56fa7eb7f83');
			if(elm && elm.innerHTML) {
				et_viewElement('et_photo_wait2');
			}
		} catch (e) {
			for(i in e) {
				alert(i+': '+e[i]);
			}
		}
	} else {
		if(!cmdIsWaiting(args)) {
			buffer.push({param: args});
		}
	}
}
function cmdIsWaiting(args) {
	var i, i2, dif;
	var data = buffer;
	dif = false;
	for(i2=0; i2<pending.param.length; i2++) {
		if(pending.param[i2]!=args[i2]) {
			dif = true;
			break;
		}
	}
	if(!dif) {
		return true;
	}
	for(i=0; buf=buffer[i]; i++) {
		dif = false;
		for(i2=0; i2<buf.param.length; i2++) {
			if(buf.param[i2]!=args[i2]) {
				dif = true;
				break;
			}
		}
		if(!dif) {
			return true;
		}
	}
	return false;
}
function et_callback() {
	loading = false;
	window.mouseup = true;
	et_hideElement('et_photo_wait');
	et_hideElement('et_photo_wait2');
	if(buffer.length>0) {
		var args = buffer.splice(0, 1);
		callFromArguments(args[0].param);
	}
}
function testendd() {
	et_uploadImage(this);
}
function et_uploadImage(input) {
	var id = input.id;
	try {
	var hiddenLayer = document.getElementById('hiddenLayer');
	if(!hiddenLayer) {
	   	var hiddenLayer = document.createElement('hiddenLayer');
	   	document.body.appendChild(hiddenLayer);
	   	hiddenLayer.style.overflow = 'hidden';
	   	hiddenLayer.style.witdh = '0';
	   	hiddenLayer.style.height = '0';
	}
	var elm = document.getElementById('hiddenFrame_'+id);
	if(!elm) {
		var elm = document.createElement('div');
		var str = '<iframe id="hiddenFrame_'+id+'" frameborder="0" name="hiddenFrame_'+id+'"></iframe>';
		elm.innerHTML += str;
		hiddenLayer.appendChild(elm);
	}
	var form = findForm(input);
	var target = form.target;
	form.target = 'hiddenFrame_'+id;
	form.submit();
	form.target = target;
	var input2 = input.cloneNode(true);
	input2.onchange = testendd;
	input.parentNode.insertBefore(input2, input);
	input.parentNode.removeChild(input);
	input2.id = id;
	} catch(e) {
		alert(e);
	}
}
function findForm(node) {
	if(node.nodeName=='FORM') {
		return node;
	} else if (node.nodeName=='BODY') {
		return false;
	} else {
		return findForm(node.parentNode);
	}
}
function my_onBeforeUpload() {
	var args = my_onBeforeUpload.arguments;
	var gui = '';
	var guiId = '';
	var id = args[0];
	if(args.length>1) {
		guiId = args[1];
		gui = eval("gui_"+guiId);
	}
	var fileField = document.getElementById(id+'_file');
	if(fileField.value) {
		var et_photo_form = document.forms.et_photo_form;
		var hiddenLayer = document.getElementById('hiddenLayer');
		try {
			var obj = document.getElementById('uploadform_'+id);
			var obj2 = document.getElementById('upload_info_'+id);
			var elm = document.getElementById('hiddenFrame_'+id);
			if(!elm) {
	   			var elm = document.createElement('div');
				var str = '<iframe id="hiddenFrame_'+id+'" frameborder="1" name="hiddenFrame_'+id+'"></iframe>';
				elm.innerHTML += str;
				hiddenLayer.appendChild(elm);
			}
			et_photo_form.action = 'index.php?eID=et_photo&no_cache=1&uid='+id;
			if(gui) {
				et_photo_form.action += "&className="+gui.className;
			}
			et_photo_form.target = 'hiddenFrame_'+id;
			obj.style.display = 'none';
			obj2.style.display = 'block';
		} catch (e) {
			alert(e);
		}
		return true;
	} else {
		alert(label.upload_noImageSelected);
		fileField.click();
	}
	return false;
}
function et_viewElement(elm) {
	elm = typeof(elm) == 'string' ? document.getElementById(elm) : elm;
	if(elm) {
		elm.style.display = "block";
		return true;
	}
	return false;
}
function et_hideElement(elm) {
	elm = typeof(elm) == 'string' ? document.getElementById(elm) : elm;
	if(elm) {
		elm.style.display = "none";
		return true;
	}
	return false;
}
function et_openWindow(url, name, width, height, options) {
	var x = screen.availWidth/2-width/2;
	var y = screen.availHeight/2-height/2;
	window[name] = window.open(url, name, options+',width='+width+',height='+height+',left='+x+',top='+y+',screenX='+x+',screenY='+y);
	window[name].focus();
	return true;
}
document.body.onmouseup = function() {
	window.mouseup = true;
}
function toDOM(HTMLstring) {
	var d = document.createElement('span');
	d.innerHTML = HTMLstring;
	return d;
}

