/*------------------------------------*
 *                                    *
 * my effects. Ruud Prein 21 okt 2005 *
 *                                    *
 * Fade element and disappear         *
 *                                    *
 *------------------------------------*/
Effect.MyFade = function(element, options) {
  element = $(element);
  this.options = options || {};
  var column = 'left';
  var pNode = element.parentNode;
  if (pNode.id.indexOf('right')>0) column='right';
  var oldOpacity = Element.getInlineOpacity(element);
  
  var newOptions = Object.extend({
      from: Element.getOpacity(element) || 1.0,
      to:   0.0,
      afterFinishInternal: function(effect,options) 
        { if (effect.options.to == 0) {
            Element.remove(effect.element);
            Element.setInlineOpacity(effect.element, oldOpacity);
          }
          if (effect.options.onChange) effect.options.onChange(column, pNode.className);
        }
      }, arguments[1] || {});
  return new Effect.Opacity(element, newOptions);
}
// slide right and appear
Effect.SlideRight = function(element) {
  element = $(element);
  var addLink = $('addlink');
  var elementDimensions = Element.getDimensions(element);
  
  var newOptions = Object.extend({ scaleContent: false, 
      scaleY: false,
      scaleFrom: 0,
      scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
      restoreAfterFinish: true,
      afterSetup: function(effect) {
        Element.makeClipping(effect.element);
        Element.show(effect.element);
      },  
      afterFinishInternal: function(effect) {
        Element.undoClipping(effect.element);
	addLink.style.display="none";
      }
    }, arguments[1] || {});
    return new Effect.Scale(element, 100, newOptions);
}
// slide left effect and disappear
Effect.SlideLeft = function(element) {
  element = $(element);
  var addLink = $('addlink');
  var elementDimensions = Element.getDimensions(element);
  
  var newOptions = Object.extend({ scaleContent: false, 
      scaleY: false,
      scaleFrom: 100,
      scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
      restoreAfterFinish: true,
      afterSetup: function(effect) {
        Element.makeClipping(effect.element);
      },  
      afterFinishInternal: function(effect) {
        Element.hide(effect.element);
        Element.undoClipping(effect.element);
	addLink.style.display="block";
      }
    }, arguments[1] || {});
  return new Effect.Scale(element, 1, newOptions);
}
/*---------------------*
 *                     *
 * Style related stuff *
 *                     *
 *---------------------*/
global=true;
var myrules = {
		
	'ul#sortableproject-list' : function(el){
		el.onmouseup = function () {
			
			var pars = 'role=roleposrel&children=sortableproject-list[]&parent='+ el.className + "&" + Sortable.serialize('sortableproject-list');
			new Ajax.Updater('showError', '/ajax/custom/projecttypeprojects.jsp', {parameters: pars, onFailure: showError});
		
		},
		
		Sortable.create(el, {
		onChange: function() {
			var pars = '';
			new Ajax.Updater('showError', '/ajax/custom/clean.jsp', {parameters: pars, onFailure: showError});
		
		}
		});
	}

};
Behaviour.register(myrules);
// Ajax ERROR message
function showError(e) {
	alert("FYI, your changes are not saved");
}

