// KingsAgeX! user script
// version 0.2 BETA!
// 2009-06-14
// Copyright (c) 2009, Arxleol
// http://www.axino.net
// Released under the GPL license
// http://www.gnu.org/copyleft/gpl.html
//
// --------------------------------------------------------------------
//
// This is a Greasemonkey user script.
//
// To install, you need Greasemonkey: http://greasemonkey.mozdev.org/
// Then restart Firefox and revisit this script.
// Under Tools, there will be a new menu item to "Install User Script".
// Accept the default configuration and install.
//
// To uninstall, go to Tools/Manage User Scripts,
// select "KingsAgeX", and click Uninstall.
//
// --------------------------------------------------------------------
//
// ==UserScript==
// @name KingsAgeX
// @namespace http://axino.net/code/
// @description script that extends functionallity of the free online game KingsAge
// @include http://*.kingsage.*/*
// @include http://*.kingsage.*.*/*

// ==/UserScript==


window.updateList = function(){
  
    var li='<select name="listcitz"><option value="#">Select Settlement</option>';

    //*[@id="qeText1"]
    //*[@id="qeText2"]  
    var j = 0;

    var findPattern = "/html/body/div/table/tbody/tr/td[2]/table/tbody/tr[2]/td/div[3]/div/table/tbody/tr/td[4]/a";
    var resultLinks = document.evaluate( findPattern, document, null, XPathResult.ANY_TYPE , null );
    var rst=resultLinks.iterateNext();
    var tmp = false;
       
    if(rst != null){
           
        if(rst.innerHTML=="Production"){
               
            tmp = true;
           
        }
           
    }

    do{
      
        j++;
      
        if(tmp){

            var findPattern = "//*[@id=\"qeText"+j+"\"]";
            var resultLinks = document.evaluate( findPattern, document, null, XPathResult.ANY_TYPE , null );
            var rst=resultLinks.iterateNext();
          
            if(rst!=null){
          
            var om = j+1;

            var findPattern = "/html/body/div/table/tbody/tr/td[2]/table/tbody/tr[2]/td/div[3]/table[2]/tbody/tr["+om+"]/td/span/a";
            var resultLinks = document.evaluate( findPattern, document, null, XPathResult.ANY_TYPE , null );
            var link=resultLinks.iterateNext();
          
            li=li+'<option value="'+link+'">'+rst.innerHTML+'</option>';
          
            }else{
  
                break;
              
            }
          
        }else{
          
            var findPattern = "//*[@id=\"qeText"+j+"\"]";
            var resultLinks = document.evaluate( findPattern, document, null, XPathResult.ANY_TYPE , null );
            var rst=resultLinks.iterateNext();
          
            if(rst!=null){
          
            var om = j+1;
            var findPattern = "/html/body/div/table/tbody/tr/td[2]/table/tbody/tr[2]/td/div[3]/table/tbody/tr["+om+"]/td/span/a";
            var resultLinks = document.evaluate( findPattern, document, null, XPathResult.ANY_TYPE , null );
            var link=resultLinks.iterateNext();
          
            li=li+'<option value="'+link+'">'+rst.innerHTML+'</option>';
          
            }else{
  
                break;
              
            }          
          
        }

    }while(rst!=null);

    li=li+'</select>';
    GM_setValue('list',li.toString());
  
    alert("Settlement list is updated!");
  
}

    var qs=new Array();
    var loc=location.search;
    if (loc){loc=loc.substring(1);
    var parms=loc.split('&');
    for(var i=0;i<parms.length;i++){
        nameValue=parms[i].split('=');
        qs[nameValue[0]]=unescape(nameValue[1]);
        }
    }
  

  
if(qs['s'].toString()=='overview_villages'.toString()){
  
    var findPattern = "/html/body/div/table/tbody/tr/td[2]/table/tbody/tr[2]/td/div[2]/table/tbody/tr/td/b";
    var resultLinks = document.evaluate( findPattern, document, null, XPathResult.ANY_TYPE , null );
    var rst=resultLinks.iterateNext();
    rst.innerHTML=rst.innerHTML+'<input type="button" value="update!"/>';
  
    var buttonxpath ='/html/body/div/table/tbody/tr/td[2]/table/tbody/tr[2]/td/div[2]/table/tbody/tr/td/b/input';
    var buttons = document.evaluate(buttonxpath, document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null);
    button=buttons.iterateNext()
    button.addEventListener('click',
        function (event) {
            window.updateList();
        },true);
}else{

    if(GM_getValue('list').toString() == 'undefined' || GM_getValue('list').toString() == 'emp'){
  
  
  
    }else{

        var findPattern = "/html/body/div/table/tbody/tr/td[2]/table/tbody/tr[2]/td/div[2]/table/tbody/tr/td/b";
        var resultLinks = document.evaluate( findPattern, document, null, XPathResult.ANY_TYPE , null );
        var rst=resultLinks.iterateNext();
        rst.innerHTML=rst.innerHTML+GM_getValue('list');


        var buttonxpath ='/html/body/div/table/tbody/tr/td[2]/table/tbody/tr[2]/td/div[2]/table/tbody/tr/td/b/select';
        var buttons = document.evaluate(buttonxpath, document, null, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null);
        button=buttons.iterateNext()
        button.addEventListener('click',
            function (event) {
              
                    var findPattern = "/html/body/div/table/tbody/tr/td[2]/table/tbody/tr[2]/td/div[2]/table/tbody/tr/td/b/select";
                    var resultLinks = document.evaluate( findPattern, document, null, XPathResult.ANY_TYPE , null );
                    var rst=resultLinks.iterateNext();
                  
              
                window.location=rst.value;
              
                windows.reload();
            },true);

    }
}