/**
    vezess.hu autós kartyajatek scriptek
	- standard AJAX függvény a http hívásokhoz
	- egy adott nagykártya megjelenítése
	- egy kártya elrejtése
	- szürke takaróablak + kis infoabalak elrejtése
	- státusz megjelenítéséhez adatok
	- státusz átállítását végő php kiértékelése
	- egymás elleni játék lezárását végző ajax kiértékelése
	- az egymás elleni játék végét beállító ajax meghívása
	- kihivás el nem fogadásakor lefutó ajax kiértékelése
	- kihivas el nem fogadásakor ajax meghívása
	- kihivás elfogadását végző ajax kiértékelése
	- kihivas elfogadásakor ajax meghívása
	- kihívottságot figyelő ajax kiértékelése
	- kihívás esetén lefutó ajax kiértékelése
	- kihívott fél elfogadását figyelő ajax kiértékelése
	- ugrás egy másik oldalra
	- győztes nagykártya villogtatása
	- két nagykártya villogtatása
	- kihívás esetén ajax meghívása
	- kihívottság figyelését végző ajax meghívása
	- kihívás elfogadásának figyelését végző ajax meghívása
	- státusz csere esetén ajax meghívása
	- a kihívás figyelésének ismételgetése
	- a kihívás elfogadása figyelésénak ismételgetése
	- kihívás figyelésének elindítása
	- kihívás elfogadása figyelésének elindítása
	- kihívás figyelésének leállítása
	- kihívás elfogadása figyelésének leállítása

    2007.05.15
    attila.orban at eldanor hu
	tamas.gal at eldanor hu
**/

/* konstans link, hogy több oldalról hívva is megjelenjenek bizonyos képek (szervercserénél át kell írni) */
var jateklink = "http://autoskartya.vezess.hu/";

/* jellemzők nevei */
var jellemzonev=new Array(6);
jellemzonev[1]="Hengerűrtartalom";
jellemzonev[2]="Teljesítmény";
jellemzonev[3]="Nyomaték";
jellemzonev[4]="Végsebesség";
jellemzonev[5]="Gyorsulás";
jellemzonev[6]="Átlagfogyasztás";

/* info ablak uzenetek */
var msg001=" kihívott egy játékra!<br /><br />Elfogadod a kihívást?<br />";
var msg002="-t kihívtad egy játékra.<br /><br /><b>Várakozás az ellenfélre...</b><br /><br /><img src='i/jatek/ajax_loading.gif' width='16' height='16' title='Kérlek várj!' vspace='5' />";
var msg003="<br /><b>nem fogadta el a kihívásodat!</b><br />";
var msg004="<br /><b>Nem raktál lapot!</b><br /><br />A játéknak vége.<br />(-15 pont)";
var msg005="<br /><b>Az ellenfél kilépett!</b><br /><br />A játéknak vége.<br />(+20 pont)";
var msg006="<br /><b>A játéknak vége.</b><br /><br />Te nyertél!<br /><br />(+20 pont)";
var msg007="<br /><b>A játéknak vége.</b><br /><br />Az ellenfél nyert!<br />(-15 pont)";
var msg008="<br /><b>nem rakott lapot!</b><br /><br />A játéknak vége.<br />(+20 pont)";

/**
* Függvény ami viszgálja, hogy válaszolt-e a szerver vagy sem. Ezzel kezelhető, hogy a szerver és a hálózat a kliens felé nem egységes időkkel válaszol
* standard AJAX függvény a http hívásokhoz
*/
function getHTTPObject() {
  var XMLHTTP_PROGIDS = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];
  var xmlhttp = null;
  var last_e = null;
  try {
    xmlhttp = new XMLHttpRequest();
  } catch(e) { }
  if (!xmlhttp) {
    for(var i=0; i<3; ++i) {
     var progid = XMLHTTP_PROGIDS[i];
     try{
       xmlhttp = new ActiveXObject(progid);
     } catch(e) {
       last_e = e;
     }
     if (xmlhttp) {
       XMLHTTP_PROGIDS = [progid];
       break;
     }
    }
  }
  if (!xmlhttp) {
    return alert("A böngésző nem támogatja az XMLHTTP kéréseket! :"+last_e);
  }
  return xmlhttp;
}


var http = getHTTPObject();
var isBusy;

var httpChat = getHTTPObject();
var isBusyChat;

var httpKihiv = getHTTPObject();
var isBusyKihiv;

var httpKihivasfigy = getHTTPObject();
var isBusyKihivasfigy;



/**
* egy adott nagykártya megjelenítése
*/
function bigCardOpen ( card, db ) {
  for (sz=1;sz<=db;sz=sz+1) {
    cardname = "bigCard"+sz;
    if (document.getElementById(cardname).style.display == 'inline') {
      document.getElementById(cardname).style.display = 'none';
      document.getElementById(cardname + "Belso").style.display = 'none';
      document.getElementById("y" + cardname).style.display = 'none';
      document.getElementById("y" + cardname + "Belso").style.display = 'none';
    }
  }
  cardname = "bigCard"+card;
  document.getElementById(cardname).style.display = 'inline';
  document.getElementById(cardname + "Belso").style.display = 'inline';
  document.getElementById("y" + cardname).style.display = 'inline';
  document.getElementById("y" + cardname + "Belso").style.display = 'inline';
}

/**
* egy kártya elrejtése
*/
var iv = 0;
function becsuk(name) {
  document.getElementById(name).style.display = 'none';
  document.getElementById(name + "Belso").style.display = 'none';
  if (iv) clearInterval(iv);
}


/**
* szürke takaróablak + kis infoabalak elrejtése
*/
function SzurkeAblakBezar( userid )
{
	document.getElementById('letakarasablak').style.display = "none";
	document.getElementById('kisinfoablak').style.display = "none";
	StartKihivastFigyeli( userid );
}

/**
* státusz megjelenítéséhez adatok
*/
var
	m0      = new Image();
	m1      = new Image();
	m0.src  = jateklink+'i/jatek/hivhato_on.gif';
	m1.src  = jateklink+'i/jatek/hivhato_off.gif';
	m2      = new Image();
	m3      = new Image();
	m2.src  = jateklink+'i/jatek/nezavarj_on.gif';
	m3.src  = jateklink+'i/jatek/nezavarj_off.gif';

/**
* státusz átállítását végő php kiértékelése
*/
function Resp_statuszcsere()
{
  if (http.readyState==4 || http.readyState == 'complete') {

      isBusy=false;
      var results = http.responseText.split(",");
      if (results[2]=='nezavarj') {
		document.getElementById('allapotom1').src = m1.src;
		document.getElementById('allapotom2').src = m2.src;
      }
      if (results[2]=='hivhato') {
		document.getElementById('allapotom1').src = m0.src;
		document.getElementById('allapotom2').src = m3.src;
      }
      var nev = "UpdateTimer1( " + results[1] + " )";
      timerID = setTimeout(nev, 1000);
  }
}

/**
* egymás elleni játék lezárását végző ajax kiértékelése
*/
function Resp_game_end3()
{
  if (http.readyState==4 || http.readyState == 'complete') {
      isBusy=false;
      var results = http.responseText.split(",");
      window.setTimeout("ugrikOldalra('fooldal')", 5000);
  }
}

/**
* az egymás elleni játék végét beállító ajax meghívása
*/
function game_end3( jatek, egyik, masik, teendo )
{
    if (isBusy) {
          http.onreadystatechange = function () {}
          http.abort();
    }
        http.open("GET", "a_jatekvege3.php?gameid="+jatek+"&gamer1="+egyik+"&gamer2="+masik+"&teendo="+teendo, true);
        isBusy=true;
        http.onreadystatechange = Resp_game_end3;
    http.send(null);
}

/**
* egymás elleni játék lezárását végző ajax kiértékelése
*/
function Resp_game_end()
{
  if (http.readyState==4 || http.readyState == 'complete') {
      isBusy=false;
      var results = http.responseText.split(",");
      window.setTimeout("ugrikOldalra('fooldal')", 5000);
  }
}

/**
* az egymás elleni játék végét beállító ajax meghívása
*/
function game_end( jatek, egyik, masik, teendo )
{
    if (isBusy) {
	  http.onreadystatechange = function () {}
	  http.abort();
    }
	http.open("GET", "a_jatekvege2.php?gameid="+jatek+"&gamer1="+egyik+"&gamer2="+masik+"&teendo="+teendo, true);
	isBusy=true;
	http.onreadystatechange = Resp_game_end;
    http.send(null);
}

/**
* kihivas el nem fogadásakor lefutó ajax kiértékelése
*/
function Resp_kihiv_end()
{
  if (http.readyState==4 || http.readyState == 'complete') {
	isBusy=false;
	var results = http.responseText.split(",");
	document.location.href= "#";
  }
}

/**
* kihivas el nem fogadásakor ajax meghívása
*/
function kihiv_end( kihivo, kihivott )
{
    if (isBusy) {
	  http.onreadystatechange = function () {}
	  http.abort();
    }
	http.open("GET", "/autoskartya/a_jatekvege.php?hivo="+kihivo+"&hivott="+kihivott, true);
	isBusy=true;
	http.onreadystatechange = Resp_kihiv_end;
    http.send(null);
}

/**
* kihivás elfogadását végző ajax kiértékelése
*/
function Resp_kihiv_ok()
{
  if (httpKihiv.readyState==4 || httpKihiv.readyState == 'complete') {
      isBusyKihiv=false;
      var results = httpKihiv.responseText.split(",");
      if ( results[0] == "kihivaselfogadva" ) window.location="/autoskartya/index.php?page=jatek";
  }
}

/**
* kihivas elfogadásakor ajax meghívása
*/
function kihiv_ok( kihivott )
{
    if (isBusyKihiv) {
	  httpKihiv.onreadystatechange = function () {}
	  httpKihiv.abort();
    }
	httpKihiv.open("GET", "/autoskartya/a_kihivastelfogad.php?hivott="+kihivott, true);
	isBusyKihiv=true;
	httpKihiv.onreadystatechange = Resp_kihiv_ok;
	httpKihiv.send(null);
}

/**
* kihivas el nem fogadásakor lefutó ajax kiértékelése
*/
function Resp_kihiv_soha()
{
  if (http.readyState==4 || http.readyState == 'complete') {
	isBusy=false;
	var results = http.responseText.split(",");
	stat_change ( "ki", userid );
	document.location.href= "#";
  }
}

/**
* kihivas esetén a soha gombra kattintáskor ajax meghívása
*/
function kihiv_soha( userid )
{
    if (isBusy) {
	  http.onreadystatechange = function () {}
	  http.abort();
    }
	http.open("GET", "/autoskartya/a_jatekvege.php?hivo="+kihivo+"&hivott="+kihivott, true);
	isBusy=true;
	http.onreadystatechange = Resp_kihiv_soha;
    http.send(null);
}

/**
* kihívottságot figyelő ajax kiértékelése
*/
function Resp_kihivasfigy()
{
  if (httpKihivasfigy.readyState==4 || httpKihivasfigy.readyState == 'complete') {
      isBusyKihivasfigy=false;
      var results = httpKihivasfigy.responseText.split(",");

      if (results[1]!=0 && results[1]!="" && results[1]!=null)
	{
		window.scrollTo(0,0);
		document.getElementById('letakarasablak').style.display = "inline";
		document.getElementById('kisinfoablak').style.display = "inline";
		text2 = "<b>"+results[2]+"</b>"+msg001;
		button1kep = "<img src='"+jateklink+"i/jatek/btn_nem.gif' width='39' height='15' title='Nem' />";
		button1link = "javascript:kihiv_end("+results[1]+", "+results[0]+");";
		button2kep = "<img src='"+jateklink+"i/jatek/btn_igen.gif' width='39' height='15' title='Igen' />";
		button2link = "javascript:kihiv_ok("+results[0]+");";
		button3kep = "<img src='"+jateklink+"i/jatek/btn_soha.gif' width='121' height='15' title='Ilyen üzenet soha ne jelenjen meg' />";
		button3link = "javascript:kihiv_soha("+results[0]+");";
		document.getElementById('kisinfoablaktext').innerHTML = text2;
		document.getElementById('kisinfoablakbuttonlink1').href = button1link;
		document.getElementById('kisinfoablakbuttontext1').innerHTML = button1kep;
		document.getElementById('kisinfoablakbuttonlink2').href = button2link;
		document.getElementById('kisinfoablakbuttontext2').innerHTML = button2kep;
		document.getElementById('kisinfoablakbuttonlink3').href = button3link;
		document.getElementById('kisinfoablakbuttontext3').innerHTML = button3kep;
	}
	else
	{
		document.getElementById('letakarasablak').style.display = "none";
		document.getElementById('kisinfoablak').style.display = "none";
	}

  }
}

/**
* kihívás esetén lefutó ajax kiértékelése
*/
function Resp_kihiv()
{
  if (http.readyState==4 || http.readyState == 'complete') {
      isBusy=false;
      var results = http.responseText.split(",");

	window.scrollTo(0,0);
	document.getElementById('letakarasablak').style.display = "inline";
	document.getElementById('kisinfoablak').style.display = "inline";

	switch (results[2]) {
		case "*": text3 = "<b>A kihívott éppen most lépett be egy játékba.<br />Próbáld később kihívni.</b>";
			break;
		default: text3 = "<b>"+results[2]+"</b>"+msg002;
	  		StopKihivastFigyeli();
	  		StartKihivottatFigyeli(results[0], results[1]);
	}


	document.getElementById('kisinfoablaktext').innerHTML = text3;
	document.getElementById('kisinfoablakbuttontext1').innerHTML = "";
	document.getElementById('kisinfoablakbuttontext2').innerHTML = "";
	document.getElementById('kisinfoablakbuttontext3').innerHTML = "";
  }
}

/**
* kihívott fél elfogadását figyelő ajax kiértékelése
*/
function Resp_kihivottfigy()
{
  if (http.readyState==4 || http.readyState == 'complete') {
      isBusy=false;
      var results = http.responseText.split(",");

	if ( results[0] == "hiba" )
	{
		/* ha lejárt az idő vagy nem fogadta el */
		text4 = "<b>"+results[3]+"</b>"+msg003;
		document.getElementById('kisinfoablaktext').innerHTML = text4;
		document.getElementById('kisinfoablakbuttontext1').innerHTML = "";
		document.getElementById('kisinfoablakbuttontext2').innerHTML = "";
		document.getElementById('kisinfoablakbuttontext3').innerHTML = "";
		StopKihivottatFigyeli();
		kihiv_end(results[2], results[1]);
		var nev = "SzurkeAblakBezar( " + results[2] + " )";
		timerID  = setTimeout(nev, 3000);
	}
	if ( results[0] == "mehet" )
	{
		/* ha elfogadta a kihívást */
		window.location="index.php?page=jatek";
	}
  }
}


/**
* ugrás egy másik oldalra
*/
function ugrikOldalra ( oldalnev )
{
if (oldalnev.length>2) document.location.href = "/autoskartya/index.php?page="+oldalnev;
}

/**
* győztes nagykártya villogtatása
*/
function bigCardFlash ( melyik )
{
	if (document.getElementById(melyik).className == 'bigCardRow_hover') {
		document.getElementById(melyik).className = 'bigCardRow_w';}
	else {
		document.getElementById(melyik).className = 'bigCardRow_hover'; }
	var nev = "bigCardFlash( '" + melyik + "' )";
	timerID5 = setTimeout(nev, 500);
}

/**
* két nagykártya villogtatása
*/
function bigCardFlash2 ( melyik1, melyik2 )
{
	if (document.getElementById(melyik1).className == "bigCardRow_hover" ) {
		document.getElementById(melyik1).className = "bigCardRow_w";
		document.getElementById(melyik2).className = "bigCardRow_w";}
	else {
		document.getElementById(melyik1).className = "bigCardRow_hover";
		document.getElementById(melyik2).className = "bigCardRow_hover";}
	var nev = "bigCardFlash2( '" + melyik1 + "', '" + melyik2 + "' )";
	timerID6 = setTimeout(nev, 500);
}


/**
* kihívás esetén ajax meghívása
*/
function kihiv( kihivo, kihivott )
{
    if (isBusy) {
	  http.onreadystatechange = function () {}
	  http.abort();
    }
	http.open("GET", "a_kihiv.php?hivo="+kihivo+"&hivott="+kihivott, true);
	isBusy=true;
	http.onreadystatechange = Resp_kihiv;
    http.send(null);
}

/**
* kihívottság figyelését végző ajax meghívása
*/
function KihivastFigyel( useid )
{
    if (isBusyKihivasfigy) {
	  httpKihivasfigy.onreadystatechange = function () {}
	  httpKihivasfigy.abort();
    }
	httpKihivasfigy.open("GET", "/autoskartya/a_kihivasfigy.php?usid=" + useid, true);
	isBusyKihivasfigy=true;
	httpKihivasfigy.onreadystatechange = Resp_kihivasfigy;
    httpKihivasfigy.send(null);
}

/**
* kihívás elfogadásának figyelését végző ajax meghívása
*/
function KihivottatFigyel( useid, kihivottidje )
{
    if (isBusy) {
	  http.onreadystatechange = function () {}
	  http.abort();
    }
	http.open("GET", "a_kihivottfigy.php?usid="+useid+"&hivott="+kihivottidje, true);
	isBusy=true;
	http.onreadystatechange = Resp_kihivottfigy;
    http.send(null);
}

/**
* státusz csere esetén ajax meghívása
*/
function stat_change( kibe, useid )
{
    if (isBusy) {
	  http.onreadystatechange = function () {}
	  http.abort();
    }
	http.open("GET", "/autoskartya/a_statuszcsere.php?figy=" + kibe + "&usid=" + useid, true);
	isBusy=true;
	http.onreadystatechange = Resp_statuszcsere;
    http.send(null);
}

/**
* a kihívás figyelésének ismételgetése
*/
function UpdateTimer1( useridje )
{
   KihivastFigyel ( useridje );
   var nev = "UpdateTimer1( " + useridje + " )";
   timerID1 = setTimeout(nev, 1000);
}

/**
* a kihívás elfogadása figyelésénak ismételgetése
*/
function UpdateTimer2( useridje, kihivottidje )
{
   KihivottatFigyel ( useridje, kihivottidje );
   var nev = "UpdateTimer2( " + useridje + ", " + kihivottidje + " )";
   timerID2 = setTimeout(nev, 1000);
}


/**
* kihívás figyelésének elindítása
*/
function StartKihivastFigyeli( useridje )
{
   var nev = "UpdateTimer1( " + useridje + " )";
   timerID1  = setTimeout(nev, 1000);
}

/**
* kihívás elfogadása figyelésének elindítása
*/
function StartKihivottatFigyeli( useridje, kihivottidje )
{
   var nev = "UpdateTimer2( " + useridje + ", " + kihivottidje + " )";
   timerID2  = setTimeout(nev, 1000);
}


/**
* kihívás figyelésének leállítása
*/
function StopKihivastFigyeli()
{
	if(timerID1) {
		clearTimeout(timerID1);
		timerID1  = 0; }
}


/**
* kihívás elfogadása figyelésének leállítása
*/
function StopKihivottatFigyeli()
{
	if(timerID2) {
		clearTimeout(timerID2);
		timerID2  = 0; }
}

/**
* A Body onload diszkrét módja
*/
function addEvent(obj, evType, fn) {
  if (obj.addEventListener) {
    obj.addEventListener(evType, fn, false);
    return true;
  }
  else if (obj.attachEvent) {
         return obj.attachEvent("on"+evType, fn);
       }
  return false;
}
