if (typeof RDF      === 'undefined') var RDF  = {};
if (typeof RDF.Base === 'undefined') RDF.Base = {};

(function($) {
   /**
    * Function : dump()
    * Arguments: The data - array,hash(associative array),object
    *    The level - OPTIONAL
    * Returns  : The textual representation of the array.
    * This function was inspired by the print_r function of PHP.
    * This will accept some data as the argument and return a
    * text that will be a more readable version of the
    * array/hash/object that is given.
    * Docs: http://www.openjs.com/scripts/others/dump_function_php_print_r.php
    */
   function dump(arr,level) {
     var dumped_text = "";
     if(!level) level = 0;
     if( level > 2 ) return dumped_text;

     //The padding given at the beginning of the line.
     var level_padding = "";
     for(var j=0;j<level+1;j++) level_padding += "    ";

     if(typeof(arr) == 'object') { //Array/Hashes/Objects
       for(var item in arr) {
	 var value = arr[item];

	 if(typeof(value) == 'object') { //If it is an array,
	   dumped_text += level_padding + "'" + item + "' (" + value + ")...\n";
           //				dumped_text += dump(value,level+1);
	 } else {
	   dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
	 }
       }
     } else { //Stings/Chars/Numbers etc.
       dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
     }
     return dumped_text;
   }




   RDF.Base.makeEditable = function() {
     var $pen
       = $('<img/>')
       .attr('src', "/pf/images/edit.gif")
       .css('border', 'none');

     $('.html_editable').wysiwyg();

     $('.translatable').editable(
       '/rb/ajax/app/translate_string', {
         onblur : 'ignore',
         data   : function() { return this.title; }
       }
     );

     $('.translatable').each(
       function() {
         var $this = $(this);
         var $link = $this.closest('a');
         var $this_pen = $pen.clone();

         $this_pen.click(
           function(event) {
             //$this.click(function(event) { event.preventDefault(); });
             if ($link) $link.click(function(event) { event.preventDefault(); });
             $this.click();
           }
         );

         $this.after($this_pen);
       }
     );

     $('.editable').editable(
       '/ajax/app/arc_update',
       {
         type      : 'wysiwyg',
         cancel    : 'Cancel',
         submit    : 'OK',
         indicator : '<img src="/img/loading_small.gif" />',
         tooltip   : "Click to edit",
         onblur    : 'ignore'
       }
     );

     $('.new_arc').editable(
       '/ajax/app/arc_create', {
         type      : 'wysiwyg',
         cancel    : 'Cancel',
         submit    : 'OK',
         indicator : '<img src="/img/loading_small.gif" />',
         tooltip   : "Click to edit",
         onblur    : 'ignore'
       }
     );
   }
 }
)(jQuery);
