var gbcounter = 0;
var gbzindex = 1000;
var gbloadingani = "";
var activeboxes = 0;

var last_gb_width = 200;
var last_gb_height = 200;

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' id='gb_table_"+gbcounter+"'>" +
	"<tr>" +
	"<td class='gbHeader' id='gb_title_"+gbcounter+"' style='cursor:move;padding-left:5px;'></td>" +
	"<td align='right' class='gbHeaderClose' style='cursor:pointer;' onclick=\"hideGrayBox('gb_"+gbcounter+"');\" dir=\"rtl\"><img src='images/close.gif' width='16' height='17' alt='Close' title='Close' /></td>" +
	"</tr>" +
	"<tr>" +
	"<td class='gbMain' id='gb_text_"+gbcounter+"' colspan='2' style='width:"+last_gb_width+"px;height:"+last_gb_height+"px'>"+gbloadingani+"</td>" +
	"</tr>" +
	"</table>";
	
	$('gb_'+gbcounter).hide();
	$('gb_'+gbcounter).update(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;
	
	activeboxes++;
	gbcounter++;
	gbzindex++;
	
	return curgbid;	
}


function showGrayBox() {
	gbid = createGrayBox();
	
	centerElementAndOverlay("gb_"+gbid);
	
	new Effect.Opacity("gb_"+gbid, {
		duration: 0.5, 
		from: 0.0, 
		to: 0.99 
	});
	
	return gbid;
}


function hideGrayBox(el){   
   activeboxes--;
   new Effect.Opacity(el, { 
		duration: 0.5, 
		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);
	}
}

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

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

function smoothCenter(gbid) {
	
	var el_1 = $('gb_text_'+gbid);
	var el_2 = $('gb_'+gbid);
	
	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();
	
   	var nw = $('gb_temp').getWidth();
   	var nh = $('gb_temp').getHeight();
	
	var top = Math.round(arrayPageScroll[1] + ((arrayPageSize[3] - nh) / 2))+'px';	
	var left = Math.round(((arrayPageSize[0] - nw) / 2))+'px';
	
	//Duration kalkulieren
	var ow = $('gb_text_'+gbid).getWidth();
	var oh = $('gb_text_'+gbid).getHeight();
	
	var last_gb_width = $('gb_temp').getWidth();
	var last_gb_height = $('gb_temp').getHeight();
	
	var durw = Math.abs(nw-ow) / 400;
	var durh = Math.abs(nh-oh) / 400;
	
	if(durw <= 0.25) durw = 0.25;
	if(durh <= 0.25) durh = 0.25;
	
	$('gb_white_overlay').hide();
	
	new Effect.Morph(el_1, {
	  transition: Effect.Transitions.sinoidal,				 
	  style: {
		width: nw+'px'
	  },
	  duration: durw,
	  afterFinish: function() {
			new Effect.Morph(el_1, {
			  transition: Effect.Transitions.sinoidal,
			  style: {
				height: nh+'px'
			  },
			  duration: durh,
			  afterFinish: function() {				 
				  $('gb_white_overlay').clonePosition('gb_text_'+gbid);
				  $('gb_white_overlay').show();
				  updateGBContent(gbid);
			  }
			});  
	  }
	});
	
	new Effect.Morph(el_2, {
	  transition: Effect.Transitions.sinoidal,
	  style: {
		left: left
	  },
	  duration: durw,
	  afterFinish: function() {		  
		  new Effect.Morph(el_2, {
		  transition: Effect.Transitions.sinoidal,
		  style: {
			top: top
		  },
		  duration: durh
		});		  
	  }
	});
}

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

	topsize = arrayPageScroll[1] + ((arrayPageSize[3] - elementDimensions.height) / 2);
	if(topsize < 5) topsize = 5;
	
	el.style.top = (topsize + 'px');
	el.style.left = (((arrayPageSize[0] - elementDimensions.width) / 2) + 'px');
}

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';
	}
}

