var IMG_PATH="images/";                    // Path of the pictures
var arrHighScore=new Array();var imgBackside=new Image();var imgArrStartStop=new Array(4);var imgArrPlusMinus=new Array(4);var imgArrNumber=new Array(11);var bRunning=false;var nLevel=5;var nSeconds=30;var nAttempts=0;var nHit=0;var nSelected1=-1;var nSelected2=-1;var bShowCard=false;var strPlayerName="";                      // Name of player for highscore
var strDate="";                      // Date for highscore
var nPoints=0;var bCookies=false;var nHighscoreMode=1;var IMG_START,IMG_STOP,IMG_PLUS,IMG_MINUS;var IMG_LEVEL,IMG_SEC,IMG_ATTEMPTS,IMG_HIT;var IMG_OFFSET,IMG_MODE,imgArrField,nImages,nSumImages;var nombre=" "; //nombre del jugador
var correo=" "; //mail del jugador
var ciudad=" "; //ciudad del jugador
function pedirnombre(){nombre=prompt("Bienvenido a Juegos en Viatermal.com!! Cual es tu nombre?");
if(nombre=="undefined" || nombre=="" || nombre==null || nombre==" "){
nombre=pedirnombre();}
return nombre;}
function pedircorreo(){correo=prompt("Ingresa tu email");
if(validarEmail(correo))
return correo;pedircorreo();}
function pedirciudad(){ciudad=prompt("De donde eres " + nombre + " ?")
if(ciudad=="undefined" || ciudad=="" || ciudad==null){
ciudad=pedirciudad();}
return ciudad;}
function jugador(){nombre=pedirnombre();correo=pedircorreo();ciudad=pedirciudad();alert("Tienes 30 segundos. Buena Suerte!!");}
function validarEmail(valor){if(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(valor)){return true;}else{alert("La direccion de email es incorrecta.");
return false;}}
function loadImages(nPairs,nImageMode,nScoreMode)
{nHighscoreMode=nScoreMode;IMG_MODE=nImageMode;nImages=nPairs;imgArrField=new Array(nImages*2);nSumImages=nImages*2+4+4+11;IMG_START=2+nImages*2;IMG_STOP=4+nImages*2;IMG_PLUS=12+nImages*2;IMG_MINUS=8+nImages*2;IMG_LEVEL=10+nImages*2;IMG_SEC=17+nImages*2;IMG_ATTEMPTS=25+nImages*2;IMG_HIT=33+nImages*2;if(document.images)
{imgBackside.src=IMG_PATH+"card.gif";
for(var i=0;i<4;i++)
{imgArrStartStop[i]=new Image();imgArrStartStop[i].src=IMG_PATH+"startstop" + (i + 1) + ".gif";}
for(var i=0;i<4;i++)
{imgArrPlusMinus[i]=new Image();imgArrPlusMinus[i].src=IMG_PATH+"plusminus" + (i + 1) + ".gif";}
for(var i=0;i<11;i++)
{imgArrNumber[i]=new Image();imgArrNumber[i].src=IMG_PATH+i+".gif";}
for(var i=0;i<nImages;i++)
{if(IMG_MODE==1)
{imgArrField[i*2]=new Image();imgArrField[i*2].src=IMG_PATH+"pic" + (i + 1) + "a.jpg";
imgArrField[i*2+1]=new Image();imgArrField[i*2+1].src=IMG_PATH+"pic" + (i + 1) + "b.jpg";}
else
{IMG_MODE=0;imgArrField[i*2]=new Image();imgArrField[i*2].src=IMG_PATH+"pic" + (i + 1) + ".jpg";
imgArrField[i*2+1]=new Image();imgArrField[i*2+1].src=IMG_PATH+"pic" + (i + 1) + ".jpg";}}
nLevel=4;nSeconds=30;nAttempts=0;nHit=0;searchFirstImage();clearField();updateAll();setTimeout("checkLoading()", 1000)}}
function shuffle()
{if(document.images)
{var j=Math.floor(new Date().getSeconds()*Math.random()+60);for(var i=0;i<j;i++)
{n1=Math.round(Math.random()*(nImages*2-1));n2=Math.round(Math.random()*(nImages*2-1));img=imgArrField[n1];imgArrField[n1]=imgArrField[n2];imgArrField[n2]=img;}}}
function startGame()
{if(document.images)
{if(!bRunning)
{shuffle();clearField();nSeconds=30;nSelected1=-1;nSelected2=-1;nAttempts=0;nHit=0;id=setInterval("countSeconds()", 1000)
bRunning=true;bShowCard=false;updateAll();}}}
function stopGame()
{if(document.images)
{if(bRunning)
{clearInterval(id);bRunning=false;updateAll();}}
document.location.href="save_player.php" + "?nom=" + nombre + "&mai=" + correo + "&ciu=" + ciudad;
return;}
function countSeconds()
{nSeconds--;showNumber(nSeconds,IMG_SEC+IMG_OFFSET,5);}
function showNumber(nNumber,nPosition,nCount)
{if(document.images)
{nNumber+="";
while(nNumber.length<nCount)nNumber=" " + nNumber;
for(var i=0;i<nCount;i++)
{var n=nNumber.charAt(i);if(n==" ")
{document.images[nPosition+i].src=imgArrNumber[10].src;}
else
{document.images[nPosition+i].src=imgArrNumber[n].src;}}}}
function clearField()
{if(document.images)
{for(var i=0;i<nImages*2;i++)
{document.images[i+IMG_OFFSET].src=imgBackside.src;}}}
function showCard(nImage)
{if(nSeconds==0)
{stopGame();alert("El tiempo se ha terminado, vuelve a intenarlo !!")}
else{if(document.images)
{if(bRunning&&!bShowCard)
{if(nSelected1==-1||nSelected2==-1)
{if(document.images[nImage+IMG_OFFSET].src==imgBackside.src)
{document.images[nImage+IMG_OFFSET].src=imgArrField[nImage].src;if(nSelected1==-1)
{nSelected1=nImage;}
else
{nSelected2=nImage;}}}
if(nSelected1!=-1&&nSelected2!=-1)
{showNumber(++nAttempts,IMG_ATTEMPTS+IMG_OFFSET,5);var pic1=document.images[nSelected1+IMG_OFFSET].src;var len1=pic1.length;var pic2=document.images[nSelected2+IMG_OFFSET].src;var len2=pic2.length;if(pic1.substr(0,len1-IMG_MODE-4)==pic2.substr(0,len2-IMG_MODE-4))
{showNumber(++nHit,IMG_HIT+IMG_OFFSET,5);nSelected1=-1;nSelected2=-1;if(nHit==nImages)
{stopGame();nPoints=Math.round(100000*(nLevel+1)*nSeconds/nAttempts);strMsg="Tu record es " + nPoints + " puntos.\nIngresa tu nombre para la tabla de posiciones:";
strName=prompt(strMsg,strPlayerName);strPlayerName=strName.substr(0,20);strDate=getY2kDate();arrHighScore.push(new objHighScore());if(nHighscoreMode==1)
{strURL="save_score.php" + "?p=" + nPoints + "&n=" + escape(strPlayerName) + "&d=" + escape(strDate) + "&l=" + nLevel + "&t=" + nSeconds + "&a=" + nAttempts;
window.open(strURL,"Highscore", "toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=600,height=300");}}}
else
{bShowCard=true;setTimeout("clearCard()", 2000 - nLevel * 200);}}}
else
{if(!bRunning)
{alert("Para iniciar el juego haga click en comenzar");}}}}}
function clearCard()
{document.images[nSelected1+IMG_OFFSET].src=imgBackside.src;document.images[nSelected2+IMG_OFFSET].src=imgBackside.src;nSelected1=-1;nSelected2=-1;bShowCard=false;}
function setLevel(nValue)
{if(document.images&&!bRunning)
{nLevel+=nValue;if(nLevel<0)nLevel=0;if(nLevel>9)nLevel=9;showNumber(nLevel,IMG_LEVEL+IMG_OFFSET,1);}}
function updateAll()
{if(document.images)
{showNumber(nLevel,IMG_LEVEL+IMG_OFFSET,1);showNumber(nSeconds,IMG_SEC+IMG_OFFSET,5);showNumber(nAttempts,IMG_ATTEMPTS+IMG_OFFSET,5);showNumber(nHit,IMG_HIT+IMG_OFFSET,5);if(bRunning)
{document.images[IMG_START+IMG_OFFSET].src=imgArrStartStop[1].src;document.images[IMG_STOP+IMG_OFFSET].src=imgArrStartStop[2].src;document.images[IMG_PLUS+IMG_OFFSET].src=imgArrPlusMinus[1].src;document.images[IMG_MINUS+IMG_OFFSET].src=imgArrPlusMinus[3].src;}
else
{document.images[IMG_START+IMG_OFFSET].src=imgArrStartStop[0].src;document.images[IMG_STOP+IMG_OFFSET].src=imgArrStartStop[3].src;document.images[IMG_PLUS+IMG_OFFSET].src=imgArrPlusMinus[0].src;document.images[IMG_MINUS+IMG_OFFSET].src=imgArrPlusMinus[2].src;}}}
function showHighScore()
{sortHighScore();strURL="highscore.html";
if(nHighscoreMode==1)
{strURL="show_score.php"}
window.open(strURL,"Highscore", "toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes,width=600,height=300");}
function objHighScore()
{this.nPoints=nPoints;this.strName=strPlayerName;this.strDate=strDate;this.nLevel=nLevel;this.nSeconds=nSeconds;this.nAttempts=nAttempts;}
function sortHighScore()
{var l=arrHighScore.length;if(l>1)
{for(var n=0;n<l-1;n++)
{for(var m=0;m<l-1;m++)
{if((arrHighScore[m].nPoints-arrHighScore[m+1].nPoints)>0)
{var tmp=arrHighScore[m];arrHighScore[m]=arrHighScore[m+1];arrHighScore[m+1]=tmp;}}}}}
function loadHighScore()
{if(document.cookie!="")
{bCookies=true;for(var i=1;i<6;i++)
{var strCookieValue=getMemoryCookie("MemoryScore" + i);
if(strCookieValue!="")
{var arrValues=unescape(strCookieValue).split(";");
nPoints=arrValues[0];strPlayerName=arrValues[1];strDate=arrValues[2];nLevel=arrValues[3];nSeconds=arrValues[4];nAttempts=arrValues[5];arrHighScore.push(new objHighScore());}}
strPlayerName=getMemoryCookie("MemoryPlayerName");   }
else
{setMemoryCookie("MemoryPlayerName", strPlayerName);
if(document.cookie=="")
{bCookies=false;}
else
{bCookies=true;}}}
function saveHighScore()
{if(bCookies)
{setMemoryCookie("MemoryPlayerName", strPlayerName);
if(arrHighScore.length!=null)
{var n=arrHighScore.length-1;var j=0;for(var i=n;i>n-5;i--)
{if(i>=0)
{var strCookieValue="";
strCookieValue+=arrHighScore[i].nPoints+";";
strCookieValue+=arrHighScore[i].strName+";";
strCookieValue+=arrHighScore[i].strDate+";";
strCookieValue+=arrHighScore[i].nLevel+";";
strCookieValue+=arrHighScore[i].nSeconds+";";
strCookieValue+=arrHighScore[i].nAttempts;setMemoryCookie("MemoryScore" + ++j, strCookieValue);}}}}}
function getMemoryCookie(strId)
{var strReturn="";
if(document.cookie!="")
{var arrCookies=document.cookie.split(";");
for(var i=0;i<arrCookies.length;i++)
{var arrCookie=arrCookies[i].split("=");
if(arrCookie.length==2)
{if(strTrim(arrCookie[0])==strTrim(strId))
{strReturn=unescape(arrCookie[1]);}}}}
return strReturn;}
function setMemoryCookie(strId,strValue)
{document.cookie=strId+"=" + escape(strValue) + ";expires=" + new Date(2036, 12, 31).toGMTString();}
function strTrim(str)
{var strReturn="";
for(var i=0;i<str.length;i++)
{if(str.charAt(i)!=" ")
{strReturn+=str.charAt(i);}}
return strReturn;}
function getY2kDate()
{var strReturn="";
var d=new Date();var strDate=addLeadingZero(d.getDate(),2)+"." + addLeadingZero(d.getMonth() + 1, 2) + "." + getY2kYear(d);
var strTime=addLeadingZero(d.getHours(),2)+":" + addLeadingZero(d.getMinutes(), 2);
strReturn=strDate+" " + strTime;
return strReturn;}
function getY2kYear(d)
{var y=d.getYear();if(y<1970)
{return y+1900;}
else
{return y;}}
function addLeadingZero(value,nTotalLength)
{value+="";
while(value.length<nTotalLength)value="0" + value;
return value;}
function searchFirstImage()
{for(var i=0;i<document.images.length;i++)
{if(document.images[i].name=="memory_id")
{IMG_OFFSET=i+1;break;}}}
function countLoadedImages()
{var nCompleted=0;for(var i=0;i<2*nImages;i++)
{if(imgArrField[i].complete)
{nCompleted++;}}
for(var i=0;i<4;i++)
{if(imgArrStartStop[i].complete)
{nCompleted++;}}
for(var i=0;i<4;i++)
{if(imgArrPlusMinus[i].complete)
{nCompleted++;}}
for(var i=0;i<11;i++)
{if(imgArrNumber[i].complete)
{nCompleted++;}}
return nCompleted;}
function checkLoading()
{var nLoaded=countLoadedImages();if(nLoaded<nSumImages)
{document.images[IMG_OFFSET-1].width=456-(456/nSumImages*nLoaded);window.status="" + nLoaded + " of " + nSumImages + " pictures loaded";
setTimeout("checkLoading()", 250);}
else
{document.images[IMG_OFFSET-1].src=IMG_PATH+"blank.gif"; 
document.images[IMG_OFFSET-1].width=5;window.status="";
updateAll();}}