// JavaScript Document

function createDiv(id,parinte){
	if(document.getElementById(id)) {
		alert('Exista deja un element cu acelasi ID!!!');
		return;
	}
	var odiv=document.createElement('div');
	odiv.id=id;
	if(parinte){
		ge(parinte).appendChild(odiv);
	}else{
		 document.body.appendChild(odiv);
	}
}
function ge(id){
		return document.getElementById(id);
	}
function kill_floater(id,parinte){
	try{
		document.body.removeChild(ge(id+'_planeta'));
	}catch(e){}
}	
function createFloater(widthx,heightx,titlu,content,id){
	var idfloater;
	if(id!=null && id!="XFINAL" && id!="YFINAL" && id!="XINITIAL" && id!="YINITIAL")
		idfloater=id;
	else
		idfloater='MareleZburator';
	if(ge(idfloater)){
		kill_floater(idfloater);
	}
	var initial=new Array();
	var punctCentrat=window.center({width:widthx,height:heightx})
	 initial.x=punctCentrat.x;
	 initial.y=punctCentrat.y;
	 for(i=4;i<arguments.length;i++){
		switch(arguments[i].toString().toUpperCase()){
			case 'XFINAL': punctCentrat.x=arguments[i+1];break;
			case 'YFINAL': punctCentrat.y=arguments[i+1];break;
			case 'XINITIAL': initial.x=arguments[i+1]; break;
			case 'YINITIAL': initial.y=arguments[i+1];break;
		}
	}
	createDiv(idfloater+'_planeta');
	var divx_s=ge(idfloater+'_planeta');    
	 divx_s.innerHTML="<iframe src=\"javascript:'<html></html>'\" scrolling=\"no\" frameborder=\"0\" style=\"position:absolute;width:"+widthx+"px;height:"+heightx+"px;top:0px;left:0px;border:none;display:block;z-index:0\" ></iframe>";
	divx_s.style.position='absolute';
	divx_s.style.zIndex=10000;
	//divx_s.style.display='none';
	divx_s.style.overflow='hidden';
	divx_s.style.width=10+'px';
	divx_s.style.height=10+'px';
	divx_s.style.top=initial.y+'px';
	divx_s.style.left=initial.x+'px';
	//alert(divx_s.style.left);
	topx=punctCentrat.y;
	leftx=punctCentrat.x;
	//alert('top'+topx+' left:'+leftx+' initial  l:'+initial.x+' t:'+initial.y);
	createDiv(idfloater+'_shaddow',idfloater+'_planeta');
	var divx_s=ge(idfloater+'_shaddow');	
	divx_s.style.position='absolute';
	divx_s.style.width=4+'px';
	divx_s.style.height=4+'px';
	divx_s.style.top=4+'px';
	divx_s.style.left=4+'px';
	divx_s.style.backgroundColor='#000000';
	//divx_s.style.opacity=0.2;
	//divx_s.style.filter = 'alpha(opacity=20)';
	createDiv(idfloater,idfloater+'_planeta');
	var divx=ge(idfloater);
	divx.style.position='absolute';
	divx.style.width=4+'px';
	divx.style.height=4+'px';
	divx.style.top='0px';
	divx.style.left='0px';
	divx.style.backgroundColor='#d5dc8c';
	divx.style.border="#4B5F05 1px solid";
	// creem divul titlu
	createDiv(idfloater+'_title',idfloater);
	div_title=ge(idfloater+'_title');
	div_title.style.position='relative';
	div_title.style.width=widthx+'px';
	div_title.style.height='20px';
	div_title.style.backgroundColor='#BCB04D';
	div_title.style.cursor="pointer";
	
	div_title.onmousedown = function(ev){
		//alert('mumu');
		dragObjectfloater  = this.parentNode.parentNode;
		//alert(dragObjectfloater.id);
		mouseOffset = getMouseOffset(this.parentNode.parentNode, ev);
		return false;
	}
	
	
	createDiv(idfloater+'_title_text',idfloater+'_title');
	textul=ge(idfloater+'_title_text');
	textul.style.position='absolute';
	textul.style.fontFamily='arial';
	//textul.style.backgroundColor='#4B5F05';
	textul.style.fontWeight='bold';
	textul.style.fontSize='12px';
	textul.style.color='#ffffff';
	textul.style.left='3px';
	textul.style.top='3px';
	textul.innerHTML=titlu;
	// punem xul
	createDiv(idfloater+'_close',idfloater+'_title');
	div_close=ge(idfloater+'_close');
	div_close.style.position='absolute';
	div_close.style.top='0px';
	div_close.style.right='3px';
	div_close.style.width='14px';
	//div_close.style.backgroundColor='#f4f4f4';
	div_close.style.textAlign='center';
	div_close.innerHTML="<a href=\"javascript:kill_floater('"+idfloater+"');\" style='text-decoration:none; color:#FFFFFF;font-family:arial;font-size:14px;font-weight:bold'>x</a>";

	createDiv(idfloater+'_continut',idfloater);
	var div_cont=ge(idfloater+'_continut');
	div_cont.innerHTML=content;
	div_cont.style.width=widthx-12+'px';
	div_cont.style.height=heightx-24+'px';
	div_cont.style.position='absolute';
	div_cont.style.left='2px';
	div_cont.style.top='22px';
	//div_cont.style.border='1px solid #000000';
	div_cont.style.padding='2px';
	var divx_s=ge(idfloater+'_planeta');
	//divx_s.style.width=widthx+6+'px';
	//divx_s.style.height='10px';
	//ge(idfloater+'_planeta').style.display='';
	//alert(stepx+' '+widthx);
	//alert (topx+' '+leftx+' '+initial.y+' '+initial.x);
	growtabel(idfloater,widthx+6,heightx+6,topx,leftx,initial.y,initial.x);    
}
function growtabel(id,width,height,topz,leftz,topiz,leftiz){
	stepx=Math.round((width-4)/10);
	stepy=Math.round((height-4)/10);
	topx=Math.round((topz-topiz)/10);
	leftx=Math.round((leftz-leftiz)/10);
	//alert(leftx);
	if(ge(id+'_planeta').offsetTop+topx<topz && (leftz<leftiz && topz<topiz)){ 
	   
	   ge(id+'_planeta').style.height=ge(id+'_planeta').offsetHeight+stepy+'px'; 
	   ge(id).style.height=ge(id).offsetHeight+stepy-6+'px';
	   ge(id+"_shaddow").style.height=ge(id+"_shaddow").offsetHeight+stepy-6+'px'; 
		   
	   ge(id+'_planeta').style.width=ge(id+'_planeta').offsetWidth+stepx+'px'; 
	   ge(id).style.width=ge(id).offsetWidth+stepx-6+'px';
	   ge(id+"_shaddow").style.width=ge(id+"_shaddow").offsetWidth+stepx-6+'px';  
		
	   //alert(' before '+ge(id+'_planeta').style.left);
	   ge(id+'_planeta').style.left=ge(id+'_planeta').offsetLeft+leftx+'px'; 	   
	   //alert(' after '+ge(id+'_planeta').style.left);
	   ge(id+'_planeta').style.top=ge(id+'_planeta').offsetTop+topx+'px';
		
	   setTimeout("growtabel('"+id+"',"+width+","+height+","+topz+","+leftz+","+topiz+","+leftiz+")",12);
	   //alert("incepe");
	}else{
	   ge(id+"_planeta").style.width=width+'px'; 
	   ge(id+"_planeta").style.height=height+'px';
	   ge(id+"_planeta").style.top=topz+'px'; 
	   ge(id+"_planeta").style.left=leftz+'px';
	   ge(id+"_shaddow").style.width=width-6+'px'; 
	   ge(id+"_shaddow").style.height=height-6+'px'; 
	   ge(id).style.width=width-6+'px'; 
	   ge(id).style.height=height-6+'px'; 
	   
	}
}
window.size = function()
{
	var w = 0;
	var h = 0;

	//IE
	if(!window.innerWidth)
	{
		//strict mode
		if(!(document.documentElement.clientWidth == 0))
		{
			w = document.documentElement.clientWidth;
			h = document.documentElement.clientHeight;
		}
		//quirks mode
		else
		{
			w = document.body.clientWidth;
			h = document.body.clientHeight;
		}
	}
	//w3c
	else
	{
		w = window.innerWidth;
		h = window.innerHeight;
	}
	return {width:w,height:h};
}

window.center = function()
{
	var hWnd = (arguments[0] != null) ? arguments[0] : {width:0,height:0};

	var _x = 0;
	var _y = 0;
	var offsetX = 0;
	var offsetY = 0;

	//IE
	if(!window.pageYOffset)
	{
		//strict mode
		if(!(document.documentElement.scrollTop == 0))
		{
			offsetY = document.documentElement.scrollTop;
			offsetX = document.documentElement.scrollLeft;
		}
		//quirks mode
		else
		{
			offsetY = document.body.scrollTop;
			offsetX = document.body.scrollLeft;
		}
	}
	//w3c
	else
	{
		offsetX = window.pageXOffset;
		offsetY = window.pageYOffset;
	}

	_x = ((this.size().width-hWnd.width)/2)+offsetX;
	_y = ((this.size().height-hWnd.height)/2)+offsetY;

	return{x:_x,y:_y};
}



// mouse informations 

document.onmousemove = mouseMoveFloater;
document.onmouseup = mouseUp;
function mouseMoveFloater(ev){
	
	if(dragObjectfloater){
		ev           = ev || window.event;
		var mousePos = mouseCoordsx(ev);

		//alert('uuuuuuuuuuuuu');
		dragObjectfloater.style.position = 'absolute';
		dragObjectfloater.style.top      = mousePos.y - mouseOffset.y +'px';
		if(dragObjectfloater.offsetTop<0)dragObjectfloater.style.top='0px';
		dragObjectfloater.style.left     = mousePos.x - mouseOffset.x +'px';
		if(dragObjectfloater.offsetLeft<0){dragObjectfloater.style.left='0px';}
		return false;
	}
	if(dragger){
		ev           = ev || window.event;
		var mousePos = mouseCoordsx(ev);
		//dragger.style.zIndex=500000;
		//dragger.style.position='absolute';
		dragger.style.left     = mousePos.x-parseInt(dragger.offsetul)-Math.round(dragger.offsetWidth/2) +'px';
		if(dragger.offsetLeft<0 )dragger.style.left     ='0px';
		var val=parseInt(dragger.parentNode.offsetWidth)-dragger.offsetWidth; 
		if(dragger.offsetLeft>val)
				dragger.style.left=val+'px';
				
		dragFunc(dragger.id);		
		
	}
}
 

function mouseUp(){
	if(dragObjectfloater){
	dragObjectfloater = null;
	}
	if(dragger){
		//alert(parseInt(zburatorul.offsetLeft));
		dropFunc(dragger.id);
		dragger=null;
		document.body.focus();
		document.onselectstart =    function () { return true; };
		if (window.sidebar){
			document.onmousedown=function () { return true; };
			document.body.style.MozUserSelect=""
		}	
	}
}
var dragger=null;
var zburatorul=null;
function makemovable(ob){
		
	
		dragger=ob;
		//alert('its draggable'+' '+dragger.id);
		
	}
function findPosition( oElement ) {
  if( typeof( oElement.offsetParent ) != 'undefined' ) {
    for( var posX = 0, posY = 0; oElement; oElement = oElement.offsetParent ) {
      posX += oElement.offsetLeft;
      posY += oElement.offsetTop;
    }
    return { x:posX, y:posY };
  } else {
    return { x:oElement.x, y:oElement.y} ;
  }
}

function mouseCoordsx(ev){
	if(!ev){
		ev = window.event;
	}
	if(document.body){
	if(ev.pageX || ev.pageY){
		return {x:ev.pageX, y:ev.pageY};
	}
	//return {0,0};
	return {
		x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
		y:ev.clientY + document.body.scrollTop  - document.body.clientTop
	};
	}
	return{x:0,y:0};
}
var dragObjectfloater = null; 
function getMouseOffset(target, ev){
	ev = ev || window.event;

	var docPos    = getPosition(target);
	var mousePos  = mouseCoordsx(ev);
	return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
}

function getPosition(e){
	var left = 0;
	var top  = 0;

	while (e.offsetParent){
		left += e.offsetLeft;
		top  += e.offsetTop;
		e     = e.offsetParent;
	}

	left += e.offsetLeft;
	top  += e.offsetTop;

	return {x:left, y:top};
}
function stopEvent(event) {
	if(event.stopPropagation) {event.stopPropagation();}
	event.cancelBubble = true;
}
function mkDiv(){
		var mdiv=document.createElement('div');
		for(i=0;i<arguments.length;i++){
			//alert(arguments[i]);
			var argu=arguments[i].toString();
			switch(argu.toUpperCase()){
				case 'ID' 		:mdiv.id		     =arguments[i+1];	   break;
				case 'WIDTH' 	:mdiv.style.width    =arguments[i+1]+'px'; break;
				case 'HEIGHT'	:mdiv.style.height   =arguments[i+1]+'px'; break;
				case 'HTML'     :mdiv.innerHTML		 =arguments[i+1];	   break;	
				case 'POSITION' :mdiv.style.position =arguments[i+1];	   break;
				case 'LEFT' 	:mdiv.style.left	 =arguments[i+1]+'px'; break;
				case 'TOP' 		:mdiv.style.top		 =arguments[i+1]+'px'; break;
				case 'DISPLAY' 	:mdiv.style.display	 =arguments[i+1];	   break;
			}
		}
		
		document.body.appendChild(mdiv);
		return mdiv;
	}
	
function mkcursor(id){
		 var position=findPosition(id);
		// var ob=ge(id);
		 id.offsetul=position.x-id.offsetLeft;
		 dragger=id;
		document.onselectstart =function () { return false; };
		if (window.sidebar){
			document.onmousedown=function () { return false; };
			document.body.style.MozUserSelect="none";
		}
		 //alert(zburatorul.style.width);
}

function moveDiv(ob,positie){
	ob.style.left=positie +'px';
}

function block_select(){
		document.onselectstart =    function () { return false; };
		if (window.sidebar){
			document.onmousedown=function () { return false; };
			document.body.style.MozUserSelect="none"
		}	
	}


function release_select(){
		document.onselectstart =    function () { return true; };
		if (window.sidebar){
			document.onmousedown=function () { return true; };
			document.body.style.MozUserSelect=""
		}	
	}
