var draggables = new Array();
var popup_index = 40000;

function findPosX(obj)
{
	var curleft = 0;
	if (obj && obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj && obj.x)
		curleft += obj.x;
		
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj && obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj && obj.y)
		curtop += obj.y;
		
	return curtop;
}



function displayDialog(el_id,params){
	if(!el_id)
		return;

	var dims = $(el_id).getDimensions();
	var fade = params.fade || false;
	var x_pos = (params.x_pos) ? x_pos : 0.5;	
	var y_pos = (params.y_pos) ? y_pos : 0.5;
	
	var top_offset = 0;
	/*
	switch(navigator.appName)
	{
		case 'Microsoft Internet Explorer':
			var myregex = /MSIE 7\.0/i;
			var myArray = navigator.appVersion.match(myregex);
			
				if(myArray) 
					top_offset = document.documentElement.scrollTop;
				else 
					top_offset = document.body.scrollTop;
			
		break;
			default:
			top_offset = window.pageYOffset;
	}*/
	
	var scrOfX = 0, scrOfY = 0;
	  if( typeof( window.pageYOffset ) == 'number' ) {
	    //Netscape compliant
	    scrOfY = window.pageYOffset;
	    scrOfX = window.pageXOffset;
	  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
	    //DOM compliant
	    scrOfY = document.body.scrollTop;
	    scrOfX = document.body.scrollLeft;
	  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
	    //IE6 standards compliant mode
	    scrOfY = document.documentElement.scrollTop;
	    scrOfX = document.documentElement.scrollLeft;
	  }
	  
	top_offset = scrOfY;



	if( typeof( window.innerWidth ) == 'number' ) {
		//Non-IE
		w = window.innerWidth;
		h = window.innerHeight;
	} else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
		//IE 6+ in 'standards compliant mode'
		w = document.documentElement.clientWidth;
		h = document.documentElement.clientHeight;
	} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
		//IE 4 compatible
		w = document.body.clientWidth;
		h = document.body.clientHeight;
	}
		
	if(!draggables[el_id])
		draggables[el_id] = new Draggable(el_id,
		{
			handle: el_id+'_handle',
			onStart: function(){
				$(el_id).style.zIndex = ++popup_index;
			}
		});
	
	/*
	//prevent scrolling of pane from dragging the dialog
	if($$('#'+el_id+' .pane')[0]){
		Event.observe($$('#'+el_id+' .pane')[0],'mousedown',stopEvent);
	}
	*/
	

	x_pos = Math.round((w * x_pos - dims.width / 2 ));
	y_pos = top_offset + Math.round((h - dims.height) * y_pos);
	
	fadeScreen(fade);
	
	$(el_id).style.zIndex = popup_index++;
	
	new Effect.Move(el_id,{ x: x_pos, y: y_pos, mode: 'absolute', duration: 0.0 });
	new Effect.Appear(el_id, {duration: 0.4});
	
	Event.observe(el_id,'click',function(){$(el_id).style.zIndex = ++popup_index});
	
	return;
}

function closeDialog(el_id,params){
	fadeScreen();
	
	if(draggables[el_id]){
		draggables[el_id].destroy();
		draggables[el_id] = null;
	}
	
	new Effect.Fade(el_id, {duration: 0.4});
}

function fadeScreen(fade){
	if(!$('wrapper'))
		return;
		
	if(fade){
		new Effect.Appear('overlay',{to: 1.0, duration:0.2});
	}else{
		new Effect.Fade('overlay',{duration: 0.1});
	}

}


