var Cookie={
get:function(name)
           {
             var start=document.cookie.indexOf(name+"=");
             var len=start+name.length+1;
             if ((!start)&&(name!=document.cookie.substring(0,name.length)))
               {
                 return null;
               }
             if (start==-1)
               return null;
             var end=document.cookie.indexOf(";",len);
             if (end==-1)
               end=document.cookie.length;
             return unescape(document.cookie.substring(len,end));
           },
set:function(name,value)
           {
             var today=new Date();
             today.setTime(today.getTime());
             var expires_date=new Date(today.getTime()+31536000000);
             document.cookie=name+"="+escape(value)+";expires="+expires_date.toGMTString();
           },
del:function(name){if(getCookie(name))document.cookie=name+"=;expires=Thu, 01-Jan-1970 00:00:01 GMT";}
}

var DdxApp = Class.create ({
  initialize: function (icon, title, shortname)
    {
      this.icon      = icon;
      this.title     = title;
      this.shortname = shortname;
      this.win       = false;
      this.modal     = false;
    
      var content = Builder.node ('span',
                                  {onmouseover:"$('label').innerHTML='" + this.title + "'",
                                   onmouseout :"$('label').innerHTML=''",
                                   id: shortname + '_link',className:'link'},
                               Builder.node ('img',
                                             {src:'desktop/icons_clear/' + this.icon + '.png'}));
      $('dock').appendChild (content);
      Event.observe($(shortname + '_link'), 'click',
                    this.display.bindAsEventListener(this), false);
    },
  display: function (e)
    {
      e&&Event.stop(e);
      if (this.win == false)
        {
          var vwidth = 400;
          var vheight = 300;
          var vleft = Math.floor(Math.random() * 500);
          var vtop =  Math.floor(Math.random() * 500);
          if (this.modal)
            this.win = new UI.Window ({id: this.shortname + "_id",
                                   width:vwidth,height:vheight,left:vleft,top:vtop,
                                   title:this.title, draggable:false,
                                   minimizable:false,maximizable:false});
          else
            this.win = new UI.Window ({id: this.shortname + "_id",
                                   width:vwidth,height:vheight,left:vleft,top:vtop,
                                   title:this.title, shadow:true,
                                   showEffect:Element.show, theme:"bluelighting"}
                                   );
          if (this.modal)
            this.win.showCenter (true);
          else
            this.win.show (false);
          this.fillContent();
        }
      else
        {
          if (this.modal)
            this.win.showCenter (true);
          else
            this.win.show (false);
        }
      this.win.activate ();
      this.shown = true;
    },
  fillContent: function ()
    {
      var content = '<h2>Test</h2><p>Yo !</p>';
      this.win.getContent().innerHTML = content;
    },
  postInit: function ()
    {
/*      var cookie = Cookie.get (this.shortname + "_cookie");
      if (cookie)
        {
          var slices = cookie.split(',');
          if (slices[0] == "shown")
            this.display();
        }*/
    }
});

var DdxMenubar = Class.create ({
  initialize: function ()
    {
      $$('.menubar')[0].insert ('<div class="bd"><ul class="first-of-type"> <li class="menubaritem first-of-type"> <a class="menubaritemlabel" href="#file">File</a> <div id="file" class="menu"> <div class="bd"> <ul> <li class="menuitem"> <a class="menuitemlabel" href="#">New File <em class="helptext">Ctrl + N</em></a> </li> <li class="menuitem"> <a class="menuitemlabel" href="#">New Folder</a> </li> <li class="menuitem"> <a class="menuitemlabel" href="#open">Open <em class="helptext">Ctrl + O</em></a> <div id="open" class="menu"> <div class="bd"> <ul class="first-of-type"> <li class="menuitem"> <a class="menuitemlabel" href="#">Application 1</a> </li> <li class="menuitem"> <a class="menuitemlabel" href="#">Application 2</a> </li> <li class="menuitem"> <a class="menuitemlabel" href="#">Application 3</a> </li> <li class="menuitem"> <a class="menuitemlabel" href="#">Application 4</a> </li> </ul>            </div> </div>                    </li> <li class="menuitem"> <a class="menuitemlabel" href="#">Print <em class="helptext">Ctrl + P</em></a> </li> </ul> </div> </div>      </li> <li class="menubaritem first-of-type"><a class="menubaritemlabel" href="#"edit>Edit</a> <div id="pim" class="menu"> <div class="bd"> <ul class="first-of-type"> <li class="menuitem"> <a class="menuitemlabel" href="#"> Undo<em class="helptext">Ctrl + Z</em></a> </li> <li class="menuitem"> <a class="menuitemlabel" href="#"> Redo<em class="helptext">Ctrl + Y</em></a> </li> </ul>            <ul> <li class="menuitem"> <a class="menuitemlabel" href="#"> Cut<em class="helptext">Ctrl + X</em></a> </li> <li class="menuitem"> <a class="menuitemlabel" href="#"> Copy<em class="helptext">Ctrl + C</em></a> </li> <li class="menuitem"> <a class="menuitemlabel" href="#"> Paste<em class="helptext">Ctrl + V</em></a> </li> <li class="menuitem"> <a class="menuitemlabel" href="#"> Delete<em class="helptext">Del</em></a> </li> </ul>            <ul> <li class="menuitem"> <a class="menuitemlabel" href="#"> Select All<em class="helptext">Ctrl + A</em></a> </li> </ul>            <ul> <li class="menuitem"> <a class="menuitemlabel" href="#"> Find<em class="helptext">Ctrl + F</em></a> </li> <li class="menuitem"> <a class="menuitemlabel" href="#"> Find Again<em class="helptext">Ctrl + G</em></a> </li> </ul>            </div> </div>                      </li> </ul></div>')
    }
});

/*********************/
/* The DdxLib object */
/*********************/
var DdxLib = {
  Version: '0.0.7',
  UserId: '',
  init: function ()
  {
    /* Creating the interface */
    $('nojs').hide();
    $($$('body')[0]).appendChild(Builder.node('div',{className:"menubar"}))
    $($$('body')[0]).appendChild(Builder.node('div',{id:"dock"}))
    $($$('body')[0]).appendChild(Builder.node('div',{id:"label"}))
    new DdxMenubar();

    this.apps.each(function(init){init()});
  },
  registerApp: function(init) { this.apps.push(init); },
  registerSettings:function (setting) { this.settings.push(setting); }
}
DdxLib.apps = new Array();
DdxLib.settings = new Array();

$w('wallpaper clock links info prefs').each(function(include)
  {
    Scriptaculous.require('bin/apps/'+include+'.js')
  });
Event.observe(window, 'load', DdxLib.init.bindAsEventListener(DdxLib), false);

