/* Kalendarfunktioner*/
/*
 * @todo Ändra tiden framåt i tiden vid tidigare sluttid än starttid.
 */
var CalCatID=null;
var parseparms={};
var calendarview='';
function getRepeatingDates(){
	if(Element.visible('repeat_dates')){
		Element.hide('repeat_dates');
	}else{
		var vars=Form.serialize('wcmCalendar');
		vars = 'doWCM=showRepeatDates&'+vars;
		new Ajax.Request('/admin/ajax/ajax_date.php', {method:'post', postBody:vars, asynchronous:true, onSuccess:showRepeatingDates});
	}
}
function showRepeatingDates(t, json){
	$('repeat_dates').update(t.responseText);
	Element.show('repeat_dates')
}
function checkFullDay(evt){
	var elm=Event.element(evt);
	if(elm.checked){
		$('starth').disabled="disabled";
		$('startm').disabled="disabled";
		$('endh').disabled="disabled";
		$('endm').disabled="disabled";
	}else{
		$('starth').disabled=false;
		$('startm').disabled=false;
		$('endh').disabled=false;
		$('endm').disabled=false;
	}
}
function showRepeatBoxes(evt){
	var elm=Event.element(evt);
	for(var x=1;x<5;x++){
		$('reptype_'+x).hide();
	}
	$('reptype_'+elm.value).show();
}
function checkRepeat(evt){
	var elm=Event.element(evt);
	if(elm.checked){
		$('repetition_div').show();
	}else{
		$('repetition_div').hide();
	}
}
function toggleChildCategory(elm,sName, catid, evt){
	if($(sName+'_'+catid)){
		if(Element.visible(sName+'_ul_'+catid)){
			$(sName+'_ul_'+catid).hide();
			elm.src='/admin/objects/list_closed.png';
		}else{
			$(sName+'_ul_'+catid).show();
			elm.src='/admin/objects/list_open.png';
		}
	}
}
function saveCalendarEntry(calview){
	if(!checkTimeDiff()) return false;
	tinyMCE.execCommand('mceRemoveControl', false, 'event_text');
	var vars=Form.serialize('wcmCalendar');
	var cv='';
	if(typeof calendarview != 'undefined' && calendarview!=''){cv=calendarview;}
	if(typeof calview != 'undefined' && calview!=''){cv=calview;}
	vars='doWCM=saveCalendarEntry&calendarview='+cv+'&pageid='+pageId+'&'+vars;
	if(parseparms[calendarbox]){
		vars+='&parseparms='+Object.toJSON(parseparms[calendarbox]);
	}
	new Ajax.Request('/admin/ajax/ajax_date.php', {method:'post', postBody:vars, asynchronous:true, onSuccess:showSavedEntry});
	return false;
}
function checkTimeDiff(){
	var retval = true;
	/*Kontrollera så inte sluttid/datum är mindre än start*/
	if($('startdate').value > $('enddate').value){
		$('enddate').value = $('startdate').value;
		$('destinator_date_enddate').update($('destinator_date_startdate').innerHTML); 
		
		retval = false;
		//return false;
	}
	var std=parseInt($('startdate').value);
	var endd=parseInt($('enddate').value);
	var starth=parseInt($F('starth'));
	var endh=parseInt($F('endh'));
	var endm=parseInt($F('endm'));
	var startm=parseInt($F('startm'));
	if(std==endd){
		if(endh < starth || (endh==starth && endm < startm)){
			var nosel = true;
			$H($('endh').options).each(function(elm) {
				if(elm.value.value > starth && nosel) {
					elm.value.selected = true;
					nosel = false;
				}
				else {
					elm.value.selected = false;
				}
			});
			retval = false;
			//alert(lang('ENDESSSTART'));
			
			//return false;
		}
	}
	if(!retval) {alert(lang('ENDLESSSTART'));}
	return retval;
}
function showSavedEntry(t, json){
	if (t.responseJSON) {
		// There is an error. 
		alert(t.responseJSON.message);
	} else {
		if($('destinator_calendar')){
			$('destinator_calendar').remove();
		}
		if($('destinator_calendar_view')){
			$('destinator_calendar_view').replace(t.responseText);
		}else if($('destinator_calendar_view'+calendarbox)){
			$('destinator_calendar_view'+calendarbox).replace(t.responseText);
		}
		calendarbox='';
		fixCalendarAddInfo();
	Shadowbox.close();
	}
}
function changeViewDate(timest){
	var dt=new Date(timest*1000);
	var mn=dt.getMonth()+1;
	if(mn<10){mn='0'+mn;}
	var dy=dt.getDate();
	if(dy<10){dy='0'+dy;}	
	window.location.href='/'+pageId+'.php?dt='+dt.getFullYear()+'-'+mn+'-'+dy;
}
function gotoDateBySelector(){
	alert('Ska gå');
}
function deleteCalendarEntry(eventid,connectionType,connectionId,calview){
	var cv='';
	if(typeof calendarview != 'undefined' && calendarview!=''){cv=calendarview;}
	if(typeof calview != 'undefined' && calview!=''){cv=calview;}
	if(confirm(lang('CONFDEL'))){
		var vars='doWCM=deleteCalendarEntry&eventid='+eventid+'&calendarview='+cv+'&pageid='+pageId;
		if(connectionId!=null){
			vars +='&connectionid='+connectionId;
		}
		if(connectionType!=null){
			vars +='&connectiontype='+connectionType;
		}
		new Ajax.Request('/admin/ajax/ajax_date.php', {method:'post', postBody:vars, asynchronous:true, onSuccess:showSavedEntry});
	}
	cClick();
	return false;
}
var showWork=false;
function toggleCalendarNonWork(elm, evt){
	$$('tr.nonwork').each(function(elm, index){if(showWork){$(elm).setStyle({display:'none'});}else{$(elm).setStyle({display:'table-row'})}});
	$$('tr.booked').each(function(elm, index){$(elm).setStyle({display:'table-row'});});
	if(showWork){
		$(elm).update(lang('SHOWNONWORK'));
		showWork=false;
	}else{
		$(elm).update(lang('HIDE'));
		showWork=true;
	}
}
var btn=null;
function showCalendarEntry(entryid,elm, evt){
	Event.stop(evt);
	btn=elm;
	var vars='pageid='+pageId;
	if(entryid=='new'){
		vars='&doWCM=getEventForm';
	}else{
		vars='&doWCM=getEventForm&eventid='+entryid;
	}
	try{
		if(window.dt !== undefined){
			vars+='&dt='+dt;
		}
	}finally{
		new Ajax.Request('/admin/ajax/ajax_date.php', {method:'post', postBody:vars, asynchronous:true, onSuccess:showCalendarEntryForm});
		nd();
	}
}
var sb=null;
function showCalendarEntryForm(t){
	activated=false;
	
	//Element.insert(document.body,{bottom:t.responseText});
	var html=t.responseText;
	nd();
	cClick();
	Shadowbox.showAJAX(html);
	
	/*
	if($('destinator_calendar')){
		//Position.clone(btn, $('destinator_calendar'), {'offsetTop':17,'setWidth':false,'setHeight':false});
		Element.Center($('destinator_calendar'));
		//new Draggable('destinator_calendar',{handle:'handle'});
		new Draggable('destinator_calendar');
		//new Resizable('destinator_calendar',{zindex:1000,revert:false});
    }
    */
}

function switchCalendarTab(tab, evt){
	//elm=Event.findElement(evt, 'ul');
	//if(elm){
		$A($('destinator_calendar_tabs').getElementsByTagName('a')).each(
			function(link){
				var target=$(link).id.substring(0,($(link).id.length-4));
				if(target && target==tab){
					$($(link).parentNode).addClassName('active');	
					$($(link).parentNode).removeClassName('inactive');		
				}else{
					$($(link).parentNode).addClassName('inactive');
					$($(link).parentNode).removeClassName('active');
					$(target).hide();
				}
			}
		);
	//}
	$(tab).show();
	Event.stop(evt);
	return false;
}
var calendarbox='';
function showCreateCalendarEntry(tsDate, tsTimestamp,tsEndStamp,elm,connectionType,connectionId,evt){
	Event.stop(evt);
	//btn=elm;
	var dv=Event.findElement(evt,'div');
	if(dv && dv.id){
		calendarbox=dv.id.substring(24);
	}
	var vars='doWCM=getEventForm&pageid='+pageId;
	/*Kolla parser-taggar*/
	if(parseparms[calendarbox]){
		if(parseparms[calendarbox].cat){
			CalCatId=parseparms[calendarbox].cat;
		}	
	}
	if(CalCatID!=null){
		vars+='&CalCatID='+CalCatID;
	}
	if(tsTimestamp){
		vars+='&startts='+tsTimestamp;
		if(tsEndStamp!=0){
			vars+='&endts='+tsEndStamp;
		}else{
			vars+='&endts='+tsTimestamp;
		}		
	}else{
		vars+='&startdate='+tsDate+'&enddate='+tsDate;
	}
	try{
		if(window.dt !== undefined){
			vars+='&dt='+dt;
		}
	}finally{}
	if(connectionType){
		vars +='&connectiontype='+connectionType+'&connectionid='+connectionId;
	}
	new Ajax.Request('/admin/ajax/ajax_date.php', {method:'post', postBody:vars, asynchronous:true, onSuccess:showCalendarEntryForm});
}
function showCalendarSmall(entryid, elm, evt){
	var vars='pageid='+pageId;
	vars='&doWCM=getEventInfo&eventid='+entryid;
	new Ajax.Request('/admin/ajax/ajax_date.php', {method:'post', postBody:vars, asynchronous:true, onSuccess:displaySmallCalendar});
}
function displaySmallCalendar(t){
	return overlib(
		t.responseText, STICKY, CAPTION,lang('INFO'), CLOSETEXT,lang('CLOSE'),CLOSECLICK, EXCLUSIVE
	);
}
function setEndTime(evt){
	var elm=Event.element(evt);
	var stH=parseInt($F('starth'));
	var stM=parseInt($F('startm'));
	var endH=parseInt($F('endh'));
	var endM=parseInt($F('endm'));
	var duration =parseInt($F('duration')); //Tid i sekunder
	var durH=parseInt(duration/3600);
	var durM=(duration-(durH*3600))*60;
	for(var x=0;x<$('endh').length;x++){
		if($('endh').options[x].value==(durH+stH)){
			$('endh').options[x].selected=true;
		}else{
			$('endh').options[x].selected=false;
		}
	}
	for(var x=0;x<$('endm').length;x++){
		if($('endm').options[x].value==(durM+stM)){
			$('endm').options[x].selected=true;
		}else{
			$('endm').options[x].selected=false;
		}
	}
	
}
function setDuration(evt){
	var stH=parseInt($F('starth'));
	var stM=parseInt($F('startm'));
	var endH=parseInt($F('endh'));
	var endM=parseInt($F('endm'));
	var duration=((endH*3600)+(endM*60))-((stH*3600)+(stM*60));
	if(duration >=0){
		$('duration').value=duration;
	}else{
		checkTimeDiff();
		//alertSysMsg('ENDLESSSTART');
	}
}
function fixCalendarAddInfo(){
	$A($$('td.bookable')).each(
		function(elm){
			Event.observe(elm, 'mouseover', function(){return overlib(lang('DBLTOADDCAL'), CAPTION, lang('ADDCAL'), HAUTO,VAUTO,MOUSEOFF,CLOSETEXT,lang('CLOSE'),FGCLASS,'ol_help_fg',CAPTIONFONTCLASS,'ol_help_caption',BGCLASS,'ol_help_bg');});
			Event.observe(elm, 'mouseout', function(){return nd();});
		}
	);

	/**
	 * Ny kod för den nya veckovyn. / Marcus 
	 * Kolla att vi är i en vy som kan hantera nya events.  
	 */
	var calevents = $('destinator_calendar_events');
	if (calevents) {
		// IE workaround. An transparent bak-grund har problem med att klickas. Men det blev ganska snyggt. 
		calevents.setStyle({'background':'url(\'/objects/transp.gif\')'});
//		calevents.setStyle({'backgroundColor':'#fff'});
//		calevents.setOpacity(0.7);
		// disable selection if IE. 
		if (typeof $('destinator_calendar_view').onselectstart!="undefined") {
			$('destinator_calendar_view').onselectstart=function() {return false;};
		}
		calevents.observe('mousedown', CalendarDrag.onStart);
		/**
		 * Visa event info automatiskt. 
		 */
		$$('.event').each(function(elem) {
			elem.observe('mouseover', function(event){return overlib($('eventinfo_'+event.element().id.split('_')[1]).innerHTML, CAPTION, lang('INFO'), HAUTO,VAUTO,MOUSEOFF,CLOSETEXT,lang('CLOSE'),FGCLASS,'ol_help_fg',CAPTIONFONTCLASS,'ol_help_caption',BGCLASS,'ol_help_bg');});
			elem.observe('mouseout', function(){return nd();});
		});

		// Beroende på om vi är i bokningar eller inte ska vi stoppa det här eventet där det redan finns en bokning 
		var conType = $('destinator_calendar_connection_type').value;
		if (conType==1) {
			$A($$('.event')).invoke('observe', 'mousedown', function(e) {e.stop();});
		}
2	}	
	/**
	 *  slut på ny kod 
	 */
	
	var dragger=null;
	if($('calendar_week_view')!=null){
		dragger=$('calendar_week_view');
	}
	if($('destinator_resource_overview')!=null){
		dragger=$('destinator_resource_overview');
	}	
	if(dragger!=null){
		Event.observe(dragger, 'mousedown', startCalendarDrag);
		Event.observe(dragger, 'mouseup', endCalendarDrag);
		Event.observe(dragger, 'mouseover', markCalendarDrag);
	}
}

function fixCalenderIE6() {
	if (Prototype.Browser.IE) {
		
	}
}
Event.observe(window, 'load', fixCalenderIE6);

/*
 * Kollar om element eller nåt ovanstående element har klassnamnet className
 * I så fall returneras det elementet
 */
function findParentElementWithClassName(element, className) {
	do {
		if ($(element).hasClassName(className)) {
			return element;
		}
		element = $(element).up();
	} while(element.hasClassName);
	return false;
}
function findChildElementWithClassName(element, className) {
	do {
		if ($(element).hasClassName(className)) {
			return element;
		}
		element = $(element).down();
	} while(element.hasClassName);
	return false;
}

/**
 * Statisk class för att boka tider med drag.
 */
var CalendarDrag = {
	startPosition: null, 
	calStart: 0, 
	calEnd: 0, 
	maxX: 0, 
	maxY: 0, 
	timer: 0,
	minDragTime: 100, 
	eventColor: null,
	nextUniqueId: 0, 
	selectionBox: null,
	STATUS_BYPASS: 0,
	STATUS_OK: 1, 
	STATUS_UNBOOKABLE: 2, 
	STATUS_DOUBLEBOOK: 3,
	
	
	/**
	 * Anropas när vi trycker i ett .destinator_calendar_events element
	 */
	onStart: function(event) {
		if (event.isLeftClick() ) { 
			/* Kolla om vi klickade på en händelse för att kunna passa vidare ett klick-event. */
			CalendarDrag.timer = new Date();
			if (!findParentElementWithClassName(event.element(), 'event')) {
				event.stop();
			} 
			calendarview='week';
			/* Kolla att det finns en kalender dag under muspekaren. */ 
			var dayElem = findParentElementWithClassName(event.element(), 'destinator_calendar_day');
			if (dayElem) {
				Event.observe(document, 'mousemove', CalendarDrag.onDrag);
				Event.observe(document, 'mouseup', CalendarDrag.onStop);
				
				/* Id'et för element med klassen destinator_calendar_day ska vara 'destinator_calendar_dayX_tsStart_tsEnd' */
				var dayElemIdParts = dayElem.id.split('_');
				var tsStart = parseInt(dayElemIdParts[3]);
				var tsEnd = parseInt(dayElemIdParts[4]);
				var pos = $('destinator_calendar_events').cumulativeOffset();
				var dim = $('destinator_calendar_events').getDimensions();
				CalendarDrag.calStart = parseInt(tsStart+ ((tsEnd-tsStart) * ((event.pointerY()-pos.top) / dim.height) ))-60; 	
		
				CalendarDrag.minX = pos.left;
				CalendarDrag.minY = pos.top;
				CalendarDrag.maxX = pos.left + dim.width;
				CalendarDrag.maxY = pos.top + dim.height;
				
				CalendarDrag.startPosition = {'x': event.pointerX(), 'y': event.pointerY() };
				CalendarDrag.selectionBox = new Element('div', {'id': 'selectionbox'+CalendarDrag.nextUniqueId++, 'class': 'selectionbox'})
					.setStyle({'top': CalendarDrag.startPosition.y+'px', 'left': CalendarDrag.startPosition.x+'px'});
				document.body.appendChild(CalendarDrag.selectionBox);
			}
		}
	}, 
	/**
	 * mousemove
	 */
	onDrag: function(event) {
		var style = {};
		var x = event.pointerX();
		var y = event.pointerY();
		x = x > CalendarDrag.maxX ? CalendarDrag.maxX : x < CalendarDrag.minX ? CalendarDrag.minX : x;
		y = y > CalendarDrag.maxY ? CalendarDrag.maxY : y < CalendarDrag.minY ? CalendarDrag.minY : y;
		var width = x - CalendarDrag.startPosition.x;
		var height = y - CalendarDrag.startPosition.y;
		/*
		 * kod för att tillåta att dra bakåt. Avstängt, för den räknar fel på tiden då. 
		if (width < 0) {
			width = -width;
			style.left = x+'px';
		}
		if (height < 0) {
			height = -height;
			style.top = y+'px';
		}
		*/
		width = width < 0 ? 0 : width;
		height = height < 0 ? 0 : height;
		style.width = width+'px'
		style.height = height+'px'
		CalendarDrag.selectionBox.setStyle(style);
		event.stop();
	},
	/**
	 * mouseup
	 */
	onStop: function(event) {	
		Event.stopObserving(document, 'mousemove', CalendarDrag.onDrag);
		Event.stopObserving(document, 'mouseup', CalendarDrag.onStop);
		var timer = new Date();
		var conType = $('destinator_calendar_connection_type').value;
		var conId=0;
		var status = CalendarDrag.STATUS_BYPASS;
		// Kolla att det inte va ett klick  på eventet innan vi går vidare. 
		if ((timer.getTime() - CalendarDrag.timer.getTime()) > CalendarDrag.minDragTime && Math.abs(event.pointerX()-CalendarDrag.startPosition.x)>1 && Math.abs(event.pointerY()-CalendarDrag.startPosition.y)>1 ) { 
			status = CalendarDrag.STATUS_OK;
			var days = $$('.destinator_calendar_day');
			var dayElem = $A(days)[0];
			$$('.destinator_calendar_day').each(function(elem) {
				var pos = elem.cumulativeOffset();
				if (event.pointerX() > pos.left) 
					dayElem = elem;							
			});
						
			var dayElemIdParts = dayElem.id.split('_');
			var tsStart = parseInt(dayElemIdParts[3]);
			var tsEnd = parseInt(dayElemIdParts[4]);
			conId = parseInt(dayElemIdParts[5]);
			var selboxPos = CalendarDrag.selectionBox.cumulativeOffset();
			var selboxDim = CalendarDrag.selectionBox.getDimensions();
			var top = $('destinator_calendar_events').cumulativeOffset().top;
			var height = $('destinator_calendar_events').getHeight();

			CalendarDrag.calEnd = parseInt(Math.floor((tsStart+ ((tsEnd-tsStart) * (((selboxPos.top+selboxDim.height-1)-top) / height) ))))-60; 				

			//Kvantisera med 5 minuter för användarvänlighetens skull. 
			CalendarDrag.calStart = quantisizeTime(CalendarDrag.calStart, 60*5);
			CalendarDrag.calEnd = quantisizeTime(CalendarDrag.calEnd, 60*5);
			
			// Kolla så vi inte försöker sluta över en obokbar tid. 
			$$('.event_blocker').each(function(elm) {
				if (pointInElement(elm, selboxPos.left+selboxDim.width-2, selboxPos.top+selboxDim.height-1)) {
//					new Effect.Highlight(elm, {'duration': 1, 'startcolor': '#f00', 'endcolor': elm.getStyle('backgroundColor')});
					new Effect.Highlight(elm, {'duration': 1, 'startcolor': '#aaaaaa'});
					status=CalendarDrag.STATUS_UNBOOKABLE;
				}
			});
			
			// Bokningar. Gör en koll så att vi inte försöker skapa en bokning över en annan. 
			if (conType == 1) {
//				var conId = findChildElementWithClassName(dayElem, 'destinator_calendar_connection_id').value;

				$$('.event').each(function(elm) {
					var parts = elm.id.split('_');
					var start = parts[2];
					var end = parts[3];
					var evtConId = parts[4];
					if (evtConId == conId) {
						if ((start > CalendarDrag.calStart && start < CalendarDrag.calEnd) || (end < CalendarDrag.calEnd && end > CalendarDrag.calStart)) {
							status = CalendarDrag.STATUS_DOUBLEBOOK;
							if (Prototype.Browser.IE) {
								new Effect.Highlight(elm, {'duration': 1, 'startcolor': '#ffffff'});
							}else {
								var flashElem = new Element('div').setStyle({'backgroundColor':'#fff', 'position': 'absolute'}).clonePosition(elm).setOpacity(0.7);
								document.body.appendChild(flashElem);
								new Effect.Fade(flashElem, {'duration':1,'afterFinish': function(obj) {
									obj.element.parentNode.removeChild(obj.element);
								}});
							}					
						}
					}	
				});
				// ...
			}


		}	
		var msg='';
		switch(status) {
			case CalendarDrag.STATUS_BYPASS:
				document.body.removeChild(CalendarDrag.selectionBox);
				break;
			case CalendarDrag.STATUS_OK: 
				if(CalendarDrag.calStart < CalendarDrag.calEnd){
					showCreateCalendarEntry(null, CalendarDrag.calStart,CalendarDrag.calEnd,null,conType,conId, event);
				}else{
					showCreateCalendarEntry(null, CalendarDrag.calEnd,CalendarDrag.calStart,null,conType,conId, event);
				}
				document.body.removeChild(CalendarDrag.selectionBox);
				break;
			case CalendarDrag.STATUS_UNBOOKABLE:
				msg = 'UNBOOKABLE';
			case CalendarDrag.STATUS_DOUBLEBOOK:
				if (!msg) msg= 'DBLBOOK';
				var selboxPos = CalendarDrag.selectionBox.cumulativeOffset();
				
				var msgElem = new Element('div', {'class': 'selectionbox_error'}).update('<p>'+lang(msg)+'</p>').setStyle({'left': event.pointerX()-20+'px', 'top':event.pointerY()-40+'px'});
				//.setStyle({'left': selboxPos.left, 'top': selboxPos.top});
				document.body.appendChild(msgElem);
				$A([msgElem, CalendarDrag.selectionBox]).each(function(elem) {
					new Effect.Fade(elem, 'fade', {'delay': 1, 'duration': 1, 'afterFinish': function(obj) {
						obj.element.remove();
					}});	
				});
				break;
		}
	}
}

function pointInElement(elem, x, y) {
	var result = false;
	var pos = elem.cumulativeOffset();
	var dim = elem.getDimensions();
	
	if (x >= pos.left && y >= pos.top && x <= pos.left+dim.width && y <= pos.top + dim.height) {
		result = true;
	}
	return result;	
}


function quantisizeTime(time, grid) {
	return parseInt(Math.round((time / grid) * grid));
}






var calStart=0;
var calEnd=0;
var hasStartCalDrag=false;
var calDragged=[];
function startCalendarDrag(e){
	var elm=Event.element(e);
	
	if(elm && elm.id && elm.nodeName=='TD'){
		if(!elm.hasClassName('blocked')){
			var calId=elm.id.split('_');
			calStart=calId[1];
			calDragged[calDragged.length]=elm;
			$(elm).addClassName('drag');
			hasStartCalDrag=true;
		}
		Event.stop(e);
	}
	
}
function markCalendarDrag(e){
	var elm=Event.element(e);
	if(elm && elm.id && elm.nodeName=='TD' && hasStartCalDrag){
		if(!elm.hasClassName('blocked')){
			var calId=elm.id.split('_');
			var dt=new Date(calId[1]*1000);
			var st=new Date(calId[1]*1000);
			if(dt.getDate() == st.getDate()){
				calDragged[calDragged.length]=elm;
				$(elm).addClassName('drag');
			}
		}
		Event.stop(e);
	}
}
function endCalendarDrag(e){
	var elm=Event.findElement(e, 'td');
	if(elm && elm.id && elm.nodeName=='TD' && hasStartCalDrag){
		if(!elm.hasClassName('blocked')){
			var calId=elm.id.split('_');		
			var dt=new Date(calId[1]*1000);
			var st=new Date(calId[1]*1000);
			if(dt.getDate() == st.getDate()){		
				calEnd=calId[1];
				Event.stop(e);
				if(calStart < calEnd){
					showCreateCalendarEntry(null, calStart,calEnd,null,calId[2],calId[3], e);
				}else{
					showCreateCalendarEntry(null, calEnd,calStart,null,calId[2],calId[3], e);
				}
			}
		}
	}
	$A(calDragged).each(function(elm){$(elm).removeClassName('drag');});
	hasStartCalDrag=false;
}
Event.observe(window, 'load', fixCalendarAddInfo);



