var mozilladialogwin = null;
var mozilladialogargs = null;

function OpenModalDialog(sUrl, iWidth, iHeight, skipreload)
{
	if(document.all)
	{
		var sOptions = '';
		var sFeatures = 'dialogWidth='+iWidth+"px; dialogHeight=" + iHeight + "px;resizable=yes;";
		var retval = window.showModalDialog(sUrl, sOptions, sFeatures);
		if(!retval)
		{
			retval = new Object();	
		}
		retval.SkipReload=skipreload;
		OnDialogClose(retval);
	}
	else
	{
		var retval = new Object();
		retval.Mozilla=true;
		retval.SkipReload=skipreload;
		var w = window.open(sUrl, "ModalDialog"+Math.floor(Math.random()*999999), "width=" + iWidth + ",height=" +iHeight+ ",modal=yes,resizable=yes");
		w.dialogArguments = retval;
		mozilladialogwin = w;
		mozilladialogargs = retval;
		MozillaDialogCheck();
	}	
}


function MozillaDialogCheck()
{
	if(!mozilladialogwin.closed)
	{
		window.setTimeout('MozillaDialogCheck()',150);			
	}
	else
	{
		OnDialogClose(mozilladialogargs);
	}		
}


function OnDialogClose(actiondata)
{
	if(actiondata != null)
	{		
		switch(actiondata.Type)
		{
			case "url":
				window.location.href=actiondata.Url;
				break;			
			default:
				if(!actiondata.SkipReload)
				{			
					window.location.href=window.location.href;				
				}
				break;			
		}
	}
}




function TopMenuDialog(item)
{
	if(item.Category != null)
	{
		if(item.Category!="ServerPostback")
		{			
			if(item.Category != "Link")
			{
				item.CancelAction = true;
				var arParts = item.Category.split(',');		
				var url = arParts[0];
				var z="?";
				if(url.indexOf("?")>-1)
				{
					z="&";
				}
				url = url+z+"sourcepage="+escape(window.location.pathname);
				url = "Dialogs/SingleWindow.aspx?desturl=" + escape(url);
				OpenModalDialog(url, arParts[1], arParts[2]);
			}
			else
			{				
				var a = item.HrefAction;
				if(!a)
				{
					a=item.Href;
				}
				var p = a.indexOf("javascript:");
				if(a.indexOf("javascript:")>-1)
				{
					var pp = a.indexOf(":",p);
					a = a.substring(pp+1, a.length-1);
				}				
				eval(a);
				item.CancelAction = true;	
			}
		}
	}
	else
	{
		item.CancelAction = true;			
	}
	
}

function WrappedModalDialog(url, w, h, skipreload, folder)
{

		var z="?";
		if(url.indexOf("?")>-1)
		{
			z="&";
		}
		url = url+z+"sourcepage="+escape(window.location.pathname);
		if(!folder)
		{
			url = "Dialogs/SingleWindow.aspx?desturl=" + escape(url);
		}
		else
		{
			url = folder+"SingleWindow.aspx?desturl=" + escape(url);
			//alert(url);
		}
		OpenModalDialog(url, w, h, skipreload);	
}


//****************************** Formulare ************************
function processHidden(elem, targetform)
{
	switch(elem.name)
	{
		case "formaction":
			//alert("Setze action auf " + elem.value);
			targetform.action = elem.value;
			break;
		case "formtarget":
			//alert("Setze target auf " + elem.value);
			targetform.target = elem.value;
			break;
		case "formmethod":
			//alert("Setze method auf " + elem.value);
			targetform.method = elem.value;
		default:
			//Übertragen auf target
			if(targetform.elements[elem.name])
			{
				targetform.elements[elem.name].value = elem.value;
			}
			break;
	}
}

function addElem(elem, targetelem)
{
	if(!targetelem)
	{
		return;
	}
	if(targetelem.value != "")
	{
		targetelem.value += ("," + elem.value);
		return;
	}
	else
	{
		targetelem.value = elem.value;
	}
}

function processElement(elem, targetform)
{
	switch(elem.type)
	{
		case "radio":
			if(elem.checked)
			{
				//alert("Radio: " + elem.name + "=" + elem.value);
				addElem(elem, targetform.elements[elem.name]);
			}
			break;
		case "checkbox":
			if(elem.checked)
			{
				addElem(elem, targetform.elements[elem.name]);
				//alert("Checkbox: " + elem.name + "=" + elem.value);
			}
			break;
		case "select-one":					
			for(var i=0; i<elem.options.length;i++)
			{
				if(elem.options[i].selected)
				{
					//targetform.elements[elem.name] = elem.options[i].value;
					addElem(elem.options[i], targetform.elements[elem.name]);
				}
			}
			break;
		default:
			if(targetform.elements[elem.name])
			{
				//targetform.elements[elem.name].value = elem.value;
				addElem(elem, targetform.elements[elem.name]);
			}
			break;
	}
}

function submitSubForm(formname)
{
	var targetform = document.forms[formname];
	var sourceform = document.forms[0];
	if(targetform && sourceform)
	{
		var i;
		var inside = false;
		for(i=0; i<sourceform.elements.length; i++)
		{
			var elem = sourceform.elements[i];
			//alert("elem: " + elem.name + " " + elem.type);
			if(inside)
			{
				if(elem.type == "hidden")
				{
					if(elem.name == "formend" && inside == true)
					{
						//alert("EndTag gefunden");
						inside = false;
					}
					else
					{
						processHidden(elem, targetform);
					}							
				}
				else
				{
					processElement(elem, targetform);
				}		
			}
			else
			{
				if(elem.type == "hidden")
				{
					if(elem.name == "formstart" && elem.value == formname)
					{
						//alert("StartTag gefunden");
						inside = true;
					}
				}
			}					
		}
		
		targetform.submit();
	}
}
//*****************************************************************