//###########################################################
// Functions used by CBB2E.I00030 calendar application.
//###########################################################
  jQuery.noConflict();

/****************************************************************/
//   Init at document ready. 
/****************************************************************/	
jQuery(document).ready(function() {
   setSortable();
   setUlSize();	
}); 
/****************************************************************/
//   Set sortable list for drag-drop function
/****************************************************************/	
function setSortable() {
  
  jQuery('.sortlist').sortable({
      connectWith: '.connectedSortable',
	  cursor: 'move',	
      handle: '.drag-handle ',	
	  olerance: 'pointer',
	  placeholder: 'drop-place',
 
      start: function() {
		 jQuery('#errortext1').fadeOut(1000);
      },		
	  receive: function(event, ui) { 
			var tar = jQuery(event.target);
			var item0 = jQuery(ui.item);
			//get from date and from order (from item being dragged) 
			var itemid = item0.attr('id'); 
			var strs = itemid.split('-');
			var order = strs[0].substring(1);
			var fromDate = strs[1];
			//get  To date 
			var toid = this.id;
            var itemHt = item0.height();	
			// Adjust ul height for FF	 
			adjustUlHeight(itemHt, this);		
			
			//SET ONE-STEP MAINTAINER CALL:
			var app = "CBB2E.M00035s?one_step=1&action_mode=UUR&"
			var url = app + "ORDNO=" + order + "&SHPDAT=" + toid;
			//fire Ajax update
			jQuery.ajax({ url: url, dataType: "html",
				success: function(data, textStatus) {	
				    var fmtdate = formatDate(toid);
					var appmsg = "Order " + order + " has been re-assigned to ship on " + fmtdate +".";
					dspMsg(appmsg, event);
					
				},
				error: function(XMLHttpRequest, textStatus, errorThrown) {
					var errmsg = "Error happened during Ajax request: ";
					errmsg += XMLHttpRequest.responseText;
					jQuery('#errortext1').fadeIn(errmsg );   
				}	 
			});	 
        }
	}).disableSelection();
  
}
/****************************************************************/
//  Display message after Ajax is done.
/****************************************************************/	
function dspMsg(appmsg, event) {
  var msg = '<span id=appmsg><img src="/mrcjava/image/check.png"> <strong>Database updated successfully. </strong>';
  msg += appmsg + '</span>';
  var msgdiv = jQuery(msg);
  // jQuery('body').append(msgdiv);
  // jQuery('#appmsg').fadeIn(1000);
  jQuery('#errortext1').fadeIn(1000).html(msgdiv);
}
/****************************************************************/
//  Set UL list size for easy drop. 
/****************************************************************/	
function setUlSize() {
   jQuery('.data-row').each(function() {
	   var ht = jQuery(this).height(); //height of the TR row
	   var uls = jQuery(this).find('ul').each(function() {
	      jQuery(this).height(ht-28); //force a height of the row
	   });
   });
}

function setDragDrop() {
   jQuery('.sortlist li').draggable({
		handle: '.drag-handle ',	
		revert: 'invalid', // when not dropped, the item will revert back to its initial position
		//helper: 'clone',
		cursor: 'move'
	});
	
	jQuery('td.cal_day').droppable({
		accept: '.sortlist li',
		activeClass: 'ui-state-highlight',
		drop: function(ev, ui) {
			//deleteImage(ui.draggable);
		}
	});
}

/****************************************************************/
//   Adjust ul list height for Firefox on Ajax success
/****************************************************************/
function adjustUlHeight(itemHt, thisul) {
    if(jQuery.browser.msie){ 
	   return;
	}
	var ulht0 = jQuery(thisul).height();
	var liNum = jQuery(thisul).find('li').size(); //number of li after receive
	var slots = ulht0/itemHt; //number of slot in there
	if ( (slots - liNum) > 1) {
	    return; // no need to bump up size
	}
	jQuery(thisul).height(ulht0 + itemHt + 1);
	//jQuery('#errortext1'). html(ulht0 + ",  " +  itemHt + ",  " + ulht0/itemHt + ",  " + jQuery(thisul).find('li').size());
}
/****************************************************************/
//   Initiallize Select menu exapnd/collapse
/****************************************************************/
function formatDate(adate) {
    if (!adate) return;
	if (adate.length == 7) {
	   var fmtdate = adate.substring(0,1) + "/" + adate.substring(1,3) + "/" + adate.substring(3);
	   return fmtdate;
	}
	if (adate.length == 8) {
	   var fmtdate = adate.substring(0,2) + "/" + adate.substring(2,4) + "/" + adate.substring(4);
	   return fmtdate;
	}
}