/*
Author: Tanasa Adrian
Description: Ferestre tooltip/x close/x close drag
*/
var wClass='';
var timeoutID;
var elem;
var where_sd='';
var where_sj='';
var t_top='';
var t_left='';
// afisare continut
function display_content(innerContent,my_div,is_modal,options){ // afiseaza fereastra    						
   var timeoutID_beta;
   
       
                
     
                       
                      
//                       t_height=Math.round(tmp_div.getHeight())+'px';
//                       t_width=Math.round(tmp_div.getWidth())+'px';
                       
                       
/*                       var mt_top=0;
                       var mt_size=100;
                       
                       if(tmp_div.getHeight()+top_margin>my_div.getHeight()) {
                           mt_top=0;
                           mt_size=300;
                           
                       }  */                     
                       
                      if(options['ajax']){
                         /* 
                         $('inHTML').className="pop-transition";
                                           
                          window.setTimeout(function(){ 
                                var e1=new Effect.Morph(my_div.id, {
                                    style: 'height:'+t_height+';width:'+t_width, // CSS Properties
                                    duration: 0.3 // Core Effect properties
                                    
                                });
                                 
                                //alert('morth');
                            },mt_size);
                            
                           window.setTimeout(function(){ 
                               var e2=new Effect.Morph(my_div.id, {
                                  style: style_pos, // CSS Properties
                                  duration: 0.3 // Core Effect properties
                                });
                                // alert('move');
                            },mt_top);  */
                            
                            
                            
                       // alert('a');
                       
                          //$('inHTML').className="pop-in";
                          
                          window.setTimeout(function(){ 
                                var e1=new Effect.Fade(my_div, { duration: 0.2 }) });
                                
                        
                          timeoutID=window.setTimeout(function(){
                            
                              $('inHTML').className="pop-inside";
                              $('inHTML').innerHTML=innerContent;
                              getNewDim(my_div,is_modal,options); 
                              my_div.style.top=t_top+'px';
                              my_div.style.left=t_left+'px';
                             // my_div.style.height=t_height+'px';
                             // my_div.style.width=t_width+'px';
                              var showin=new Effect.Appear(my_div, { duration: 0.3 });
                          },350);
                          
                         // asigurare in caz de eroare
/*                          timeoutID_beta=window.setTimeout(function(){
                             
                            if(!timeoutID || $('inHTML').innerHTML==''){
                              $('inHTML').className="pop-inside";
                              $('inHTML').innerHTML=innerContent; 
                              my_div.style.top=t_top+'px';
                              my_div.style.left=t_left+'px';
                              var showin2=new Effect.Appear(my_div, { duration: 0.1 });
                            } 
                          },1000);*/
                      }
                      else{
                          my_div.hide();
                          $('inHTML').className="pop-inside";
                          $('inHTML').innerHTML=innerContent; 
                          getNewDim(my_div,is_modal,options); 
                         // my_div.style.height=t_height+'px';
                         // my_div.style.width=t_width+'px';
                          my_div.style.top=t_top+'px';
                          my_div.style.left=t_left+'px';
                          var showin=new Effect.Appear(my_div, { duration: 0.5 });
                          
                          

                      }
                      
                      
                     

}

// initiere obiect
function tooltip(object,options){
    
    
    var inHTML='';
    var is_modal;
    var delay=0;
    var loaded=0;
    var default_args = {
		msg:	"",
		window	:	'simple',
		delay: 0,
		ajax: false,
		ajax_params: null,
		position: 'default' // centered etc.
				
	}
	
	 for(var index in default_args) {
		if(typeof options[index] == "undefined") options[index] = default_args[index];
	}

	
   
   switch(options['window']){
       case 'simple':
            // configurari alerta simpla
           inHTML='<div class="pop-close"> <a id="xId" class="close" href="javascript:void(0);"><em>Inchide Fereastra</em></a></div><div class="pop-loading" id="inHTML"></div>';
           inHTML2='<div class="pop-close"> <a class="close" href="javascript:void(0);"><em>Inchide Fereastra</em></a></div><div class="pop-inner" id="inHTML2"></div>';
           wClass='pop-tip';
           xClose=true;
           xDrag=false;
       break;
       
       case 'hint':
            // configurari alerta simpla
           inHTML='<div class="pop-loading" id="inHTML"></div>';
           wClass='pop-tip';
           xClose=false;
           xDrag=false;
       break;
       
       case 'drag':
            // configurari alerta simpla
           inHTML='<div class="pop-close"><a id="xDrag" class="drag" href="javascript:void(0);"><em>Drag</em></a> <a id="xId" class="close" href="javascript:void(0);"><em>Inchide Fereastra</em></a></div><div class="pop-loading" id="inHTML"></div>';
           wClass='pop-tip';
           xClose=true;
           xDrag=true;
       break;
       
       case 'menu':
            // configurari alerta simpla
          inHTML='<div class="pop-loading" id="inHTML"></div>';
           wClass='pop-menu';
           xClose=false;
           xDrag=false;
       break;
       
       case 'modal':
            // configurari alerta simpla
           inHTML='<div class="pop-close"><a id="xId" class="close" href="javascript:void(0);" title="Inchide Fereastra"><em>Inchide Fereastra</em></a></div><div class="pop-loading" id="inHTML"></div>';
           wClass='pop-modal';
           xClose=true;
           xDrag=false;
       break;
       
   }
   
   elem=$(object.id);
  
   if(!$('tooldiv')){
        var my_div = document.createElement('div');
        my_div.id='tooldiv';
        var load_win=1;      
   }
   
   if(load_win){
       my_div.innerHTML=inHTML;
       Element.extend(my_div);
       my_div.addClassName(wClass).hide();
       // insert it in the document
       document.body.appendChild(my_div);
       // alert(my_div.getDimensions().width);
       if(options['window']!='modal'){
           
           is_modal=false;
           switch(options['position']){
                case 'centered':
                    my_div.style.left=(elem.cumulativeOffset().left+elem.getWidth()/2)+"px";
                    my_div.style.top=(elem.cumulativeOffset().top+elem.getHeight()/2)+"px";
                    //alert(elem.cumulativeOffset().left);
                break;
                default: //fereastra pozitie loading
           
               
                 //calculez unde am mai mult loc
                              // stanga dreapta
                              getNewDim(my_div,is_modal,options); 
                              
                               //afisez fereastra
                               //t_top=elem.cumulativeOffset().top-tmp_div.getHeight()-top_margin;
                                                   
                my_div.style.left=Math.round(t_left)+'px';
                my_div.style.top=Math.round(t_top)+'px';
                 
           
           
           
           
           }
           
        }
        else{ // ferestre modale
            is_modal=true;
            var dOffsets=document.viewport.getScrollOffsets();
           
            my_div.style.top=(document.viewport.getScrollOffsets().top+((document.viewport.getDimensions().height-my_div.getDimensions().height)/2))+"px"; 
            my_div.style.left=((document.viewport.getDimensions().width-my_div.getDimensions().width)/2)+"px";
            var back_div = document.createElement('div');
            back_div.id='overlay';
            back_div.style.top=dOffsets.top+'px';
            
            back_div.style.height=document.viewport.getHeight()+'px';
            
            document.body.appendChild(back_div);
           
            Event.observe(window, 'scroll', function() {
                var dOffsets=document.viewport.getScrollOffsets();
                my_div.style.top=(document.viewport.getScrollOffsets().top+((document.viewport.getDimensions().height-my_div.getDimensions().height)/2))+"px"; 
                my_div.style.left=((document.viewport.getDimensions().width-my_div.getDimensions().width)/2)+"px";
                back_div.style.top=dOffsets.top+'px';
                back_div.style.height=document.viewport.getHeight()+'px';
                }); 
                
            Event.observe(window, 'resize', function() {
                var dOffsets=document.viewport.getScrollOffsets();
                 my_div.style.top=(document.viewport.getScrollOffsets().top+((document.viewport.getDimensions().height-my_div.getDimensions().height)/2))+"px"; 
                 my_div.style.left=((document.viewport.getDimensions().width-my_div.getDimensions().width)/2)+"px";
                 back_div.style.top=dOffsets.top+'px';
                 back_div.style.height=document.viewport.getHeight()+'px';
                });
        }
        
        my_div.show();
        //start ajax        
        if(options['ajax']==true){         
           
           new Ajax.Request('/indexajax.php', {
                  method: 'post',
                  parameters: options['ajax_params'],
    			  onLoading : function(){
    			    
    			     $('inHTML').className ="pop-loading";
                     $('inHTML').innerHTML ="";
                     
    			 },
                  onSuccess: function(transport) {
                  window.setTimeout(  
                  function(){  		
                    		
                    display_content(transport.responseText,my_div,is_modal,options);
                     
                  }, 500);
    
    
                        
                 }
           });
            
        }
        else{ // avem afisare directa continut
            if(options['msg']){ 
                display_content(options['msg'],my_div,is_modal,options);
            }
        }
   }
       
 
   if(my_div){
       //daca este fereastra deschisa
       if(xClose){ //daca am butin de inchis/deschis
            Event.observe($('xId'), 'click',function(object){
                my_div.hide();
                $('inHTML').className ="";
                document.body.removeChild(my_div);
                if(timeoutID) window.clearTimeout(timeoutID);
                if(back_div){
                    //back_div.className ="";
                    back_div.style.display="none";
                    document.body.removeChild(back_div);
                }
            });
        }
        else{ // daca se inchide on mouseout
                var flag_on=0;
                
                var inchide=function(){
                    window.setTimeout(function(){
                         if(flag_on==0){
                             my_div.hide();
                            if(my_div.parentNode!=null) my_div.remove();
                            if(timeoutID) window.clearTimeout(timeoutID);
                         }
                         else{
                            inchide();
                         }
                          
                        
                    }, 2000);
                }
                
                Event.observe(elem, 'mouseout',function(object){
                  flag_on=0;
                  inchide();
                    
                });
                
                  Event.observe(my_div, 'mouseover',function(object){
                  flag_on=1;
                  Event.observe(my_div, 'mouseout',function(object){
                  flag_on=0;                 
                    
                });
                    
                });
                
//               my_div.hide();
//                $('inHTML').className ="";
//                document.body.removeChild(my_div);
//                if(timeoutID) window.clearTimeout(timeoutID);
           
            }
            
        // drag
        if(xDrag){ // sa poata sa o mute daca doreste   
          new Draggable(my_div, {handle:'xDrag'});      
           
        }
   
        
    }
   
    
    //alert(msg);
    
}

function closetip(){
    if($('tooldiv')){
                my_div=$('tooldiv');
                my_div.hide();
                $('inHTML').className ="";
                document.body.removeChild(my_div);
                if(timeoutID) window.clearTimeout(timeoutID);
                if($('overlay')){
                    back_div=$('overlay');
                    back_div.style.display="none";
                    document.body.removeChild(back_div);
                }
            }
}

function getNewDim(tmp_div,is_modal,options){
    var position=options['position'];
    var top_margin=33; 
    
    if(!is_modal){
                           
        if(position=='centered'){ // ferestre centrate in obiect - ex meniu
                               
                               t_top=elem.cumulativeOffset().top+elem.getHeight()/2-tmp_div.getHeight()/2;
                               t_left=elem.cumulativeOffset().left+elem.getWidth()/2-tmp_div.getWidth()/2;
                            //   style_pos='top:'+Math.round(t_top)+'px;left:'+Math.round(t_left)+'px;';
                              // alert(style_pos);
                               
                           }
                           else{
                              //calculez unde am mai mult loc
                              // stanga dreapta
                              if(elem.viewportOffset().left+tmp_div.getWidth()>document.viewport.getWidth()){
                                //  alert('afiseaza in stanga');
                                   t_left=elem.cumulativeOffset().left+elem.getWidth()-tmp_div.getWidth()-20;
                              }
                              else{ 
                                 // alert('afiseaza in dreapta');
                                   t_left=elem.cumulativeOffset().left;
                              }
                              
                              // sus jos
                              if(elem.viewportOffset().top>document.viewport.getHeight()/2){
                                //  alert('afiseaza sus');
                                  t_top=elem.cumulativeOffset().top-tmp_div.getHeight()-5;
                              }
                              else{ 
                                 // alert('afiseaza jos');
                                  t_top=elem.cumulativeOffset().top+elem.getHeight()+5;
                              }
                              
                               //afisez fereastra
                               //t_top=elem.cumulativeOffset().top-tmp_div.getHeight()-top_margin;
                               //style_pos='top:'+Math.round(t_top)+'px;left:'+Math.round(t_left)+'px;';
                              
                           }
                       }
                       else{                         
                         t_top=(document.viewport.getScrollOffsets().top+((document.viewport.getDimensions().height-tmp_div.getDimensions().height)/2)); 
                         t_left=((document.viewport.getDimensions().width-tmp_div.getDimensions().width)/2);
                        //style_pos='top:'+Math.round(t_top)+'px;left:'+Math.round(t_left)+'px;';
                       }
    
}