summaryrefslogblamecommitdiffstats
path: root/application/views/scripts/event/index.phtml
blob: 7056e80e1947daec9972f7f6146938b3ac1f484a (plain) (tree)
1
2
3
4
5
6
7
8
9
               
 

                                                     
 
                               
 
                                               
 
 




                     
                                       
 
          


                         
 
           
                    
                    
 
              
                


                  
                
              
 


                     

                                  
                                 
                                     
                                         
                                       

                                                               
                                
                                



                                                        

                                                          




                                                 
   

                          
                       
                                                                                                                             
                                                  
              
                                       

   






                                      
        
                                          

                                                                                            

                                                      

                                     
                                                                        
         
        



                                                                      
                                                            

                                                                   
                                                            
                                                                                                         
                                                                                                        
         
 





                                                                    







                                                  
                                          
                                                                 
                                                                                                                               
                                                
                                                                        












                                                             
                                                                                    




                                                                                                
                                                                        





                                                                                                                             
                                                      
                                                       











                                                            
                                                                            

                                                                                        

                                                        

                                                                                            


                                 
                                                                




                                                                                                                       


                                                                                     













                                                                                                                               
           
         

         
                          


                                                            

                                                
                                         
                                                  
                                                      
                                                                  
                                                                     
                                  

                                                           
                                               
                                                  

                                                   


                                                           
                                                
                                                        
 
                                                                                                                         
 
                                  
                                                                             
                                          
                                                            
                                                        
                                                                                  


                                                                                                    
                                                                                                                 























                                                                                                                                                             
                                                                  



                                                                                
                                                                                   
                            
                                                                                                                                        
                                    

                                                                            
                                                         

                              
                                                                           
                                                   
                             

                                                                        
 

                                                                   
                                                                                                  
                                                                          
                                                                       



                                                                                                                           












                                                                                 
                                                                                                                                                                         












                                                                                                                                                                         
                                                                                                                                                                    

                                                                                                    
                                                                                           
                              
 
                                                                                         
 
                                                             














                                                                                            
                                                                                                                                           











                                                                                                                                                                            
 
                                                                                                                                                                   
                                                                                              
                                                                                                                       










                                                                                                 
                                                                   
                                                                               
                                                                                                




                                                                                                                                                                                                         
                                                                                                    
                                                                  





                                                                                                    


                                                            
                                                                                       




                                                                                                                                                
                                                                                                                        

                                                                                            


                                                                                        
                                            
                              

                                                                                             
 
                                                                                                                                                                                                                         
 

                                                                                
                                                                                 


                                                                        
                                                                           
                                                                                
                                        








                                                                                          
                                                                                   
                                                                  
                                                                                                                                                                                                                              






                                                                  
                                                                                                                                             



                                                                                                                                     



















                                                                                                                                     
                                                        
                                
                                                                                 
                                                                            




                                                       
                                                                                            




                                                             
                                                     
                                                                                 



                                                                                                                                                                          
                                                                                           
                                              
                                    

                                            
                                                                         




                                                                                                                                  












                                                                                                         
                                                                                     
                                                                           
                                                                                                                                                                                
                                                                  

                                                         
                                                                                 
                                                   
                                                 

                                                                                     
                                                                         



                                                                                                                                                                                                         

                                                                                                      


                                                                                                  











                                                                                                                                                


                                                                                 

                                                        
                              
                            
                                                                                                   
 
                                                             
 



                                                                                                                                                                                    
                                                                                 

                                                                        


                                                           
                                
                                                                       
                                                                   
                                                                        
 
                                                                  


                                                                            
                                                   


                                                                                            
                                                                       
                                                        
                                                                                                                                                                                                                  
                                





                                                                    
                                                                                                                                               




                                                                                                                                       



















                                                                                                                                 
                                          
                                                                                                                                                      








                                                                                                    
                                                         
                                             
                                                            





                                                                                                                                                                  
                                                                                                         

                                                                               

                                                                                  
                                                                                                          
                                                   


                                                                   
                                                                                      



                                                                                                                                         
                                                                     
                                                                                                                                          







                                                                            

                                                                         

                                                                                   
                                                                                           




                                                                                                                                                                   
                                                                                                          

                                                                        
                                                               

                                                                                   
                                                                                                         
                                                        
                                                 
                                                                              
                                                                                        
                                                                                                   



                                                                                                                                                                                                                                                      
                                                                                            

                                                                  

                                                                                   
                                                                                             

                                                                                                            
                                                                                                         
                                                                                                  
                                                        







                                                                                                                                                
                                                                             
                                                                                                                








                                                           
                                             








                                                                                                                           


                                                                
                                            
                                          
                              





                                                                                  
 
                                                                       

                                                                                                      
                                                


                                                                                                 
                                                                                                                      

                                                                               
                                                                                                                      
                                                             

                                                                                            

                                                                               
                                                                                                                      
                                                                               

                                                                                                               

                                                                               
                                                                                                                      
                                                                               

                                                                                                               

                                                 
                                                                                                   
                                                                                                        


                                                                                                          
                                           

                                                                                
                                                                    
                                                                          
                                            
 








                                                                              
                    
                                                                
                            

                                                               











                                                                                                     
                     
                                 
                                
                            






                                                                                                                                                                                                                                                                                     
                          
                                                                                                                                                                                                                                                 
    
                     



                                                                                                                                                                                                                                                                                                   
 
                        
                                                                                                                                                                                                                                                                                         


                                 
                                                                                                                                   

                                                            

                                                               

                                                                                         
               

                                           
                                                                                                                                     

                                                              

                                                       

                                                                                         
                 

                                    
                                                                                                                                     

                                                              

                                                       

                                                                                  
                 

                                        
                                                                                                                                     

                                                              

                                                       

                                                                                      
                 


                                        

                       


                                         





                                                                           
                                                        





                                                               
                                                                                                                                                               












                                                                                                                                                               
                                                                                                                                                                                                                                                     




                                                               
            























                                                                                                                                            
    








                                                                      
                                

















                                                                                                               
                                   
                










                                             
                                                          



                                                                                                               

                                       
















                                                                                                             
 


















                                                                                                             


















                                                                                                             
         
 
                       

                        
                                                     
                              
                                                                   


                 

                                                     
                              



                                                                   

                                                   
                              

                                                                 

      

                                                   
                              



                                                                 


                                                  

      


                                               

      




                                                        





                                                           
                         

                                                      


                              

                                                          

      

                                                        

                                                                       

                                     
                                       
                               
                                                  
                              


      

                                                         

                                                                       


                                     





                                                               




                                                   




                                                  

                                                
                                                        


                                          

                                                     
                                  

      
                

                                              
      

                          
                                                                     
<h1>Events</h1>

<div id='calendar'
	style='margin: 3em 0; font-size: 13px'></div>

<script type="text/javascript">

$(document).ready(function() {iniCalendar();});


/*
 * calendar variables
 */

// eventSelect
var eventColor = {ev:null, color:null};

// keydown
var selectedEvent = null;
var cpEvent = null;
var selectedDate = null;

// dblclick
var clickTmp = true;
var evClick = false;

// overlapping
var isDroppable;
var overlappStart;
var overlappEnd;

// poolSelectVal
var poolIDtmp;

// dayClick
var dayClick = false;


// change border color of an event
  function eventSelected(event) {
	  if (eventColor.ev != null){
		  event.selected = false;
		  selectedEvent = null;
		  eventColor.ev.borderColor = eventColor.color;
		  }
	  event.selected = true;
	  selectedEvent = event;
	  eventColor.ev = event;
	  eventColor.color = event.borderColor;
	  event.borderColor = 'black';
	  $('#calendar').fullCalendar("rerenderEvents");
	  if($.get("/event/checkright/rightShortcut/er")){
		$('#eventReportButton').show();
		$('#editEvent').show();
	  } else {
		  $('#eventReportButton').hide();
		  $('#editEvent').hide();
		  }
  }
  
// change view to addEvent
  function addEvent() {
    if($("#poolselectbox option:selected").val() == 'defaultPool' || $("#poolselectbox option:selected").val() == 'noPool') {
        $("#noPoolSelectedDialog").dialog('open');
      } else {
	  self.location="/event/add/";}
  }

	function showCalendar() {
		$("#calendar").show();
	}

	function hideCalendar() {
		$("#calendar").hide();
	}
	
	function setOpacity(type, value) {
		var events = $('#calendar').fullCalendar( 'clientEvents' , function(event) {
			if(event.category == type) {
				event.opacity = value;
				}
			return false;
			});
		$('#calendar').fullCalendar( 'rerenderEvents' );	
	}
	
	function setPoolIDtmp() {
		poolIDtmp = $("#poolselectbox option:selected").val();
	}
	
// fetch all poolevents of the selected #poolselectbox value
	function fetchPoolEvents() {
		poolID = $("#poolselectbox option:selected").val();
		$('#calendar').fullCalendar("removeEvents");
		$('#calendar').fullCalendar("removeEventSource", "/event/eventlist/poolID/" + poolIDtmp);
		$('#calendar').fullCalendar("addEventSource", "/event/eventlist/poolID/" + poolID);	
	}

	$(window).load(function() {
		var formularOverlappVar = getOverlappingVar();
	  if(formularOverlappVar == 1) {
		  $( "#formularOverlappingDialog" ).dialog('open');}
	});

/* 
 * KEYDOWN FUNCTION
 * delete selected event by key del(8) OR entf(46)
 * copy selected event by key ctrl(17) AND c(67)
 * cut selected event by key ctrl(17) AND x(88)
 * paste selected event by key ctrl(17) AND v(86)
 */

	$(document).keydown(function (e) {
		//delete selected event by key del(8) OR entf(46)
        if (e.keyCode == 8 || e.keyCode == 46 && selectedEvent.selected == true, $.get("/event/checkright/rightShortcut/er")) {
            // check if the event is an wdhEvent
            if(selectedEvent.repeat == 0 || selectedEvent.repeat == 2) {
            	  // dialog for deleting selected event
                $(function() {
                    $( "#eventDeleteDialog" ).dialog({
                            autoOpen: false,
                            width: 600,
                      modal: true,
                      title: "Delete " + selectedEvent.title,
                            buttons: {
                              "Cancel": function() {
                                $(this).dialog("close");
                              }, 
                              "OK": function() { 
                                $(this).dialog("close");
                                $.post("/event/delete/eventID/" + selectedEvent.id);
                                $('#calendar').fullCalendar( 'removeEvents', selectedEvent.id );
                                $('#calendar').fullCalendar( 'rerenderEvents' ); 
                              }
                            },
                      open: function () {
                            	  $(".ui-dialog-titlebar-close").hide();
                                //$(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
                            }
                    });
                  });
                $( "#eventDeleteDialog" ).dialog('open');
                
             // dialog for deleting selected wdhEvent 
            } else if (selectedEvent.repeat == 1) {    
             $(function() {
                $( "#eventDeleteWdhDialog" ).dialog({
                    autoOpen: false,
                    width: 600,
              modal: true,
              title: 'Delete ' + selectedEvent.title,
                    buttons: {
                      "Cancel": function() {
                        $(this).dialog("close");
                      }, 
                      "Delete just this Event": function() {
                    	  $(this).dialog("close");  
                        $.post("/event/delete/eventID/" + selectedEvent.id);
                        $('#calendar').fullCalendar( 'removeEvents', selectedEvent.id );
                        $('#calendar').fullCalendar( 'rerenderEvents' ); 
                      },
                      "Delete all Events": function() { 
                        $(this).dialog("close");
                        self.location="/event/deleteall/eventTitle/" + selectedEvent.title; 
                      }
                    },
              open: function () {
                    	  $(".ui-dialog-titlebar-close").hide();
                          //$(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
                    }
            });
          });
             $( "#eventDeleteWdhDialog" ).dialog('open');}
        }
        //copy selected event by key ctrl(17) AND c(67)
        /* else if (e.ctrlKey && e.keyCode == 67 && selectedEvent.selected == true) {
        	cpEvent = selectedEvent;
        	//cpEventStart = $.fullCalendar.formatDate(selectedEvent.start, 'hh:mm');
			//cpEventEnd = $.fullCalendar.formatDate(selectedEvent.end, 'hh:mm');
			cpEventDuration = cpEvent.minuteDelta;
        	alert(cpEventDuration);
       	  //cut selected event by key ctrl(17) AND x(88)
        } else if (e.ctrlKey && e.keyCode == 88 && selectedEvent.selected == true) {
            
          //paste selected event by key ctrl(17) AND v(86)
        } else if (e.ctrlKey && e.keyCode == 86 && selectedEvent.selected == true && cpEvent != null && selectedDate != null) {
        	alert(cpEvent.title + " paste to " + selectedDate);
        	self.location="/event/add/evstart/" + selectedDate + "/evend" + 
            $('#calendar').fullCalendar( 'removeEvents', selectedEvent.id );
            $('#calendar').fullCalendar( 'rerenderEvents' );
        }*/
         
      });

// initialize fullCalendar
	function iniCalendar() {
		
		var calendar = $('#calendar').fullCalendar({

			  // fullCalendar header
				header: {
				  default: 'week',
					left: 'title',
					center: 'today prev,next',
					right: 'agendaWeek,agendaDay'
				},

				// set some default options
				editable: true,
				allDaySlot: false,
				selectable: true,
				selectHelper: true,
				currentTimeIndicator: true,
		    allDay : false,
			  defaultView: 'agendaWeek',
				slotMinutes: 15,
				defaultEventMinutes: 10,

				loading: function(bool) { if (bool) $('#progress').show(); else $('#progress').hide(); },

				/*
			  dayClick: function( date, allDay, jsEvent, view ) {
					  
					selectedDate = date;
					dayClick = true;
					$('#calendar').fullCalendar( 'unselect' );
					
					if($("#poolselectbox option:selected").val() == 'default') {
			              $( "#noPoolSelectedDialog" ).dialog('open');
			            } else if ($.get("/event/checkright/rightShortcut/ec") && evClick == false) {
			                 $(function() {
			                     $( "#eventAddDialog" ).dialog({
			                             autoOpen: false,
			                             width: 600,
			                       modal: true,
			                       title: "Add Event from " + date,
			                             buttons: {
			                               "Cancel": function() {
			                    	           dayClick = false;
			                                 $(this).dialog("close");
			                                 $('#calendar').fullCalendar( 'unselect' );
			                               }, 
			                               "OK": function() { 
			                                 $(this).dialog("close");
			                                 self.location="/event/add/evstart/" + date + "/poolID/" + $("#poolselectbox option:selected").val();
			                               }
			                             },
			                       open: function () {
			                             $(".ui-dialog-titlebar-close").hide();
			                                 //$(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
			                             }
			                     });
			                   });
			                 $( "#eventAddDialog" ).dialog('open');
			            } else if (evClick == false) {
				            dayClick = false;
			              $('#calendar').fullCalendar( 'unselect' );
			              $( "#errorRightsDialog" ).dialog('open');
			              }
			            else $('#calendar').fullCalendar( 'unselect' );
		            
				  //self.location="/event/add/evstart/" + date + "/poolID/" + $("#poolselectbox option:selected").val();
				},*/

			  eventMouseover: function( event, jsEvent, view ) {
					  evClick = true;
			   }, 
			    
			  eventMouseout: function( event, jsEvent, view ) {
				   evClick = false;
			   },
			  
			  eventClick: function( event, jsEvent, view ) {

					  if(clickTmp) {
						  clickTmp = false;
						  setTimeout(function() {clickTmp = true;} , 300);
						  $(this).qtip("destroy");
						  eventSelected(event);
						  // non immediate event case
					  } else if (event.immediate == 0 && $.get("/event/checkright/rightShortcut/er")) {
			            // this is the dblclick
			            $(this).qtip("destroy");
			            if(event.repeat == 1) {
		                  $(function() {
		                       $( "#eventEditWdhDialog" ).dialog({
		                           autoOpen: false,
		                           width: 600,
		                     modal: true,
		                     title: 'Edit ' + event.title,
		                           buttons: {
		                             "Cancel": function() {
		                               $(this).dialog("close");
		                             }, 
		                             "Edit just this Event": function() {
		                               $(this).dialog("close");  
		                               self.location = "/event/edit/eventID/" + event.id + "/wdh/" + 0 + "/poolID/" + $("#poolselectbox option:selected").val(); 
		                             },
		                             "Edit all Events": function() { 
		                               $(this).dialog("close");
		                               self.location = "/event/edit/eventID/" + event.id + "/wdh/" + 1 + "/poolID/" + $("#poolselectbox option:selected").val(); 
		                             }
		                           },
		                     open: function () {
		                               $(".ui-dialog-titlebar-close").hide();
		                                 //$(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
		                           }
		                   });
		                 });
		              $( "#eventEditWdhDialog" ).dialog('open');
			            } else self.location = "/event/edit/eventID/" + event.id + "/wdh/" + 0 + "/poolID/" + $("#poolselectbox option:selected").val();
					  } else if (!$.get("/event/checkright/rightShortcut/er")) {
						  $( "#errorRightsDialog" ).dialog('open');
					  } else $( "#errorEditImmediate" ).dialog('open');
			    },

			  select: function( startDate, endDate, allDay, jsEvent, view ) {

			    	var currentDate = new Date();
					  
	                //initialize eventNotDroppableDialog Dialog
	                  $(function() {
	                        $( "#eventNotDroppableDialog" ).dialog({
	                            autoOpen: false,
	                            width: 820,
	                      modal: true,
	                      title: 'Adding of an Event at this position is not possible!',
	                            buttons: {
	                              "OK": function() {
	                                $(this).dialog("close");
	                                $('#calendar').fullCalendar( 'unselect' );
	                              }
	                            },
	                      open: function () {
	                                $("#accordion").accordion({clearStyle: true, collapsible: true, active: false, autoHeight: true });
	                                $(".ui-dialog-titlebar-close").hide();
	                                $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
	                            }
	                    });
	                  });

	          $.get("/event/checkoverlapselect/poolID/" + $("#poolselectbox option:selected").val() + "/startDate/" + startDate + "/endDate/" + endDate, function(data){

	        	  // get conflicts-HTML Element
	        	  var cell = document.getElementById("conflicts");
	        	  // get conflicts
              var returndata = jQuery.parseJSON(data);

					  if($("#poolselectbox option:selected").val() == 'defaultPool' || $("#poolselectbox option:selected").val() == 'noPool') {
						  $( "#noPoolSelectedDialog" ).dialog('open');
					  } else if ($.get("/event/checkright/rightShortcut/ec") && evClick == false) {
			           $(function() {
			               $( "#eventAddDialog" ).dialog({
			                       autoOpen: false,
			                       width: 600,
			                 modal: true,
			                 title: "Add Event from " + startDate + " to " + endDate,
			                       buttons: {
			                         "Cancel": function() {
			                           $(this).dialog("close");
			                           $('#calendar').fullCalendar( 'unselect' );
			                         }, 
			                         "OK": function() {
			                        	 if(returndata == -1) {
				                        	 if(startDate > currentDate) {  
				                        		  $(this).dialog("close");
				                        		  self.location="/event/add/evstart/" + startDate + "/evend/" + endDate + "/poolID/" + $("#poolselectbox option:selected").val();
				                        	 } else {
				                             $(this).dialog("close");
				                             $('#calendar').fullCalendar( 'unselect' );
				                             $( "#errorTimeDialog" ).dialog('open');
				                        	 }
			                        	 } else {
			                             $(this).dialog("close");
			                             cell.removeChild(cell.firstChild);
			                             $("#conflicts").append(returndata);
			                             $( "#eventNotDroppableDialog" ).dialog('open');
			                        	 }
			                         }
			                       },
			                 open: function () {
			                    	 $(".ui-dialog-titlebar-close").hide();
			                           //$(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
			                       }
			               });
			             });
			           $( "#eventAddDialog" ).dialog('open');
					  } else if (!$.get("/event/checkright/rightShortcut/ec") && evClick == false) {
						  $('#calendar').fullCalendar( 'unselect' );
						  $( "#errorRightsDialog" ).dialog('open');
						  } else 
							  evClick = true;
					      $('#calendar').fullCalendar( 'unselect' );
					 });
			    },
			   
			  eventResize: function( event, dayDelta, minuteDelta, revertFunc ) {

			    	$.get("/event/checkoverlapresize/eventID/" + event.id + "/minuteDelta/" + minuteDelta + "/dayDelta/" + dayDelta + "/poolID/" + $("#poolselectbox option:selected").val(), function(data){

			        // get conflicts-HTML Element
			        var cell = document.getElementById("conflicts");
			        var cfcell = document.getElementById("cfevents");
			        // get conflicts
			        var returndata = jQuery.parseJSON(data);
			        // get conflict free events
				    	var cfevents = returndata.cfevents;
				    	var cfeventsString = $.toJSON(cfevents);
				    	

		                  //initialize eventNotDroppableDialog Dialog
	                    $(function() {
	                          $( "#eventNotDroppableDialog" ).dialog({
	                              autoOpen: false,
	                              width: 820,
	                        modal: true,
	                        title: 'Resizing of ' + event.title + ' is not possible!',
	                              buttons: {
	                                "Resize Conflict-Free Events": function() {
	                                  $(this).dialog("close");
	                                  self.location="/event/eventresizecf/evmindelta/" + minuteDelta + "/evdaydelta/" + dayDelta + "/poolID/" + $("#poolselectbox option:selected").val() + "/cfevents/" + cfeventsString;
	                                },
	                                "OK": function() {
	                                  $(this).dialog("close");
	                                  revertFunc();
	                                }
	                              },
	                        open: function () {
	                                  $("#accordion").accordion({clearStyle: true, collapsible: true, active: false, autoHeight: true });
	                                  $(".ui-dialog-titlebar-close").hide();
	                                  $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
	                              }
	                      });
	                    });

	                    //initialize eventNotDroppable Dialog2
	                    $(function() {
	                          $( "#eventNotDroppableDialog2" ).dialog({
	                              autoOpen: false,
	                              width: 820,
	                        modal: true,
	                        title: 'Dropping of ' + event.title + ' is not possible!',
	                              buttons: {
	                                "OK": function() {
	                                  $(this).dialog("close");
	                                  revertFunc();
	                                }
	                              },
	                        open: function () {
	                                  $(".ui-dialog-titlebar-close").hide();
	                                  $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
	                              }
	                      });
	                    });			    	
			    	
			    	if($.get("/event/checkright/rightShortcut/er")) {
			    	if(event.repeat == 0 || event.repeat == 2) {
	                 $(function() {
                         $( "#defaultDialog" ).dialog({
                                 autoOpen: false,
                                 width: 600,
                           modal: true,
                           title: "The End Date of " + event.title + " is now " + event.end,
                                 buttons: {
                                   "Cancel": function() { 
                                     $(this).dialog("close");
                                     revertFunc();
                                   }, 
                                   "OK": function() {
                                	     if(returndata.withoutrepeat == -1) {
                                           $(this).dialog("close"); 
                                           $.post("/event/eventresize/evid/" + event.id + "/evend/" + event.end + "/poolID/" + $("#poolselectbox option:selected").val());
                                	     } else {
                                           $(this).dialog("close");
                                           $( "#eventNotDroppableDialog2" ).dialog('open');
                                	     }
                                   }
                         },
                         open: function () {
                        	   $(".ui-dialog-titlebar-close").hide();
                                     //$(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
                                 }
                         });
                       });
	                 $( "#defaultDialog" ).dialog('open');
			    	} else if (event.repeat == 1) {    
			             $(function() {
			                 $( "#eventResizeWdhDialog" ).dialog({
			                     autoOpen: false,
			                     width: 600,
			               modal: true,
			               title: 'Resize ' + event.title + ' (' + minuteDelta + ' minutes)',
			                     buttons: {
			                       "Cancel": function() {
			                         $(this).dialog("close");
			                         revertFunc();
			                       }, 
			                       "Resize just this Event": function() {
			                         if(returndata.withoutrepeat == -1) {
			                         $(this).dialog("close");  
			                         $.post("/event/eventresize/evid/" + event.id + "/evend/" + event.end + "/poolID/" + $("#poolselectbox option:selected").val());
			                         event.repeat = 2;
			                         } else {
                                 $(this).dialog("close");
                                 $( "#eventNotDroppableDialog2" ).dialog('open');
			                         } 
			                       },
			                       "Resize all Events": function() {
			                    	   if(returndata.withrepeat == -1) { 
			                         $(this).dialog("close");
			                         self.location="/event/eventresizeall/eventTitle/" + event.title + "/evmindelta/" + minuteDelta + "/poolID/" + $("#poolselectbox option:selected").val();
			                    	   } else {
			                           $(this).dialog("close");
			                           cell.removeChild(cell.firstChild);
			                           cfcell.removeChild(cfcell.firstChild);
			                           $("#cfevents").append(returndata.cfplotwithrepeat);
			                           $("#conflicts").append(returndata.withrepeat);
			                           $( "#eventNotDroppableDialog" ).dialog('open');
			                    	   } 
			                       }
			                     },
			               open: function () {
			                         $(".ui-dialog-titlebar-close").hide();
			                           //$(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
			                     }
			             });
			           });
			        $( "#eventResizeWdhDialog" ).dialog('open');
			        }
			    	}
				    	else {
				    	revertFunc();
				    	$( "#errorRightsDialog" ).dialog('open');
			    	}
			     });
			    	$(this).qtip("destroy");
			    },
			    
			  eventDrop: function( event, dayDelta, minuteDelta, allDay, revertFunc ) {

			    	var currentDate = new Date();

			      $.get("/event/checkoverlapdrop/poolID/" + $("#poolselectbox option:selected").val() + "/eventID/" + event.id + "/date/" + event.start, function(data){

			        // get conflicts-HTML Element
			        var cell = document.getElementById("conflicts");
			        var cfcell = document.getElementById("cfevents");
			        // get conflicts
			        var returndata = jQuery.parseJSON(data);

			        // get past
			        var past = returndata.past;
			        
			        // get conflict free events with repeat
			        var cfevents = returndata.cfevents;
			        var cfeventsString = $.toJSON(cfevents);

		             //initialize eventNotDroppable Dialog
		              $(function() {
		                    $( "#eventNotDroppableDialog" ).dialog({
		                        autoOpen: false,
		                        width: 820,
		                  modal: true,
		                  title: 'Dropping of ' + event.title + ' is not possible!',
		                        buttons: {
                              "Drop Conflict-Free Events": function() {
                                $(this).dialog("close");
                                self.location="/event/eventmovecf/evmindelta/" + minuteDelta + "/evdaydelta/" + dayDelta + "/poolID/" + $("#poolselectbox option:selected").val() + "/cfevents/" + cfeventsString;
                              },
		                          "OK": function() {
		                            $(this).dialog("close");
		                            revertFunc();
		                          }
		                        },
		                  open: function () {
		                            $("#accordion").accordion({clearStyle: true, collapsible: true, active: false, autoHeight: true });
		                            $(".ui-dialog-titlebar-close").hide();
		                            $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
		                        }
		                });
		              });

		              //initialize eventNotDroppable Dialog2
	                $(function() {
	                      $( "#eventNotDroppableDialog2" ).dialog({
	                          autoOpen: false,
	                          width: 820,
	                    modal: true,
	                    title: 'Dropping of ' + event.title + ' is not possible!',
	                          buttons: {
	                            "OK": function() {
	                              $(this).dialog("close");
	                              revertFunc();
	                            }
	                          },
	                    open: function () {
	                              $(".ui-dialog-titlebar-close").hide();
	                              $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
	                          }
	                  });
	                });
					  
			    	if((event.repeat == 0  || event.repeat == 2) && event.immediate == 0 && $.get("/event/checkright/rightShortcut/er")) {
			    	$(function() {
			    		$( "#defaultDialog" ).dialog({
			                autoOpen: false,
			                width: 600,
			    			modal: true,
			    			title: event.title + " was moved to " + event.start,
			                buttons: {
			                  "Cancel": function() { 
			                    $(this).dialog("close");
			                    revertFunc();
			                  }, 
			                  "OK": function() {
				                  if(returndata.withoutrepeat == -1) {
					                  if(event.start > currentDate) { 
					                	  $(this).dialog("close");
					                	  $.post("/event/eventmove/evid/" + event.id + "/evstart/" + event.start + "/evend/" + event.end);
					                  } else {
					                	  $(this).dialog("close");
					                	  $( "#errorTimeDialog" ).dialog('open');
					                	  revertFunc();
					                  }
				                  } else {
				                	  $(this).dialog("close");
				                	  $( "#eventNotDroppableDialog2" ).dialog('open');
				                  }
			                  }
			                },
			    			open: function () {
			                  	$(".ui-dialog-titlebar-close").hide();
			                    //$(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
			                }
			    		});
			    	});
			    	$( "#defaultDialog" ).dialog('open');
			    	} else if (event.repeat == 1 && event.immediate == 0 && $.get("/event/checkright/rightShortcut/er")) {    
			             $(function() {
			                 $( "#eventMoveWdhDialog" ).dialog({
			                     autoOpen: false,
			                     width: 600,
			               modal: true,
			               title: 'Move ' + event.title,
			                     buttons: {
			                       "Cancel": function() {
			                         $(this).dialog("close");
			                         revertFunc();
			                       }, 
			                       "Move just this Event": function() {
				                       if(returndata.withoutrepeat == -1) {
				                    	   if(event.start > currentDate) { 
				                    		   $(this).dialog("close");
				                    		   $.post("/event/eventmove/evid/" + event.id + "/evstart/" + event.start + "/evend/" + event.end);
				                    	   } else {
				                    		   $(this).dialog("close");
				                    		   $( "#errorTimeDialog" ).dialog('open');
				                           revertFunc();
				                    	   }
	  		                      event.repeat = 2;
				                       } else {
				                    	   $(this).dialog("close");
				                         $( "#eventNotDroppableDialog2" ).dialog('open');
				                       }
			                       },
			                       "Move all Events": function() {
				                       if(returndata.withrepeat == -1) {
				                    	   if(event.start > currentDate && !past) {
				                    		    $(this).dialog("close");
				                    		    self.location="/event/eventmoveall/eventTitle/" + event.title + "/evmindelta/" + minuteDelta + "/evdaydelta/" + dayDelta + "/poolID/" + $("#poolselectbox option:selected").val();
				                    	   } else {
			                             $(this).dialog("close");
			                             $( "#errorTimeDialog" ).dialog('open');
			                             revertFunc();
				                    	   }
				                       } else {
				                    	   $(this).dialog("close");
				                    	   cell.removeChild(cell.firstChild);
				                         cfcell.removeChild(cfcell.firstChild);
				                         $("#cfevents").append(returndata.cfplotwithrepeat);
				                    	   $("#conflicts").append(returndata.withrepeat);
			                           $( "#eventNotDroppableDialog" ).dialog('open');
				                       }
			                       }
			                     },
			               open: function () {
			                     	  $(".ui-dialog-titlebar-close").hide();
			                           //$(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
			                     }
			             });
			           });
			           $( "#eventMoveWdhDialog" ).dialog('open');
			    	} else if (event.immediate == 1 && $.get("/event/checkright/rightShortcut/er")){
				    	$(function() {
                $( "#eventImmediateButtonDialog" ).dialog({
                    autoOpen: false,
                    width: 600,
                    modal: true,
                    title: 'Move ' + event.title,
                    buttons: {
                    "OK": function() { 
                    $(this).dialog("close");
    				revertFunc();
                              }
                            },
                    open: function () {
                                $(".ui-dialog-titlebar-close").hide();
                                $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
                            }
                    });
                  });
	            $("#eventImmediateButtonDialog").dialog('open');
			    	} else {
			    		revertFunc();
			    		$(this).qtip("destroy");
				    	}});
	          $(this).qtip("destroy");
			    },
			    
			  eventDragStart: function( event, jsEvent, ui, view ) {
			    	if(!$.get("/event/checkright/rightShortcut/er")) {
				    	$( "#errorRightsDialog" ).dialog('open');
			    	}
					},

			  eventRender: function(event, element, view) {
						  
						var eventTmp = element.attr("id", "evID_" + event.id);
						
						// add running icons and handle editing of events
						if(event.running == 0) {
							// event will take place soon
							$(element).find('.fc-event-time').addClass("fc-event-time-0");
						} else if(event.running == 1) {
							// event is running
							$(element).find('.fc-event-time').addClass("fc-event-time-1");
				      event.editable = false;
				      element.resizable("destroy"); // jqeury resizing
				      element.removeClass('fc-event-vert'); // css class    
						} else if(event.running == 2) {
							// event successfully
							$(element).find('.fc-event-time').addClass("fc-event-time-2");
							event.editable = false;
							element.resizable("destroy"); // jqeury resizing
							element.removeClass('fc-event-vert');  // css class    
						} else if(event.running == 3) {
							// event failed
							$(element).find('.fc-event-time').addClass("fc-event-time-3");
							event.editable = false;
							element.resizable("destroy"); // jqeury resizing
							element.removeClass('fc-event-vert');  // css class    
						}

				      // disable resizing if the event is a boot- or shutdown-event
					  if(event.category == 'Boot' || event.category == 'Shutdown') {
						  element.resizable(false); // calendar resizing
						  element.resizable("destroy"); // jqeury resizing
						  element.removeClass('fc-event-vert');	// css class	  
					  }

					  // disable editing of immediate events
					  if(event.immediate == 1) {
						  element.ediable = false;
					  } 

					element.qtip({
	                      content: 
		                        'Title: ' + event.title + '<br/>' +
		                        'Type: ' + event.category + '<br/>' +
		                        'Note: ' + event.note + '<br/>' +
		                        'Participants: ' + event.participants,
		                      show: 'mouseover',
		                      hide: 'mouseout'
		                      });
                    
			    	if (view.name == 'agendaWeek') {
	                    
                    }
			    	if (view.name == 'agendaDay') {
			    		if(event.participants) {
			    		element.find('.fc-event-title').append(
					    		"<br/> Type: " + event.category + 
					    		"<br/> Note: " + event.note + 
					    		"<br/> Participants: " + event.participants +
					    		"<br/> Repeat: " + event.repeat);
                    } else {
                    	element.find('.fc-event-title').append(
                                "<br/> Type: " + event.category + 
                                "<br/> Note: " + event.note +
                                "<br/> Participants: ALL" +
                                "<br/> Repeat: " + event.repeat);
                    }
			    	}
			    }   
			}); 
		
	// EventType Buttons
	$('.fc-header-center').append('<span id="lecture" class="fc-button fc-state-default fc-corner-right fc-state-active"><span class="fc-button-inner"><span class="fc-button-content">Lecture</span><span class="fc-button-effect"><span></span></span></span></span>');
	$('.fc-header-center').append('<span id="maintenance" class="fc-button fc-state-default fc-corner-right fc-state-active"><span class="fc-button-inner"><span class="fc-button-content">Maintenance</span><span class="fc-button-effect"><span></span></span></span></span>');
	$('.fc-header-center').append('<span id="boot" class="fc-button fc-state-default fc-corner-right fc-state-active"><span class="fc-button-inner"><span class="fc-button-content">Boot</span><span class="fc-button-effect"><span></span></span></span></span>');
	$('.fc-header-center').append('<span id="shutdown" class="fc-button fc-state-default fc-corner-right fc-state-active"><span class="fc-button-inner"><span class="fc-button-content">Shutdown</span><span class="fc-button-effect"><span></span></span></span></span>');
	
	  // PoolSelectBox
    $('.fc-header-left').append('<form name="PoolSelectForm"><select id="poolselectbox" name="PoolSelectbox" onclick="setPoolIDtmp()" onChange="fetchPoolEvents();"><option value="defaultPool" >Please choose a Pool</option></select></form>');
    
  	// Add Button
  	$('.fc-header-right').append('<span id="addEvent" class="fc-button fc-state-default fc-state-hover"><span class="fc-button-inner"><span class="fc-button-content">+</span><span class="fc-button-effect"><span></span></span></span></span>');

    // Edit Button
  	$('.fc-header-right').append('<span id="editEvent" style=display:none class="fc-button fc-state-default fc-state-hover "><span class="fc-button-inner"><span class="fc-button-content"><IMG src="/media/img/edit.png"/></span><span class="fc-button-effect"><span></span></span></span>');

  	// Report Button
  	$('.fc-header-center').append('<span id="eventReportButton" style=display:none class="fc-button fc-state-default fc-state-hover"><span class="fc-button-inner"><span class="fc-button-content">Report</span><span class="fc-button-effect"><span></span></span></span></span>'); 

  // Change Button-Style
  $("#lecture").click(function(){
	  if($("#poolselectbox option:selected").val() == 'defaultPool' || $("#poolselectbox option:selected").val() == 'noPool') {
	        $( "#noPoolSelectedDialog" ).dialog('open');
	      } else {
		if($(this).hasClass("fc-state-active")) {
			$(this).removeClass("fc-state-active");
			setOpacity('Lecture', '.5');
		} else {$(this).addClass("fc-state-active"); setOpacity('Lecture', '1');}
	      }
		});
	$("#maintenance").click(function(){
	    if($("#poolselectbox option:selected").val() == 'defaultPool' || $("#poolselectbox option:selected").val() == 'noPool') {
	          $( "#noPoolSelectedDialog" ).dialog('open');
	        } else {
	    if($(this).hasClass("fc-state-active")) {
	    	$(this).removeClass("fc-state-active");
	    	setOpacity('Maintenance', '.5');
	    } else {$(this).addClass("fc-state-active"); setOpacity('Maintenance', '1');}
	        }
	    });
	$("#boot").click(function(){
	    if($("#poolselectbox option:selected").val() == 'defaultPool' || $("#poolselectbox option:selected").val() == 'noPool') {
	          $( "#noPoolSelectedDialog" ).dialog('open');
	        } else {
	    if($(this).hasClass("fc-state-active")) {
	    	$(this).removeClass("fc-state-active");
	    	setOpacity('Boot', '.5');
	    } else {$(this).addClass("fc-state-active"); setOpacity('Boot', '1');}
	        }
	    });
	$("#shutdown").click(function(){
	    if($("#poolselectbox option:selected").val() == 'defaultPool' || $("#poolselectbox option:selected").val() == 'noPool') {
	          $( "#noPoolSelectedDialog" ).dialog('open');
	        } else {
	    if($(this).hasClass("fc-state-active")) {
	    	$(this).removeClass("fc-state-active");
	    	setOpacity('Shutdown', '.5');
	    } else {$(this).addClass("fc-state-active"); setOpacity('Shutdown', '1');}
	        }
	    });

	$("#addEvent").click(function(){
	    addEvent();
	    });

	$("#editEvent").click(function(){
	    if(selectedEvent != null) {
            if(selectedEvent.repeat == 1 && selectedEvent.immediate == 0) {
                $(function() {
                     $( "#eventEditWdhDialog" ).dialog({
                         autoOpen: false,
                         width: 600,
                   modal: true,
                   title: 'Edit ' + selectedEvent.title,
                         buttons: {
                           "Cancel": function() {
                             $(this).dialog("close");
                           }, 
                           "Edit just this Event": function() {
                             $(this).dialog("close");  
                             self.location = "/event/edit/eventID/" + selectedEvent.id + "/wdh/" + 0 + "/poolID/" + $("#poolselectbox option:selected").val(); 
                           },
                           "Edit all Events": function() { 
                             $(this).dialog("close");
                             self.location = "/event/edit/eventID/" + selectedEvent.id + "/wdh/" + 1 + "/poolID/" + $("#poolselectbox option:selected").val(); 
                           }
                         },
                   open: function () {
                             $(".ui-dialog-titlebar-close").hide();
                               //$(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
                         }
                 });
               });
            $( "#eventEditWdhDialog" ).dialog('open');
            } else if ( ( selectedEvent.repeat == 0 || selectedEvent.repeat == 2 ) && selectedEvent.immediate == 0) self.location = "/event/edit/eventID/" + selectedEvent.id + "/wdh/" + 0 + "/poolID/" + $("#poolselectbox option:selected").val();
       else if (!$.get("/event/checkright/rightShortcut/er")) {
        $( "#errorRightsDialog" ).dialog('open');
     } else $( "#errorEditImmediate" ).dialog('open');
	    } 
	  });
    	    
	$("#eventReportButton").click(function(){
		if(selectedEvent != null) {
			self.location="/event/showreports/eventID/" + selectedEvent.id;
		} else {
			$(function() {
			               $( "#eventReportButtonDialog" ).dialog({
			                       autoOpen: false,
			                       width: 600,
			                 modal: true,
			                 title: "ERROR",
			                       buttons: {
			                         "OK": function() { 
			                           $(this).dialog("close");
			                         }
			                       },
			                 open: function () {
			                    	 $(".ui-dialog-titlebar-close").hide();
			                         $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
			                       }
			               });
			             });
		$( "#eventReportButtonDialog" ).dialog('open');
		}
	});
    
	//fetch poollist from pbs database
	$.get("/event/getpoollist/", function(getpoollistresult){
		$("#poolselectbox").append(getpoollistresult);
		poolIDtmp = $("#poolselectbox option:selected").val();
		fetchPoolEvents();
		});
	
}

// initialize errorRights Dialog
  $(function() {
        $( "#errorRightsDialog" ).dialog({
                autoOpen: false,
                width: 600,
          modal: true,
          title: "ERROR",
                buttons: { 
                  "OK": function() { 
                    $(this).dialog("close");
                  }
                },
          open: function () {
                    $(".ui-dialog-titlebar-close").hide();
                    $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
                }
        });
      });

// initialize noPoolSelected Dialog
  $(function() {
        $( "#noPoolSelectedDialog" ).dialog({
                autoOpen: false,
                width: 600,
          modal: true,
          title: "ERROR",
                buttons: { 
                  "OK": function() { 
                    $(this).dialog("close");
                  }
                },
          open: function () {
                    $(".ui-dialog-titlebar-close").hide();
                    $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
                }
        });
      });
	  
// initialize errorEditImmediate Dialog
  $(function() {
      $( "#errorEditImmediate" ).dialog({
              autoOpen: false,
              width: 600,
        modal: true,
        title: "ERROR",
              buttons: { 
                "OK": function() { 
                  $(this).dialog("close");
                }
              },
        open: function () {
                  $(".ui-dialog-titlebar-close").hide();
                  $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
              }
      });
    });

//initialize errorTime Dialog
  $(function() {
      $( "#errorTimeDialog" ).dialog({
              autoOpen: false,
              width: 600,
        modal: true,
        title: "ERROR",
              buttons: { 
                "OK": function() { 
                  $(this).dialog("close");
                }
              },
        open: function () {
                  $(".ui-dialog-titlebar-close").hide();
                  $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
              }
      });
    });

//initialize formularOverlappingDialog Dialog
  $(function() {
      $( "#formularOverlappingDialog" ).dialog({
              autoOpen: false,
              width: 600,
        modal: true,
        title: "ERROR",
              buttons: { 
                "OK": function() { 
                  $(this).dialog("close");
                }
              },
        open: function () {
                  $(".ui-dialog-titlebar-close").hide();
                  $(this).parents(".ui-dialog:first").find(".ui-dialog-titlebar").addClass("ui-state-error");
              }
      });
    });

</script>

<!-- DIALOG WINDOWS -->

<!-- delete wdhEvent -->
<div id="eventDeleteWdhDialog" style="display: none">
<p>This is a Repeat-Event!</p>
<p>Do you want to delete any event occurring this event or just the
selected one?</p>
</div>

<!-- resize wdhEvent -->
<div id="eventResizeWdhDialog" style="display: none">
<p>This is a Repeat-Event!</p>
<p>Do you want to resize any event occurring this event or just the
selected one?</p>
</div>

<!-- move wdhEvent -->
<div id="eventMoveWdhDialog" style="display: none">
<p>This is a Repeat-Event!</p>
<p>Do you want to move any event occurring this event or just the
selected one?</p>
</div>

<!-- edit wdhEvent -->
<div id="eventEditWdhDialog" style="display: none">
<p>This is a Repeat-Event!</p>
<p>Do you want to edit any event occurring this event or just the
selected one?</p>
</div>

<!-- eventDelete -->
<div id="eventDeleteDialog" style="display: none">
<p>Are you sure to delete this Event?</p>
</div>

<!-- eventAdd -->
<div id="eventAddDialog" style="display: none">
<p>Are you sure to add this Event?</p>
</div>

<!-- eventReportButton -->
<div id="eventReportButtonDialog" style="display: none">
<p>Please choose an Event first!</p>
</div>

<!-- eventImmediateButton -->
<div id="eventImmediateButtonDialog" style="display: none">
<p>You can´t change time of an Immediate-Event!</p>
<p>Please generate a new Event</p>
</div>

<!-- eventResize boot -->
<div id="eventResizeBootDialog" style="display: none">
<p>You can´t change the EndTime of a Boot Event!</p>
</div>

<!-- eventResize  shutdown -->
<div id="eventResizeShutdownDialog" style="display: none">
<p>You can´t change the EndTime of a Shutdown Event!</p>
</div>

<!-- eventNotDroppableDialog -->
<div id="eventNotDroppableDialog" style="display: none">
<p>You can´t drop this Event here! There exists at least one collision
between two events.</p>
<p>Please choose another position</p>
<div id="accordion">
<h3><a href="#">Show conflicts</a></h3>
<div id="conflicts"><br ></div>
<h3><a href="#">Show conflict-free Events</a></h3>
<div id="cfevents"><br ></div>
</div>
</div>

<!-- eventNotDroppableDialog2 -->
<div id="eventNotDroppableDialog2" style="display: none">
<p>You can´t drop this Event here! There exists at least one collision
between two events.</p>
<p>Please choose another position</p>
</div>

<!-- formularOverlapping Dialog -->
<div id="formularOverlappingDialog" style="display: none">
<p>There exists at least one collision between your Events!</p>
<p>Please choose another position and try again.</p>
</div>

<!-- errorEditImmediate -->
<div id="errorEditImmediate" style="display: none">
<p>You can´t edit an Immediate-Event!</p>
</div>

<!-- errorRights -->
<div id="errorRightsDialog" style="display: none">
<p>Permission denied!</p>
</div>

<!-- errorTime -->
<div id="errorTimeDialog" style="display: none">
<p>One or more Events have been droped in the past.</p> 
<p>Please select a date in the future!</p>
</div>

<!-- no pool selected -->
<div id="noPoolSelectedDialog" style="display: none">
<p>Please choose a Pool first!</p>
</div>

<!-- default -->
<div id="defaultDialog" style="display: none">
<p>Are you sure about this change?</p>
</div>

<!-- add loading image -->
<IMG id="progress" class="fc-progress" src="/media/img/loader.gif" />