var gbcounter = 0;
var gbzindex = 1000;
var gbloadingani = "<img src='images/loading.gif' hspace='10' vspace='10' /><br />";
var activeboxes = 0;

function openModuleGB(file){
	gbid = createGrayBox();
	//showGrayBox();
	new Ajax.Request('modules_gb/'+file+"?gbid="+gbid,
	{
		method: 'get',
		asynchronous: true,
		evalScript: true,
		onComplete: function(t) {	
		   $('gb_text_'+gbid).update(t.responseText);
		   center('gb_'+gbid);
		},
		// Handle other errors
		onFailure: function(t) {
			alert('Error ' + t.status + ' -- ' + t.statusText);
		}		
	}
	);
}

function moduleSGB(file,title) {
	if(moduleSGB.arguments.length>2){
		qstring = moduleSGB.arguments[2];	
	} else {
		qstring="";
	}
	
	gbid = createGrayBox();
	//showGrayBox();
	new Ajax.Request('module_sgb/'+file+"?gbid="+gbid+qstring,
	{
		method: 'get',
		asynchronous: true,
		evalScript: true,
		onComplete: function(t) {
			$('gb_title_'+gbid).innerHTML = title;
		   	$('gb_text_'+gbid).update(t.responseText);
		   	center('gb_'+gbid);
		},
		// Handle other errors
		onFailure: function(t) {
			alert('Error ' + t.status + ' -- ' + t.statusText);
		}		
	}
	);
}

function createGrayBox() {
	var curgbid = gbcounter;
	
	var gb = document.createElement("div");
	gb.id = "gb_"+gbcounter;
	$('gb_container').appendChild(gb);
	
	var default_content = "<table border='0' cellspacing='0' cellpadding='0' class='gbTable'>" +
	"<tr>" +
	"<td class='gbHeader' id='gb_title_"+gbcounter+"' style='cursor:move;padding-left:5px;'></td>" +
	"<td class='gbHeader' align='right' style='width:20px;padding-bottom:2px;'><img src='images/close.gif' style='cursor:pointer;' border='0' onclick=\"hideGrayBox('gb_"+gbcounter+"');\" /><br /></td>" +
	"</tr>" +
	"<tr>" +
	"<td class='gbMain' id='gb_text_"+gbcounter+"' colspan='2'>"+gbloadingani+"</td>" +
	"</tr>" +
	"</table>";
	
	$('gb_'+gbcounter).hide();
	$('gb_'+gbcounter).innerHTML = default_content;
	
	new Draggable('gb_'+gbcounter, {
		scroll:window,
		handle:'gb_title_'+gbcounter
		}
	);
	
	$('gb_'+gbcounter).className = "gbTrans";
	$('gb_'+gbcounter).style.position = 'absolute';
	$('gb_'+gbcounter).style.zIndex = gbzindex;
	
	displayGrayBox('gb_'+gbcounter);
	
	activeboxes++;
	gbcounter++;
	gbzindex++;
	
	
	return curgbid;
}

function showGrayBox() {
	gbid = createGrayBox();
	return gbid;
}

function displayGrayBox(el) {
	center(el);
	$(el).show();
	new Effect.Opacity(el,
			{ duration: 0.5, 
			  transition: Effect.Transitions.linear, 
			  from: 0.0, to: 0.99 });
	$('gray_overlay').show(); 
	hideSelect();
}

function hideGrayBox(el){   
   activeboxes--;
   new Effect.Opacity(el,
			{ duration: 0.5, 
			  transition: Effect.Transitions.linear, 
			  from: 0.99, to: 0.0
			  });
   	setTimeout("$('"+el+"').remove();",500);
	if(activeboxes == 0) {
		setTimeout("$('gray_overlay').hide();",500);
		setTimeout("$('gray_overlay').style.height = '1px';",500);	
		setTimeout("showSelect();",500);
		includeModuleHidden(lastmodule);
	}
}

function center(element){
    try{
        element = $(element);
    }catch(e){
        return;
    }
	
	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();
	
    var elementDimensions = Element.getDimensions(element);

	//alert(elementDimensions.width + " " + element +" " + elementDimensions.height);
	topsize = arrayPageScroll[1] + ((arrayPageSize[3] - elementDimensions.height) / 2);
	if(topsize < 5) topsize = 5;
	
	element.style.top = (topsize + 'px');
	element.style.left = (((arrayPageSize[0] - elementDimensions.width) / 2) + 'px');
	
	//Größe verändern	
	if(ie) breite = arrayPageSize[0]+"px";
	else breite = "100%";
		
	$('gray_overlay').style.width = breite;
	$('gray_overlay').style.height = arrayPageSize[1]+"px";
	
	//alert(arrayPageSize[0] + " - " + arrayPageSize[1] + " - " + arrayPageSize[2] + " - " + arrayPageSize[3]);
	//alert(arrayPageScroll[0] + " - " + arrayPageScroll[1]);
}

function hideSelect() {
	selects = parent.document.getElementsByTagName( 'select' );
   	for ( i = 0; i != selects.length; i++ )
	{
		selects[i].style.visibility = 'hidden';
    }
}

function showSelect() {
	selects = parent.document.getElementsByTagName( 'select' );
    for ( i = 0; i != selects.length; i++ )
	{
		selects[i].style.visibility = 'visible';
	}
}

function hidegb() {
	//$('gray_box').hide();
	//$('gray_box_content').update(loadingSequenz);
}

function addEdit(file,title) {
	gbid = showGrayBox();

	new Ajax.Request('iframe.php?'+file+'&gbid='+gbid,
	{
		method: 'get',
		asynchronous: true,
		evalScript: true,
		onComplete: function(t) {
		   	$('gb_title_'+gbid).innerHTML = title;
			$('gb_text_'+gbid).update(t.responseText);
		   	center('gb_'+gbid);
		},
		// Handle other errors
		onFailure: function(t) {
			alert('Error ' + t.status + ' -- ' + t.statusText);
		}		
	}
	);
}