var cookie = navigator.cookieEnabled;
var curView = "start";
var curLang = "";
var isCont = 0;
var myItems = "";
var mySet = "";

function startUp(myLang) {
 curLang = myLang;
 if(cookie && document.cookie){
  if(document.cookie != ""){
   var myCookie = document.cookie;
   var cItems = "";
   //alert(myCookie);
   var cItemStart = myCookie.indexOf("XDOTAMYITEMS=");
   if(cItemStart != -1){
    var cItemsEnde = myCookie.indexOf(";",cItemStart);
    if(cItemsEnde == -1) cItemsEnde = myCookie.length;
    cItems = myCookie.substring(cItemStart+13,cItemsEnde);
   } 
   if(cItems != "") myItems = cItems;
   
   var cSet = "";
   var cSetStart = myCookie.indexOf("XDOTAMYSET=");
   if(cSetStart != -1){
    var cSetEnde = myCookie.indexOf(";",cSetStart);
    if(cSetEnde == -1) cSetEnde = myCookie.length;
    cSet = myCookie.substring(cSetStart+11,cSetEnde);
   } 
   if(cSet != "") mySet = cSet;
  }
  
  var cnt = 0;
  
  if(myItems != ""){
   myItemsCookie();
   cnt = myItems.split(",").length;
  }
  myItemsState(cnt);

 }
 
}

function myItemsCookie() {
 var now = new Date();
 var cookieTime = now.getTime() + (170 * 24 * 60 * 60 * 1000);
 now.setTime(cookieTime);
 document.cookie = "XDOTAMYITEMS="+myItems+"; expires="+now.toGMTString()+"; ";

}

var myViews = new Array();

function dotaview(myView) {
 curView = myView;
 isCont = (!myViews[curView] || (!myViews[curView]['cont'] || myViews[curView]['cont'] == 0) || curView == "myitems") ? (0) : (1);
 
 dotaview_button_style("start");
 dotaview_button_style("shops");
 dotaview_button_style("list");
 dotaview_button_style("myitems");
 //dotaview_button_style("mybuild");
 dotaview_button_style("faq");
 dotaview_button_style("signup");
 dotaview_button_style("mydata");
 //alert(isCont);
 if(isCont == 0) sendRequest( "/index.php", "dyn=dotaview&lang="+curLang+"&dotaview="+myView+"&myitems="+myItems, 0, "dotaviewResponse" );
}

function dotaview_button_style(view){
 
 var objbtn = document.getElementById("dotaviewbtn_"+view);
 var objcont = document.getElementById("dotaview_"+view);
 if(objbtn && objcont){
  if(view == curView){
   objbtn.style.backgroundColor = "#404040";
   objbtn.style.fontWeight = "bold";
   objcont.style.display = "block";
   if(curView == "myitems" || isCont == 0) objcont.innerHTML = "<br /><br />&#160;&#160;&#160;&#160;Loading Data <img src=\"/img/bar1.gif\" align=\"absmiddle\" /><br /><br /><br />";
  }
  else{
   objbtn.style.backgroundColor = "#101010";
   objbtn.style.fontWeight = "normal";
   objcont.style.display = "none";
  }
 }
}

function dotaviewResponse(response) {
 if(!myViews[curView]) myViews[curView] = new Object();
 myViews[curView]['cont'] = 1;
 var obj = document.getElementById("dotaview_"+curView);
 obj.innerHTML = response;
}


function myItem(itemID,itemNeed){
 
 var objbtn = document.getElementsByName("myitembtn_"+itemID)[0];
 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(myItemsNew != "") myItemsNew += ",";
  myItemsNew += itemID;
  cnt++;
  if(objbtn){
   objbtn.style.backgroundColor = "#006900";
   objbtn.value = "-";
  }
  itemImgBorder(itemID,"#2bc51d");
 }
 else{
  if(objbtn){
   objbtn.style.backgroundColor = "#933508";
   objbtn.value = "+";
  }
  itemImgBorder(itemID,"#808080");
 }
 
 myItems = myItemsNew;
 myItemsCookie();
 
 if(curView == "myitems") refreshMyItems();
 
 myItemsState(cnt);
 
}

function itemImgBorder(itemID,myCol) {
 
 for(var n = 0; n <=10 ; n++){
  var objlimg = document.images["litemimg"+itemID+"_"+n];
  if(objlimg) objlimg.style.borderColor = myCol;
  var objcimg = document.images["citemimg"+itemID+"_"+n];
  if(objcimg) objcimg.style.borderColor = myCol;
 }
 
}

function refreshMyItems() {
 sendRequest( "/index.php", "dyn=dotaview&lang="+curLang+"&dotaview=myitems&myitems="+myItems, 0, "dotaviewResponse" );
}

function myItemsState(cnt){
 var objcnt = document.getElementById("myitems_count");
 if(objcnt) objcnt.innerHTML = cnt;
 var objcntm = document.getElementById("set_active_count");
 if(objcntm) objcntm.innerHTML = cnt;
}


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.top = (y - 45) + "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 = "Shop/Dealer wherewo the following<br />Items/Recipes can be bought.";
                 break;
  case "ITEM"  : str = "Item/Rezept Picture.<br />Left click adds this to \"MyItems\"!";
                 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 "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.";
                 break;
  case "DAM"   : str = "Damage Bonus.";
                 break;
  case "STR"   : str = "Strength Bonus.";
                 break;
  case "AGL"   : str = "Agility Bonus.";
                 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 the Item/Recipe to/from \"MyItems\".";
                 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.";
                 break;
  case "ITEM"  : str = "Item/Rezept Bild.<br />Linksklick fügt es zu \"MyItems\" hinzu!";
                 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 "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.";
                 break;
  case "DAM"   : str = "Schaden Bonus.";
                 break;
  case "STR"   : str = "Kraft Bonus.";
                 break;
  case "AGL"   : str = "Geschicklichkeits Bonus.";
                 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 zu/von \"MyItems\".";
                 break;
  default      : str = "...";
                 break;
 }
 return str;
}

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;
}*/

function signup(myAction){
 if(myAction == "now"){
  var post = "";
  var firstname = signupinput("firstname",0,0);
  var lastname = signupinput("lastname",0,0);
  
  var email = signupinput("email",0,0);
  
  var nick = signupinput("nickname",0,0);
  var pass = signuppass();
  
  var objconsent = document.getElementsByName("signup_consent")[0];
  if(firstname != "" && lastname != "" && email != "" && nick != "" && pass != "" && objconsent.checked == true){
   //alert("Alles OK!");
   post += "firstname="+encodeURI(firstname);
   post += "&lastname="+encodeURI(lastname);
   post += "&email="+encodeURI(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="+encodeURI(nick);
   post += "&pass="+encodeURI(pass);
   
   sendRequest( "/index.php?dyn=dotaview&lang="+curLang+"&dotaview=signup&action=signupnow", post, 2, "signupResponse" );
  }
  else{
   alert("Guckst Du nochmal!");
  }
 }
 else if(myAction == "reset"){
  signupinput("firstname",0,1);
  signupinput("lastname",0,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",0,0);
  var lastname = signupinput("lastname",0,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(firstname != "" && lastname != "" && email != "" && pass != ""){
   //alert("Alles OK!");
   post += "firstname="+encodeURI(firstname);
   post += "&lastname="+encodeURI(lastname);
   post += "&email="+encodeURI(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")?encodeURI(pass):(""));
   
   sendRequest( "/index.php?dyn=dotaview&lang="+curLang+"&dotaview=mydata&action=updatenow", post, 2, "updateResponse" );
  }
  else{
   alert("Guckst Du nochmal!");
  }
 }
 else if(myAction == "reset"){
  signupinput("firstname",0,1);
  signupinput("lastname",0,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.all['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("dotaview_"+curView);
 obj.innerHTML = response;
}

function updateResponse(response) {
 var obj = document.getElementById("dotaview_"+curView);
 obj.innerHTML = response;
}