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

var activeid = false;

var last_gb_width = 200;
var last_gb_height = 200;

function displayLoading() {	
	jQuery('#gb_loading_ani').show();
}

function createGrayBox() {
	var curgbid = gbcounter;
	
	var gb = document.createElement("div");
	gb.id = "gb_"+gbcounter;
	jQuery('#gb_container').append(gb);
	
	var default_content = "<table border='0' cellspacing='0' cellpadding='0' class='gbTable' id='gb_table_"+gbcounter+"'>" +
	"<tr>" +
		"<td align='right'><img class='gbClose' src='images/close.png' alt='Close' title='Close' border='0' style='cursor:pointer;' onclick=\"hideGrayBox('gb_"+gbcounter+"');\" /><br /></td>" +	
	"</tr>" +
	"<tr>" +
		"<td class='gbMain' id='gb_text_"+gbcounter+"' style='width:"+last_gb_width+"px;height:"+last_gb_height+"px'>"+gbloadingani+"</td>" +
	"</tr>" +
	"</table>";
	
	jQuery('#gb_'+gbcounter).hide();
	jQuery('#gb_'+gbcounter).html(default_content);
	
	jQuery('#gb_'+gbcounter).className = "gbTrans";
	jQuery('#gb_'+gbcounter).css({position : 'absolute', zIndex : gbzindex });
	
	activeboxes++;
	gbcounter++;
	gbzindex++;
	
	activeid = curgbid;
	
	return curgbid;	
}


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


function hideGrayBox(el){   
   activeboxes--;
   
	jQuery('#'+el).fadeOut(500);
   
   /*new Effect.Opacity(el, { 
		duration: 0.5, 
		from: 0.99, 
		to: 0.0
	});*/
   
   	setTimeout("jQuery('#"+el+"').remove();",500);
	
	if(activeboxes == 0) {
		setTimeout("jQuery('#gray_overlay').hide();",500);
		setTimeout("jQuery('#gray_overlay').style.height = '1px';",500);	
		setTimeout("showSelect();",500);
		activeid = false;
	}
}

function updateGBContent(id) {
	
	jQuery('#gb_white_overlay').fadeOut(500); //{duration: 0.5,from:jQuery('#gb_white_overlay').getOpacity(),to:0.0});
	
	jQuery('#gb_loading_ani').hide();
	
	jQuery('#gb_text_'+id).html(jQuery('#gb_temp').html());
	jQuery('#gb_temp').html("");
	
}

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"; 
		
	jQuery('#gray_overlay').style.width = breite;
	jQuery('#gray_overlay').style.height = hoehe;
	
	hideSelect();
	jQuery('#gray_overlay').show(); 	
	
	el.show();
}

function simpleCenter(gbid){
	updateGBContent(gbid);
	
    var el = jQuery('#gb_'+gbid);
	
	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"; 
		
	jQuery('#gray_overlay').width(breite);
	jQuery('#gray_overlay').height(hoehe);
	
	hideSelect();
	jQuery('#gray_overlay').show(); 	
	
	el.show();
}

function smoothCenter(gbid) {
	var el_1 = jQuery('#gb_text_'+gbid);
	var el_2 = jQuery('#gb_'+gbid);
	
	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();
	
   	var nw = jQuery('#gb_temp').width();
   	var nh = jQuery('#gb_temp').height();
	
	var top = Math.round(arrayPageScroll[1] + ((arrayPageSize[3] - nh) / 2))+'px';	
	var left = Math.round(((arrayPageSize[0] - nw) / 2))+'px';
	
	//Duration kalkulieren
	var ow = jQuery('#gb_text_'+gbid).width();
	var oh = jQuery('#gb_text_'+gbid).height();
	
	var last_gb_width = jQuery('#gb_temp').width();
	var last_gb_height = jQuery('#gb_temp').height();
	
	var durw = Math.abs(nw-ow) / 600;
	var durh = Math.abs(nh-oh) / 600;
	
	if(durw <= 0.25) durw = 0.25;
	if(durh <= 0.25) durh = 0.25;
	
	jQuery('#gb_white_overlay').hide();
	
	el_1.animate({width: nw+'px'}, durw, "linear", function(){
		el_1.animate({width: nw+'px'}, durh, "linear", function(){
			w = jQuery('#gb_text_'+gbid).width();
			h = jQuery('#gb_text_'+gbid).height();
			var off = jQuery('#gb_text_'+gbid).offset();
			//off = ;
			jQuery('#gb_white_overlay').css({width: w+'px', height: h+'px', left: off.left+'px', top: off.top+'px'});
			//$('gb_white_overlay').clonePosition('gb_text_'+gbid);
			jQuery('#gb_white_overlay').show();
			
			updateGBContent(gbid);
		});
	});
	
	el_2.animate({left: left}, durw, "linear", function(){
		el_2.animate({top: top}, durh, "linear");
	});
	/*
	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
		});		  
	  }
	});
	
	/*
	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() {				 
				  w = jQuery('#gb_text_'+gbid).getWidth();
				  h = jQuery('#gb_text_'+gbid).getHeight();
				  off = jQuery('#gb_text_'+gbid).cumulativeOffset();
				  jQuery('#gb_white_overlay').setStyle({width: w+'px', height: h+'px', left: off[0]+'px', top: off[1]+'px'});
				  //$('gb_white_overlay').clonePosition('gb_text_'+gbid);
				  jQuery('#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 = jQuery('#'+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';
	}
}

