topical media & game development

talk show tell print

professional-sql-10-public-files-js-blog-admin.js / js



  // set initial view and register event handlers
  window.onload = function()
  {
      document.getElementById('form_select').style.display = '';
      document.getElementById('form_fields').style.display = 'none';
  
      window.cal1 = new YAHOO.widget.Calendar("cal1", "calendar",
         { mindate: '1/1/2007',
         maxdate: '12/31/2015',
         title: 'Select Date',
         close: true 
         });
      window.cal1.selectEvent.subscribe(updatePostDate, cal1, true);
      YAHOO.util.Event.addListener("show_calendar", "click",
          window.cal1.show, window.cal1, true); 
      updateCalendar();
      document.getElementById('post_date').onchange = updateCalendar;
  
      document.getElementById('post_id').onchange = show_form;
      document.getElementById('form_submit').onclick = submit_form;
      document.getElementById('form_reset').onclick = reset_form;
      document.getElementById('delete').onclick = submit_warning;
  }
  
  // update the post_date field when the user changes the calendar's date
  function updatePostDate(type,args,obj)
  {
      var month = (args[0][0][1] < 10) ? '0' + args[0][0][1] : args[0][0][1];
      var day = (args[0][0][2] < 10) ? '0' + args[0][0][2] : args[0][0][2];
      var year = args[0][0][0];
  
      document.getElementById('post_date').value = month + '/' + day + '/' + year;
      window.cal1.hide();
  }
  
  // update the calendar's date when the user changes the post_date field
  function updateCalendar()
  { 
      var field = document.getElementById('post_date'); 
  
      if (field.value)
      { 
          window.cal1.select(field.value); 
          var selectedDates = window.cal1.getSelectedDates(); 
          if (selectedDates.length > 0)
          { 
              var firstDate = selectedDates[0]; 
              window.cal1.cfg.setProperty('pagedate',
                  (firstDate.getMonth() + 1) + '/' + firstDate.getFullYear()); 
          }
      } 
      window.cal1.render(); 
  }
  
  // unhide the form when the user choses to modify a page
  function show_form()
  {
      fetch_info();
      document.getElementById('form_select').style.display = 'none';
      document.getElementById('form_fields').style.display = '';
      if (document.getElementById('post_id').value == 'new')
      {
          document.getElementById('delete_field').style.display = 'none';
      }
      else
      {
          document.getElementById('delete_field').style.display = '';
      }
  }
  
  // confirm is user checked delete 
  function submit_form()
  {
      if (document.getElementById('delete').checked)
      {
          return confirm('Are you sure you wish to delete this entry?');
      }
  }
  
  // highlight the submit button if record will be deleted
  function submit_warning()
  {
      if (document.getElementById('delete').checked)
      {
          document.getElementById('form_submit').style.backgroundColor =
              '#FF9999';
      }
      else
      {
          document.getElementById('form_submit').style.backgroundColor = '';
      }    
  }
  
  // clear form
  function reset_form()
  {
      if (!confirm('Are you sure you wish to cancel?')) return false;
  
      document.getElementById('form_fields').style.display = 'none';
      document.getElementById('form_select').style.display = '';
  
      // manually clear the RTE area
      document.getElementById('post_text').value = '';
      tinyMCE.updateContent(tinyMCE.getInstanceById('mce_editor_0').formElement.id);
  
      // default action of reset button will clear fields and reset select index
      // so an explicit clearing is not needed so long as we return true to not
      // break that bubble
      return true;
  }
  
  // retrieve existing information via "AJAX" 
  var httpObj;
  function fetch_info()
  {
      var select = document.getElementById('post_id');
      if (select.options[select.selectedIndex].value == 'new') 
      {
          return;
      }
  
      var url = 'fetch_admin.php?post_id=' +
           select.options[select.selectedIndex].value + "&nocache=" +
           (new Date()).getTime();
  
      httpObj = createXMLHTTPObject();
      httpObj.open('GET', url, true);
      httpObj.onreadystatechange = function()
      {
          // populate the fields
          if (httpObj.readyState == 4 && httpObj.responseText)
          {
              var r = eval('(' + httpObj.responseText + ')');
  
              document.getElementById('post_title').value = r.post_title;
              document.getElementById('post_date').value = r.post_date;
              updateCalendar();
              document.getElementById('post_text').value = r.post_text;
              tinyMCE.updateContent(tinyMCE.getInstanceById('mce_editor_0').formElement.id);
          }
      }
      httpObj.send(null);
  }
  


(C) Æliens 20/2/2008

You may not copy or print any of this material without explicit permission of the author or the publisher. In case of other copyright issues, contact the author.