
var curView = "start";
var curLang = "en";

var myHeroID = 0;

var myItems = "";
var myItemsUse = "";
var myItemSet = 0;
var myItemSetChanged = false;
var myItemSetName = "";
var myItemSetHero = "";
var myItemSetHeroPrim = "";
var myItemSetHeroList = "";
var myItemSetHeroName = "";
var myItemSetPublic = false;

var mySetList = "publist";

var dotaUser = "";

var dotaDynLoad = new Array("start");

function dotaStart(dotauid,myLang) {
 dotaUser = dotauid;
 curLang = myLang;
 if(dotaUser != "") mySetList = "mylist";
}

function dotaEnd() {
 
}


function showdota(myElement) {
 obj = document.getElementById(myElement);
 objbut = document.images["tbut_" + myElement];
 if (obj.style.display == "none"){
  obj.style.display = "block";
  objbut.src = "/img2/titleclose.png";
  if(myElement == "recitemsets") showSetList(mySetList);
  else if(myElement == "heroedit") showHeroEdit();
 }
 else{
  obj.style.display = "none";
  objbut.src = "/img2/titleopen.png";
 }
}


function showshops(myShop) {
 objlist = document.getElementById('recitemslist');
 objlistbut = document.images["recitemslist_but"];
 objshops = document.getElementById('recitemshops');
 objshopsbut = document.images["recitemshops_but"];
 
 if(myShop == "recitemslist"){
  if(objlist.style.display == "none"){
   objshops.style.display = "none";
   objlist.style.display = "block";
   objlistbut.src = "/img2/shops/shoplistlist.png";
   objshopsbut.src = "/img2/shops/shoplistshopsoff.png";
  }
 }
 else if(myShop == "recitemshops"){
  if(objshops.style.display == "none"){
   objlist.style.display = "none";
   objshops.style.display = "block";
   objlistbut.src = "/img2/shops/shoplistlistoff.png";
   objshopsbut.src = "/img2/shops/shoplistshops.png";
  }
 }
}

function dotaLang(myLang) {
 if(myLang != curLang){
  dotaDynLoad = new Array();
  var myView = curView;
  curView = "";
  if(myLang == "de"){
   curLang = "de";
   document.images["butlangen"].src = "/img2/butlangenoff.jpg";
   document.images["butlangde"].src = "/img2/butlangde.jpg";
  }
  else{
   curLang = "en";
   document.images["butlangen"].src = "/img2/butlangen.jpg";
   document.images["butlangde"].src = "/img2/butlangdeoff.jpg";
  }
  dotaview(myView);
 }
}

function dotaview(myView) {
 
 if(myView != curView){
  
  var objold = document.getElementById("dota_"+curView);
  if(objold) objold.style.display = "none";
  curView = myView;
  var objnew = document.getElementById("dota_"+curView);
  objnew.style.display = "block";
  
  if(curView == "heros") document.images["headheros"].src = "/img2/headheroson.jpg";
  else document.images["headheros"].src = "/img2/headheros.jpg";
  if(curView == "items") document.images["headitems"].src = "/img2/headitemson.jpg";
  else document.images["headitems"].src = "/img2/headitems.jpg";
  
  if(!in_array(curView,dotaDynLoad)){
   objnew.innerHTML = "<div style=\"width:976px;padding:80px 0px 50px 0px;text-align:center;font-size:18px;background-image:url(/img2/headbg.jpg);background-repeat:no-repeat;\">Loading Data ...</div>";
   sendRequest( "/index.php", "dyn=dotaview&lang="+curLang+"&dotaview="+myView+"&nocache="+Math.random(), 0, "dotaviewResponse" );
  } 
 }
}

function dotaviewResponse(response) {
 dotaDynLoad.push(curView);
 document.getElementById("dota_"+curView).innerHTML = response;
}


function myHero(heroID){
 myHeroID = heroID;
 document.getElementById("myheroview").innerHTML = "<br /><br />&#160;&#160;&#160;&#160;Loading Hero Data<br /><br /><img src=\"/img/bar1.gif\" align=\"absmiddle\" /><br /><br /><br />";
 sendRequest( "/index.php", "dyn=dotaview&lang="+curLang+"&dotaview=heros&hero="+heroID+"&nocache="+Math.random(), 0, "dotaHeroResponse" );
}

function dotaHeroResponse(response) {
 document.getElementById("myheroview").innerHTML = response;
}



var shopids = "";
var shopitems = "";

function makeShopArs() {
 shopids = new Array();
 shopitems = new Array();
 var sids = document.getElementsByName("shopids")[0].value.split(",");
 for(var s=0; s < sids.length; s++){
  shopids[s] = sids[s];
  var sitems = document.getElementsByName("shopitems"+sids[s])[0].value.split(",");
  shopitems[sids[s]] = new Array();
  for(var i=0; i < sitems.length; i++){
   shopitems[sids[s]][i] = sitems[i];
  }
 }
}





function myItem(itemID,bpID){
 
 myItemSetChange("ischange");
  
 if(myItemsUse != ""){
  var items = myItemsUse.split(",");
  for(var i=0; i < items.length; i++){
   if(items[i] == itemID) myItem2BpDel(itemID);
  }
 }
 
 var cnt = 0;
 var myItemsNew = "";
 var itemDel = 0;
 
 if(myItems != ""){
  var items = myItems.split(",");
  for(var i=0; i < items.length; i++){
   if(items[i] == itemID){
    itemDel = 1;
   }
   else{
    if(myItemsNew != "") myItemsNew += ",";
    myItemsNew += items[i];
    cnt++;
   }
  }
 }

 
 if(itemDel == 0){
  if(cnt < 20){
   if(myItemsNew != "") myItemsNew += ",";
   myItemsNew += itemID;
   cnt++;
   itemOn(itemID);
  }
  else{
   alert(dotalerts("MAXITEMSET"));
  }
 }
 else{
  itemOff(itemID);
 }
 
 myItems = myItemsNew;
 
 myItemUpdate(bpID);
 
}

function itemOn(itemID){
 document.images["setiset_" + itemID].src = "/img2/shops/butsetidel.png";
 document.getElementById("sllitem" + itemID).style.backgroundImage = "url(/img2/shops/shoplistitembgrgold.png)";
 document.getElementById("slsitem" + itemID).style.backgroundImage = "url(/img2/shops/shoplistitembgold.png)";
 document.getElementById("sllitembox" + itemID).style.backgroundImage = "url(/img2/shops/shoplistbgon.png)";
 var i = 0;
 var obj = "";
 while (i < 10) {
  obj = document.getElementById("shopitem" + itemID + "l_" + i);
  if(obj) obj.style.backgroundImage = "url(/img2/shops/shoplistitembglgold.png)";
  else break;
  i++;
 }
}

function itemOff(itemID) {
 document.images["setiset_" + itemID].src = "/img2/shops/butsetiadd.png";
 document.getElementById("sllitem" + itemID).style.backgroundImage = "url(/img2/shops/shoplistitembgr.png)";
 document.getElementById("slsitem" + itemID).style.backgroundImage = "url(/img2/shops/shoplistitembg.png)";
 document.getElementById("sllitembox" + itemID).style.backgroundImage = "url()";
 var i = 0;
 var obj = "";
 while (i < 10) {
  obj = document.getElementById("shopitem" + itemID + "l_" + i);
  if(obj) obj.style.backgroundImage = "url(/img2/shops/shoplistitembgl.png)";
  else break;
  i++;
 }
}

function myItemUpdateFull() {
 myItemUpdate('');
 myItem2BpUpdate();
 var items = (myItems != "") ? val2keyarr(myItems.split(",")) : new Array();
 //var itemsuse = (myItemsUse != "") ? val2keyarr(myItemsUse.split(",")) : new Array();
 var itemcnt = document.getElementById("slicnt").innerHTML;
 for(var i=1; i <= itemcnt; i++){
  if(items[i]){
   itemOn(i);
   //if(itemsuse[i]) itemBpOn(i);
   //else itemBpOff(i);
  }
  else{
   itemOff(i);
   //itemBpOff(i);
  }
 }
}



function myItemUpdate(bpID) {
 var setitems = "";
 var setitems1 = "";
 if(myItems != ""){
  var bpa = new Array();
  if(bpID != "") bpa[bpID] = bpID;
  if(myItemsUse != ""){
   var bpi = myItemsUse.split(",");
   for(var i=0; i < bpi.length; i++){
    bpa[bpi[i]] = bpi[i];
   }
  }
  var items = myItems.split(",");
  for(var i=0; i < items.length; i++){
   setitems += "<div class=\""+((bpa[items[i]])?("isetitemsboxgold"):("isetitemsbox"))+"\" id=\"setitem_"+items[i]+"\"><img src=\"/img2/items/"+items[i]+"l.jpg\" alt=\""+document.getElementById("name"+items[i]).innerHTML+"\" width=\"25\" height=\"25\" hspace=\"4\" vspace=\"4\" /></div>";
   setitems1 += "<div class=\""+((bpa[items[i]])?("isetcitemsboxgold"):("isetcitemsbox"))+"\"  id=\"setcitem_"+items[i]+"\"><img src=\"/img2/items/"+items[i]+"l.jpg\" alt=\""+document.getElementById("name"+items[i]).innerHTML+"\" onclick=\"myItem('"+items[i]+"')\" onmouseover=\"dotalegend(event,'ITEMC','1')\" onmouseout=\"dotalegend(event,'ITEMC','0')\" width=\"25\" height=\"25\" hspace=\"5\" vspace=\"4\" style=\"cursor:pointer;\" /><br /><img src=\"/img2/shops/butsetibpa.png\" alt=\"\" onclick=\"myItem2BpAdd('"+items[i]+"')\" onmouseover=\"dotalegend(event,'BPINC','1')\" onmouseout=\"dotalegend(event,'BPINC','0')\" style=\"cursor:pointer;\" /><img src=\"/img2/shops/butsetibpd.png\" alt=\"\" onclick=\"myItem2BpDel('"+items[i]+"')\" onmouseover=\"dotalegend(event,'BPOUTC','1')\" onmouseout=\"dotalegend(event,'BPOUTC','0')\" style=\"cursor:pointer;\" /></div>";
  }
 }
 var setobj = document.getElementById("itemset_"+myItemSet+"_items");
 if(setobj) setobj.innerHTML = setitems;
 document.getElementById("itemset_current_items").innerHTML = setitems1;
 
 
}

function myItem2BpAdd(itemID) {
 
 var items = myItemsUse.split(",");
 var cnt = items.length;
  
 if(cnt < 6){
  
  myItemSetChange("ischange");
   
  if(myItems != ""){
   var is = false;
   var items = myItems.split(",");
   for(var i=0; i < items.length; i++){
    if(items[i] == itemID) is = true;
   }
   if(is == false) myItem(itemID,itemID);
  }
  else{
   myItem(itemID,itemID);
  }
 
 
  if(myItemsUse != "") myItemsUse += ",";
  myItemsUse += itemID;
  itemBpOn(itemID);
 }
 else{
  alert(dotalerts("MAXITEMSBP"));
 }
 
 myItem2BpUpdate();
 
}

function myItem2BpDel(itemID) {
 
 myItemSetChange("ischange");
  
 var myItemsUseNew = "";
 var isDeleted = false;
 var itemsInBp = 0;
 
 if(myItemsUse != ""){
  var items = myItemsUse.split(",");
  for(var i=0; i < items.length; i++){
   if(isDeleted || items[i] != itemID){
    if(myItemsUseNew != "") myItemsUseNew += ",";
    myItemsUseNew += items[i];
   }
   else{
    isDeleted = true;
    itemsInBp++;
   }
  }
 }
 
 myItemsUse = myItemsUseNew;
 if(itemsInBp <= 1) itemBpOff(itemID);
 
 myItem2BpUpdate();
 
}


function itemBpOn(itemID) {
 var objsetitem = document.getElementById("setitem_" + itemID);
 if(objsetitem) objsetitem.style.backgroundImage = "url(/img2/shops/shoplistitembglgold.png)";
 document.getElementById("setcitem_" + itemID).style.backgroundImage = "url(/img2/shops/shoplistitembglgold.png)";
}

function itemBpOff(itemID) {
 var objsetitem = document.getElementById("setitem_" + itemID);
 if(objsetitem) objsetitem.style.backgroundImage = "url(/img2/shops/shoplistitembgl.png)";
 var objsetcitem = document.getElementById("setcitem_" + itemID);
 if(objsetcitem) objsetcitem.style.backgroundImage = "url(/img2/shops/shoplistitembgl.png)";
}

function myItem2BpUpdate() {
 var bpitems = "";
 if(myItemsUse != ""){
  var items = myItemsUse.split(",");
  for(var i=0; i < items.length; i++){
   bpitems += "<div class=\"isetcbpbox\" onclick=\"myItem2BpDel('"+items[i]+"')\" onmouseover=\"dotalegend(event,'BPOUTC','1')\" onmouseout=\"dotalegend(event,'BPOUTC','0')\"><img src=\"/img2/items/"+items[i]+"l.jpg\" alt=\""+document.getElementById("name"+items[i]).innerHTML+"\" width=\"25\" height=\"25\" align=\"top\" style=\"margin:7px 0px 0px 8px;\" /></div>";
  }
 }
 document.getElementById("itemset_backpack_items").innerHTML = bpitems;
 calcBpStats();
 
}

function calcBpStats() {
  
 var hp = 0;
 var hpr = 0;
 var man = 0;
 var manr = 0;
 var arm = 0;
 var dam = 0;
 var str = 0;
 var agi = 0;
 var itl = 0;
 var ata = 0;
 var mov = 0;
 var gtt = 0; // Total Gold
 
 if(myItemsUse != ""){
  var items = myItemsUse.split(",");
  var obj = "";
  for(var i=0; i < items.length; i++){
   hp = hp + clacBpStatsGet("hp",items[i]);
   hpr = hpr + clacBpStatsGet("hpr",items[i]);
   man = man + clacBpStatsGet("man",items[i]);
   manr = manr + clacBpStatsGet("manr",items[i]);
   arm = arm + clacBpStatsGet("arm",items[i]);
   dam = dam + clacBpStatsGet("d",items[i]);
   str = str + clacBpStatsGet("s",items[i]);
   agi = agi + clacBpStatsGet("a",items[i]);
   itl = itl + clacBpStatsGet("i",items[i]);
   ata = ata + clacBpStatsGet("ata",items[i]);
   mov = mov + clacBpStatsGet("mov",items[i]);
   gtt = gtt + clacBpStatsGet("goldtotal",items[i]);
  }
 }
 
 document.getElementById("sbpiv_hp").innerHTML = hp;
 document.getElementById("sbpiv_man").innerHTML = man;
 document.getElementById("sbpiv_dam").innerHTML = dam;
 document.getElementById("sbpiv_arm").innerHTML = arm;
 document.getElementById("sbpiv_str").innerHTML = str;
 document.getElementById("sbpiv_agi").innerHTML = agi;
 document.getElementById("sbpiv_int").innerHTML = itl;
 document.getElementById("sbpiv_hpr").innerHTML = hpr+"/s";
 document.getElementById("sbpiv_manr").innerHTML = manr+"%";
 document.getElementById("sbpiv_ata").innerHTML = ata+"%";
 document.getElementById("sbpiv_mov").innerHTML = mov;
 document.getElementById("isetbpgold").innerHTML = gtt;
 
}

function clacBpStatsGet(val,id) {
 var obj = document.getElementById(val+id);
 if(obj){
  var value = parseInt(obj.innerHTML);
  if(isNaN(value)) value = 0;
 }
 else{
  var value = 0;
 }
 return value;
}






var orgDam = "";

function myItemSetHeros(myHero,myHeroPrim,myHeroName) {
 if(myHero == "list"){
  var obj = document.getElementById("itemsetherolist");
  var objlist = document.getElementById("itemsetherolistlist");
  if(obj.style.display == "none"){
   obj.style.display = "block";
   if(myItemSetHeroList == ""){
    objlist.innerHTML = "<div style=\"text-align:center;padding:20px 5px 20px 5px;\">Loading Hero List...</div>";
    sendRequest( "/index.php", "dyn=dotaview&lang="+curLang+"&dotaview=items&setherolist=1&nocache="+Math.random(), 0, "myItemSetHeroListResponse" );
   }
  }
  else{
   obj.style.display = "none";
  }
 }
 else{
  document.getElementById("itemsetherolist").style.display = "none";
  
  myItemSetChange("ischange");
  
  myItemSetHero = myHero;
  myItemSetHeroPrim = myHeroPrim;
  myItemSetHeroName = myHeroName;
  
  document.images["setheroimg"].src = "/img2/heros1/hero"+myHero+".jpg";
  var objsetheroimg = document.images["setheroimg_"+myItemSet];
  if(objsetheroimg) objsetheroimg.src = "/img2/heros/hero"+myHero+".jpg";
  document.getElementById("setheroname").innerHTML = myHeroName;
  document.getElementById("setprimimg").style.backgroundImage = "url(/img2/headhero_"+myHeroPrim+".jpg)";
  document.getElementById("recitemslist").style.backgroundImage = "url(/img2/shops/shoplistbg"+myHeroPrim+".png)";
  
  if(orgDam == "") getorgDams();
  var damage = 0;
  var damageo = 0;
  var primbon = 0;
  var itemcnt = document.getElementById("slicnt").innerHTML;
  for(var i=1; i <= itemcnt; i++){
   damage = 0;
   damageo = 0;
   primbon = 0;
   var damobj = document.getElementById("d"+i);
   if(damobj){
    if(myHeroPrim != ""){
     var primobj = document.getElementById(myHeroPrim+i);
     primbon = (primobj.innerHTML != "") ? Number(primobj.innerHTML) : 0;
     if(primbon != 0) damageo = orgDam[i];
     damage = orgDam[i] + primbon;
    }
    else{
     damage = orgDam[i];
    }
    
    damobj.innerHTML = (damage != 0) ? damage : "";
    document.getElementById("do"+i).innerHTML = (damageo != 0) ? damageo : "";
    document.getElementById("dp"+i).innerHTML = (primbon != 0) ? primbon : "";
   }
  }
  
  // Load Hero Stats
  //sendRequest( "/index.php", "dyn=dotaview&lang="+curLang+"&dotaview=items&setherolist=1&nocache="+Math.random(), 0, "myItemSetHeroResponse" );
  
  calcBpStats();
  
 }
}

function getorgDams() {
 orgDam = new Array();
 var obj = document.getElementsByName("sliorgdam")[0];
 if(obj && obj.value != ""){
  var items = obj.value.split(",");
  for(var i=0; i < items.length; i++){
   orgDam[i+1] = Number(items[i]);
  }
 }
}

function myItemSetHeroListResponse(response) {
 myItemSetHeroList = response;
 document.getElementById("itemsetherolistlist").innerHTML = response;
}

function myItemSetHeroResponse(response) {
 
}


function myItemSetInfo() {
 if(dotaUser != ""){
  var obj = document.getElementById("itemsetinfo");
  if(obj.style.display == "none"){
   document.images["setguidebut"].src = "/img2/shops/setguidebut.png";
   obj.style.display = "block";
  }
  else{
   document.images["setguidebut"].src = "/img2/shops/optinfo.png";
   obj.style.display = "none";
  }
 }
 else{
  membersOnly();
 }
}





function showSetList(list) {
 mySetList = list;
 
 var objmylist = document.getElementById("recitemsetsmy");
 var objmylistimg = document.images["tbut_setlistmy"];
 var objpublist = document.getElementById("recitemsetspub");
 var objpublistimg = document.images["tbut_setlistpub"];
 
 if(list == "mylist"){
  if(dotaUser != ""){
   showSetListRISon();
   if(objmylist.style.display == "none"){
    objpublist.style.display = "none";
    objmylist.style.display = "block";
    objmylistimg.src = "/img2/shops/setlistmy.png";
    objpublistimg.src = "/img2/shops/setlistpuboff.png";
   }
   if(!in_array("set"+list,dotaDynLoad)){
     objmylist.innerHTML = "<div style=\"text-align:center;padding:20px 5px 20px 5px;\">Loading ItemSets List...</div>";
     sendRequest( "/index.php", "dyn=dotaview&lang="+curLang+"&dotaview=items&getsetlist=0&hero="+myItemSetHero+"&nocache="+Math.random(), 0, "mylistResponse" );
   }
  }
  else{
   membersOnly();
  }
 }
 else if(list == "publist"){
  showSetListRISon();
  if(objpublist.style.display == "none"){
   objmylist.style.display = "none";
   objpublist.style.display = "block";
   if(dotaUser != "") objmylistimg.src = "/img2/shops/setlistmyoff.png";
   else objmylistimg.src = "/img2/shops/setlistmyout.png";
   objpublistimg.src = "/img2/shops/setlistpub.png";
  }
  if(!in_array("set"+list,dotaDynLoad)){
    objpublist.innerHTML = "<div style=\"text-align:center;padding:20px 5px 20px 5px;\">Loading public ItemSets List...</div>";
    sendRequest( "/index.php", "dyn=dotaview&lang="+curLang+"&dotaview=items&getsetlist=1&hero="+myItemSetHero+"&nocache="+Math.random(), 0, "publistResponse" );
  }
 }
}

function showSetListRISon() {
 objris = document.getElementById("recitemsets");
 if (objris.style.display == "none"){
  objris.style.display = "block";
  document.images["tbut_recitemsets"].src = "/img2/titleclose.png";
 }
}

function mylistResponse(response) {
 dotaDynLoad.push("setmylist");
 document.getElementById("recitemsetsmy").innerHTML = response;
}

function publistResponse(response) {
 dotaDynLoad.push("setpublist");
 document.getElementById("recitemsetspub").innerHTML = response;
}








function itemBlend() {
 if(shopids == "") makeShopArs();
 if(document.getElementById("sliscnt").innerHTML == document.getElementById("slicnt").innerHTML) itemBlendOut();
 else itemBlendIn();
}

function itemBlendIn() {
 for(var s=0; s < shopids.length; s++){
  for(var i=0; i < shopitems[shopids[s]].length; i++){
   document.getElementById("sllitembox"+shopitems[shopids[s]][i]).style.display = "block";
  }
  if(shopShow) document.getElementById("shopcut"+shopids[s]).style.display = "block";
  document.getElementById("sllshopbox"+shopids[s]).style.display = "block";
 }
 document.getElementById("sliscnt").innerHTML = document.getElementById("slicnt").innerHTML;
}

function itemBlendOut() {
 var sel = new Array();
 if(myItems != ""){
  var seli = myItems.split(",");
  for(var i=0; i < seli.length; i++){
    sel[i] = seli[i];
  }
  document.getElementById("sliscnt").innerHTML = seli.length;
 }
 else{
  document.getElementById("sliscnt").innerHTML = 0;
 }
 
 for(var s=0; s < shopids.length; s++){
  var isdab = false;
  for(var i=0; i < shopitems[shopids[s]].length; i++){
   if(!in_array(shopitems[shopids[s]][i],sel)){
    document.getElementById("sllitembox"+shopitems[shopids[s]][i]).style.display = "none";
   }
   else{
    isdab = true;
    document.getElementById("sllitembox"+shopitems[shopids[s]][i]).style.display = "block";
   }
  }
  if(!isdab){
   document.getElementById("shopcut"+shopids[s]).style.display = "none";
   document.getElementById("sllshopbox"+shopids[s]).style.display = "none";
  }
  else{
   if(shopShow) document.getElementById("shopcut"+shopids[s]).style.display = "block";
   document.getElementById("sllshopbox"+shopids[s]).style.display = "block";
  }
 }
 
}

var shopShow = true;

function shopBlend() {
 if(shopids == "") makeShopArs();
 var ib = false;
 if(document.getElementById("sliscnt").innerHTML < document.getElementById("slicnt").innerHTML) ib = true;
 if(shopShow){
  shopShow = false;
  for(var s=0; s < shopids.length; s++){
   document.getElementById("shopcut"+shopids[s]).style.display = "none";
  }
 }
 else{
  shopShow = true;
  for(var s=0; s < shopids.length; s++){
   if(!ib || (ib && document.getElementById("sllshopbox"+shopids[s]).style.display == "block")) document.getElementById("shopcut"+shopids[s]).style.display = "block";
  }
 }
 
 
}










function itemInfo(myme,what,itemID,myState) {
 
 var obj = document.getElementById("itemhelp");
 
 if(myState == 1){
  if (document.all) {
   var xo,yo;
   if (self.pageYOffset){ // all except Explorer
    xo = self.pageXOffset;
    yo = self.pageYOffset;
   }
   else if (document.documentElement && document.documentElement.scrollTop){ // Explorer 6 Strict
    xo = document.documentElement.scrollLeft;
    yo = document.documentElement.scrollTop;
   }
   else if (document.body){ // all other Explorers
    xo = document.body.scrollLeft;
    yo = document.body.scrollTop;
   }
   var x = myme.clientX + xo;
   var y = myme.clientY + yo;
  }
  else{
   var x = myme.pageX;
   var y = myme.pageY;
  }
  
  var txtid = "";
  switch(what){
   case "I": txtid = "iitd"; break;
   case "O": txtid = "iito"; break;
   case "A": txtid = "iita"; break;
   case "P": txtid = "iitp"; break;
   default : txtid = ""; break;
  }
  
  var objtxt = document.getElementById(txtid+"_"+itemID);
  if(objtxt){
   obj.style.left = (x + 15) + "px";
   obj.style.top = (y + 15) + "px";
   
   obj.innerHTML = objtxt.innerHTML;
   obj.style.display = "block";
  }
 }
 else{
  if(what != ""){
   obj.style.display = "none";
   obj.innerHTML = "";
  }
 }
}












function membersOnly(){
 alert(dotalerts("MEMONLY"));
 /*
 var obj = document.getElementById("memonly");
 if(myState == "1"){
  if (document.all) {
   var yo;
   if (self.pageYOffset) yo = self.pageYOffset;
   else if (document.documentElement && document.documentElement.scrollTop) yo = document.documentElement.scrollTop;
   else if (document.body) yo = document.body.scrollTop;
   var y = myme.clientY + yo;
  }
  else{
   var y = myme.pageY;
  }
  obj.style.top = (y -50) + "px";
  obj.style.left = ((innerWidth() / 2) - 100) + "px";
  obj.style.display = "block";
 }
 else{
  obj.style.display = "none";
 }*/
}



function innerwidth(){
 // Inner width
 var width;
 if (self.innerWidth){ // all except Explorer
 	width = self.innerWidth;
 }
 else if (document.documentElement && document.documentElement.clientHeight){	// Explorer 6 Strict Mode
 	width = document.documentElement.clientWidth;
 }
 else if (document.body){ // other Explorers
  width = document.body.clientWidth;
 }
 return width;
}

/*
// Page height
var x,y;
var test1 = document.body.scrollHeight;
var test2 = document.body.offsetHeight
if (test1 > test2) // all but Explorer Mac
{
	x = document.body.scrollWidth;
	y = document.body.scrollHeight;
}
else // Explorer Mac;
     //would also work in Explorer 6 Strict, Mozilla and Safari
{
	x = document.body.offsetWidth;
	y = document.body.offsetHeight;
}*/

var logAction = "";

function login() {
 logAction = "login";
 var post = ""; // Haäöüàé'sß?*"[]"viß&&&ß+?==ta$
 var nick = encodeURIComponent(htmlentities(document.getElementsByName("xdotausername")[0].value));
 var pass = encodeURIComponent(htmlentities(document.getElementsByName("xdotapassword")[0].value));
 
 if(nick != "" && pass != ""){
  post += "action=LOGIN";
  post += "&xdpenc=1";
  post += "&xdusername="+ nick;
  post += "&xdpassword="+ pass;
  
  sendRequest( "/index.php?dyn=dotaview&lang="+curLang+"&dotaview=mem&dotalogin=1&nocache="+Math.random(), post, 2, "loginResponse" );
 }
}

function logout() {
 logAction = "logout";
 post = "action=LOGOUT";
 sendRequest( "/index.php?dyn=dotaview&lang="+curLang+"&dotaview=mem&dotalogout=1&nocache="+Math.random(), post, 2, "logoutResponse" );
}

function loginResponse(response) {
 if(response != ""){
  document.getElementById("dota_mem").innerHTML = response;
  var objuid = document.getElementsByName("dotauid")[0];
  if(objuid){
   dotaUser = objuid.value;
   document.getElementById("usernick").innerHTML = document.getElementById("dotausernick").innerHTML;
   if(in_array("items",dotaDynLoad)){
    document.images["tbut_setlistmy"].src = "/img2/shops/setlistmy.png";// activate mylist Button
    document.images["setguidebut"].src = "/img2/shops/optinfo.png";// activate SetOption Buttons
    document.images["setdelbut"].src = "/img2/shops/optdel.png";
    document.images["setnewbut"].src = "/img2/shops/optnew.png";
    document.images["setrenamebut"].src = "/img2/shops/optrename.png";
    document.images["setsavebut"].src = "/img2/shops/optsave.png";
    document.images["setsaveasbut"].src = "/img2/shops/optsaveas.png";
    document.images["setpublishbut"].src = "/img2/shops/optpublish.png";
   }
   // activate ...
  }
 }
}

function logoutResponse(response) {
 if(response != ""){
  document.getElementById("dota_mem").innerHTML = response;
  dotaUser = "";
  document.getElementById("usernick").innerHTML = "Guest";
  if(in_array("items",dotaDynLoad)){
   document.images["tbut_setlistmy"].src = "/img2/shops/setlistmyout.png";// deactivate mylist Button
   document.images["setguidebut"].src = "/img2/shops/optinfoff.png";// deactivate SetOption Buttons
   document.images["setdelbut"].src = "/img2/shops/optdeloff.png";
   document.images["setnewbut"].src = "/img2/shops/optnewoff.png";
   document.images["setrenamebut"].src = "/img2/shops/optrenameoff.png";
   document.images["setsavebut"].src = "/img2/shops/optsaveoff.png";
   document.images["setsaveasbut"].src = "/img2/shops/optsaveasoff.png";
   document.images["setpublishbut"].src = "/img2/shops/optpublishoff.png";
  }
  // deactivate ...
 }
}

function signup(myAction){
 
 if(myAction == "now"){
  var post = "";
  var firstname = signupinput("firstname",1,0);
  var lastname = signupinput("lastname",1,0);
  
  var email = signupinput("email",0,0);
  
  var nick = signupinput("nickname",0,0);
  var pass = signuppass();
  
  var objconsent = document.getElementsByName("signup_consent")[0];
  if(email != "" && nick != "" && pass != "" && objconsent.checked == true){
   //alert("Alles OK!");
   post += "firstname="+encodeURIComponent(htmlentities(firstname));
   post += "&lastname="+encodeURIComponent(htmlentities(lastname));
   post += "&email="+encodeURIComponent(htmlentities(email));
   post += "&country="+document.getElementsByName("signup_country")[0].value;
   post += "&birthday="+document.getElementsByName("signup_birth_day")[0].value;
   post += "&birthmonth="+document.getElementsByName("signup_birth_month")[0].value;
   post += "&birthyear="+document.getElementsByName("signup_birth_year")[0].value;
   var gender = "";
   if(document.getElementsByName("signup_gender")[1].checked == true) gender = "male";
   else if(document.getElementsByName("signup_gender")[2].checked == true) gender = "female";
   post += "&gender="+gender;
   post += "&nick="+encodeURIComponent(htmlentities(nick));
   post += "&pass="+encodeURIComponent(htmlentities(pass));
   
   sendRequest( "/index.php?dyn=dotaview&lang="+curLang+"&dotaview=mem&action=signupnow", post, 2, "signupResponse" );
  }
  else{
   alert(dotalerts("CHECKINP"));
  }
 }
 else if(myAction == "reset"){
  signupinput("firstname",1,1);
  signupinput("lastname",1,1);
  signupinput("email",0,1);
  
  document.getElementsByName("signup_country")[0].value = "";
  document.getElementsByName("signup_birth_day")[0].value = "";
  document.getElementsByName("signup_birth_month")[0].value = "";
  document.getElementsByName("signup_birth_year")[0].value = "";
  document.getElementsByName("signup_gender")[0].checked = true;
  document.getElementsByName("signup_gender")[1].checked = false;
  document.getElementsByName("signup_gender")[2].checked = false;
  
  signupinput("nickname",0,1);
  signupinput("password",0,1);
  signupinput("password1",0,1);
 }
}

function update(myAction){
 if(myAction == "now"){
  var post = "";
  var firstname = signupinput("firstname",1,0);
  var lastname = signupinput("lastname",1,0);
  var email = signupinput("email",0,0);
  if(document.getElementsByName("signup_password")[0].value != "" || document.getElementsByName("signup_password1")[0].value != "") var pass = signuppass();
  else var pass = "ok";
  
  if(email != "" && pass != ""){
   //alert("Alles OK!");
   post += "firstname="+encodeURIComponent(htmlentities(firstname));
   post += "&lastname="+encodeURIComponent(htmlentities(lastname));
   post += "&email="+encodeURIComponent(htmlentities(email));
   post += "&country="+document.getElementsByName("signup_country")[0].value;
   post += "&birthday="+document.getElementsByName("signup_birth_day")[0].value;
   post += "&birthmonth="+document.getElementsByName("signup_birth_month")[0].value;
   post += "&birthyear="+document.getElementsByName("signup_birth_year")[0].value;
   var gender = "";
   if(document.getElementsByName("signup_gender")[1].checked == true) gender = "male";
   else if(document.getElementsByName("signup_gender")[2].checked == true) gender = "female";
   post += "&gender="+gender;
   post += "&pass="+ ((pass!="ok")?encodeURIComponent(htmlentities(pass)):(""));
   
   sendRequest( "/index.php?dyn=dotaview&lang="+curLang+"&dotaview=mem&action=updatenow", post, 2, "updateResponse" );
  }
  else{
   alert(dotalerts("CHECKINP"));
  }
 }
 else if(myAction == "reset"){
  signupinput("firstname",1,1);
  signupinput("lastname",1,1);
  signupinput("email",0,1);
  
  document.getElementsByName("signup_country")[0].value = document.getElementsByName("updorg_country")[0].value;
  document.getElementsByName("signup_birth_day")[0].value = document.getElementsByName("updorg_birth_day")[0].value;
  document.getElementsByName("signup_birth_month")[0].value = document.getElementsByName("updorg_birth_month")[0].value;
  document.getElementsByName("signup_birth_year")[0].value = document.getElementsByName("updorg_birth_year")[0].value;
  document.getElementsByName("signup_gender")[0].checked = document.getElementsByName("updorg_gender")[0].value == "" ? true : false;
  document.getElementsByName("signup_gender")[1].checked = document.getElementsByName("updorg_gender")[0].value == "male" ? true : false;
  document.getElementsByName("signup_gender")[2].checked = document.getElementsByName("updorg_gender")[0].value == "female" ? true : false;
  
  signupinput("password",0,1);
  signupinput("password1",0,1);
 }
}

function signupinput(myKey,canEmpty,isReset){
 var obj = document.getElementsByName("signup_"+myKey)[0];
 if(isReset == 1){
  var objorg = document.getElementsByName("updorg_"+myKey)[0];
  obj.value = (objorg) ? objorg.value : "";
  obj.style.borderColor = "#505050";
 }
 else{
  var val = obj.value.replace(/ /,"");
  if(canEmpty == 0 && val == ""){
   var brdcol = "FF0033";
  }
  else{
   if(myKey == "email"){
    if(mailCheck(val) == false){
     var brdcol = "FF0033";
     val = "";
    }
    else{
     var brdcol = "505050";
    }
   }
   else if(myKey == "nickname"){
    if(val.length >= 5 && val.length <= 30){
     var brdcol = "505050";
    }
    else{
     var brdcol = "FF0033";
     val = "";
    }
   }
   else{
    var brdcol = "505050";
   }
  }
  obj.style.borderColor = "#" + brdcol;
  return val;
 }
}

function signuppass(){
 var pass = "";
 var objp1 = document.getElementsByName("signup_password")[0];
 var objp2 = document.getElementsByName("signup_password1")[0];
 var pass1 = objp1.value;
 var pass2 = objp2.value;
 if(pass1 != "" && pass1.length >= 5 && pass1.length <= 32){
  objp1.style.borderColor = "#505050";
  if(pass2 != "" && pass2.length >= 5 && pass2.length <= 32){
   if(pass1 == pass2){
    objp2.style.borderColor = "#505050";
    pass = pass1;
   }
   else{
    objp2.style.borderColor = "#FF0033";
   }
  }
  else{
   objp2.style.borderColor = "#FF0033";
  }
 }
 else{
  objp1.style.borderColor = "#FF0033";
 }
 return pass;
}

function signupconsent(){
 /*var butobj = document.getElementById('signup_submit');
 var objconsent = document.getElementsByName("signup_consent")[0];
 if(objconsent.checked == true) butobj.disabled = false;
 else butobj.disabled = true;*/
}

function mailCheck(mail) {
 var res = false;
 reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
                   '(\\@)([a-zA-Z0-9\\-\\.]+)'+
                   '(\\.)([a-zA-Z]{2,4})$');
 res = (reg.test(mail));
 //res = (mail.search('@') >= 1 && mail.lastIndexOf('.') > mail.search('@') && mail.lastIndexOf('.') >= mail.length-5)
 return(res);
}

function signupResponse(response) {
 var obj = document.getElementById("dota_mem");
 obj.innerHTML = response;
}

function updateResponse(response) {
 var obj = document.getElementById("dota_mem");
 obj.innerHTML = response;
}

function setAutoLog(myState) {
 sendRequest( "/index.php", "dyn=dotaview&lang="+curLang+"&dotaview=mem&setautolog="+myState+"&nocache="+Math.random(), 0, "setautologResponse" );
}

function setautologResponse(response) {
 var obj = document.getElementById("autologstate");
 obj.innerHTML = response;
 obj.style.color = (response == "ON") ? "045f20" : "8e1d20";
}






function setNew() {
 if(dotaUser != ""){
  var check = true;
  if(myItemSetChanged == true) check = confirm("Would you like reject changes of Set?\nClick \"OK\" to reject changes or \"Cancel\" to abort!");
  if(check == true){
   myItems = "";
   myItemsUse = "";
   myItemSet = 0;
   myItemSetName = "Untitled ItemSet ...";
   myItemSetHero = "";
   myItemSetHeroPrim = "";
   myItemSetHeroName = "No Hero selected ...";
   
   document.getElementById("setname").innerHTML = myItemSetName;
   
   myItemUpdateFull();
   myItemSetHeros(myItemSetHero,myItemSetHeroPrim,myItemSetHeroName);
   myItemSetChange("");
   setSetPublicOptions("");
  }
 }
 else{
  membersOnly();
 }
}

var newSetName = "";

function setRename() {
 if(dotaUser != ""){
  if(!myItemSetPublic){
   newSetName = "";
   var obj = document.getElementById("setdialog");
   obj.innerHTML = "<div style=\"margin:15px 0px 10px 0px;text-align:center;\"><b>Rename:</b> Enter a the new name for this ItemSet!<br /><input type=\"text\" name=\"setnewname\" value=\""+myItemSetName+"\" maxlength=\"40\" style=\"width:270px;margin:10px 0px 8px 0px;border-style:solid;border-width:1px;border-color:#3b3311;background-color:#1c1e1e;color:#e6b04d;\"><br /><img src=\"/img2/shops/optsave.png\" onclick=\"setRenameNow('1')\" style=\"cursor:pointer;\"><img src=\"/img2/shops/optcancel.png\" onclick=\"setRenameNow('0')\" style=\"cursor:pointer;\"></div>";
   
   obj.style.display = "block";
   obj.style.top = 45 + "px";
   obj.style.left = 580 + "px";
  }
  else{
   alert(dotalerts("CANTRPS"));
  }
 }
 else{
  membersOnly();
 }
}

function setRenameNow(opt) {
 var obj = document.getElementById("setdialog");
 var input = document.getElementsByName("setnewname")[0];
 if(opt == 1){
  newSetName = input.value;
  if(newSetName != ""){
   input.value = "";
   obj.style.display = "none";
   myItemSetName = newSetName;
   setSave('');
  }
  else{
   alert(dotalerts("ENTSETNAM"));
  }
 }
 else{
  input.value = "";
  obj.style.display = "none";
 }
}


function setSave(as) {
 if(dotaUser != ""){
  if(!myItemSetPublic || as != ""){
   if(myItems != ""){
    if(myItemSetName != "Untitled ItemSet..." && myItemSetName != ""){
     var post  = "";
         post += "myitems="+myItems;
         post += "&myitemsetname="+encodeURIComponent(htmlentities((as != "")?(as):(myItemSetName)));
         post += "&myitemsuse="+myItemsUse;
     if(as == "") post += "&myitemset="+myItemSet;
         post += "&myitemsethero="+myItemSetHero;
         post += "&myitemsetheroprim="+myItemSetHeroPrim;
         post += "&myitemsetinfo="+encodeURIComponent(htmlentities(document.getElementsByName("setinfotxt")[0].value));
     sendRequest( "/index.php?dyn=dotaview&lang="+curLang+"&dotaview=items&setsave=1&nocache="+Math.random(), post, 2, "setSaveResponse" );
    }
    else{
     alert(dotalerts("ENTSETNAMR"));
    }
   }
   else{
    alert(dotalerts("CSEMPTYSET"));
   }
  }
  else{
   alert(dotalerts("CSCPUBSETSA"));
  }
 }
 else{
  membersOnly();
 }
}

function setSaveAs() {
 if(dotaUser != ""){
  newSetName = "";
  var obj = document.getElementById("setdialog");
  obj.innerHTML = "<div style=\"margin:15px 0px 10px 0px;text-align:center;\"><b>SaveAs:</b> Enter a name for this ItemSet copy!<br /><input type=\"text\" name=\"setsaveasname\" value=\""+myItemSetName+"\" maxlength=\"40\" style=\"width:270px;margin:10px 0px 8px 0px;border-style:solid;border-width:1px;border-color:#3b3311;background-color:#1c1e1e;color:#e6b04d;\"><br /><img src=\"/img2/shops/optsave.png\" onclick=\"setSaveAsNow('1')\" style=\"cursor:pointer;\"><img src=\"/img2/shops/optcancel.png\" onclick=\"setSaveAsNow('0')\" style=\"cursor:pointer;\"></div>";
  
  obj.style.display = "block";
  obj.style.top = 45 + "px";
  obj.style.left = 580 + "px";
 }
 else{
  membersOnly();
 }
}

function setSaveAsNow(opt) {
 var obj = document.getElementById("setdialog");
 var input = document.getElementsByName("setsaveasname")[0];
 if(opt == 1){
  newSetName = input.value;
  if(newSetName != ""){
   input.value = "";
   obj.style.display = "none";
   setSave(newSetName);
  }
  else{
   alert(dotalerts("ENTSETNAMC"));
  }
 }
 else{
  input.value = "";
  obj.style.display = "none";
 }
}

function setSaveResponse(response) {
 if(response == "exist"){
  alert(dotalerts("SETEXIST"));
 }
 else{
  if(response != 0){
   myItemSet = response;
   if(newSetName != ""){
    myItemSetName = newSetName;
    newSetName = "";
    document.getElementById("setname").innerHTML = myItemSetName;
    var objsetl = document.getElementById("setname_"+myItemSet);
    if(objsetl) objsetl.innerHTML = myItemSetName;
   }
   myItemSetChange("");
   setSetPublicOptions("");
   alert(dotalerts("SETSAVED"));
  }
  else{
   alert(dotalerts("SETNOTSAVED"));
  }
 }
}

function setDelete() {
 if(dotaUser != ""){
  if(!myItemSetPublic){
   if(myItemSet != "" && myItemSet != 0){
    sendRequest( "/index.php", "dyn=dotaview&lang="+curLang+"&dotaview=items&setdel="+myItemSet+"&nocache="+Math.random(), 0, "setDelResponse" );
   }
  }
  else{
   alert(dotalerts("CNDELPUBSET"));
  }
 }
 else{
  membersOnly();
 }
}

function setDelResponse(response) {
 if(response != ""){
  document.getElementById("recitemsets").removeChild(document.getElementById("itemset_"+response));
  setNew();
  alert(dotalerts("SETDEL"));
 }
 else{
  alert(dotalerts("SETNOTDEL"));
 }
}

function setSelect(setID,setItems,setItemsUse,setHero,setPrim,setHeroName,setPub) {
 //if(busy(1,"ItemSet is loading ...")){
 
 myItemSet = setID;
 myItemSetName = document.getElementById("setname_"+setID).innerHTML;
 document.getElementById("setname").innerHTML = myItemSetName;
 
 myItems = setItems;
 myItemsUse = setItemsUse;
 myItemUpdateFull();
 if(document.getElementById("sliscnt").innerHTML < document.getElementById("slicnt").innerHTML) itemBlendOut();
 
 myItemSetHero = setHero;
 myItemSetHeroPrim = setPrim;
 myItemSetHeroName = setHeroName;
 myItemSetHeros(setHero,setPrim,setHeroName);
 myItemSetChange("");
 setSetPublicOptions((setPub != "")?"on":"");
 //}
 //busy(0,"");
}

function editSetInfo() {
 var objedit = document.getElementById("setinfoedit");
 var objeditopts = document.getElementById("setguideditopts");
 var objview = document.getElementById("setinfoview");
 //alert(objedit.style.display);
 if( objedit.style.display == "none"){
  document.images["setinfoeditbut"].src = "/img2/shops/setguideviewbut.png";
  objview.style.display = "none";
  objedit.style.display = "block";
  objeditopts.style.display = "block";
  if(document.getElementsByName("setinfotxt")[0].value == "" && myItemSet != 0){
   sendRequest( "/index.php", "dyn=dotaview&lang="+curLang+"&dotaview=items&setinfoedit="+myItemSet+"&nocache="+Math.random(), 0, "setInfoEditResponse" );
  }
 }
 else{
  document.images["setinfoeditbut"].src = "/img2/shops/setguideditbut.png";
  objview.style.display = "block";
  objedit.style.display = "none";
  objeditopts.style.display = "none";
  if(document.getElementsByName("setinfotxt")[0].value != ""){
   var post = "setinfo="+encodeURIComponent(htmlentities(document.getElementsByName("setinfotxt")[0].value));
   sendRequest( "/index.php?dyn=dotaview&lang="+curLang+"&dotaview=items&setinfoparse="+myItemSet+"&nocache="+Math.random(), post, 2, "setInfoViewResponse" );
  }
 }
}

function setInfoEditResponse(response) {
 document.getElementsByName("setinfotxt")[0].value = response;
 myItemSetChange("ischange");
}

function setInfoViewResponse(response) {
 document.getElementById("setinfoview").innerHTML = response;
}

function setPublish() {
 if(dotaUser != ""){
  if(myItemSet > 0 && myItemSetChanged == false){
   if(!myItemSetPublic) sendRequest( "/index.php", "dyn=dotaview&lang="+curLang+"&dotaview=items&setpublish="+myItemSet+"&nocache="+Math.random(), 0, "setPublishResponse" );
   else alert(dotalerts("CNPPUBSET"));
  }
  else{
   alert(dotalerts("SAVFIRSTP"));
  }
 }
 else{
  membersOnly();
 }
}

function setPublishResponse(response) {
 if(response){
  setSetPublicOptions("on");
  dotaDynLoad = del_array_val("setmylist",dotaDynLoad);
  dotaDynLoad = del_array_val("setpublist",dotaDynLoad);
  showSetList(mySetList);
  alert(dotalerts("SETPUBL"));
 }
 else{
  alert(dotalerts("SETNOTPUBL"));
 }
}

function setSetPublicOptions(onoff) {
 if(onoff == "on"){
  myItemSetPublic = true;
  document.getElementById("setpublicstate").innerHTML = "Public Set";
  document.images["setdelbut"].src = "/img2/shops/optdeloff.png";
  document.images["setrenamebut"].src = "/img2/shops/optrenameoff.png";
  document.images["setsavebut"].src = "/img2/shops/optsaveoff.png";
  document.images["setpublishbut"].src = "/img2/shops/optpublishoff.png";
 }
 else{
  myItemSetPublic = false;
  document.getElementById("setpublicstate").innerHTML = "Private Set";
  document.images["setdelbut"].src = "/img2/shops/optdel.png";
  document.images["setrenamebut"].src = "/img2/shops/optrename.png";
  document.images["setsavebut"].src = "/img2/shops/optsave.png";
  document.images["setpublishbut"].src = "/img2/shops/optpublish.png";
 }
}

function myItemSetChange(action) {
 if(action == "ischange"){
  myItemSetChanged = true;
  if(dotaUser != "" && !myItemSetPublic) document.images["setsavebut"].src = "/img2/shops/optsaveon.png";
 }
 else{
  myItemSetChanged = false;
  if(dotaUser != "" && !myItemSetPublic) document.images["setsavebut"].src = "/img2/shops/optsave.png";
 }
}



function busy(state,msg) {
 var objbusy = document.getElementById("busydialog");
 if(state == 1){
  //var bheight = document.getElementById("dotabody").style.height;
  //alert(bheight);
  //objbusy.style.height = bheight;
  if(msg != "") objbusy.innerHTML = msg;
  objbusy.style.display = "block";
 }
 else{
  objbusy.style.display = "none";
 }
}


function dotaFeedback() {
 
}



var selectedText = "";
var AddTxt = "";

function setfocus(theform) {
 theform.focus();
}

function getActiveText(theform) {
 if (window.getSelection) selectedText = window.getSelection();
 else if (document.getSelection) selectedText = document.getSelection();
 else if (document.selection) selectedText = document.selection.createRange().text;
 if (theform.createTextRange) theform.caretPos = document.selection.createRange().duplicate();
}
  
function AddText(NewCode,theform) {
 if (theform.createTextRange && theform.caretPos) {
  var caretPos = theform.caretPos;
  caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? NewCode + ' ' : NewCode;
 } else theform.value+=NewCode
 AddTxt = "";
 setfocus(theform);
}

function tagcode(theform,code) {
 setfocus(theform);
 getActiveText(theform);
 AddText("["+code+"]"+selectedText+"[/"+code+"]",theform);
 setfocus(theform);
}






function dotalegend(myme,myLeg,myState) {
 if(myState == 1){
  
  var objl = document.getElementById("leghelp");
  
  if (document.all) {
   var xo,yo;
   if (self.pageYOffset){ // all except Explorer
    xo = self.pageXOffset;
    yo = self.pageYOffset;
   }
   else if (document.documentElement && document.documentElement.scrollTop){ // Explorer 6 Strict
    xo = document.documentElement.scrollLeft;
    yo = document.documentElement.scrollTop;
   }
   else if (document.body){ // all other Explorers
    xo = document.body.scrollLeft;
    yo = document.body.scrollTop;
   }
   var x = myme.clientX + xo;
   var y = myme.clientY + yo;
  }
  else{
   var x = myme.pageX;
   var y = myme.pageY;
  }

  objl.style.left = (x - (((x+170)>innerwidth())?(170):(15))) + "px";
  //objl.style.left = (x - 15) + "px";
  objl.style.top = (y + 15) + "px";
   
  switch(curLang){
   case "de": objl.innerHTML = dotalegend_infode(myLeg);
              break;
   default  : objl.innerHTML = dotalegend_infoen(myLeg);
              break;
  }
  
  objl.style.display = "block";

 }
 else{
  if(myLeg != ""){
   var objl = document.getElementById("leghelp");
   objl.style.display = "none";
   objl.innerHTML = "";
  }
 }
}




function dotalegend_infoen(myLeg) {
 var str = "";
 switch(myLeg){
  case "SHOP"  : str = "<b>Shop/Dealer</b> wherewo the following<br />Items/Recipes can be bought.<br />Click here to view/hide the items of this shop.";
                 break;
  case "ITEM"  : str = "Item/Rezept Picture.<br />Left click adds to or removes from the current ItemSet!";
                 break;
  case "ITEMC" : str = "Left click removes from ItemSet!";
                 break;
  case "NAME"  : str = "Name of the Item/Recipe.<br />If available: Info,<br />Orb Effects (have an effect automatically, do not stack!),<br />Active Spells (must be activated with left click),<br />Passiv Attributes (have an effect automatically)";
                 break;
  case "COST"  : str = "Costs for the Item/Recipe.<br />1.) Single Item/Recipe costs.<br />2.) Total costs for this Recipe.<br />Including the single costs and<br />the total costs for all required<br />Items/Recipes.";
                 break;
  case "GOLD"  : str = "Costs for the single Item/Recipe.";
                 break;
  case "REQU"  : str = "Required Items/Recipes to <br />can use this Recipe.<br />Above the picture the single costs and<br />under the picture the total costs are indicated<br />for the required Item/Recipe.<br />Left click jumps to the required Item/Recipe!";
                 break;
  case "TOTAL" : str = "Total costs for this Recipe.<br />Including the single costs and<br />the total costs for all required Items/Recipes.";
                 break;
  case "REQUF" : str = "Recipes for which this Item/Recipes is required.<br />Above the picture the single costs and<br />under the picture the total costs are indicated<br />for possible Recipes.<br />Left click jumps to the required Item/Recipe!";
                 break;
  case "HP"    : str = "Health Points Bonus.<br />If more than one value is declared, then<br />1.) Total Bonus<br />2.) Own Bonus<br />3.) Strength Bonus (calculates: Strength x 19 Health Points)";
                 break;
  case "HPR"   : str = "Health Points regeneration Bonus.<br />+Health Points/second.";
                 break;
  case "ARM"   : str = "Armor Bonus.<br />If more than one value is declared, then<br />1.) Total Bonus<br />2.) Own Bonus<br />3.) Agility Bonus (calculates: Agility / 7, rounded)";
                 break;
  case "MA"    : str = "Mana Bonus.<br />If more than one value is declared, then<br />1.) Total Bonus<br />2.) Own Bonus<br />3.) Intelligence Bonus (calculates: Intelligence x 13 Mana Points)";
                 break;
  case "MAR"   : str = "Mana regeneration Bonus.<br />+Percent/second";
                 break;
  case "INT"   : str = "Intelligence Bonus.<br />This column is marked if a Intelligence Hero is selected!";
                 break;
  case "DAM"   : str = "Damage Bonus.<br />If more than one value is declared, then<br />1.) Total Bonus<br />2.) Own Bonus<br />3.) Hero Group Bonus (Strength|Agility|Intelligence)<br />Select a Hero to activate this calculation!";
                 break;
  case "STR"   : str = "Strength Bonus.<br />This column is marked if a Strength Hero is selected!";
                 break;
  case "AGL"   : str = "Agility Bonus.<br />This column is marked if a Agility Hero is selected!";
                 break;
  case "ATA"   : str = "Attack speed Bonus.<br />If more than one value is declared, then<br />1.) Total Bonus<br />2.) Own Bonus<br />3.) Agility Bonus (calculates: 1 Attack speed = 1 Agility)";
                 break;
  case "MOV"   : str = "Move speed Bonus.";
                 break;
  case "ONOFF" : str = "Adding/removing Item/Recipe to/from current ItemSet.";
                 break;
  case "BPIN"  : str = "Click! <b>Adds</b> a Item/Recipe<br />directly <b>to ItemSets Backpack.</b>";
                 break;
  case "BPOUT" : str = "Click! <b>Removes</b> a Item/Recipe<br />directly <b>from ItemSets Backpack.</b>";
                 break;
  case "BPINC"  : str = "Click! <b>Adds</b> to ItemSets Backpack.";
                 break;
  case "BPOUTC" : str = "Click! <b>Removes</b> from ItemSets Backpack.";
                 break;
  case "NEWSET": str = "Close the current ItemSet<br />and open a new blank ItemSet.";
                 break;
  case "RENSET": str = "Rename the current ItemSet!<br />ItemSet directly saved with the new name.";
                 break;
  case "SAVSET": str = "Save the current selected ItemSet to Database.";
                 break;
  case "SASSET": str = "Save a copy of the current ItemSet to Database.<br />The current ItemSet is now the new saved copy!";
                 break;
  case "DELSET": str = "Delete the current ItemSet from Database.<br />A new blank ItemSet would be opened!";
                 break;
  case "PUBSET": str = "Publish the current ItemSet!<br />Then the ItemSet is available to other users and is listed under \"PubSets\".<br />After publication the ItemSet cannot be changed any more or be deleted!<br /><b>There occurs no wide query!</b>";
                 break;
  default  : str = "...";
             break;
 }
 return str;
}

function dotalegend_infode(myLeg) {
 var str = "";
 switch(myLeg){
  case "SHOP"  : str = "Shop/Händler wo die folgenden<br />Items/Rezepte erhältlich sind. Klick hier um die Items dieses Shops ein-/auszublenden.";
                 break;
  case "ITEM"  : str = "Item/Rezept Bild.<br />Linksklick fügt es zum aktuellen ItemSet hinzu oder enfernt es!";
                 break;
  case "ITEMC" : str = "Linksklick entfernt es aus dem ItemSet!";
                 break;
  case "NAME"  : str = "Name des Item/Rezept.<br />Wenn verfügbar: Info,<br />Orb Effekte (wirken automatisch, aber stacken nicht!),<br />Active Zaubersprüche (müssen mit Linksklick aktiviert werden),<br />Passive Attribute (wirken automatisch)";
                 break;
  case "COST"  : str = "Kosten für das Item/Rezept.<br />1.) Kosten für das einzelne Item/Rezept.<br />2.) Gesamtkosten für ein Rezept.<br />Darin sind die Kosten für dieses Rezept<br />und die Gesamtkosten für alle benötigten<br />Items/Rezepte enthalten.";
                 break;
  case "GOLD"  : str = "Kosten für das einzelne Item/Rezept.";
                 break;
  case "REQU"  : str = "Benötigte Items/Rezepte um<br />dieses Rezept benutzen zu können.<br />Über dem Bild werden die einzelnen Kosten und<br />unter dem Bild die Gesamtkosten für das<br />benötigte Item/Rezept angezeigt.<br />Linksklick springt zu dem benötigtem Item/Rezept!";
                 break;
  case "TOTAL" : str = "Gesamtkosten für ein Rezept.<br />Darin sind die Kosten für dieses Rezept<br />und die Gesamtkosten für alle benötigten<br />Items/Rezepte enthalten.";
                 break;
  case "REQUF" : str = "Rezepte für welche dieses Item/Rezept benötigt wird.<br />Über dem Bild werden die einzelnen Kosten und<br />unter dem Bild die Gesamtkosten für das mögliche<br />Rezept angezeigt.<br />Linksklick springt zu dem möglichen Rezept!";
                 break;
  case "HP"    : str = "Lebenspunkte Bonus.<br />Wenn mehr als ein Wert angegeben ist, dann<br />1.) Gesamtbonus<br />2.) Eigener Bonus<br />3.) Kraft Bonus (errechnet: Kraft x 19 Lebenspunkte)";
                 break;
  case "HPR"   : str = "Lebenspunkte Regenerations Bonus.<br />+Lebenspunkte/Sekunde.";
                 break;
  case "ARM"   : str = "Rüstungs Bonus.<br />Wenn mehr als ein Wert angegeben ist, dann<br />1.) Gesamtbonus<br />2.) Eigener Bonus<br />3.) Geschick Bonus (errechnet: Geschick / 7, gerundet)";
                 break;
  case "MA"    : str = "Mana Bonus.<br />Wenn mehr als ein Wert angegeben ist, dann<br />1.) Gesamtbonus<br />2.) Eigener Bonus<br />3.) Intelligenz Bonus (errechnet: Intelligenz x 13 Mana Punkte)";
                 break;
  case "MAR"   : str = "Mana Regenarations Bonus.<br />+Prozent/Sekunde";
                 break;
  case "INT"   : str = "Intelligenz Bonus.<br />Diese Spalte ist hervorgehoben, wenn ein Intelligenz Hero ausgewählt wird!";
                 break;
  case "DAM"   : str = "Schaden Bonus.<br />Wenn mehr als ein Wert angegeben ist, dann<br />1.) Gesamtbonus<br />2.) Eigener Bonus<br />3.) Hero Group Bonus (Stärke|Geschick|Intelligenz)<br />Wähle einen Hero, um diese Berrechnung zu aktivieren!";
                 break;
  case "STR"   : str = "Kraft Bonus.<br />Diese Spalte ist hervorgehoben, wenn ein Stärke Hero ausgewählt wird!";
                 break;
  case "AGL"   : str = "Geschicklichkeits Bonus.<br />Diese Spalte ist hervorgehoben, wenn ein Geschick Hero ausgewählt wird!";
                 break;
  case "ATA"   : str = "Angriffsgeschwindigkeits Bonus.<br />Wenn mehr als ein Wert angegeben ist, dann<br />1.) Gesamtbonus<br />2.) Eigener Bonus<br />3.) Geschicklichkeits Bonus (errechnet: 1 Angriffsgeschwindigkeit = 1 Geschick)";
                 break;
  case "MOV"   : str = "Bewegungsgeschwindigkeits Bonus.";
                 break;
  case "ONOFF" : str = "Hinzufügen/Entfernen des Items/Rezeptes zum/vom aktuelle ItemSet.";
                 break;
  case "BPIN"  : str = "Klick! <b>Hinzufügen</b> des Items/Rezeptes<br />direkt <b>in den Rucksack des ItemSets.</b>";
                 break;
  case "BPOUT" : str = "Klick! <b>Entfernen</b> des Items/Rezeptes<br />direkt <b>aus dem Rucksack des ItemSets.</b>";
                 break;
  case "BPINC" : str = "Klick! <b>Hinzufügen</b> in den Rucksack des ItemSets.";
                 break;
  case "BPOUTC": str = "Klick! <b>Entfernen</b> aus dem Rucksack des ItemSets.";
                 break;
  case "NEWSET": str = "Schließt das aktuelle Itemset<br />und erstellt ein neues leeres ItemSet.";
                 break;
  case "RENSET": str = "Aktuelle ItemSet umbennen!<br />ItemSet wird sofort mit neuem Namen gespeichert.";
                 break;
  case "SAVSET": str = "Das aktuelle ItemSet wird in der Datenbank gespeichert.";
                 break;
  case "SASSET": str = "Speichert eine Kopie des aktuell ausgewählten ItemSets.<br />Danach ist die erstellte Kopie das aktuell ausgewählte ItemSet!";
                 break;
  case "DELSET": str = "Löscht das aktuell ausgewählte ItemSet aus der Datenbank.<br />Ein neues leeres ItemSet wird erstellt!";
                 break;
  case "PUBSET": str = "Das aktuell ausgewählte ItemSet veröffentlichen.<br />Das ItemSet ist verfügbar für andere User und wird unter \"PubSets\" gelistet.<br />Nach Veröffentlichung kann das ItemSet nicht mehr verändert oder gelöscht werden!<br /><b>Es erfolgt keine weiter Abfrage!</b>";
                 break;
  default      : str = "...";
                 break;
 }
 return str;
}



function dotalerts(key) {
 if(curLang == "de") return dotalerts_de(key);
 else return dotalerts_en(key);
}

function dotalerts_en(myLeg) {
 var str = "";
 switch(myLeg){
  case "MAXITEMSET"  : str = "You can add max 20 Items / Set!";
                       break;
  case "MAXITEMSBP"  : str = "You can add max 6 Items / Backpack!";
                       break;
  case "CANTRPS"     : str = "You can't rename a public Set!";
                       break;
  case "ENTSETNAM"   : str = "Please enter a name for this Set!";
                       break;
  case "ENTSETNAMR"  : str = "Enter a name for your Set!\nUse the \"Rename\" Button for this!";
                       break;
  case "ENTSETNAMC"  : str = "Please enter a name for this Set Copy!";
                       break;
  case "CSEMPTYSET"  : str = "You can't save a empty Set!";
                       break;
  case "CSCPUBSETSA" : str = "You can't save the changes of this public Set!\n But! You can use the \"SaveAs\" option to save a copy of this public Set.";
                       break;
  case "SETEXIST"    : str = "Error!\nSet Name already exist!";
                       break;
  case "SETSAVED"    : str = "Set successfull saved!";
                       break;
  case "SETNOTSAVED" : str = "Error!\nSet NOT saved!?";
                       break;
  case "CNDELPUBSET" : str = "You can't delete a public Set!";
                       break;
  case "SETDEL"      : str = "Set successfull deleted!";
                       break;
  case "SETNOTDEL"   : str = "Set NOT deleted!?";
                       break;
  case "CNPPUBSET"   : str = "Error!\nYou can't publish a already published Set!";
                       break;
  case "SAVFIRSTP"   : str = "You must save the set first, before you can publish it!";
                       break;
  case "SETPUBL"     : str = "Set successfull published!";
                       break;
  case "SETNOTPUBL"  : str = "Error!\nSet NOT published!?";
                       break;
  case "CHECKINP"    : str = "Error!\nPlease check again your inputs!";
                       break;                    
  case "MEMONLY"     : str = "Members Only!\nThis option is only available for registered members!";
                       break;
  default  : str = "...";
             break;
 }
 return str;
}

function dotalerts_de(myLeg) {
 var str = "";
 switch(myLeg){
  case "MAXITEMSET"  : str = "Du kannst max 20 Items / Set hinzufügen!";
                       break;
  case "MAXITEMSBP"  : str = "Du kannst max 6 Items / Rucksack hinzufügen!";
                       break;
  case "CANTRPS"     : str = "Ein public Set kann nicht umbenannt werden!";
                       break;
  case "ENTSETNAM"   : str = "Du musst einen Name für das Set angeben!";
                       break;
  case "ENTSETNAMR"  : str = "Du musst einen Name für das Set angeben!\nBenutze den \"Rename\" Button dafür verwenden!";
                       break;
  case "ENTSETNAMC"  : str = "Bitte gib einen Namen für diese Set Kopie an!";
                       break;
  case "CSEMPTYSET"  : str = "Du kannst kein leeres Set speichern!";
                       break;
  case "CSCPUBSETSA" : str = "Die Änderungen an einem public Set können nicht gespeichert werden!\n Aber! Du kannst die \"SaveAs\" Option nutzen, um eine Kopie des public Sets zu speichern.";
                       break;
  case "SETEXIST"    : str = "Fehler!\nDer Set Name existiert bereits!";
                       break;
  case "SETSAVED"    : str = "Set erfolgreich gespeichert!";
                       break;
  case "SETNOTSAVED" : str = "Fehler!\nSet wurde nicht gespeichert!?";
                       break;
  case "CNDELPUBSET" : str = "Public Sets können nicht gelöscht werden!";
                       break;
  case "SETDEL"      : str = "Set erfolgreich gelöscht!";
                       break;
  case "SETNOTDEL"   : str = "Set wurde nicht gelöscht!?";
                       break;
  case "CNPPUBSET"   : str = "Fehler!\nDu kannst ein bereits veröffentlichtes Set nicht veröffentlichen!";
                       break;
  case "SAVFIRSTP"   : str = "Du musst das Set erst speichern, bevor Du dieses veröffentlichen kannst!";
                       break;
  case "SETPUBL"     : str = "Set erfolgreich veröffentlicht!";
                       break;
  case "SETNOTPUBL"  : str = "Error!\nSet wurde nicht veröffentlicht!?";
                       break;
  case "CHECKINP"    : str = "Fehler!\nBitte prüfe noch einmal Deine Angaben!";
                       break;
  case "MEMONLY"     : str = "Members Only!\nDiese Option steht nur registrierten Mitgliedern zur Verfügung!";
                       break;
  default      : str = "...";
                 break;
 }
 return str;
}


