// ==UserScript==
// @name           	Spy Protection
// @namespace      http://hightekcafe.com/ikariam
// @description    	A way to make sure your protected from spies
// @include       	 http://s*.ikariam.*/*
// @exclude        	http://board.ikariam.*/*
// ==/UserScript==
	var lversion = "0.1.0";
	var updatesite = "";

function createSpan(idofspan)
{
var spanTag = document.createElement("span");
spanTag.id = idofspan;
spanTag.className ="dynamicSpan";
document.body.appendChild(spanTag);
}

function findformula(MissionBase,enemyhideout,defensivespies,hideout,townhall)
{
	var formula = MissionBase+5*defensivespies+2*hideout-2*townhall-2*enemyhideout;
	if (formula > 95) {formula = 95; }
	if (formula < 5) {formula = 5; }
	return (formula);
}

function toInt(string)
{
	var temp,result;
	temp = string.split(',');
	result = '';
	for(var i=0; i < temp.length; i++)
	{
		result += temp[i];
	}
	return parseInt(result);
}

function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}


function togglebox(name)
{
	document.getElementById(name+"_text").style.display="inline";
}

function redoformula(MissionBase,MissionBase1,MissionBase2,MissionBase3,MissionBase4,MissionBase5,MissionBase6,MissionBase7,MissionBase8)
{
	var enemyhideout = document.getElementById('enemyhideout_text').value;
	var defensivespies = document.getElementById('defensivespies_text').value;
	var hideout = document.getElementById('hideout_text').value;
	var townhall = document.getElementById('townhall_text').value;
	document.getElementById('formula').innerHTML=findformula(MissionBase,enemyhideout,defensivespies,hideout,townhall);
	document.getElementById('formulaonline').innerHTML=findformula(MissionBase1,enemyhideout,defensivespies,hideout,townhall);
	document.getElementById('formulawarehouse').innerHTML=findformula(MissionBase2,enemyhideout,defensivespies,hideout,townhall);
	document.getElementById('formularesearch').innerHTML=findformula(MissionBase3,enemyhideout,defensivespies,hideout,townhall);
	document.getElementById('formulagarrison').innerHTML=findformula(MissionBase4,enemyhideout,defensivespies,hideout,townhall);
	document.getElementById('formulacomm').innerHTML=findformula(MissionBase5,enemyhideout,defensivespies,hideout,townhall);
	document.getElementById('formulamovement').innerHTML=findformula(MissionBase6,enemyhideout,defensivespies,hideout,townhall);
	document.getElementById('formulatreasure').innerHTML=findformula(MissionBase7,enemyhideout,defensivespies,hideout,townhall);
	document.getElementById('formulareturnspy').innerHTML=findformula(MissionBase8,enemyhideout,defensivespies,hideout,townhall);
	GM_setValue('enemyhideout',document.getElementById('enemyhideout_text').value);
}

window.addEventListener('load',  function() 
{ 
try
{
	var page = document.getElementsByTagName('body')[0].id;
	
	if (page == 'safehouse') {
	var menupage = document.getElementById('mainview').childNodes[5].childNodes[1].innerHTML;
	var hideoutpart1 = document.getElementById('buildingUpgrade').childNodes[3].innerHTML.split('</span>')[1];
	var hideoutpart2 = hideoutpart1.split('</div>')[0];
	var spiespart1 = document.getElementById('reportInboxLeft').childNodes[3].childNodes[3].childNodes[3].innerHTML.split(' are')[0];
	var thechangingid = "SpyProtection";
	var yourid = gup( 'id' );

	createSpan(thechangingid);
	/*
	MissionBase = depends on mission
	defensivespies = Your value for defensive spies
	hideout =  Your hideout level (the level of the hideout in your town)
	townhall = Your Town hall level .
	enemyhideout = enemy's hideout level.
	*/
	var MissionBase = 5; // infiltrate
	var MissionBase1 = 50; // online status
	var MissionBase2 = 30; // warehouse
	var MissionBase3 = 40; // research
	var MissionBase4 = 70; // garrison
	var MissionBase5 = 90; // communication
	var MissionBase6 = 80; // movement
	var MissionBase7 = 24 // trasure chamber
	var MissionBase8 = 30; // return spy
	var enemyhideout = GM_getValue('enemyhideout', 20);
	var defensivespies = spiespart1;
	var hideout =  hideoutpart2;
	var townhall = GM_getValue('townhall_'+yourid, 'Visit your town page');
	var formulastyle = "color: red;";
	var formula = findformula(MissionBase,enemyhideout,defensivespies,hideout,townhall);
	var formulaonline = findformula(MissionBase1,enemyhideout,defensivespies,hideout,townhall);
	var formulawarehouse = findformula(MissionBase2,enemyhideout,defensivespies,hideout,townhall);
	var formularesearch = findformula(MissionBase3,enemyhideout,defensivespies,hideout,townhall);
	var formulagarrison = findformula(MissionBase4,enemyhideout,defensivespies,hideout,townhall);
	var formulacomm = findformula(MissionBase5,enemyhideout,defensivespies,hideout,townhall);
	var formulamovement = findformula(MissionBase6,enemyhideout,defensivespies,hideout,townhall);
	var formulatreasure = findformula(MissionBase7,enemyhideout,defensivespies,hideout,townhall);
	var formulareturnspy = findformula(MissionBase8,enemyhideout,defensivespies,hideout,townhall);
	document.getElementById(thechangingid).innerHTML="<center><table align=\"center\" width=\"900\" border=3><tr><td colspan=\"2\" align=\"center\"><b><font size=\"5\">Spy Protection - Are You Protected?</font></b></td></tr><tr><td>Your Defensive Spies</td><td><input id=\"defensivespies_text\" type='textfield' class='textfield' name='defensivespies' size='10' value='"+defensivespies+"' style=\"display:none;\" /><span id=\"defensivespies\">"+defensivespies+"</span> <sup id=\"spylink\"><a href=\"javascript:return false;\">(Click to Change)</a></sup></td></tr><tr><td>Your Hideout Level</td><td><input id=\"hideout_text\" type='textfield' class='textfield' name='hideout' size='10' value='"+hideout+"' style=\"display:none;\" /><span id=\"hideout\">"+hideout+"</span> <sup id=\"hideoutlink\"><a href=\"javascript:return false;\">(Click to Change)</a></sup></td></tr><tr><td>Your Town Hall Level</td><td><input id=\"townhall_text\" type='textfield' class='textfield' name='townhall' size='10' value='"+townhall+"' style=\"display:none;\" /><span id=\"townhall\">"+townhall+"</span> <sup id=\"townhalllink\"><a href=\"javascript:return false;\">(Click to Change)</a></sup></td></tr><tr><td>Enemies Hideout</td><td id=\"enemyhideout\"><input id='enemyhideout_text' type='textfield' class='textfield' name='enemyhideout' size='10' value='"+enemyhideout+"' /></td></tr><tr><td colspan=\"2\" align=\"center\"><b><font size=\"5\">Chance of someone getting caught coming into town <span id=\"formula\" style=\""+formulastyle+"\">"+formula+"</span>%</font></b></td></tr><tr><td><b><font size=\"3\">Chance of someone getting caught checking your treasure chamber</font></b></td><td><font size=\"4\"><span id=\"formulatreasure\" style=\""+formulastyle+"\">"+formulatreasure+"</span>%</font></td></tr><tr><td><b><font size=\"3\">Chance of someone getting caught checking warehouse</font></b></td><td><font size=\"4\"><span id=\"formulawarehouse\" style=\""+formulastyle+"\">"+formulawarehouse+"</span>%</font></td></tr><tr><td><b><font size=\"3\">Chance of someone getting caught in returning their spy</font></b></td><td><font size=\"4\"><span id=\"formulareturnspy\" style=\""+formulastyle+"\">"+formulareturnspy+"</span>%</font></td></tr><tr><td><b><font size=\"3\">Chance of someone getting caught checking your research</font></b></td><td><font size=\"4\"><span id=\"formularesearch\" style=\""+formulastyle+"\">"+formularesearch+"</span>%</font></td></tr><tr><td><b><font size=\"3\">Chance of someone getting caught checking your online status</font></b></td><td><font size=\"4\"><span id=\"formulaonline\" style=\""+formulastyle+"\">"+formulaonline+"</span>%</font></td></tr><tr><td><b><font size=\"3\">Chance of someone getting caught checking your garrison</font></b></td><td><font size=\"4\"><span id=\"formulagarrison\" style=\""+formulastyle+"\">"+formulagarrison+"</span>%</font></td></tr><tr><td><b><font size=\"3\">Chance of someone getting caught observing fleet and troop movement</font></b></td><td><font size=\"4\"><span id=\"formulamovement\" style=\""+formulastyle+"\">"+formulamovement+"</span>%</font></td></tr><tr><td><b><font size=\"3\">Chance of someone getting caught observing your communication</font></b></td><td><font size=\"4\"><span id=\"formulacomm\" style=\""+formulastyle+"\">"+formulacomm+"</span>%</font></td></tr></table></center><br /><br /><br /><br />";

	
	//event listeners looks for changes
	document.getElementById('spylink').addEventListener('click',function(event){document.getElementById('spylink').innerHTML="";togglebox('defensivespies');event.preventDefault();},true);
	document.getElementById('hideoutlink').addEventListener('click',function(event){document.getElementById('hideoutlink').innerHTML="";togglebox('hideout');event.preventDefault();},true);
	document.getElementById('townhalllink').addEventListener('click',function(event){document.getElementById('townhalllink').innerHTML="";togglebox('townhall');event.preventDefault();},true);


	document.getElementById('enemyhideout_text').addEventListener('change',function(event){redoformula(MissionBase,MissionBase1,MissionBase2,MissionBase3,MissionBase4,MissionBase5,MissionBase6,MissionBase7,MissionBase8);},true);

	document.getElementById('defensivespies_text').addEventListener('change',function(event){redoformula(MissionBase,MissionBase1,MissionBase2,MissionBase3,MissionBase4,MissionBase5,MissionBase6,MissionBase7,MissionBase8);},true);
	
	document.getElementById('hideout_text').addEventListener('change',function(event){redoformula(MissionBase,MissionBase1,MissionBase2,MissionBase3,MissionBase4,MissionBase5,MissionBase6,MissionBase7,MissionBase8);},true);

	document.getElementById('townhall_text').addEventListener('change',function(event){redoformula(MissionBase,MissionBase1,MissionBase2,MissionBase3,MissionBase4,MissionBase5,MissionBase6,MissionBase7,MissionBase8);},true);
	
	
	}
	if (page == 'city') {
		var slot1 = document.getElementById("position0");
		var slot1part1 = slot1.innerHTML.split('&amp;position=0" title="')[0];
		var thenumber = slot1part1.split('&amp;id=')[1];
		var slot1part2 = slot1.innerHTML.split('Town hall Level ')[2];
		if (slot1part2) {
		var townhallnumber = slot1part2.split('</span>')[0];
		townhallnumber = toInt(townhallnumber);
		GM_setValue('townhall_'+thenumber, townhallnumber);
		}
	}

}
catch(er)
				{
				var debug_mode 	= GM_getValue('debug_mode','0');
				//if (debug_mode == 1) {
				alert("Vejida\'s Spy Protection v"+lversion+"\n If you think this is a critical error, post it in the ikariamlibrary.com forums.\n\n\n" + er)
				//}
				}
},
    true);
