
var gameSpeed = 4;


var gameResolution = 4;


var frogTolerance = 1/4;







var whichRound = 1;


var randomFactor = 0.4;


var startingTheme = 0;







var frogLives = 5;


var gridPos = [4,4];
var gridDim = 32;


var floaterSpeed = 40;


var remLives=frogLives;
var remRandom = randomFactor;


var gameScore = 0;




var ie = (typeof document.all!="undefined"&&typeof window.opera=="undefined") ? true : false;
var dom = (typeof document.getElementById!="undefined"&&typeof window.opera=="undefined") ? true : false;
if(ie&&!dom) { ie=false; }


if(!ie) {
gameSpeed=2;
gameResolution=3.5;
}


var msgObj=null;
var msgData;
function createMessageLayer(msgHTML) {


msgObj=document.createElement("div");
document.body.appendChild(msgObj);


msgData='<table cellpadding="0" cellspacing="0" border="0" style="width:'+(gridDim*23)+'px;height:'+(gridDim*12)+'px;position:absolute;left:'+(gridPos[0])+'px;top:'+(gridPos[1])+'px;z-index:150;"><tr><td align="center" valign="middle">';
msgData+='<table cellpadding="0" cellspacing="12" border="0" style="-moz-box-sizing:border-box;font:15px comic sans ms,arial;color:#cc6600;font-weight:bold;background-color:#f8fbd0;border:4px double #ff9600;width:250px;filter:progid:DXImageTransform.Microsoft.Shadow(color=#999999,direction=135,strength=5);">';
msgData+='<tr>';
msgData+='<td align="center">'+msgHTML+'</td>';
msgData+='</tr>';
msgData+='</table>';
msgData+='</td></tr></table>';


msgObj.innerHTML = msgData;

}


if(dom) { createMessageLayer(dialogue[0]); }




function deleteMessageLayer() {
document.body.removeChild(msgObj);
msgObj=null;
}




var themePlaying = false;
function toggleMusic()
{
var themeHolder = document.getElementById('themeHolder');
if(!themePlaying)
{
themeHolder.innerHTML = '<embed id="themePlayer" src="theme.mid" autostart="true" loop="true"></embed>';
themePlaying = true;
}
else
{
themeHolder.innerHTML = '';
themePlaying = false;
}
}




var pageZoom;


if(location.search) {

if(qStr["size"] == "auto") {

pageZoom = document.body.clientWidth/((gridDim*23)+(gridPos[0]*2));
pageZoom = Math.round(pageZoom*100)/100;
document.body.style.zoom = pageZoom;
}
}

window.onresize = new Function("window.location.reload()");




document.write('<iframe name="scoreframe" id="score" src="" width="'+(gridDim*11)+'" height="'+(gridDim*11)+'" frameborder="0" style="display:none;border:4px double #ff9600;filter:progid:DXImageTransform.Microsoft.Shadow(color=#999999,direction=135,strength=5);position:absolute;left:'+(gridPos[0]+gridDim*5.5)+'px;top:'+(gridPos[1]*2)+'px;z-index:500;"></iframe>');




var water = new Array;
for(var i=0;i<4;i++){
water[i] = new Image;
water[i].src = "water"+i+".jpg";
}

var waterNum = startingTheme;


var roads = new Array;
for(i=0;i<4;i++){
roads[i] = new Image;
roads[i].src = "road"+i+".jpg";
}

var roadNum = startingTheme;


var banks = new Array;
for(i=0;i<4;i++){
banks[i] = new Image;
banks[i].src = "bank"+i+".jpg";
}

var bankNum = startingTheme;



var gridStr = '';
for(i=0;i<12;i++){


if(i==0) {
gridStr+='<div style="-moz-box-sizing:border-box;border-bottom:2px solid #339933;background-color:#88bb88;position:absolute;left:'+(gridPos[0])+'px;top:'+(gridPos[1]+(gridDim*i))+'px;width:'+(gridDim*23)+'px;height:'+gridDim+'px;z-index:15;">';
gridStr+='</div>';
}
if(i==5) {
gridStr+='<div id="banksurface0" style="background-image:url('+banks[bankNum].src+');background-color:#99cc99;position:absolute;left:'+(gridPos[0])+'px;top:'+(gridPos[1]+(gridDim*i))+'px;width:'+(gridDim*23)+'px;height:'+gridDim+'px;z-index:15;">';
gridStr+='</div>';
}
if(i==10) {
gridStr+='<div id="banksurface1" style="background-image:url('+banks[bankNum].src+');background-color:#99cc99;position:absolute;left:'+(gridPos[0])+'px;top:'+(gridPos[1]+(gridDim*i))+'px;width:'+(gridDim*23)+'px;height:'+(gridDim+4)+'px;z-index:15;">';
gridStr+='</div>';
}


if(i==0) {
for(var j=0;j<5;j++){
gridStr+='<div id="home'+j+'" style="-moz-box-sizing:border-box;background-image:url(bank0.jpg);background-color:#99cc99;border-left:2px solid #339933;border-right:2px solid #339933;position:absolute;left:'+(gridPos[0]+(gridDim*1.5)+(j*(gridDim*4.5)))+'px;top:'+(gridPos[1]+(gridDim*i))+'px;width:'+(gridDim*2)+'px;height:'+gridDim+'px;z-index:15;">';
gridStr+='</div>';
}
}


if(i==1) {
gridStr+='<div id="watersurface" style="-moz-box-sizing:border-box;background-image:url('+water[waterNum].src+');border-bottom:2px ridge #f6f6f6;background-color:#99cccc;position:absolute;left:'+(gridPos[0])+'px;top:'+(gridPos[1]+(gridDim*i))+'px;width:'+(gridDim*23)+'px;height:'+(gridDim*4)+'px;z-index:10;">';
gridStr+='</div>';
}


if(i==6) {
gridStr+='<div id="roadsurface" style="-moz-box-sizing:border-box;border-top:2px ridge #f6f6f6;border-bottom:2px ridge #f6f6f6;background-image:url('+roads[roadNum].src+');background-color:#cccccc;position:absolute;left:'+(gridPos[0])+'px;top:'+(gridPos[1]+(gridDim*i))+'px;width:'+(gridDim*23)+'px;height:'+(gridDim*4)+'px;z-index:10;">';


gridStr+='<table cellpadding="0" cellspacing="0" border="0" style="height:'+gridDim+'px;">';
gridStr+='<tr><td style="width:'+(gridDim*1.5)+'px">&nbsp;</td>';
for(j=0;j<8;j++){
gridStr+='<td style="border-bottom:3px solid #f6f6f6;width:'+gridDim+'px"><img src="blank.gif" width="1" height="1" alt="" border="0"></td>';
gridStr+='<td style="width:'+(gridDim*2)+'px">&nbsp;</td>';
}
gridStr+='</tr>';
gridStr+='</table>';
gridStr+='<table cellpadding="0" cellspacing="0" border="0" style="height:'+gridDim+'px;">';
gridStr+='<tr><td style="border-bottom:3px double #f6f6f6;width:'+(gridDim*23)+'px"><img src="blank.gif" width="1" height="1" alt="" border="0"></td></tr>';
gridStr+='</table>';
gridStr+='<table cellpadding="0" cellspacing="0" border="0" style="height:'+gridDim+'px;">';
gridStr+='<tr><td style="width:'+(gridDim*1.5)+'px">&nbsp;</td>';
for(j=0;j<8;j++){
gridStr+='<td style="border-bottom:3px solid #f6f6f6;width:'+gridDim+'px"><img src="blank.gif" width="1" height="1" alt="" border="0"></td>';
gridStr+='<td style="width:'+(gridDim*2)+'px">&nbsp;</td>';
}
gridStr+='</tr>';
gridStr+='</table>';

gridStr+='</div>';
}

}



gridStr+='<div id="lives" style="position:absolute;left:'+(gridPos[0]-2)+'px;top:'+(gridPos[1]+(gridDim*12)-24)+'px;z-index:120;">';
gridStr+='</div>';


gridStr+='<table cellpadding=0 cellspacing=0 border=0 style="-moz-box-sizing:border-box;cursor:default;border:2px solid #336633;background-color:#88bb88;position:absolute;right:' + (document.body.clientWidth - (gridDim*24) + 26) + 'px;top:'+(gridPos[1]+(gridDim*12)-24)+'px;z-index:120;">';
gridStr+='<form name="controlform"><tr>';
gridStr+='<td style="width:20px;" class="conlabel">&nbsp;<img style="margin:4px 0 0 5px;cursor:hand;" onmousedown="this.style.marginLeft=\'6px\'" onmouseup="this.style.marginLeft=\'5px\'" onclick="toggleMusic()" src="audio.gif" width="6" height="11" alt=""></td>';
gridStr+='<td style="width:50px;" class="conlabel">&nbsp;' + dialogue[1] + '</td>';
gridStr+='<td><input type="text" name="rounds" value="" class="coninput" readonly style="width:35px;margin-right:4px;"></td>';
gridStr+='<td style="width:46px;" class="conlabel">&nbsp;' + dialogue[2] + '</td>';
gridStr+='<td><input type="text" name="score" value="" class="coninput" readonly style="width:45px;margin-right:4px;"></td>';
gridStr+='</tr></form>';
gridStr+='</table>';


if(dom) { document.write(gridStr); }



var con = document.forms["controlform"];

if(dom) {

var livesObj = document.getElementById("lives");


var waterSurface = document.getElementById("watersurface");
var roadSurface = document.getElementById("roadsurface");
var bankSurface = new Array;
for(i=0;i<4;i++){
bankSurface[i] = document.getElementById("banksurface"+i);
}

}



for(i=0;i<2;i++){
if(gridPos[i]<2) { gridPos[i]=2; }
}

var docDim;
if(ie) { docDim = [document.body.clientWidth,document.body.clientHeight]; }
else { docDim = [window.innerWidth,window.innerHeight]; }

var maskStr='';

maskStr+='<div class="mask" style="left:0px;top:0px;width:'+gridPos[0]+'px;height:'+docDim[1]+'px;"></div>';

maskStr+='<div class="mask" style="left:0px;top:0px;width:'+docDim[0]+'px;height:'+gridPos[1]+'px;"></div>';

maskStr+='<div class="mask" style="left:'+(gridPos[0]+(23*gridDim))+'px;top:0px;width:'+(docDim[0]-(gridPos[0]+(23*gridDim)))+'px;height:'+docDim[1]+'px;"></div>';

maskStr+='<div class="mask" style="left:0px;top:'+(gridPos[1]+(11*gridDim)+4)+'px;width:'+docDim[0]+'px;height:'+(docDim[1]-(gridPos[1]+(11*gridDim)))+'px;"></div>';


var obSize=2;
maskStr+='<div style="-moz-box-sizing:border-box;border:'+obSize+'px solid #336633;position:absolute;left:'+(gridPos[0]-obSize)+'px;top:'+(gridPos[1]-obSize)+'px;width:'+((gridDim*23)+(obSize*2))+'px;height:'+((gridDim*11)+(obSize*2)+4)+'px;z-index:110;"></div>';


if(dom) { document.write(maskStr); }





var logNames=["","_leftcroc","_rightcroc"];
var logs = new Array;
for(i=0;i<3;i++){
logs[i] = new Image;
logs[i].src = "log"+logNames[i]+".gif";
}
var logLen = logs.length;


var leafs = new Array;
leafs[0] = new Image;
leafs[0].src = "leaf0.gif";



var leftTrucks = new Array;
for(i=0;i<5;i++){
leftTrucks[i] = new Image;
leftTrucks[i].src = "truck_left"+i+".gif";
}
var lTLen = leftTrucks.length;
var rightTrucks = new Array;
for(i=0;i<5;i++){
rightTrucks[i] = new Image;
rightTrucks[i].src = "truck_right"+i+".gif";
}
var rTLen = rightTrucks.length;
var leftCars = new Array;
for(i=0;i<5;i++){
leftCars[i] = new Image;
leftCars[i].src = "car_left"+i+".gif";
}
var lCLen = leftCars.length;
var rightCars = new Array;
for(i=0;i<5;i++){
rightCars[i] = new Image;
rightCars[i].src = "car_right"+i+".gif";
}
var rCLen = rightCars.length;
rightCars["cop"] = new Image;
rightCars["cop"].src = "cop_car.gif";



var relativeDifficulty;



var obsStr,thisPos,minCounts,logSrc;
function createMovingObjects(nodeObj) {


minCounts = [0,0,0,0,0,0,0,0];


relativeDifficulty = 50;

obsStr='';
for(i=0;i<12;i++){
for(j=0;j<23;j++){


thisPos = [(gridPos[0]+(gridDim*j)),(gridPos[1]+(gridDim*i))]

switch(i) {


case 1 :
if(( (parseInt(j/4)==j/4 && (Math.random()*(2/(1/randomFactor)))<1) || (j==22&&minCounts[0]==0) ) ) {
obsStr+='<div style="position:absolute;left:'+thisPos[0]+'px;top:'+thisPos[1]+'px;width:'+gridDim+'px;height:'+gridDim+'px;z-index:20;">';
obsStr+='<img obtype="rightLeafs" src="'+leafs[0].src+'" height="'+gridDim+'" alt="" border="0">';
obsStr+='</div>';
minCounts[0]++;
relativeDifficulty--;
}
break;


case 2 :
if(( (parseInt(j/5)==j/5 && (Math.random()*(2/(1/randomFactor)))<1) || (j==22&&minCounts[1]==0) ) ) {
obsStr+='<div style="position:absolute;left:'+thisPos[0]+'px;top:'+thisPos[1]+'px;width:'+gridDim+'px;height:'+gridDim+'px;z-index:20;">';
obsStr+='<img obtype="leftLogs" src="'+logs[0].src+'" height="'+gridDim+'" alt="" border="0">';
obsStr+='</div>';
relativeDifficulty--;
minCounts[1]++;
}
break;


case 3 :
if(( (parseInt(j/4)==j/4 && (Math.random()*(2/(1/randomFactor)))<1) || (j==22&&minCounts[2]==0) ) ) {
obsStr+='<div style="position:absolute;left:'+thisPos[0]+'px;top:'+thisPos[1]+'px;width:'+gridDim+'px;height:'+gridDim+'px;z-index:20;">';
obsStr+='<img obtype="leftLeafs" src="'+leafs[0].src+'" height="'+gridDim+'" alt="" border="0">';
obsStr+='</div>';
relativeDifficulty--;
minCounts[2]++;
}
break;


case 4 :
if(( (parseInt(j/5)==j/5 && (Math.random()*(2/(1/randomFactor)))<1) || (j==22&&minCounts[3]==0) ) ) {
obsStr+='<div style="position:absolute;left:'+thisPos[0]+'px;top:'+thisPos[1]+'px;width:'+gridDim+'px;height:'+gridDim+'px;z-index:20;">';
obsStr+='<img obtype="rightLogs" src="'+logs[0].src+'" height="'+gridDim+'" alt="" border="0">';
obsStr+='</div>';
relativeDifficulty--;
minCounts[3]++;
}
break;


case 6 :

if(( (parseInt(j/4)==j/4 && Math.random()*(1/randomFactor)<1) || (j==22&&minCounts[4]==0) ) && minCounts[4]<=(whichRound)) {
obsStr+='<div class="car" style="position:absolute;left:'+thisPos[0]+'px;top:'+thisPos[1]+'px;width:'+gridDim+'px;height:'+gridDim+'px;z-index:40;">';
obsStr+='<img obtype="rightTrucks" src="'+rightTrucks[parseInt(Math.random()*rTLen)].src+'" height="'+gridDim+'" alt="" border="0">';
obsStr+='</div>';
relativeDifficulty++;
minCounts[4]++;
}
break;


case 7 :
if(( (parseInt(j/3)==j/3 && Math.random()*(1/randomFactor)<1) || (j==22&&minCounts[5]==0) ) && minCounts[5]<=6 && minCounts[5]<=(whichRound)) {
obsStr+='<div class="car" style="position:absolute;left:'+thisPos[0]+'px;top:'+thisPos[1]+'px;width:'+gridDim+'px;height:'+gridDim+'px;z-index:40;">';
obsStr+='<img obtype="rightCars" src="'+rightCars[parseInt(Math.random()*rCLen)].src+'" height="'+gridDim+'" alt="" border="0">';
obsStr+='</div>';
relativeDifficulty++;
minCounts[5]++;
}
break;


case 8 :
if(( (parseInt(j/3)==j/3 && Math.random()*(1/randomFactor)<1) || (j==22&&minCounts[6]==0) ) && minCounts[6]<=6  && minCounts[6]<=(whichRound)) {
obsStr+='<div class="car" style="position:absolute;left:'+thisPos[0]+'px;top:'+thisPos[1]+'px;width:'+gridDim+'px;height:'+gridDim+'px;z-index:40;">';
obsStr+='<img obtype="leftCars" src="'+leftCars[parseInt(Math.random()*lCLen)].src+'" height="'+gridDim+'" alt="" border="0">';
obsStr+='</div>';
relativeDifficulty++;
minCounts[6]++;
}
break;


case 9 :
if(( (parseInt(j/4)==j/4 && Math.random()*(1/randomFactor)<1) || (j==22&&minCounts[7]==0) ) && minCounts[7]<=(whichRound)) {
obsStr+='<div class="car" style="position:absolute;left:'+thisPos[0]+'px;top:'+thisPos[1]+'px;width:'+gridDim+'px;height:'+gridDim+'px;z-index:40;">';
obsStr+='<img obtype="leftTrucks" src="'+leftTrucks[parseInt(Math.random()*lTLen)].src+'" height="'+gridDim+'" alt="" border="0">';
obsStr+='</div>';
relativeDifficulty++;
minCounts[7]++;
}
break;

}

}
}


nodeObj.innerHTML = obsStr;

return obsStr;
}





var obstacleSpeeds = [480,140,360,280,400,100,180,500];


var obstacleGroups = ["rightLeafs","leftLogs","leftLeafs","rightLogs","rightTrucks","rightCars","leftCars","leftTrucks"];

var obstacleObjects = new Array;
for(i=0;i<8;i++){
obstacleObjects[obstacleGroups[i]] = new Array;
}

var obstacleTimers = new Array;



var scoreValue = 0;



var obsDiv;
function createObstacles() {


obsDiv = document.createElement("div");
document.body.appendChild(obsDiv);


createMovingObjects(obsDiv);


scoreValue = Math.round((relativeDifficulty*2)/10);


if(whichRound>=9) { scoreValue=scoreValue*(parseInt(whichRound/8)+1); }
}



function initialiseObstacles() {


paused=false;
stopObstacles();


for(i=0;i<8;i++){
animateObstacleRow(i,obstacleSpeeds[i],obstacleGroups[i]);
}


paused=false;
}



var paused=false;
function stopObstacles(){


if(!paused) {


paused=true;


for(i=0;i<8;i++){
if(typeof obstacleTimers[i]!="undefined") {
clearInterval(obstacleTimers[i]);
}
}


if(floatNum>0){
for(i=0;i<floatNum;i++){
clearInterval(floatTimers[i]);
}
}

}

}


var df;
function restartObstacles(){


if(paused) {


paused=false;


initialiseObstacles();


if(floatNum>0){
for(i=0;i<floatNum;i++){
floatTimers[i] = setInterval("animateFloaters()",500/gameSpeed);
}
}

}

}




var dImg,imgsLen;
function animateObstacleRow(aniNum,aniSpeed,aniGroup) {


dImg = document.images;
imgsLen = dImg.length;
var obi = 0;


for(j=0;j<imgsLen;j++){
if(dImg[j].getAttribute("obtype")==aniGroup){
obstacleObjects[aniGroup][obi++] = dImg[j].parentNode;
}
}


obstacleTimers[aniNum] = setInterval("moveObstacleRow('"+aniGroup+"')",aniSpeed/gameSpeed);
}




var groupLen,obstacleObj,obstaclePos,obstacleTop,obstacleSrc,crocChance;
var doneTopCop=false;
var doneBottomCop=false;
var doneLeftCroc=false;
var doneRightCroc=false;
function moveObstacleRow(moveGroup) {


groupLen = obstacleObjects[moveGroup].length;

if(moveGroup.indexOf("right")!=-1) {
for(i=0;i<groupLen;i++){


obstacleObj = obstacleObjects[moveGroup][i];


obstaclePos = (obstacleObj.offsetLeft+(gridDim/gameResolution));

if(obstaclePos>(gridPos[0]+(gridDim*23))) {

obstaclePos = gridPos[0]-(obstacleObj.firstChild.offsetWidth);

switch(moveGroup){
case "rightLogs" :

logSrc = logs[0].src;
crocChance = (12-whichRound);if(crocChance<2) { crocChance=2; }
if(whichRound>=2 && ((Math.random()*crocChance)<1 || !doneRightCroc) ) {
logSrc = logs[2].src;
doneRightCroc=true;
}

obstacleObj.firstChild.src = logSrc;
break;
case "rightTrucks" :

obstacleObj.firstChild.src = rightTrucks[parseInt(Math.random()*rTLen)].src;
break;
case "rightCars" :

if(whichRound>=4 &&  ((Math.random()*(50-(whichRound*2)))<1 || !doneTopCop) ) {
doneTopCop=true;

obstacleSrc = rightCars["cop"].src;

obstacleTop = gridPos[1]+(gridDim*5);
}

else if(!paused&&!forceBlocked&&(frogPos[1]>(gridPos[1]+(gridDim*4)))&&((whichRound>=6 &&  ((Math.random()*(80-(whichRound*2)))<1 || !doneBottomCop) ))) {
doneBottomCop=true;

obstacleSrc = rightCars["cop"].src;

obstacleTop = gridPos[1]+(gridDim*10);
}
else {

obstacleSrc = rightCars[parseInt(Math.random()*rCLen)].src;

obstacleTop = gridPos[1]+(gridDim*7);
}

obstacleObj.style.top = obstacleTop+"px";

obstacleObj.firstChild.src = obstacleSrc;
break;
}
}

obstacleObj.style.left = obstaclePos+"px";


if(!paused){

if(moveGroup.indexOf("Trucks")!=-1||moveGroup.indexOf("Cars")!=-1) {
checkRoadStatus(obstaclePos,obstacleObj,"right");
}


else {
checkWaterStatus(obstaclePos,obstacleObj,groupLen,"right");
}
}

}


if(frogMover==moveGroup){


frogPos[0] += (gridDim/gameResolution);
frogObj.style.left = frogPos[0]+"px";


if(flyLive) { checkFlyStatus(); }


if(frogPos[0]>gridPos[0]+(gridDim*23)+toleranceNum) {
frogMover="";
loseFrogLife();
}
}

}
if(moveGroup.indexOf("left")!=-1) {
for(i=0;i<groupLen;i++){


obstacleObj = obstacleObjects[moveGroup][i];


obstaclePos = (obstacleObj.offsetLeft-(gridDim/gameResolution));

if(obstaclePos<(gridPos[0]-(obstacleObj.firstChild.offsetWidth))) {

obstaclePos = gridPos[0]+(gridDim*23);

switch(moveGroup){
case "leftLogs" :

logSrc = logs[0].src;
crocChance = (10-whichRound);if(crocChance<2) { crocChance=2; }
if(whichRound>=2 && ((Math.random()*crocChance)<1 || !doneLeftCroc)) {
logSrc = logs[1].src;
doneLeftCroc=true;
}

obstacleObj.firstChild.src = logSrc;
break;
case "leftTrucks" :

obstacleObj.firstChild.src = leftTrucks[parseInt(Math.random()*lTLen)].src;
break;
case "leftCars" :

obstacleObj.firstChild.src = leftCars[parseInt(Math.random()*lCLen)].src;
break;
}
}

obstacleObj.style.left = obstaclePos+"px";


if(moveGroup.indexOf("Trucks")!=-1||moveGroup.indexOf("Cars")!=-1) {
checkRoadStatus(obstaclePos,obstacleObj,"left");
}


else {
checkWaterStatus(obstaclePos,obstacleObj,groupLen,"left");
}

}


if(frogMover==moveGroup){


frogPos[0] -= (gridDim/gameResolution);
frogObj.style.left = frogPos[0]+"px";


if(flyLive) { checkFlyStatus(); }


if(frogPos[0]<(gridPos[0]-gridDim-toleranceNum)) {
frogMover="";
loseFrogLife();
}
}

}


}








function increaseScore(incBy) {
gameScore+=incBy;
con["score"].value = gameScore;
}






var frogPos = [gridPos[0]+(gridDim*11),gridPos[1]+(gridDim*10)];



var frogNames = ["left","up","right","down"];
var frogs = new Array;
for(i=0;i<4;i++){
frogs[frogNames[i]]=new Image;
frogs[frogNames[i]].src="frog_"+frogNames[i]+".gif";
}
var frogStr = '';
frogStr='<div id="frog" style="visibility:hidden;position:absolute;left:'+frogPos[0]+'px;top:'+frogPos[1]+'px;z-index:30;">';
frogStr+='<img src="'+frogs["up"].src+'" width="'+gridDim+'" height="'+gridDim+'" alt="" border="0">';
frogStr+='</div>';
document.write(frogStr);



var blockInterval = 650;

var blockTimer;

function unblock() {
clearInterval(blockTimer);
forceBlocked=false;
paused=false;

if(winFrog<5) { frogObj.style.visibility="visible"; }
}


if(dom) {
var frogObj = document.getElementById("frog");
var frogImg = frogObj.firstChild;
}


var frogsHome = [false,false,false,false,false];
var homeFrogs = new Array;

var homePos = [gridPos[0]+(gridDim*11),gridPos[1]+(gridDim*10)];


function frogToStart() {
frogObj.style.visibility="hidden";
frogPos = [homePos[0],homePos[1]];
frogObj.style.left = frogPos[0]+"px";
frogObj.style.top = frogPos[1]+"px";
frogImg.src = frogs["up"].src;
}



var forceBlocked=false;


var winFrog=0;
var homeFrog,winStr;
function frogHome(fhNum) {


homeFrogs[fhNum] = document.createElement("div");
document.body.appendChild(homeFrogs[fhNum]);
homeFrogs[fhNum].innerHTML = '<img style="-moz-opacity:0.4;filter:alpha(opacity=40);position:absolute;left:'+frogObj.offsetLeft+'px;top:'+(frogObj.offsetTop-gridDim)+'px;z-index:25;" src="'+frogs["up"].src+'" width="'+gridDim+'" height="'+gridDim+'" alt="" border="0">';


frogsHome[fhNum] = true;


forceBlocked=true;

paused=true;

blockTimer = setInterval("unblock()",blockInterval);


frogToStart();


increaseScore(scoreValue);


winFrog=0;
for(i=0;i<5;i++){
if(frogsHome[i]) { winFrog++; }
}


if(winFrog==5) {


frogObj.style.visibility="hidden";


winStr=dialogue[3]+'<br>'+dialogue[4].replace('$',whichRound);
winStr+='<p><input id="ok" type="button" onclick="okButton=null;newGame(\'win\')" value="' + dialogue[5] + '" class="prefbutton">';
createMessageLayer(winStr);
document.getElementById("ok").focus();

}

}




var toleranceNum = gridDim*frogTolerance;



function checkRoadStatus(obsLeft,obsObj,obsDir) {


if(obsObj.offsetTop==frogPos[1]) {


if(obsDir=="left"){
if(

obsLeft>=frogPos[0] && obsLeft<=(frogPos[0]+gridDim-toleranceNum)
||

obsLeft<=frogPos[0] && (obsLeft+obsObj.firstChild.offsetWidth)>=(frogPos[0]+toleranceNum)
) {
frogContact();
}
}


if(obsDir=="right"){

obsLeft+=obsObj.offsetWidth;
if(

obsLeft>=(frogPos[0]+toleranceNum) && obsLeft<=(frogPos[0]+gridDim-toleranceNum)
||

obsLeft>=(frogPos[0]+gridDim) && (obsLeft-obsObj.firstChild.offsetWidth)<=(frogPos[0]+gridDim-toleranceNum)
) {
frogContact();
}
}

}

}



var dryFrog = false;
var obsCount = 0;

var deathType = "";


function checkWaterStatus(obsLeft,obsObj,obsLen,obsDir) {


if(obsObj.offsetTop==frogPos[1]) {


if(obsDir=="left"){
obsCount++;

if(obsLeft<=(frogPos[0]+toleranceNum) && (obsLeft+obsObj.firstChild.offsetWidth)>=(frogPos[0]+gridDim-toleranceNum)) {
dryFrog=true;

if(obsObj.firstChild.src.indexOf("croc")!=-1) {

if((frogPos[0]+toleranceNum)<obsLeft+(26*(gridDim/32))) {
dryFrog=false;
deathType="croc";
}
}
}
}


if(obsDir=="right"){
obsCount++;

if((obsLeft+obsObj.firstChild.offsetWidth)>=(frogPos[0]+gridDim-toleranceNum) && obsLeft<=(frogPos[0]+toleranceNum)) {
dryFrog=true;

if(obsObj.firstChild.src.indexOf("croc")!=-1) {

if((frogPos[0]+gridDim-toleranceNum)>obsLeft+obsObj.firstChild.offsetWidth-(26*(gridDim/32))) {
dryFrog=false;
deathType="croc";
}
}
}
}


if(obsCount==obsLen && !dryFrog) {
frogMover="";
frogSplash(deathType);
}

}

else {
obsCount=0;
dryFrog=false;
}
}




function checkFloaterStatus(bx,by) {

if(!paused){
if( (bx+(gridDim/2-4))>=(frogPos[0])&&(bx+gridDim/2-4)<=(frogPos[0]+gridDim/2-4) && (by+gridDim/2-4)>=(frogPos[1])&&(by+gridDim/2-4)<=(frogPos[1]+gridDim) ) {


if(!paused&&frogLives>-1&&frogObj.style.visibility=="visible") {

if(!(frogPos[0]==homePos[0]&&frogPos[1]==homePos[1])) {

frogMover="";
deathType="butterfly";
frogSplash(deathType);
}
}
}
}

}





function checkFlyStatus() {

if(
(frogPos[0]<=(flyPos[0]+gridDim-toleranceNum) && (frogPos[0]+gridDim)>=(flyPos[0]+toleranceNum))
&&
(frogPos[1]<=(flyPos[1]+gridDim-toleranceNum) && (frogPos[1]+gridDim)>=(flyPos[1]+toleranceNum))
) {

increaseScore(scoreValue);

deleteFly();
}

}



var flyImg = new Image;
flyImg.src = "fly.gif";
var flyObj,flyStr,flyTimer;
var flyNum = 0;
var flyLive=false;
var flyPos = new Array;
function createFly() {


flyObj = document.createElement("div");
document.body.appendChild(flyObj);
flyLive=true;


flyStr='';
flyStr+='<div style="filter:progid:DXImageTransform.Microsoft.MotionBlur(strength=3,direction=135);position:absolute;left:'+(gridPos[0]+gridDim+( parseInt(Math.random()*(gridDim*20)) ))+'px;top:'+(gridPos[1]+gridDim+( parseInt(Math.random()*(gridDim*9)) ))+'px;z-index:45">';
flyStr+='<img src="'+flyImg.src+'" width="'+gridDim+'" height="'+gridDim+'" alt="" border="0">';
flyStr+='</div>';


flyObj.innerHTML = flyStr;


flyPos = [flyObj.firstChild.offsetLeft,flyObj.firstChild.offsetTop];


flyTimer=setInterval("deleteFly()",20000);

}


function deleteFly() {
clearInterval(flyTimer);
document.body.removeChild(flyObj);
flyLive=false;
}






var deadFrogs = new Array;
var dfNum=0;
function frogContact() {


if(frogLives>-1){

deadFrogs[dfNum] = document.createElement("div");
document.body.appendChild(deadFrogs[dfNum]);
deadFrogs[dfNum].innerHTML = '<div style="-moz-opacity:0.3;filter:alpha(opacity=40);position:absolute;left:'+frogObj.offsetLeft+'px;top:'+frogObj.offsetTop+'px;z-index:25;"><img style="filter:progid:DXImageTransform.Microsoft.Emboss(enabled=true);" src="'+frogImg.src+'" width="'+gridDim+'" height="'+gridDim+'" alt="" border="0"></div>';
dfNum++;


loseFrogLife();
}

}



var splashFilter;
function frogSplash(deathFrom) {


splashFilter = "Pixelate(duration=1)";
if(deathFrom=="croc") { splashFilter = "Iris(duration=0.6)"; }
if(deathFrom=="butterfly") { splashFilter = "RandomDissolve(duration=0.5)"; }

deathType="";


if(frogLives>-1){

deadFrogs[dfNum] = document.createElement("div");
document.body.appendChild(deadFrogs[dfNum]);
deadFrogs[dfNum].innerHTML = '<div style="filter:progid:DXImageTransform.Microsoft.'+splashFilter+';visibility:visible;position:absolute;left:'+frogObj.offsetLeft+'px;top:'+frogObj.offsetTop+'px;z-index:25;"><img src="'+frogImg.src+'" width="'+gridDim+'" height="'+gridDim+'" alt="" border="0"></div>';
if(ie){if(deadFrogs[dfNum].firstChild.filters&&deadFrogs[dfNum].firstChild.filters[0]) { deadFrogs[dfNum].firstChild.filters[0].apply(); }}
deadFrogs[dfNum].firstChild.style.visibility = "hidden";
if(ie){if(deadFrogs[dfNum].firstChild.filters&&deadFrogs[dfNum].firstChild.filters[0]) { deadFrogs[dfNum].firstChild.filters[0].play(); }}
dfNum++;


loseFrogLife(true);
}


if(whichRound==9) {
floatObj.style.top = (gridPos[1]-gridDim)+"px";
}
}




var scoreWin;
function submitHighScore() {


document.forms["scoreform"].submit();


document.getElementById("score").style.display="inline";


return true;

}




var lifeStr;
function changeLivesDisplay(changeBy) {


frogLives+=changeBy;


lifeStr='<table cellpadding=0 cellspacing=0 border=0 style="-moz-box-sizing:border-box;border:2px solid #336633;background-color:#88bb88;">';
lifeStr+='<tr>';
for(i=0;i<frogLives;i++){
lifeStr+='<td><img id="lives'+i+'" src="frog_up.gif" width="18" height="18" alt="" border="0" hspace="1" vspace="1" style="filter:alpha(opacity=75);visibility:visible"></td>';
}
lifeStr+='</tr>';
lifeStr+='</table>';


livesObj.innerHTML = lifeStr;
}





function loseFrogLife(seaGrave) {


changeLivesDisplay(-1);


winFrog=0;


if(frogLives>-1){


forceBlocked=true;

paused=true;

blockTimer = setInterval("unblock()",blockInterval);


frogToStart();

}


else {


forceBlocked=true;


if(seaGrave) { frogObj.style.visibility="hidden"; }

var langCode = '';


if(location.search) {

if(typeof qStr['lang'] != 'undefined') {
langCode = qStr['lang'];
}
}


lifeStr=dialogue[6]+'<br>'+dialogue[7].replace('$',gameScore);
lifeStr+='<p>';
//if(gameScore>0) {
//lifeStr+='<form name="scoreform" action="../frogger_hiscores.php" target="scoreframe"><input name="score" type="hidden" value="'+gameScore+'">';
//lifeStr+='<span id="would">'+dialogue[8]+'</span><p><input id="ok" type="button" style="display:inline" onclick="this.style.display=\'none\';document.getElementById(\'would\').innerHTML=\'\';return submitHighScore()" value="  ' + dialogue[9] + '  " class="prefbutton">&nbsp;';


//if(langCode != '') {
//lifeStr+='<input name="lang" type="hidden" value="'+langCode+'">';
//}

//}
lifeStr+='<input type="button" id="ng" onclick="okButton=null;newGame(\'death\')" value="' + dialogue[10] + '" class="prefbutton">';
createMessageLayer(lifeStr);
//if(document.getElementById("ok"))
//{
//document.getElementById("ok").focus();
//}
//else
{
document.getElementById("ng").focus();
}

}

}




var hfLen;
function newGame(becauseof) {


stopObstacles();


if(floatNum>0){
for(i=0;i<floatNum;i++){
clearInterval(floatTimers[i]);
document.body.removeChild(floaters[i]);
}
}


winFrog=0;

if(becauseof=="death") {


changeLivesDisplay(remLives+1);


randomFactor = remRandom;


whichRound=1;
con["rounds"].value = whichRound;


gameScore=0;
con["score"].value = gameScore;


waterNum=0;
waterSurface.style.backgroundImage = "url("+water[waterNum].src+")";
roadNum=0;
roadSurface.style.backgroundImage = "url("+roads[roadNum].src+")";
bankNum=0;
for(i=0;i<2;i++){
bankSurface[i].style.backgroundImage = "url("+banks[bankNum].src+")";
}


for(i=0;i<dfNum;i++){
document.body.removeChild(deadFrogs[i]);
}
dfNum=0;


if(flyLive) { deleteFly(); }

}


floatNum=parseInt(whichRound/8)-1;


obstacleObjects = new Array;
for(i=0;i<8;i++){
obstacleObjects[obstacleGroups[i]] = new Array;
}


frogsHome = [false,false,false,false,false];
for(i=0;i<5;i++){
if(typeof homeFrogs[i]=="object") { document.body.removeChild(homeFrogs[i]); }
}
homeFrogs = new Array;


frogToStart();


document.body.removeChild(obsDiv);

if(becauseof=="win"){


if(parseInt(whichRound/2)==whichRound/2){


waterNum++; if(waterNum==water.length) { waterNum=0; }
waterSurface.style.backgroundImage = "url("+water[waterNum].src+")";
roadNum++; if(roadNum==roads.length) { roadNum=0; }
roadSurface.style.backgroundImage = "url("+roads[roadNum].src+")";
bankNum++; if(bankNum==banks.length) { bankNum=0; }
for(i=0;i<2;i++){
bankSurface[i].style.backgroundImage = "url("+banks[bankNum].src+")";
}


for(i=0;i<dfNum;i++){
document.body.removeChild(deadFrogs[i]);
}
dfNum=0;


if(flyLive) { deleteFly(); }

}


if(parseInt(whichRound/4)==whichRound/4){
changeLivesDisplay(1);
}


increaseScore(frogLives*(scoreValue));


randomFactor+=0.1;

if(parseInt(whichRound/8)==whichRound/8){ randomFactor=0.1; }

randomFactor=Math.round(randomFactor*100)/100;


whichRound++;
con["rounds"].value = whichRound;

}


createObstacles();


initialiseObstacles();

if(becauseof=="win"){

if(whichRound>=8){
createFloaters();
}
}


deleteMessageLayer();


forceBlocked=false;

paused=false;


frogObj.style.visibility="visible";

}





var frogTimer,homeObj;
var frogMover = "";
function leapFrog(frogDir) {


frogImg.src = frogs[frogDir].src;


frogPos = [frogObj.offsetLeft,frogObj.offsetTop];


switch(frogDir) {
case "left" :
if(frogPos[0]>(gridPos[0]+gridDim)) {
frogPos[0]-=gridDim;
}
break;
case "up" :
if(frogPos[1]>=(gridPos[1]+gridDim)) {

if(frogPos[1]>(gridPos[1]+gridDim)) {
frogPos[1]-=gridDim;
}

else {
for(i=0;i<5;i++){
homeObj = document.getElementById("home"+i);
if(frogPos[0]>homeObj.offsetLeft && (frogPos[0]+gridDim)<(homeObj.offsetLeft+homeObj.offsetWidth)) {
if(!frogsHome[i]) { frogHome(i); }
break;
}
}
}
}
break;
case "right" :
if(frogPos[0]<(gridPos[0]+(gridDim*21))) {
frogPos[0]+=gridDim;
}
break;
case "down" :
if(frogPos[1]<(gridPos[1]+(gridDim*10))) {
frogPos[1]+=gridDim;
}
break;
}


frogObj.style.left = frogPos[0]+"px";
frogObj.style.top = frogPos[1]+"px";


if(flyLive) { checkFlyStatus(); }


if(whichRound>=1 && !flyLive) {
if((Math.random()*50)<1) { createFly(); }
}







frogMover = "";
if(frogPos[1]==gridPos[1]+(gridDim*1)) { frogMover = "rightLeafs"; }
if(frogPos[1]==gridPos[1]+(gridDim*2)) { frogMover = "leftLogs"; }
if(frogPos[1]==gridPos[1]+(gridDim*3)) { frogMover = "leftLeafs"; }
if(frogPos[1]==gridPos[1]+(gridDim*4)) { frogMover = "rightLogs"; }

}




function frogShadow() {



}






var floatImg = new Image;
floatImg.src = "butterfly.gif";
var floaters = new Array;
var floatTimers = new Array;
var floatNum=0;
var floatStr;
function createFloaters() {


floatNum++;


floatimages=new Array;
for(i=0;i<floatNum;i++){
floatStr='<div id="floater'+i+'" style="position:absolute;left:'+(gridPos[0]+((gridDim*23)*Math.random()))+'px;top:'+(gridPos[1]-gridDim)+'px;z-index:50;filter:progid:DXImageTransform.Microsoft.Shadow(color=#663300,direction=135,strength=3);">';
floatStr+='<img src="'+floatImg.src+'"border="0" width='+gridDim+' height='+gridDim+'>';
floatStr+='</div>';
floaters[i] = document.createElement("div");
document.body.appendChild(floaters[i]);
floaters[i].innerHTML = floatStr;


floatTimers[i] = setInterval("animateFloaters()",500/gameSpeed);
}

}




var floatPos,floatObj,floatDiff;
function animateFloaters() {

for(i=0;i<floatNum;i++){

floatObj = document.getElementById("floater"+i);
floatPos = [floatObj.offsetLeft,floatObj.offsetTop];
for(j=0;j<2;j++){
if(floatPos[j]<frogPos[j]||((Math.random()*4)<1)) { floatPos[j]+=(Math.random()*floaterSpeed)/gameResolution; }
if(floatPos[j]>frogPos[j]||((Math.random()*4)<1)) { floatPos[j]-=(Math.random()*floaterSpeed)/gameResolution; }
}

floatObj.style.left = floatPos[0]+"px";
floatObj.style.top = floatPos[1]+"px";


checkFloaterStatus(floatPos[0],floatPos[1]);
}

}





var whichKey;
var okButton=null;
function trapArrows(e) {


if(ie) { whichKey = event.keyCode; }
else { whichKey = e.which; }


switch(whichKey) {
case 37 :
if(!paused&&msgObj==null) { leapFrog('left'); }
break;
case 38 :
if(!paused&&msgObj==null) { leapFrog('up'); }
break;
case 39 :
if(!paused&&msgObj==null) { leapFrog('right'); }
break;
case 40 :
if(!paused&&msgObj==null) { leapFrog('down'); }
break;
case 32 :

if(!paused&&!forceBlocked) {
stopObstacles();
}
else if(!forceBlocked){
restartObstacles();
}
break;
}

}




document.onkeyup = trapArrows;




var allReady,readyTimer;
function checkReadyState() {


dImg = document.images;
imgsLen = dImg.length;


allReady=true;
for(i=0;i<imgsLen;i++){
if(ie) { if(dImg[i].readyState!="complete") { allReady=false; } }
else { if(!dImg[i].complete) { allReady=false; } }
}


if(!allReady) {
readyTimer = setTimeout("checkReadyState()",500);
}


else {
clearTimeout(readyTimer);


frogToStart();


deleteMessageLayer();


forceBlocked=false;
paused=false;


frogObj.style.visibility="visible";

}

}



function initialiseGame() {


changeLivesDisplay(0);


createObstacles();


initialiseObstacles();


con["rounds"].value = whichRound;
con["score"].value = gameScore;


forceBlocked=true;
paused=true;


checkReadyState();

}

if(dom) { window.onload = initialiseGame; }


