// DeviantART - Same Again v0.1
// Made By Luke Stevenson {http://lucanos.deviantart.com}
// Distributed and Maintained via GMVC
// Last updated: 05 February 2007
//
//   This Script is designed to record the settings of a number of fields
// on the Deviation Submission form, and then to datafill the relevant
// fields with the appropriate values when the page is next visited.
//   These values are recorded locally on the user's computer.
//   Not all fields will be datafilled.
//
// ==UserScript==
// @name              DeviantART - Same Again
// @namespace         http://gmvc.lucanos.com/
// @description       (v0.1) Locally records the settings of a number of Submission Field and auto-populates the field on next visit.
// @include           http://www.deviantart.com/submit*
// ==/UserScript==

function storeSettings() {
  GM_setValue( 'devtitle'          , unsafeWindow.document.getElementById('devtitle').value );
  GM_setValue( 'devsize'           , unsafeWindow.document.getElementById('devsize').selectedIndex );
  GM_setValue( 'devisdownloadable' , unsafeWindow.document.getElementById('devisdownloadable').checked );
  GM_setValue( 'devcritpref'       , unsafeWindow.document.getElementById('devcritpref').selectedIndex );
  GM_setValue( 'devismobile'       , unsafeWindow.document.getElementById('devismobile').checked );
  GM_setValue( 'devdesc'           , unsafeWindow.document.getElementById('devdesc').value );
  GM_setValue( 'devkeywords'       , unsafeWindow.document.getElementById('devkeywords').value );
  GM_setValue( 'devcatid'          , unsafeWindow.document.getElementById('categoryId').value );
  GM_setValue( 'devcattitle'       , unsafeWindow.document.getElementById('categoryTitleDisplay').innerHTML );
  GM_setValue( 'devwatermark'      , unsafeWindow.document.getElementById('watermark').checked );
}

function applySettings() {
  if ( unsafeWindow.document.getElementById('devtitle').value=="" ) {
    unsafeWindow.document.getElementById('devtitle').value                 = GM_getValue( 'devtitle'          , "" );
    unsafeWindow.document.getElementById('devsize').selectedIndex          = GM_getValue( 'devsize'           , 0 );
    unsafeWindow.document.getElementById('devisdownloadable').checked      = GM_getValue( 'devisdownloadable' , false );
    unsafeWindow.document.getElementById('devcritpref').selectedIndex      = GM_getValue( 'devcritpref'       , 1 );
    unsafeWindow.document.getElementById('devismobile').checked            = GM_getValue( 'devismobile'       , false );
    unsafeWindow.document.getElementById('devdesc').value                  = GM_getValue( 'devdesc'           , "" );
    unsafeWindow.document.getElementById('devkeywords').value              = GM_getValue( 'devkeywords'       , "" );
    unsafeWindow.document.getElementById('categoryId').value               = GM_getValue( 'devcatid'          , "" );
    unsafeWindow.document.getElementById('categoryTitleDisplay').innerHTML = GM_getValue( 'devcattitle'       , "Please choose a category" );
    unsafeWindow.document.getElementById('watermark').checked              = GM_getValue( 'devwatermark'      , false );
  }
}

var finishButton = document.evaluate("//form[@id='form3']/div[2]/input", document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
  finishButton.addEventListener("click", storeSettings, false);

applySettings();