// ==UserScript==
// @name           Achievo_project_persistent
// @namespace      http://err.no/src
// @identifier     http://err.no/src/achievo_persistent_project.user.js
// @description	   (Achievo) Persistent project
// @include        https://web.linpro.no/achievo/*
// @include        https://ssl.linpro.no/achievo/*
// @version        0.5
// @date	   2008-02-29
// @creator	   Tollef Fog Heen <tfheen@linpro.no>
// ==/UserScript==

(function () {
    var SCRIPT = {
	name: "Achievo_project_persistent",
	namespace: "http://err.no/src",
	description: '(Achievo) Persistent project.',
	source: "http://err.no/src",
	identifier: "http://err.no/src/achievo_persistent_project.user.js",
	version: "0.5",
	date: (new Date(2008, 02 - 1, 29))
	.valueOf()
    };

// update automatically
  try {
    window.addEventListener("load", function () { try {
      (unsafeWindow || window.wrappedJSObject || window)
      .UserScriptUpdates.requestAutomaticUpdates(SCRIPT);
    } catch (ex) {} }, false);
  } catch (ex) {}

    function xpath(query, context) {
	context = context ? context : document;
	return document.evaluate(query, context, null,
				 XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null);
    }

    window.addEventListener("load", function(e) {
	tableHeaderTitle = xpath("//span[@class='tableHeaderTitle']").snapshotItem(0);
	if (! /Hours - Add/.test(tableHeaderTitle.innerHTML)) {
	  return;
	}

	var projectSelect;
	
	projectSelect = xpath("//select[@id='projectid']")
	  if (projectSelect.snapshotLength == 0) {
	    return;
	  }
	
	projectSelect = projectSelect.snapshotItem(0);
	var project_id = GM_getValue("projectId", "");
	for (i = 0; i < projectSelect.length; i++) {
	  if (project_id == projectSelect.options[i].value) {
	    projectSelect.selectedIndex = i;
	  }
	}
	projectSelect.addEventListener("change", function(e) {
	    
	    var projectSelect;
	    
	    projectSelect = xpath("//select[@id='projectid']")
	      if (projectSelect.snapshotLength == 0) {
		return;
	      }
	    
	    projectSelect = projectSelect.snapshotItem(0);
	    GM_setValue("projectId", projectSelect.options[projectSelect.selectedIndex].value);
	  }, false);
	
	
    }, false);
  
  })();
