function checkPos(){
if(player.x>apachAttack[apachPos])initApach();
if(player.x>parachuterAttack[parachuterPos])initParachuter();
if(player.x>badCarAttack[carPos])initBadCar((player.x-trux)-126,10);
}

function checkPos2(){
var rn;
if(posInStage>apachAttack[apachPos])initApach();
if(posInStage>parachuterAttack[parachuterPos])initParachuter();
if(posInStage>badCarAttack[carPos]){
rn=Math.floor(Math.random()*10);
if(rn>4)initBadCar(player.x+(800-trux),4);
if(rn<=4)initBadCar((player.x-trux)-126,14);
}
}

function checkPos3(){
var rn;
if(posInStage>planeAttack[planePos])initPlane();

}

function checkApache(){
var i,ap;
for(i=1;i<apache.length;i++){
ap=apache[i];
if(ap.on){
if((ap.x<player.x-140)&&(ap.xdir<0))ap.setDir(apright,0);
if((ap.x>player.x+140)&&(ap.xdir>0))ap.setDir(apleft,0);
if(Math.floor(Math.random()*1000)>bombProb)initBomb(ap.x+120,ap.y+145);
}
}
}

function checkParachuters(){
var i,pa;
for(i=1;i<parachuter.length;i++){
pa=parachuter[i];
if(pa.on){
if(pa.x<(player.x-trux)-80)pa.switchOff();
if(Math.floor(Math.random()*1000)>enShootProb)initBullet2(pa.x+30,pa.y+87);
if((pa.y>400)&&(pa.frame==0)){
pa.setFrame(2);
pa.setAnimationSpeed(2,'forward');
pa.setAnimationRepeat(1);
pa.setDir(0,0);
}
if((pa.frame==2)&&(pa.animpos>=3)){
pa.setFrame(3);
pa.setAnimationSpeed(2,'forward');
pa.setAnimationRepeat(-1);
}
if((pa.frame==1||pa.frame==4)&&(pa.animpos>=3)){
pa.moveTo(-1000,100);
pa.switchOff();
}
}
}
}

function checkBadCar(){
var i,ca;
for(i=1;i<badCar.length;i++){
ca=badCar[i];
if(ca.on){
if(ca.x>player.x+(810-trux))ca.switchOff();
}
}
}

function checkBadPlane(){
var i,pl;
for(i=1;i<badPlane.length;i++){
pl=badPlane[i];
if(pl.on){
if((player.on)&&(pl.x>player.x-100)&&(pl.x<player.x+120)&&(pl.y>player.y-30)&&(pl.y<player.y+30)){
initExplosion(pl.x-50,pl.y-50,210,130);
pl.switchOff();
deadplayer2();
}
if(Math.floor(Math.random()*1000)>bombProb){
if(stage==4||stage==8){
initBomb2(pl.x,pl.y+20);
}else initBomb(pl.x+60,pl.y+51);
}
if(pl.x<((player.x-trux)-130))pl.switchOff();
}
}
}


function checkSoldiers(){
var n,e;
for(n=1;n<=maxEnemies;n++){
e=enemy[n];
if((e.x<player.x-trux)&&(e.on)&&(e.xdir<0)){
e.setDir(4,0);
e.setFrame(0);
}
if((e.x>player.x+(700-trux))&&(e.on)&&(e.xdir>0)){
e.setDir(-4,0);
e.setFrame(1);
}
if((e.frame==5)&&(e.animpos>=5))newSoldier(n);
if(Math.floor(Math.random()*1000)>enShootProb)enemyShoot(n);
}
}

function checkEnemyShots(){
var n,eb,bo;
for(n=1;n<enemyBullet.length;n++){
eb=enemyBullet[n];
if((eb.x<player.x-trux)&&(eb.on))eb.switchOff();
if((eb.x>player.x+(800-trux))&&(eb.on))eb.switchOff();
if((eb.y>520)&&(eb.on))eb.switchOff();
if((player.frame==0)||(player.frame==1)||(player.frame==2)||(eb.ydir>0)){
if((eb.x>player.x+12)&&(eb.x<player.x+34)&&(eb.y>player.y)&&(eb.y<player.y+45)&&(eb.on))deadplayer();
}
}
//now check bombs
for(n=1;n<bomb.length;n++){
bo=bomb[n];
if(player.frame!=5){
if((bo.x>player.x)&&(bo.x<player.x+34)&&(bo.y>player.y)&&(bo.y<player.y+45)&&(bo.on))deadplayer();
}
if((bo.y>445)&&(bo.on)){
initExplosion(bo.x-14,bo.y-25,71,100);
bo.switchOff();
}
}
}

function checkEnemyShots2(){
var n,bo;
for(n=1;n<bomb.length;n++){
bo=bomb[n];
if(player.on){
if((bo.x>player.x)&&(bo.x<player.x+118)&&(bo.y>player.y)&&(bo.y<player.y+55)&&(bo.on)){
bo.switchOff();
deadplayer2();
}
}
if((bo.y>445)&&(bo.on)){
initExplosion(bo.x-14,bo.y-25,71,100);
bo.switchOff();
}
if(bo.x<((player.x-trux)-12))bo.switchOff();
}
}

function checkExplosions(){
var i,ex;
for(i=1;i<explosion2.length;i++){
ex=explosion2[i];
if(ex.on){
if(ex.animpos>=13){
ex.switchOff();
}
}
}
}

function checkBullets(){
var n,b,e,i,ap,ca,pa,pl;
for(n=1;n<bullet.length;n++){
b=bullet[n];
if((b.x<player.x-trux)&&(b.on))b.switchOff();
if((b.x>player.x+(800-trux))&&(b.on))b.switchOff();
if((b.y<-10)&&(b.on))b.switchOff();
for(i=1;i<=maxEnemies;i++){
e=enemy[i];
if((b.x>e.x+12)&&(b.x<e.x+34)&&(b.y>e.y)&&(b.y<e.y+45)&&(b.on)&&(e.frame<5))enemyHit(n,i);
}
for(i=1;i<apache.length;i++){
ap=apache[i];
if((b.x>ap.x+83)&&(b.x<ap.x+167)&&(b.y>ap.y)&&(b.y<ap.y+145)&&(b.on)&&(ap.on))apacheHit(n,i);
}
for(i=1;i<parachuter.length;i++){
pa=parachuter[i];
if((b.x>pa.x)&&(b.x<pa.x+78)&&(b.y>pa.y)&&(b.y<pa.y+87)&&(b.on)&&(pa.on))parachuterHit(n,i);
}
for(i=1;i<badCar.length;i++){
ca=badCar[i];
if((ca.x<player.x-100)||(ca.x>player.x+50)){
if((ca.x>(player.x-trux))&&(b.x>ca.x)&&(b.x<ca.x+126)&&(b.y>ca.y)&&(b.y<ca.y+145)&&(b.on)&&(ca.on))badCarHit(n,i);
}
}
for(i=1;i<badPlane.length;i++){
pl=badPlane[i];
if((pl.x>(player.x-trux))&&(b.x>pl.x)&&(b.x<pl.x+126)&&(b.y>pl.y)&&(b.y<pl.y+51)&&(b.on)&&(pl.on))badPlaneHit(n,i);
}
}
}

function enemyHit(n,i){
var b,e;
b=bullet[n];
e=enemy[i];
b.switchOff();
e.setFrame(5);
e.setDir(0,0);
e.setAnimationSpeed(1,'forward');
e.setAnimationRepeat(1);
score+=50;
}

function apacheHit(n,i){
var b,ap;
b=bullet[n];
ap=apache[i];
b.switchOff();
score+=1000;
initExplosion(ap.x-20,ap.y-20,286,185);
ap.switchOff();
}

function parachuterHit(n,i){
var b,pa;
b=bullet[n];
pa=parachuter[i];
b.switchOff();
score+=250;
if(pa.frame==0)pa.setFrame(1);
if(pa.frame==2||pa.frame==3)pa.setFrame(4);
pa.setAnimationSpeed(1,'forward');
pa.setAnimationRepeat(1);
}

function badCarHit(n,i){
var b,ca;
b=bullet[n];
ca=badCar[i];
b.switchOff();
score+=1000;
initExplosion(ca.x-30,ca.y-30,286,185);
ca.switchOff();
}

function badPlaneHit(n,i){
var b,pl;
b=bullet[n];
pl=badPlane[i];
b.switchOff();
score+=1200;
initExplosion(pl.x-50,pl.y-50,210,130);
pl.switchOff();
}

function newSoldier(n){
var e,xp;
e=enemy[n];
e.setSpeed(1);
xp=Math.floor(Math.random()*10);
if(xp>1){
e.moveTo(player.x+(800-trux)+(xp*10),443);
e.setDir(-4,0);
e.setFrame(1);
}else if(xp<=1){
e.moveTo(player.x-trux-(xp*10),443);
e.setDir(4,0);
e.setFrame(0);
}
e.setAnimationSpeed(2,'forward');
}


function deadplayer(){
var p=player;
if(gamestate>1000)return;
p.setFrame(5);
p.setAnimationSpeed(2,'forward');
p.setAnimationRepeat(1);
}

function deadplayer2(){
var p=player;
if(gamestate>1000)return;
initExplosion(p.x-30,p.y-30,286,185);
p.switchOff();
}

function enemyShoot(n){
var e,eb,i;
e=enemy[n];
for(i=1;i<enemyBullet.length;i++){
eb=enemyBullet[i];
if(!eb.on){
if(e.frame==0){
eb.setFrame(0);
eb.switchOn();
eb.moveTo(e.x+46,e.y+15);
eb.setDir(8,0);
}
if(e.frame==1){
eb.setFrame(0);
eb.switchOn();
eb.moveTo(e.x-2,e.y+15);
eb.setDir(-8,0);
}
break;
}
}
}

function initBullet2(xx,yy){
var eb,i;
for(i=1;i<enemyBullet.length;i++){
eb=enemyBullet[i];
if(!eb.on){
eb.moveTo(xx,yy);
eb.setFrame(0);
eb.switchOn();
if(xx<player.x)eb.setDir(Math.floor(Math.random()*4),8);
if(xx>=player.x)eb.setDir((Math.floor(Math.random()*4)*-1),8);
break;
}
}
}

function initApach(){
var ap,i;
for(i=1;i<apache.length;i++){
ap=apache[i];
if(!ap.on){
ap.moveTo(player.x+(800-trux),Math.floor(Math.random()*110)+30);
ap.setFrame(0);
ap.switchOn();
ap.setAnimationSpeed(1,'forward');
ap.setDir(-8,0);
apachPos++;
break;
}
}
}


function initParachuter(){
var pa,i;
for(i=1;i<parachuter.length;i++){
pa=parachuter[i];
if(!pa.on){
pa.moveTo(((player.x-trux)+Math.floor(Math.random()*500))+300,-100);
pa.setFrame(0);
pa.switchOn();
pa.setAnimationSpeed(3,'forward');
pa.setDir(0,4);
parachuterPos++;
break;
}
}
}

function initBadCar(xx,dd){
var ca,i;
for(i=1;i<badCar.length;i++){
ca=badCar[i];
if(!ca.on){
ca.moveTo(xx,Math.floor(Math.random()*8)+430);
ca.setFrame(0);
ca.switchOn();
ca.setAnimationSpeed(1,'forward');
ca.setDir(dd,0);
carPos++;
break;
}
}
}

function initPlane(){
var pl,i;
for(i=1;i<badPlane.length;i++){
pl=badPlane[i];
if(!pl.on){
pl.moveTo((player.x+800)-trux,Math.floor(Math.random()*450));
pl.setFrame(0);
pl.switchOn();
pl.setAnimationSpeed(1,'forward');
if(pl.y<200)pl.setDir(-10,3);
if(pl.y>=200)pl.setDir(-10,-3);
planePos++;
break;
}
}
}


function initBomb(x,y){
var bo,i;
for(i=1;i<bomb.length;i++){
bo=bomb[i];
if(!bo.on){
bo.moveTo(x,y);
bo.setFrame(0);
bo.switchOn();
bo.setAnimationSpeed(1,'forward');
bo.setDir(0,10);
break;
}
}
}

function initBomb2(x,y){
var bo,i,yd;
for(i=1;i<bomb.length;i++){
bo=bomb[i];
if(!bo.on){
bo.moveTo(x,y);
bo.setFrame(0);
bo.switchOn();
bo.setAnimationSpeed(1,'forward');
if(bo.y>player.y)yd=Math.floor(Math.random()*8)*-1;
if(bo.y<=player.y)yd=Math.floor(Math.random()*8);
bo.setDir(-11,yd);
break;
}
}
}

function initExplosion(x,y,w,h){
var ex,i;
for(i=1;i<explosion2.length;i++){
ex=explosion2[i];
if(!ex.on){
ex.moveTo(x,y);
ex.setFrame(0);
ex.resize(w,h);
ex.switchOn();
ex.setAnimationSpeed(1,'forward');
ex.setAnimationRepeat(1);
break;
}
}
}

function checkKeys(){
if(player.frame<5){
if((!leftKey.pressed)&&(!rightKey.pressed)&&(!leftKey2.pressed)&&(!rightKey2.pressed))player.setAnimationSpeed(0,'forward');
if(downKey.pressed||downKey2.pressed){
down=1;
if(player.frame==0||player.frame==2)player.setFrame(3);
if(player.frame==1)player.setFrame(4);
}
if(down==1&&!downKey.pressed&&!downKey2.pressed){
down=0;
if(player.frame==3)player.setFrame(0);
if(player.frame==4)player.setFrame(1);
}
if(upKey.pressed||upKey2.pressed){
up=1;
player.setFrame(2);
}
if(up==1&&!upKey.pressed&&!upKey2.pressed)up=0;


if((leftKey.pressed||leftKey2.pressed)&&player.x>0){
if((player.animspd==0)||(player.frame==0)||(player.frame==2)||(player.frame==4)){
if(down==0&&up==0){
player.setFrame(1);
player.setAnimationSpeed(2,'forward');
}else if(down==1){
player.setFrame(4);
player.setAnimationSpeed(0,'forward');
}
}
if(down==0&&up==0){
if(trux>0){
trux-=player.speed;
player.moveTo(player.x-player.speed,player.y);
}
}
}
else if(rightKey.pressed||rightKey2.pressed){
if((player.animspd==0)||(player.frame==1)||(player.frame==2)||(player.frame==3)){
if(down==0&&up==0){
player.setFrame(0);
player.setAnimationSpeed(2,'forward');
}else if(down==1){
player.setFrame(3);
player.setAnimationSpeed(0,'forward');
}
}
if(down==0&&up==0&&player.x-trux<playerlimit){
if(trux<300)trux+=player.speed;
player.moveTo(player.x+player.speed,player.y);
if(trux>=300)window.scrollTo(player.x-trux,0);
}
}

//throw this in here to fix player flashing bug that occurs sometimes
if((player.frame==2)||(player.frame==3)||(player.frame==4))player.setAnimationSpeed(0,'forward');

if(fireKey.pressed&&fireCount<0){
var n,b;
for(n=1;n<bullet.length;n++){
b=bullet[n];
if(!b.on){
if(player.frame==0){
b.moveTo(player.x+46,player.y+16);
b.setFrame(0);
b.switchOn();
b.setDir(14,0);
}
if(player.frame==3){
b.moveTo(player.x+46,player.y+27);
b.setFrame(0);
b.switchOn();
b.setDir(14,0);
}
if(player.frame==1){
b.moveTo(player.x-2,player.y+16);
b.setFrame(0);
b.switchOn();
b.setDir(-14,0);
}
if(player.frame==4){
b.moveTo(player.x-2,player.y+27);
b.setFrame(0);
b.switchOn();
b.setDir(-14,0);
}
if(player.frame==2){
b.moveTo(player.x+35,player.y-4);
b.setFrame(0);
b.switchOn();
b.setDir(0,-14);
}
fireCount=5;
break;
}
}
}

}
}


function checkKeys2(){
if(player.on){
if(!leftKey.pressed&&!leftKey2.pressed)player.setAnimationSpeed(1,'forward');
if(upKey.pressed||upKey2.pressed){
if(up==0)player.setFrame(1);
up=1;
}
if(up==1&&!upKey.pressed&&!upKey2.pressed){
player.setFrame(0);
up=0;
}

if((leftKey.pressed||leftKey2.pressed)&&player.x>0){
if(trux>0){
trux-=(player.speed+2);
player.moveTo(player.x-(player.speed+2),player.y);

if(player.animspd==1)player.setAnimationSpeed(2,'forward');
}
}
else if(rightKey.pressed||rightKey2.pressed){

if(trux<600){
trux+=player.speed;
player.moveTo(player.x+player.speed,player.y);

}
}

player.x+=8;
window.scrollTo(player.x-trux,0);
if(player.x-trux>=edge)jumpBack();
posInStage++;

if(fireKey.pressed&&fireCount<0){
var n,b;
for(n=1;n<bullet.length;n++){
b=bullet[n];
if(!b.on){
if(player.frame==0){
b.moveTo(player.x+126,player.y+16);
b.setFrame(0);
b.switchOn();
b.setDir(24,0);
}

if(player.frame==1){
b.moveTo(player.x+60,player.y-4);
b.setFrame(0);
b.switchOn();
b.setDir(6,-14);
}
fireCount=5;
break;
}
}
}

}
}

function checkKeys3(){
if(player.on){
if((upKey.pressed||upKey2.pressed)&&player.y>0)player.moveTo(player.x,player.y-player.speed);
if((downKey.pressed||downKey2.pressed)&&player.y<500)player.moveTo(player.x,player.y+player.speed);

if((leftKey.pressed||leftKey2.pressed)&&trux>0){
player.moveTo(player.x-player.speed,player.y);
trux-=player.speed;
}
if((rightKey.pressed||rightKey2.pressed)&&trux<500){
player.moveTo(player.x+player.speed,player.y);
trux+=player.speed;
}
player.x+=1;
window.scrollTo(player.x-trux,0);
posInStage++;

if(fireKey.pressed&&fireCount<0){
var n,b;
for(n=1;n<bullet.length;n++){
b=bullet[n];
if(!b.on){
b.moveTo(player.x+129,player.y+16);
b.setFrame(0);
b.switchOn();
b.setDir(10,0);
fireCount=5;
break;
}
}
}

}
}

function jumpBack(){
if(hot==1){
document.getElementById('background2').style.left=(player.x+800)-trux;
hot=2;
}else if(hot==2){
document.getElementById('background1').style.left=(player.x+800)-trux;
hot=1;
}
edge+=800;
}




function gameover(){
Gl_stop();
window.location="titlescreen.html";
}





