
$(document).ready(function(){
   window.__Toolbar =  {
   
      init: function()
      {
         this.tooldiv = document.getElementById('__toolbar');

			if (!this.tooldiv) return false;
			
         //document.body.insertBefore(this.tooldiv, document.body.firstChild);
         
         document.body.style.marginTop = '36px';

         this.el = {
            
            dialog: $('#__dialogbar'),
            dialogopen: $('#__dialogcontent'),
            dialogclose: $('#__dialogcontent2'),
            overlay: $('#__overlay'),
            toolbar: $('#__toolbarMenu'),
            edit: $('#__edit'),
            info: $('#__Toolbar_info')
         }
         
         this.currentEdit = '';
         this.el.overlay.bind('mouseout', function(){__Toolbar.el.overlay.css('display', 'none')} )
         this.el.overlay.bind('click', __Toolbar.startEdit )

      },

      pageid: function(value)
      {
         if (typeof value != 'undefined') this._pageid = value;
         if (typeof this._pageid == 'undefined') { var arr = document.location.href.split('/'); var pageid = arr[arr.length-1]; }
         return this._pageid;
      },
      
      updateStatus: function (value)
      {
         //this.el.status[0].innerHTML = value;
         //this.el.status.animate({"top":"36px"}, {"easing":"swing", "duration":200});
         setTimeout(this.hideStatusbar, 3000);
      },

      loadDialog: function(data)
      {
         this.el.dialog[0].innerHTML = data;
      },

      hideStatusbar: function()
      {
         __Toolbar.el.status.animate({"top":"25px"}, {"easing":"swing", "duration":200});
      },

      findNodes: function(parent, simpledata)
      {
         for(var i=0;parent.childNodes.length>i;i++)
         {
            if ((parent.childNodes[i].attributes!==null) && (parent.childNodes[i].attributes['simpledit']!==undefined))
            {
               //deze node moeten we hebben

               //custom getvalue functie gebruiken?
               if (parent.childNodes[i].attributes['getvalue']!==undefined)
               {
                  eval('myfunction = function(){'+parent.childNodes[i].attributes['getvalue'].nodeValue+'}');
                  simpledata[parent.childNodes[i].id.substr(10)] = myfunction.apply(parent.childNodes[i]);
               }
               else //anders gewoon value ophalen
               {
                  simpledata[parent.childNodes[i].id.substr(10)] = parent.childNodes[i].value;
               }
            }

            if (parent.childNodes[i].childNodes.length!=0)
            {
               this.findNodes(parent.childNodes[i], simpledata);
            }
         }
      },

      showDialog: function(objectname, value, objectid, optional)
      {
         $("html").animate({ scrollTop: 0 }, "fast"); 
         this.el.dialogclose.html("");
         if (!optional) optional = {r:Math.random()};
         
         this.el.dialogopen.load("/page/dialog/"+this.pageid()+"/"+objectname+"/"+value+"/"+objectid, optional, this.dialogSlideDown);
      },

      dialogSlideDown: function()
      {
         __Toolbar.el.dialog.animate({"top":"36px"}, {"easing":"swing", "duration":200});
      },

      closeDialog: function()
      {
         this.el.dialog.animate({"top":"-164px"}, {"easing":"swing", "duration":200});
         this.stopEdit();
      },


      swapDialog : function()
      {
         var tmp = this.el.dialogclose;
         this.el.dialogclose = this.el.dialogopen;
         this.el.dialogopen = tmp;
      },

      nextDialog: function(objectname, value, objectid, optional)
      {
         this.swapDialog();
         if (!optional) optional = {r:Math.random()};
         this.el.dialogopen.load("/page/dialog/"+this.pageid()+"/"+objectname+"/"+value+"/"+objectid, optional, this.animateNextDialog);

      },
      
      cleanup: function()
      {
         __Toolbar.el.dialogopen.html("");
         __Toolbar.el.dialogclose.html("");
      },

      backDialog: function(objectname, value, objectid, optional)
      {
         this.swapDialog();
         if (!optional) optional = {r:Math.random()};
         this.el.dialogopen.load("/page/dialog/"+this.pageid()+"/"+objectname+"/"+value+"/"+objectid, optional, this.animateBackDialog);
      },

      animateBackDialog: function ()
      {
         __Toolbar.el.dialogclose.animate({"left":"1280px"}, {easing:"swing", duration:200});
         __Toolbar.el.dialogopen.css({left:"-1280px"});
         __Toolbar.el.dialogopen.animate({"left":"0px"}, {easing:"swing", duration:200});
      },

      animateNextDialog: function ()
      {
         __Toolbar.el.dialogclose.animate({"left":"-1280px"}, {easing:"swing", duration:200});
         __Toolbar.el.dialogopen.css({left:"1280px"});
         __Toolbar.el.dialogopen.animate({"left":"0px"}, {easing:"swing", duration:200});
      },

      saveToolbar: function(id)
      {
         
         this.updateStatus('bezig met opslaan...');
         var simpledata = new Object();
         this.findNodes(document.body, simpledata);

         $.ajax({
            type: 'POST',
            cache: false,
            url: '/page/xsave/'+id,
            data: simpledata,
            success: function() {
               var btn = document.getElementById('toolbarsavebtn');
               __Toolbar.updateStatus('pagina opgeslagen!');
            }
         })
      },
      
      renderermouseover: function(event)
      {

         if (event.type == "mouseover")
         {
            var o = $(this);
            __Toolbar.currentEdit = this;
            __Toolbar.el.overlay.css({
               display: 'block',
               width: this.offsetWidth,
               height: this.offsetHeight,
               top: o.offset().top,
               left: o.offset().left
            });  
         }
      },
      
      updateRenderer: function(renderer, objectid)
      {
         var objectname = 'simpledit-'+renderer+'-'+objectid;
         $('#'+objectname).load("/page/dialog/"+__Toolbar.pageid()+"/"+renderer+"/view/"+objectid, {r:Math.random()});
      },
      
      startEdit: function()
      {        
         __Toolbar.closeDialog();
         var renderid = ($(__Toolbar.currentEdit)[0].id);
         
         if (renderid=='') var renderid = $(__Toolbar.currentEdit).children('.identifier')[0].id;
         
         __Toolbar.el.edit.load("/page/modal/" + __Toolbar.pageid() + "/" + renderid, {r:Math.random()});
         __Toolbar.el.edit.css({
            display: 'block',
            width: this.offsetWidth+2,
            height: this.offsetHeight+2,
            top: this.offsetTop-1,
            left: this.offsetLeft-1
         });      
      },
      
      stopEdit: function()
      {
         __Toolbar.el.edit.html("");
         __Toolbar.el.edit.css('display', 'none');
         __Toolbar.el.info.html("");
      },
      
      savemodal: function(config, value, options)
      {
         data = {data:value};
         if (options) $.extend(data, options);
         $.ajax({
            type: 'POST',
            cache: false,
            url: '/page/xsavemodal/'+__Toolbar.pageid()+'/'+config,
            data: data,
            updatecontent: config.substr(12, config.length-12),
            success: __Toolbar.updatemodal
         })
      },
      
      updatemodal: function(value)
      {
         __Toolbar.stopEdit();
         
         //preserve identify
         var identifier = $('#simpledit-'+this.updatecontent);
         
         if (identifier[0].className.search("identifier")==-1)
         {
            identifier.html(value);
         }
         else
         {
            var updateelement = identifier.parent();
            updateelement.html(value);
            updateelement.append(identifier);
         }         
      },
      
      duplicate_keydown: function(o, t)
      {
         var val = o.val();
         val = val.replace(/ /g, "_");
         t.val(val);
      },
      
      logout: function()
      {
      
         $.ajax({
            type: 'POST',
            cache: false,
            url: '/page/logout/',
            data: {logout:true},
            success: __Toolbar.refresh
         })
         
         $(this.tooldiv).animate({left: -1233}, {duration: 500, easing:'easeOutElastic'});
         $('#__toolbar_logout').hide();

      },
      
      login: function()
      {
         $('#__toolbar_login').hide();
         $('#__toolbar_dologin').show();
         $(this.tooldiv).animate({left: -800}, {duration: 500, easing:'easeOutElastic'});   
      },

      doLogin: function()
      {         
         $.ajax({
            type: 'POST',
            cache: false,
            url: '/page/login/'+$('#username').val(),
            data: {hash:$.sha1($('#password').val())},
            success: function() {
               console.log(arguments);
            }
         })
         
      },
      
      refresh: function()
      {
         window.location.reload();
      }
   }

   return window.__Toolbar.init();
});


function plainlink_edit(o)
{
   alert('edit');
}

function plainlink_getvalue(o)
{
   return '{"value":"'+o.value+'", "url":"heey"}';
}

function kaart_get_order(value)
{
	var itemcount = 0;
	var items = new Array;
	var item = {};
	var children = $('#simpledit-kaart-'+value).children();
	for (var i=0;children.length>i;i++ )
		{
			if (children[i].className=='kaart-group edit_cursor')
			{
				var groupname = children[i].innerHTML;
			}
			else
			{
				itemcount++;
				var itemid = children[i].id.replace("simpledit-kaart-item-", "");
				var itemname = children[i].firstChild.innerHTML;
				var itemprice = children[i].lastChild.innerHTML.replace("€", "");
			
				items.push({
					itemid : itemid,
					itemname : itemname,
					itemprice : itemprice,
					group : groupname,
					order : itemcount				
				});
				
			}
			
			
			
		}

         $.ajax({
            type: 'POST',
            cache: false,
            url: '/page/xsavemodal/'+__Toolbar.pageid()+'/simpleditor-kaart-'+value,
            data: {data:$.toJSON(items)},
            success: function() {
               alert('Kaart opgeslagen.');
               document.location=document.location;
            }
         })

			
}

function kaart_edit(o)
{

     console.log(o.innerHTML);
   if (o.className=='kaart-name') {
      var value = prompt("Naam aanpassen",o.innerHTML);
   }
   else if(o.className=='kaart-price')
   {
      var value = prompt("Prijs aanpassen",o.innerHTML);
   }
   else
   {
      var value = prompt("Groep aanpassen",o.innerHTML);
   }
   
   
   if (value !== null)
   {
      o.innerHTML = value;
   }
   
   
}

function kaart_hover_on(o)
{
   $(o).addClass("kaart_hover");
}

function kaart_edit_on(o)
{
   if (o.firstChild.className=='kaart_edit_input')
   {

   }
   else
   {
      o.innerHTML = "<input onblur='kaart_edit_off(this);' class='kaart_edit_input' value=\""+o.innerHTML+"\" \/>";
      o.firstChild.focus();
      o.firstChild.select();

   }
}

function kaart_edit_off(o)
{
   var value = o.value;
   if ((o.parentNode.className=="kaart-name") && (value=="")){
      value = "<strike>Verwijderen</strike>";
   }
   else if (value=="") { value = "&nbsp;"}
   o.parentNode.innerHTML = value;
}

function kaart_hover_off(o)
{
   $(o).removeClass("kaart_hover");
   if (o.className=='kaart_edit_input')
   {
      
      o.parentNode.innerHTML = o.value;
   }
   else
   {
      
   }
   
   
}

   
   

   







	