// ==UserScript==
// @name         Travian: easy log submit to travilog.org.ua (v1.2)
// @description  When you looking onto report, you have pre-filled inputbox for travilog.
// @include      http://*.travian.*/berichte.php*
// @version      1.2
// ==/UserScript==
// (c) Anton Fedorov aka DataCompBoy, 2008-2009
// Clan S4 <Kazaki-Razboiniki>.

(function(){
  getElementsByClass = function (searchClass,node,tag) {
	  var classElements = new Array();
	  if ( node == null )
		  node = document;
	  if ( tag == null )
		  tag = '*';
	  var els = node.getElementsByTagName(tag);
	  var elsLen = els.length;
	  var pattern = new RegExp("(^|\\s)"+searchClass+"(\\s|$)");
	  for (i = 0, j = 0; i < elsLen; i++) {
		  if ( pattern.test(els[i].className) ) {
			  classElements[j] = els[i];
			  j++;
		  }
	  }
	  return classElements;
  }

  if (document.location.href.match(/id=/)) {
	var logs = getElementsByClass("reports_read",document.body,"table");
	if(!logs||!logs.length) { logs = document.getElementById("report_surround"); if(logs) logs=[ logs ]; }
	if(!logs||!logs.length) logs = getElementsByClass("tbg",document.body,"table");
	if(logs) {
	  log = logs[0].innerHTML;
	  var d = new Date();
	  var server = window.location.host.match(/^(.*?)[.]travian[.](.*?)$/);
	  log = log.replace(/[\n\r]/ig, "")
			   .replace(/<[\/]?(thead|tbody)>/ig, "")
			   .replace(/<(tr|table)[^>]*>/ig, "\n");
	  if (server[2] == "ru")
		log = log.replace(/<img[^>]+title="([^"]+)"[^>]*>/ig, function(x){ var m = x.match(/title="([^"]+)"/); return "["+m[1].toLowerCase()+"]"; } );
	  else 
	    log = log.replace(/<img[^>]+title="([^"]+)"[^>]*>/ig, "[$1]");
	  log = log.replace(/&nbsp;/ig, " ")
			   .replace(/<[^>]+>/ig, " ");
	  var form = '<form action="http://travilog.org.ua/ru" method="post" name="form" target="_blank">'+
				 '<input name="new_old" id="new_old" type="hidden" value="old">'+
				 '<input name="act" type="hidden" value="inputlog">'+
				 '<input name="tools" type="hidden" value="">'+
				 '<input name="server" id="server" type="hidden" value="'+document.location.host+'">'+
				 '<input name="lng" type="hidden" value="'+(document.location.host.split(/[.]/).pop())+'">'+
				 '<textarea id="text" name="text" rows="20" cols="60" style="width:550px;height:300px;">'+
				 log+
				 '</textarea>'+
				 '<input name="GMT" id="GMT" type="hidden" value="'+d.getTimezoneOffset()+'">'+
				 '<input type="submit" value="Save log in Travilog">'+
				 '<input type="checkbox" name="anonymous" value="1" /> anonymize'+
				 '</form>';
	  var div = document.createElement('div'); div.innerHTML = form;
	  (logs[0].parentNode ? logs[0].parentNode : logs[0].parentElement).appendChild(div);
	}
  }
})();
