var warStateIdlayer   = null;
var warMouseOverLayer = null;

var warZones          = new Array();
var warObjectives     = new Array();
var warKeeps          = new Array();


///functions zum ermitteln des browsers
var uAgent=navigator.userAgent,isIE=false,isIE5=false,ieVersion=0,isFirefox=false,i=uAgent.indexOf('MSIE'),isOpera=uAgent.indexOf('Opera')>-1;
if(i>0&&!isOpera){
  isIE=true;
  ieVersion=parseFloat(uAgent.substr(i+5));
  isIE5=(ieVersion<5.5);
  if(ieVersion>=7.0)alphaPNG=true;
}
else {
  isFirefox=(uAgent.indexOf('Firefox')>0?true:false);
  alphaPNG=true;
};

function utf8_decode ( str_data ) {
    var tmp_arr = [], i = 0, ac = 0, c1 = 0, c2 = 0, c3 = 0;
    str_data += '';
    
    while ( i < str_data.length ) {        
        c1 = str_data.charCodeAt(i);
        if (c1 < 128) {
            tmp_arr[ac++] = String.fromCharCode(c1);
            i++;
        } else if ((c1 > 191) && (c1 < 224)) {            
            c2 = str_data.charCodeAt(i+1);
            tmp_arr[ac++] = String.fromCharCode(((c1 & 31) << 6) | (c2 & 63));
            i += 2;
        } else {
            c2 = str_data.charCodeAt(i+1);            
            c3 = str_data.charCodeAt(i+2);
            tmp_arr[ac++] = String.fromCharCode(((c1 & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
            i += 3;
        }
    } 
    return tmp_arr.join('');
}

function is_array(value)
{
   var s = typeof value;
   if (s === 'object')
   {
      if (value)
      {
         if (value instanceof Array)
         {
            s = 'array';
         }
      }
      else
      {
         s = 'null';
      }
   }
   return s;
}

function str_replace(search, replace, subject)
{
   if ( is_array(search) == 'array' )
   {
      for(i=0; i<search.length; i++)
      {
         subject = subject.split(search[i]).join(replace[i]);
      }
   }
   else
   {
      subject = subject.split(search).join(replace);
   }
   return subject;
}





function warStateZones(zone3,zone2,zone1){
    warZones[warZones.length] = new Array(zone1,zone2,zone3);
    if(!warStateIdlayer) warStateGetId();
}

function buildOutputWarState(){
    var html="<table border=0 cellpadding=0 cellspacing=0>";
    for(var a=0;a<warZones.length;a++){
        html = html+"<tr>"; 
        html = html+"<td><img onMouseOut=\"hideZoneWar();\" onMouseMove=\"setMousePositionWarState(event);\" onMouseOver=\"showZoneWar(event,'"+warZones[a][0][0]+"');\" src=\"./images/"+warZones[a][0][1]+"_"+warZones[a][0][2]+".gif\" alt=\""+warZones[a][0][0]+"\" titel=\""+warZones[a][0][0]+"\"></td>";
        html = html+"<td><img onMouseOut=\"hideZoneWar();\" onMouseMove=\"setMousePositionWarState(event);\" onMouseOver=\"showZoneWar(event,'"+warZones[a][1][0]+"');\" src=\"./images/"+warZones[a][1][1]+"_"+warZones[a][1][2]+".gif\" alt=\""+warZones[a][1][0]+"\" titel=\""+warZones[a][1][0]+"\"></td>";
        html = html+"<td><img onMouseOut=\"hideZoneWar();\" onMouseMove=\"setMousePositionWarState(event);\" onMouseOver=\"showZoneWar(event,'"+warZones[a][2][0]+"');\" src=\"./images/"+warZones[a][2][1]+"_"+warZones[a][2][2]+".gif\" alt=\""+warZones[a][2][0]+"\" titel=\""+warZones[a][2][0]+"\"></td>";
        html = html+"</tr>";
    }
    html = html+"</table>";
    warStateIdlayer.innerHTML = html;
}

function warStateGetId(){
    warStateIdlayer = document.getElementById('warStatusDIV');    
}

function showZoneWar(ev,name){
    if(!warMouseOverLayer) warMouseOverLayer = document.getElementById('warStatusDIVOver');
    warMouseOverLayer.style.visibility = 'visible'; 
    html = "<img style=\"position:absolute;top:0px;left:0px;\" src=\"images/"+str_replace(new Array("ä","ö","ü"),new Array("ae","oe","ue"),utf8_decode(unescape(name)))+".gif\"><div style=\"position:absolute;left:100px;top:18px;width:250;text-align:center;font-weight:bold;\">"+utf8_decode(unescape(name))+"</div>"; 
    for(var a=0;a<warObjectives.length;a++){
        if(warObjectives[a].land == name){
             var o = warObjectives[a];
             
             html = html+"<img src=\"images/sfz_"+o.owner+"\" style=\"position:absolute;left:"+o.x+"px;top:"+o.y+";\">"; 
            
        }    
    }
    
    for(var a=0;a<warKeeps.length;a++){
        if(warKeeps[a].land == name){
             var o = warKeeps[a];
             
             html = html+"<img src=\"images/keep_"+o.owner+"\" style=\"position:absolute;left:"+o.x+"px;top:"+o.y+";\">"; 
            
        }    
    }
    warMouseOverLayer.innerHTML = html;
    setMousePositionWarState(ev);
}

function hideZoneWar(){
    if(!warMouseOverLayer) warMouseOverLayer = document.getElementById('warStatusDIVOver');      
    warMouseOverLayer.style.visibility = 'hidden';   
}

function setMousePositionWarState(ev){
    if(!ev)ev=window.event;  
    if(!warMouseOverLayer) warMouseOverLayer = document.getElementById('warStatusDIVOver'); 
    if(isIE||isOpera)var x=ev.screenX+10, y=ev.screenY-10;
    else var x=ev.layerX+10, y=ev.layerY+10;
    //y = y + offSetBannerY;
    with(warMouseOverLayer.style){
        left = x+'px';
        top  = y+'px';
    }
}

function addObjectiveWarState(land,x,y,owner){
    var o =  new Object;
    o.x     = parseInt(y);
    o.y     = parseInt(x);
    o.land  = land;
    o.owner = owner;
    
    //alert(o.x);
    warObjectives[warObjectives.length] = o;
}

function addKeepWarState(land,x,y,owner){
    var o =  new Object;
    o.x     = parseInt(y);
    o.y     = parseInt(x);
    o.land  = land;
    o.owner = owner;
    
    //alert(o.x);
    warKeeps[warKeeps.length] = o;
}