var SteelArrowSerialize = function (element) {
    element = $(element);
    var options = Object.extend(Sortable.options(element), arguments[1] || {});
    var name = encodeURIComponent(arguments[1] && arguments[1].name ? arguments[1].name : element.id);
    if (options.tree) {
        return Sortable.tree(element, arguments[1]).children.map(function (item) {return [encodeURIComponent(item.id)].concat(item.children.map(arguments.callee));}).flatten().join(",");
    } else {
        return Sortable.sequence(element, arguments[1]).map(function (item) {return encodeURIComponent(item);}).join(",");
    }
}
         
var RedoLineColours = function (lists) {
   var lists = lists.split(',');
   lists.each(function(list) {
      var listitem = list.split(':');
      var opts = $(listitem[0]).childElements('li');
      
      var count = 0;
      opts.each(function(item) {
         count++;
         if (count % 2 == 1) 
            item.style.backgroundColor = listitem[1];
         else
            item.style.backgroundColor = '';
      });
   });
}

var showDivAt = function (element, place, effect) {
   switch(place) {
      case "center":
         var left = (document.viewport.getWidth() / 2) - ($(element).getWidth() / 2);
         $(element).style.left = left+'px';
         $(element).style.top  = 300+'px';
      break;
   }
   
   var queue = Effect.Queues.get('whatsnew');
   queue.each(function(effect) { effect.cancel(); });
   
   switch(effect) {
      case "appear":
         $(element).appear( {queue:{position:'end',scope:'whatsnew'}});
      break;
      case "grow":
         Effect.Grow(element, {queue:{position:'end',scope:'whatsnew'}});
      break;
      case "slidedown":
         Effect.SlideDown(element, {queue:{position:'end',scope:'whatsnew'}});
      break;
      default:
         $(element).show();
      break;
   }
}
var hideDiv = function (element, effect) {
   var queue = Effect.Queues.get('whatsnew');
   queue.each(function(effect) { effect.cancel(); });
   
   if ($(element).visible())
      switch(effect) {
         case "fade":
            $(element).fade( {queue:{position:'end',scope:'whatsnew'}});
         break;
         case "puff":
            Effect.Puff(element, {queue:{position:'end',scope:'whatsnew'}});
         break;
         case "dropout":
            Effect.DropOut(element, {queue:{position:'end',scope:'whatsnew'}});
         break;
         case "fold":
            Effect.Fold(element, {queue:{position:'end',scope:'whatsnew'}});
         break;
         case "squish":
            Effect.Squish(element, {queue:{position:'end',scope:'whatsnew'}});
         break;
         default:
            $(element).hide();
         break;
      }
}

$(function() {
   $("ul.sf-menu").superfish({pathClass:"active"}).find('ul');
   $('li a.active').parents().children('a').addClass('active');  // select menu items up the chain
   $("a.zoom").fancybox({'overlayOpacity':'0.33','overlayColor':'#000','padding':'0'});
   $('.fancybox').fancybox();
   window.focus();  // bring this browser into focus
});

