//--------------------------------------------------
//  Movement only simulator

function calculateMovement(properties)
{
  $.getJSON("../rpc?" + properties,{action:'movement'}, function (data, textStatus) {
    $("#results-panel").html("");
    $("#results-panel").append("<div class='hidden' id='movement-panel'><h3>Troop Movement & Losses Simulator</h3><div id='movement-selector-panel'><span>Round:</span></div><div id='movement-img-panel'></div></div>");
    //var baseurl="http://chart.apis.google.com/chart?cht=bhs&chbh=8,3&chs=1000x300&chco=ffffff,000000,4d89f9,c6d9fd,fdd9c6,f9894d,000000&chds=0,5000&"
    var width = 800;
    var height = 200;
    var baseurl="http://chart.apis.google.com/chart?cht=bhs&chbh=6,1&chs=" + width + "x" + height + "&chco=ffffff,000000,4d89f9,c6d9fd,fdd9c6,f9894d,000000&chds=0,5000&"
    for (idx in data.imgchd)
    {
      $("#movement-img-panel").append("<div id='i" + idx + "' class='hidden'><img width='" + width + "' height='" + height + "' src='" + baseurl + data.imgchd[idx] + "' /></div>");
      make_selector(idx, "");
    }
    movement_hide_all("0");
    $("#movement-panel").show('slow');
  });

}

var lastshow = -1

function movement_hide_all(except)
{
  for (ix=0; ix<100; ix++)
  {
    if (except != ix)
    {
      $('#i' + ix ).hide();
      $('#iar' + ix ).hide();
      $('#idr' + ix ).hide();
      $('#s' + ix ).removeClass('active');    
    }
    else
    {
      $('#i' + ix ).show();
      $('#iar' + ix ).show();
      $('#idr' + ix ).show();
      $('#s' + ix ).addClass('active');    
    }  
  }
  lastshow = except;
}



function movement_show(index)
{
    $('#i' + lastshow ).hide();
    $('#iar' + lastshow ).hide();
    $('#idr' + lastshow ).hide();
    $('#s' + lastshow ).removeClass('active');    

    $('#i' + index ).show();
    $('#iar' + index ).show();
    $('#idr' + index ).show();
    $('#s' + index ).addClass('active');    

    lastshow = index;
}

function make_selector(idx, suffix)
{
  if ( $("#s" + idx).length == 0 )
  {  
     $("#movement-selector-panel").append("<span id='s" + idx + "' onmouseover='movement_show(\"" + idx + "\");'>" + idx + suffix + "</span>");
  }  
    
}


//--------------------------------------------------
//  Attack simulator
//

function simulateAttack(properties)
{
  $.getJSON("../rpc?" + properties,{action:'attack'}, function (data, textStatus) {
    ///$("#results-panel").html("");
    $("#results-panel").append("<div class='hidden' id='attack-panel'><div id='attack-detail-panel'></div></div>");
    ///for (idx in data.debug)
    ///{
     ///$("#attack-detail-panel").append("<div>"  +  data.debug[idx] + "</div>" )
    ///}
    
    //--- clear old results
    for (var ix=0;ix<=20;ix++)
    {
     $("#al" + ix).html("");
     $("#dl" + ix).html("");
    }
    
    //--- display losses
    for (idx in data.aloss)
    {
     for (ix in data.aloss[idx])
     {
       $("#al" + data.aloss[idx][ix][0]).html( data.aloss[idx][ix][1] );         
     }
    }
    
    for (idx in data.dloss)
    {
     for (ix in data.dloss[idx])
     {
       $("#dl" + data.dloss[idx][ix][0]).html( data.dloss[idx][ix][1] );     
     }
    }

    $("#attack-detail-panel").html("<table><tr><th width='200'>Attackers</th><th width='200'>Defenders</th></tr><tr><td><div id='ar-panel'></div></td><td><div id='dr-panel'></div></td></tr></table>");
    
    //--- display round by round stats
    for (idx in data.ar)
    {
     for (ix in data.ar[idx])
     {
       $("#ar-panel").append("<div id='iar" + data.ar[idx][ix][0] + "-" + ix + "'><img width='18' height='18' src='img/troop_"  + data.ar[idx][ix][1] + ".png'/> kill <img width='16' height='16' src='img/troop_"  + data.ar[idx][ix][2] + ".png'/>x" + data.ar[idx][ix][3] + "</div>");
       make_selector(data.ar[idx][ix][0], "*");
       $("#s" + data.ar[idx][ix][0]).text(  data.ar[idx][ix][0] + "*" );                
     }
    }
    
    for (idx in data.dr)
    {
     for (ix in data.dr[idx])
     {
       $("#dr-panel").append("<div id='idr" + data.dr[idx][ix][0] + "-" + ix + "'><img width='18' height='18' src='img/troop_"  + data.dr[idx][ix][1] + ".png'/> kill <img width='16' height='16' src='img/troop_"  + data.dr[idx][ix][2] + ".png'/>x" + data.dr[idx][ix][3] + "</div>");
       make_selector(data.dr[idx][ix][0], "*");
       $("#s" + data.dr[idx][ix][0]).text(  data.dr[idx][ix][0] + "*" );
     }
    }

    
    movement_hide_all("0");
    $("#attack-panel").show('slow');
    
    });
}

function calculateMovementAndSimulateAttack(properties)
{  
  $.getJSON("../rpc?" + properties,{action:'attack'}, function (data, textStatus) {

    if (data.debug){  $("#debug").html("<div>" + data.debug + "</div>"); }        
    if (data.log){ 
      $('#log').html("");
      for ( logitem in data.log)        
      {  
        $("#log").append("<div class='log-" + data.log[logitem][0] + " '>" + data.log[logitem][0] + ":" + data.log[logitem][1] + "</div>");
      }        
    }     
                                                                
    $("#results-panel").html("");
    $("#results-panel").append("<div class='hidden' id='movement-panel'><h3>Troop Movement Simulator</h3><div id='movement-selector-panel'><span>Round:</span></div><div id='movement-img-panel'></div><sup><a href='instructions#range'>range:" + data.range + " paces</a></sup></div>");
    //var baseurl="http://chart.apis.google.com/chart?cht=bhs&chbh=8,3&chs=1000x300&chco=ffffff,000000,4d89f9,c6d9fd,fdd9c6,f9894d,000000&chds=0,5000&"
    var width = 800;
    var height = 200;
    var baseurl="http://chart.apis.google.com/chart?cht=bhs&chbh=6,1&chs=" + width + "x" + height + "&chco=ffffff,000000,4d89f9,c6d9fd,fdd9c6,f9894d,000000&chds=0," + data.range + "&";
    for (idx in data.imgchd)
    {
      $("#movement-img-panel").append("<div id='i" + idx + "' class='hidden'><img width='" + width + "' height='" + height + "' src='" + baseurl + data.imgchd[idx] + "' /></div>");
      make_selector(idx, "");
    }
    
    //movement_hide("i0");
    $("#movement-panel").show('slow');


    ///$("#results-panel").html("");
    $("#results-panel").append("<div class='hidden' id='attack-panel'><div id='attack-detail-panel'></div></div>");
    ///for (idx in data.debug)
    ///{
     ///$("#attack-detail-panel").append("<div>"  +  data.debug[idx] + "</div>" )
    ///}
    
    //--- clear old results
    for (var ix=0;ix<=20;ix++)
    {
     $("#al" + ix).html("");
     $("#dl" + ix).html("");
    }
    
    //--- display losses
    for (idx in data.aloss)
    {
     for (ix in data.aloss[idx])
     {
       $("#al" + data.aloss[idx][ix][0]).html( data.aloss[idx][ix][1] );         
     }
    }
    
    for (idx in data.dloss)
    {
     for (ix in data.dloss[idx])
     {
       $("#dl" + data.dloss[idx][ix][0]).html( data.dloss[idx][ix][1] );     
     }
    }

    $("#attack-detail-panel").html("<table><tr><th width='200'>Attackers</th><th width='200'>Defenders</th></tr><tr><td><div id='ar-panel'></div></td><td><div id='dr-panel'></div></td></tr></table>");
    
    //--- create 100 round
    for( var ix=0;ix<100;ix++)
    {
     $("#ar-panel").append("<div id='iar" + ix + "'></div>");
     $("#dr-panel").append("<div id='idr" + ix + "'></div>");
    }
    //--- display round by round stats
    var tempx;
    for (idx in data.ar)
    {
     for (ix in data.ar[idx])
     {
         $("#iar" + data.ar[idx][ix][0]).append("<div><img width='18' height='18' src='img/troop_"  + data.ar[idx][ix][1] + ".png'/> kill <img width='16' height='16' src='img/troop_"  + data.ar[idx][ix][2] + ".png'/>x" + data.ar[idx][ix][3] + "</div>");
         make_selector(data.ar[idx][ix][0], "*");
         $("#s" + data.ar[idx][ix][0]).text(  data.ar[idx][ix][0] + "*" );                
     }
    }
    
    for (idx in data.dr)
    {
     for (ix in data.dr[idx])
     {
       $("#idr" + data.dr[idx][ix][0]).append("<div><img width='18' height='18' src='img/troop_"  + data.dr[idx][ix][1] + ".png'/> kill <img width='16' height='16' src='img/troop_"  + data.dr[idx][ix][2] + ".png'/>x" + data.dr[idx][ix][3] + "</div>");
       make_selector(data.dr[idx][ix][0], "*");
       $("#s" + data.dr[idx][ix][0]).text(  data.dr[idx][ix][0] + "*" );
     }
    }

    
    movement_hide_all("0");
    
    document.getElementById("results-panel").scrollIntoView(true);
    $("#attack-panel").show('slow');

    pageTracker._trackPageview("/rpc"); 

  });


}

function st(techindex, value)
{ // set defensive technology
  $('[name=dt' + techindex + ']').val( value ).addClass("battle");

}
function sd(troopindex, value)
{ // set defensive troops
  $('[name=d' + troopindex + ']').val( value ).addClass("battle");
}


function loadBattleReport(battleReportUrl)
{
	$('.battle').removeClass('battle');
	$.getJSON("../battle",{'url':battleReportUrl}, function (data, textStatus) {
	if (textStatus=="success")
	{
	    if (data.error)
	    {
	    	window.alert(data.error);
	    }
	    else
	    {
	    	for (var i in data.building){if (data.building[i][0]==32){ st(21,data.building[i][1]);}}
	    	for (var i in data.technology){st(data.technology[i][0],data.technology[i][1]);}
	    	for (var i in data.dtroop){sd(data.dtroop[i][0],data.dtroop[i][1]);}
	    }
	    
	    pageTracker._trackPageview("/battle");
	}
	});
}
