/* =================================== * Baccarat * 2008 * * authors: * Brozek Krzysztof * brozekkk@yahoo.co.uk * Matyasik Kamil * ti_mo_n@yahoo.com * * =================================== */ var strMntxtQQ = new Array("Instructions", "Play", "More Games", "Highscores", "Tell a Friend", "Skip"); // menu items var gtQQ = 'Baccarat'; // game title var ydispQQ = 64; // vertical displacement var maxslotsQQ = 50; // max visible sprite slots var maxcardsQQ = 20; // max visible card slots var netQQ; // boolean: is netscape? var mnamQQ = 'ziuta78'; // main div's ID var aimgnmQQ = 'A.jpg'; var bgimglnkQQ = 'S.jpg'; // BG image name var gbbglnkQQ = 'B.jpg'; // game BG img name var spimglnkQQ = 'K.png'; // sprite image name var blimglnkQQ = 'L.png'; // ball image name var brimglnkQQ = 'B.png'; // bar image name var cdimglnkQQ = 'C.png'; // cards image name var spimgQQ = new Image(); // sprite image var crdmgQQ = new Image(); // card image var brimgQQ = new Image(); // bar image var blimgQQ = new Image(); // ball image var gmbgmgQQ = new Image(); // gamebackground var bgWQQ = 320; // background image's width var bgHQQ = 356; // background image's height //var maxmemslots = 72; // max memory sprite slots //var memimgs = new Array(maxmemslots); // memory sprite slots var imgsQQ = new Array(maxslotsQQ); // sprite slots var sbQQ = new Array(maxslotsQQ); // slot bindings var CimgsQQ = new Array(maxcardsQQ); // card slots var CsbQQ = new Array(maxcardsQQ); // card slot bindings var zQQ; // main div object var udQQ = 'undefined'; // string used for many purposes var sinoneQQ = 'none'; var siinliQQ = 'inline'; var pxtxtQQ = 'px'; var pxspcQQ = 'px, '; var pxentQQ = 'px)'; var vistxtQQ = 'visible'; var mgtxtQQ = 'schQQ();'; var end1txtQQ = '")'; var mnutxtQQ = 'mnu'; var nullstrQQ = ''; var cbg0txtQQ = "zQQ == null"; var bodytxtQQ = 'body'; var htmltxtQQ = 'html'; var urltxtQQ = 'url("'; var pbrtxtQQ = 'pbr'; var pbltxtQQ = 'pbl'; var whttxtQQ = '#895428'; var wyptxt1QQ = 'wypas('; var wyptxt2QQ = ');'; var coltxQQ = ', '; var cmtxtQQ = 'cm(0);'; var cm2txQQ = 'cm(2);'; var rcttxQQ = 'rect('; var abstxtQQ = 'absolute'; var statxtQQ = 'static'; var adverQQ = 'advertID'; var advimgQQ = 'advimgID'; var hidtxtQQ = 'hidden'; var nsQQ = 'Netscape'; // string used to detect a netscape-type browser var sperrrQQ = 'Sprite data error at index '; // debug error var actQQ = 0; // 0-mainmenu, 1-instructions, 2-game, 3-moregames, 4-highscores var strArrayQQ = new Array(1); var strPartsQQ = new Array(4); var gamestuffQQ = ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ '
 
 
'+strMntxtQQ[5]+'
'+ ''+ ''+ ''+ ''+ ''+ '
'+strMntxtQQ[0]+'
'+strMntxtQQ[1]+'
'+strMntxtQQ[2]+'
'+strMntxtQQ[3]+'
'+strMntxtQQ[4]+'
'; strPartsQQ[0] = 'Something went wrong'; strPartsQQ[1] = ''; strPartsQQ[2] = '
Something went wrong'; strPartsQQ[3] = '
'; var imgcodeQQ = new Array(''); var crdcodeQQ = new Array(''); var dbginfoQQ = new Array('body: [x: ', ', y: ', ', w: ', ', h: ', "]\nhalfW: ", "\nhalfH: "); // =============================================================================== // =============================================================================== // =============================================================================== // =============================================================================== // =============================================================================== // =============================================================================== // X, Y, width, height var sprdataQQ = new Array([0, 17, 57, 22], [0, 0, 64, 18], [0, 39, 67, 30], //'player', 'banker', 'tie' sides (0,1,2) [0, 69, 65, 25], //glowing button(3) [65, 0, 42, 14], [108, 0, 36, 14], [146, 0, 43, 14], [190, 0, 37, 14], //bet+, bet-, clear, deal captions(4,5,6,7) [70, 55, 10, 14], [83, 55, 10, 14], [97, 55, 10, 14], [110, 55, 10, 14], //orange 'P' and 'B', white 'P' and 'B'(8,9,10,11) [70, 73, 153, 14], //'choose your side'(12) [0, 95, 222, 14], //'place your bet'(13) [0, 112, 137, 14], //'you win! paid $'(14) [0, 177, 145, 14], //'you lose! lost $'(15) [109, 129, 29, 14], //'tie'(16) [61, 21, 11, 14], [72, 21, 11, 14], [83, 21, 11, 14], [94, 21, 11, 14], [105, 21, 11, 14], //white digits(17-26) [116, 21, 11, 14], [127, 21, 11, 14], [138, 21, 11, 14], [149, 21, 11, 14], [160, 21, 11, 14], [69, 38, 11, 14], [80, 38, 11, 14], [91, 38, 11, 14], [102, 38, 11, 14], [113, 38, 11, 14], //orange digits(27-36) [124, 38, 11, 14], [135, 38, 11, 14], [146, 38, 11, 14], [157, 38, 11, 14], [168, 38, 11, 14], [144, 120, 57, 18], //'history' caption(37) [0, 150, 172, 26] //'game over' caption(38) ); // =============================================================================== // =============================================================================== // game variables start var iClWidth = 0; var iClHeight = 0; var iLeft = 0; var iTop = 0; var iWidth = 0; var iHeight = 0; var ihalfW = 0; var iHalfH = 0; var mX = 0; var mY = 0; var isM = false; var isCl = false; // =============================================================================== //array hloding cards info 0-active or not, 1-value var cards = new Array([0, 2], [0, 3], [0, 4], [0, 5], [0, 6], [0, 7], [0, 8], [0, 9], [0, 0], [0, 0], [0, 0], [0, 1], [0, 0], [0, 2], [0, 3], [0, 4], [0, 5], [0, 6], [0, 7], [0, 8], [0, 9], [0, 0], [0, 0], [0, 0], [0, 1], [0, 0], [0, 2], [0, 3], [0, 4], [0, 5], [0, 6], [0, 7], [0, 8], [0, 9], [0, 0], [0, 0], [0, 0], [0, 1], [0, 0], [0, 2], [0, 3], [0, 4], [0, 5], [0, 6], [0, 7], [0, 8], [0, 9], [0, 0], [0, 0], [0, 0], [0, 1], [0, 0] ); var k = 0; //frame counter var j = 100; var bet = 0; //current bet var balance = 1000; //balance var stage = 1; //state of game var select = 0; //1-tie, 2-banker, 3-player var banker_score = 0; var player_score = 0; var step = 1; //used when handling cards var cards_no = 0; //how much cards on the table var max_cards = 0; //max possible number of cards on the table var count = 0; var cardX = 0; //card X,Y var cardY = 0; var velX = 8; //card x,y speed var velY = 9; var desX = 0; //place where card is going var desY = 0; var go = false; //game over? var res_no = 0; //reuslts number on the screen var more = false; var clicked = false; // game variables end // init game function ig () { //vars init/reset k = bet = select = banker_score = player_score = cards_no = count = res_no = 0; j = 100; go = false; balance = 1000; //set money for player state = step = 1; //graphics update ci(maxslotsQQ-1, 0); //setup 'player' side mi(maxslotsQQ-1, 127, 190); ci(maxslotsQQ-2, 1); //setup 'banker' side mi(maxslotsQQ-2, 124, 128); ci(maxslotsQQ-3, 2); //setup 'tie' side mi(maxslotsQQ-3, 123, 76); ci(maxslotsQQ-4, 3); //setup glowing button ci(maxslotsQQ-5, 4); //setup 'bet+' caption mi(maxslotsQQ-5, 17, 306); si(maxslotsQQ-5, true); ci(maxslotsQQ-6, 5); //setup 'bet-' caption mi(maxslotsQQ-6, 91, 306); si(maxslotsQQ-6, true); ci(maxslotsQQ-7, 6); //setup 'clear' caption mi(maxslotsQQ-7, 189, 306); si(maxslotsQQ-7, true); ci(maxslotsQQ-8, 7); //setup 'deal' caption mi(maxslotsQQ-8, 263, 306); si(maxslotsQQ-8, true); ci(maxslotsQQ-9, 12); //setup text info caption caption(chose side, place bet, etc...) mi(maxslotsQQ-9, 6, 278); si(maxslotsQQ-9, true); drawNr(bet, 60, 336, maxslotsQQ-10); //show bet number (uses 6 slots!!!!) drawNr(balance, 249, 336, maxslotsQQ-16); //show balance number (uses 6 slots!!!!) //slot 22, 23 is used for player/banker score later in the game //next slot is maxslotsQQ - 24 ci(maxslotsQQ-24, 38); //setup 'game over' caption mi(maxslotsQQ-24, (bgWQQ>>1) - 86, (bgHQQ>>1) - 26); ci(maxslotsQQ-25, 37); //setup 'history' caption mi(maxslotsQQ-25, 5, 72); si(maxslotsQQ-25, true); //next slot is 38 - history uses 12 slots } // main game: called until false is returned function mg() { //if(isCl) alert("clicked"); //else alert("unclicked"); // if(isCl && clicked) {clicked = false; alert("clicked");} // else if(!isCl && !clicked) {clicked = true; alert("unclicked");} k++; //actualize frame counter //clicked = false; if(state == 1) { //choose your side si(maxslotsQQ-1, false); si(maxslotsQQ-2, false); si(maxslotsQQ-3, false); if (isM && !isCl) { if(mX >= 123 && mX <= 190) { //check collision with 'tie' if(mY >= 76 && mY <= 106) { si(maxslotsQQ-3, true); //if(isCl && !clicked) clicked = true; //else if(!isCl && clicked) {select = 1;clicked = false;nxtState(2);} select = 1; state = 2; ci(maxslotsQQ-9, 13); mi(maxslotsQQ-9, 6, 278); //nxtState(2); } } } if (isM && !isCl) { if(mX >= 127 && mX <= 184) { //check collision with 'player' if(mY >= 190 && mY <= 212) { si(maxslotsQQ-1, true); //if(isCl && !clicked) clicked = true; //else if(!isCl && clicked) {select = 3;clicked = false;nxtState(2);} select = 3; //nxtState(2); state = 2; ci(maxslotsQQ-9, 13); mi(maxslotsQQ-9, 6, 278); } } } if (isM && !isCl) { if(mX >= 124 && mX <= 188) { //check collision with 'banker' if(mY >= 128 && mY <= 146) { si(maxslotsQQ-2, true); //if(isCl && !clicked) clicked = true; //else if(!isCl && clicked) {select = 2;clicked = false;nxtState(2);} select = 2; state = 2; ci(maxslotsQQ-9, 13); mi(maxslotsQQ-9, 6, 278); //nxtState(2); } } } } else if(state == 2) { //place your bet si(maxslotsQQ-4, false); if (isM && !isCl) { if(mY >= 301 && mY <= 326) { if(mX >= 6 && mX <= 71) { //check collision with 'bet+' mi(maxslotsQQ-4, 6, 301); si(maxslotsQQ-4, true); //if(isCl && !clicked) clicked = true; //else if(!isCl && clicked) { if(bet < 200 && bet < balance) { if(bet < 10) bet++; else if(bet < 50) bet += 5; else bet += 10; if(bet > balance) bet = balance; drawNr(bet, 60, 336, maxslotsQQ-10); } //clicked = false; //} } else if(mX >= 77 && mX <= 142) { //check collision with 'bet-' mi(maxslotsQQ-4, 77, 301); si(maxslotsQQ-4, true); //if(isCl && !clicked) clicked = true; //else if(!isCl && clicked) { if(bet > 0) { if(bet <= 10) bet--; else if(bet <= 50) bet -= 5; else bet -= 10; drawNr(bet, 60, 336, maxslotsQQ-10); } //clicked = false; //} } else if(mX >= 178 && mX <= 243) { //check collision with 'clear' mi(maxslotsQQ-4, 178, 301); si(maxslotsQQ-4, true); //if(isCl && !clicked) clicked = true; //else if(!isCl && clicked) { if(bet != 0) { bet = 0; drawNr(bet, 60, 336, maxslotsQQ-10); } //clicked = false; //} } else if(mX >= 249 && mX <= 314) { //check collision with 'deal' mi(maxslotsQQ-4, 249, 301); si(maxslotsQQ-4, true); //if(isCl && !clicked) clicked = true; //else if(!isCl && clicked) { if(bet != 0) { var i = 0; si(maxslotsQQ-4, false); //turn off glowing button max_cards = 4; //max cards for nw is 4 cards_no = player_score = banker_score = 0; //reset score and cards counter for(i = 0; i < 52; i++) cards[i][0] = 0; //'deactivate' all cards ci(maxslotsQQ-22, 17); //banker score visible mi(maxslotsQQ-22, 100, 202); si(maxslotsQQ-22, true); ci(maxslotsQQ-23, 17); //player score visible mi(maxslotsQQ-23, 100, 110); si(maxslotsQQ-23, true); si(maxslotsQQ-9, false); //turn off info for a while state = 3; } //clicked = false; //} } } } } else if(state == 3) { //game goes on if(cards_no < max_cards) { //if there is less cards on the table than allowed if(step == 1) { do { //randomize a card count = (Math.floor(Math.random() * 51)); } while(cards[count][0] != 0); cards[count][0] = 1; //card is active(cannot be drawn again this turn) cardX = 256; //set initial x,y cardY = 10; cc(maxcardsQQ - 1 - cards_no, 52); //activate mc(maxcardsQQ - 1 - cards_no, cardX, cardY); sc(maxcardsQQ - 1 - cards_no, true); desX = 122 + (Math.floor(cards_no>>1) * 14); //set destination X where card should go //cards_no++; if((cards_no&1) == 0) {desY = 170 + (Math.floor(cards_no>>1) * 11); velY = 9;} //switch destination Y dependig on wheter the card goes to player or banker else {desY = 77 + (Math.floor(cards_no>>1) * 11); velY = 5;} step = 2; } else if(step == 2) { mc(maxcardsQQ - 1 - cards_no, cardX, cardY); if((cardX - velX) > desX) cardX -= velX; //move card to its dest x,y else cardX = desX; if((cardY + velY) < desY) cardY += velY; else cardY = desY; if((cardX == desX) && (cardY == desY)) { //card is in place if((cards_no&1) == 0) { player_score += cards[count][1]; //actualize player score if(player_score >= 10) player_score %= 10; ci(maxslotsQQ-22, 17 + player_score); mi(maxslotsQQ-22, 100, 202); } else { //actualize banker score banker_score += cards[count][1]; if(banker_score >= 10) banker_score %= 10; //alert("player score: "+banker_score); ci(maxslotsQQ-23, 17 + banker_score); mi(maxslotsQQ-23, 100, 110); } cc(maxcardsQQ - 1 - cards_no, count); //show figure mc(maxcardsQQ - 1 - cards_no, cardX, cardY); cards_no++; //cards number goes up step = 1; } } } else { //we've got 4 cards on the table more = false; if(cards_no == 4) { if(select == 1 && (player_score == banker_score)) result(0); //tie else { if(player_score < 6 && banker_score < 8) {max_cards++; more = true;} if(banker_score < 3 && (player_score > 5 && player_score < 7)) { max_cards+=2; cards_no++; more = true; } } } else if(cards_no == 5) { //player drew a card already if(banker_score < 3) { max_cards++; more = true; } else if((banker_score == 3 && cards[count][1] != 8) || (banker_score == 4 && (cards[count][1] > 1 && cards[count][1] < 8)) || (banker_score == 5 && (cards[count][1] > 3 && cards[count][1] < 8)) || (banker_score == 6 && (cards[count][1] > 5 && cards[count][1] < 8))) max_cards++; } if(!more) { if(player_score == banker_score) result(0);//tie else if(player_score > banker_score) result(1); //player wins else result(2); //banker wins } } } else if(state == 4) { //cleaning up the table and updating history if(cards_no >= 0) { //take cards off the table if((k%10) == 0) { sc(maxcardsQQ - 1 - cards_no, false); cards_no--; } } else { //all cards are off if(go) { //game over si(maxslotsQQ-22, false); si(maxslotsQQ-23, false); bet = 0; drawNr(bet, 60, 336, maxslotsQQ-10); si(maxslotsQQ-24, true); //show 'game over' if(j > 0) j--; //wait for a while before quit else return false; } else { //we are still in game si(maxslotsQQ-22, false); //turn off banker and player score si(maxslotsQQ-23, false); if(bet > balance) bet = balance; drawNr(bet, 60, 336, maxslotsQQ-10); //history update ci(maxslotsQQ-9, 12); //set first caption mi(maxslotsQQ-9, 6, 278); state = 1; } } } return true; } // functions ///draws current number on the screen using graphics font //number-number to be drawn, X,Y - coords on the screen, slot_no - slot to be used function drawNr(number, X, Y, slot_no) { var i = 0; var temp = number; var count_no = 0; var div = 0; if(temp >= 100000) {count_no = 6; div = 100000;} else if(temp >= 10000) {count_no = 5; div = 10000;} else if(temp >= 1000) {count_no = 4; div = 1000;} else if(temp >= 100) {count_no = 3; div = 100;} else if(temp >= 10) {count_no = 2; div = 10;} else {count_no = 1; div = 1;} for(i = slot_no; i > (slot_no - 6); i--) si(i, false); for(i = 0; i < count_no; i++) { ci(slot_no - i, 17+(Math.floor(temp/div))); mi(slot_no - i, X + (i * 11), Y); si(slot_no - i, true); temp %= div; div /= 10; } } /*/ function nxtState(state_no) { if(state_no == 2) { state = 2; ci(maxslotsQQ-9, 13); mi(maxslotsQQ-9, 6, 278); } }//**/ //sets caption info //im_no - which image will be used for caption function setInfo(nr, numb) { if(nr == 0) { //tie ci(maxslotsQQ-9, 16); } else if(nr == 1) { //you win ci(maxslotsQQ-9, 14); drawNr(numb, 145, 278, 38); } else if(nr == 2) { //you lose ci(maxslotsQQ-9, 15); drawNr(numb, 157, 278, 38); } mi(maxslotsQQ-9, 6, 278); si(maxslotsQQ-9, true); } var cur_no = 26; //used for history //draws history on the screen //mul - Y offset for next results function draw(mul) { if(player_score == banker_score) { ci(maxslotsQQ-cur_no, 10); ci(maxslotsQQ-cur_no-1, 17 + player_score); ci(maxslotsQQ-cur_no-2, 11); ci(maxslotsQQ-cur_no-3, 17 + banker_score); } else { ci(maxslotsQQ-cur_no, (player_score > banker_score ? 8 : 10)); ci(maxslotsQQ-cur_no-1, (player_score > banker_score ? 27 : 17) + player_score); ci(maxslotsQQ-cur_no-2, (player_score > banker_score ? 11 : 9)); ci(maxslotsQQ-cur_no-3, (player_score > banker_score ? 17 : 27) + banker_score); } mi(maxslotsQQ-cur_no, 5, 92 + (mul * 17)); si(maxslotsQQ-cur_no, true); mi(maxslotsQQ-cur_no-1, 16, 92 + (mul * 17)); si(maxslotsQQ-cur_no-1, true); mi(maxslotsQQ-cur_no-2, 38, 92 + (mul * 17)); si(maxslotsQQ-cur_no-2, true); mi(maxslotsQQ-cur_no-3, 49, 92 + (mul * 17)); si(maxslotsQQ-cur_no-3, true); } //updates history function showHistory() { if(res_no < 3) { //if less than 3 results on te screen draw(res_no); res_no++; cur_no += 4; } else { //3 results on the screen var i = 0; if(cur_no == 38 || cur_no == 34) cur_no = 30; else if(cur_no == 26) cur_no = 34; else if(cur_no == 30) cur_no = 26; for(i = 0; i < 2; i++) { //move last 2 up by one place mi(maxslotsQQ-cur_no, 5, 92 + (i * 17)); si(maxslotsQQ-cur_no, true); mi(maxslotsQQ-cur_no-1, 16, 92 + (i * 17)); si(maxslotsQQ-cur_no-1, true); mi(maxslotsQQ-cur_no-2, 38, 92 + (i * 17)); si(maxslotsQQ-cur_no-2, true); mi(maxslotsQQ-cur_no-3, 49, 92 + (i * 17)); si(maxslotsQQ-cur_no-3, true); if(cur_no == 34) cur_no -= 8; else cur_no += 4; } draw(i); //draw new one at the bottom using cur_no slot } } //0-tie, 1-player wins, 2-banker wins function result(no) { if(no == 0) { //tie if(select == 1) {balance += (9 * bet); setInfo(1, (9 * bet));}//player wins else setInfo(0);//show tie } else if(no == 1) { //player wins if(select == 3) {balance += (bet << 1); setInfo(1, (bet << 1));}//player wins else {balance -= bet; setInfo(2, bet);}//player lose } else if(no == 2) { //banker wins if(select == 2) {balance += (bet << 1); setInfo(1, (bet << 1));}//wins else {balance -= bet; setInfo(2, bet);}//lose } if (balance <= 0) { balance = 0; go = true; } drawNr(balance, 249, 336, maxslotsQQ-16); showHistory(); state = 4; } // =============================================================================== // =============================================================================== // =============================================================================== // =============================================================================== // =============================================================================== // =============================================================================== // move image function mi(slot, lx, ly) { //alert("sbQQ[slot]: "+sbQQ[slot]+", lx: "+lx+", ly: "+ly+"\nsprdataQQ[sbQQ[slot]][0]: "+sprdataQQ[sbQQ[slot]][0]+"\nsprdataQQ[sbQQ[slot]][1]: "+sprdataQQ[sbQQ[slot]][1]); if ((slot < maxslotsQQ) && (slot >= 0)) { imgsQQ[slot].style.left = (lx-sprdataQQ[sbQQ[slot]][0])+pxtxtQQ; imgsQQ[slot].style.top = (ly-sprdataQQ[sbQQ[slot]][1])+pxtxtQQ; } } function mc(slot, lx, ly) { var cl; var ct; var spr; //alert("sbQQ[slot]: "+sbQQ[slot]+", lx: "+lx+", ly: "+ly+"\nsprdataQQ[sbQQ[slot]][0]: "+sprdataQQ[sbQQ[slot]][0]+"\nsprdataQQ[sbQQ[slot]][1]: "+sprdataQQ[sbQQ[slot]][1]); if ((slot < maxcardsQQ) && (slot >= 0)) { spr = CsbQQ[slot]; if (spr == 52) { ct = 195; cl = 598; } else { ct = Math.floor(spr / 13); cl = (spr - (ct * 13)); ct *= 65; cl *= 46; } CimgsQQ[slot].style.left = (lx-cl)+pxtxtQQ; CimgsQQ[slot].style.top = (ly-ct)+pxtxtQQ; } } function schQQ() { if (mg() == true) window.setTimeout(mgtxtQQ, 50); else cm(0); } // show image function si(slot, bool) { var tmpb; tmpb = new Boolean(bool); //alert('si('+slot+', '+tmpb+')'); if ((slot < maxslotsQQ) && (slot >= 0)) { imgsQQ[slot].style.display = ((tmpb == true) ? siinliQQ : sinoneQQ); } } function sc(slot, bool) { var tmpb; tmpb = new Boolean(bool); //alert('si('+slot+', '+tmpb+')'); if ((slot < maxcardsQQ) && (slot >= 0)) { CimgsQQ[slot].style.display = ((tmpb == true) ? siinliQQ : sinoneQQ); } } // clip image function ci(slot, spr) { //var cl; //var ct; //var cr; //var cb; //cl = sprdataQQ[spr][0]; //ct = sprdataQQ[spr][1]; //cr = (sprdataQQ[spr][0]+sprdataQQ[spr][2]); //cb = (sprdataQQ[spr][1]+sprdataQQ[spr][3]); //alert('cl: '+cl+', ct: '+ct+"\ncr: "+cr+', cb: '+cb); if ((spr < sprdataQQ.length) && (slot < maxslotsQQ) && (slot >= 0)) { imgsQQ[slot].style.clip = rcttxQQ+sprdataQQ[spr][1]+pxspcQQ+(sprdataQQ[spr][0]+sprdataQQ[spr][2])+pxspcQQ+(sprdataQQ[spr][1]+sprdataQQ[spr][3])+pxspcQQ+sprdataQQ[spr][0]+pxentQQ; sbQQ[slot] = spr; } } // clip card function cc(slot, spr) { var cl; var ct; var cr; var cb; //alert('cl: '+cl+', ct: '+ct+"\ncr: "+cr+', cb: '+cb); if ((spr >= 0) && (spr < 53) && (slot < maxcardsQQ) && (slot >= 0)) { if (spr == 52) { ct = 195; cl = 598; cb = 260; cr = 644; } else { ct = Math.floor(spr / 13); cl = (spr - (ct * 13)); ct *= 65; cl *= 46; cb = ct + 65; cr = cl + 46; } CimgsQQ[slot].style.clip = rcttxQQ+ct+pxspcQQ+cr+pxspcQQ+cb+pxspcQQ+cl+pxentQQ; CsbQQ[slot] = spr; } } //set obj opacity function co(slot, op) { var o; if ((slot < maxslotsQQ) && (slot >= 0)) { o = imgsQQ[slot].style; o.opacity = (op * 0.01); o.MozOpacity = (op * 0.01); o.KhtmlOpacity = (op * 0.01); o.filter = "alpha(opacity=" + op + ")"; } } // change mode function cm(nm) { var i; if ((nm >= 0) && (nm < 7) && (nm != actQQ)) { //alert("actQQ: "+actQQ+", nm: "+nm); if (nm != 3) { if (actQQ == 0) { document.getElementById(mnutxtQQ).style.visibility = hidtxtQQ; zQQ.style.backgroundImage = sinoneQQ; } if (actQQ == 2) { zQQ.onmousemove = null; zQQ.onmouseup = null; zQQ.onmousedown = null; zQQ.onmouseover = null; zQQ.onmouseout = null; for (i = 0; i < maxslotsQQ; i++) si(i, false); for (i = 0; i < maxcardsQQ; i++) sc(i, false); } else if (actQQ == 6) { document.getElementById(adverQQ).style.display = sinoneQQ; } } if (nm == 0) { zQQ.style.backgroundImage = urltxtQQ+bgimglnkQQ+end1txtQQ; document.getElementById(mnutxtQQ).style.visibility = vistxtQQ; } else if (nm == 3) { window.open('../index.php', '_blank'); nm = actQQ; } else if (nm == 2) { ig(); zQQ.onmousemove = mm; zQQ.onmouseover = m_o; zQQ.onmouseup = m_up; zQQ.onmousedown = m_dwn; zQQ.onmouseout = m_u; zQQ.style.backgroundImage = urltxtQQ+gbbglnkQQ+end1txtQQ //document.getElementById(bodytxtQQ).backgroundColor = whttxtQQ; schQQ(); } else if (nm == 6) { document.getElementById(adverQQ).style.display = siinliQQ; window.setTimeout(cm2txQQ, 5000); } else window.setTimeout(cmtxtQQ, 2000); actQQ = nm; } } // mouse down function m_dwn() { isCl = true; } // mouse up function m_up() { isCl = false; } // mousemove function mm(e) { var tmpX; var tmpY; var tmpE; if (!e) tmpE = window.event; else tmpE = e; //alert('mm();'); tmpX = (tmpE.clientX - iLeft); tmpY = (tmpE.clientY - ydispQQ); if (tmpX < 0) tmpX = 0; if (tmpY < 0) tmpY = 0; if (tmpX > bgWQQ) tmpX = bgWQQ; if (tmpY > (bgHQQ+ydispQQ)) tmpY = (bgHQQ + ydispQQ); mX = tmpX; mY = tmpY; } // mouse click function mck(obj) { //alert('id: "'+obj.id+'"'); cm(parseInt(obj.id.substring(3,4))); } // switch classes function scl(obj, nc) { if (obj.className != nc) obj.className = nc; } function m_o() { isM = true; } function m_u() { isM = false; isCl = false; } function wypas(y, h) { var i, z, t, locB; //alert(''+y); //document.getElementById((pbltxtQQ+i)).style.display = siinliQQ; t = parseInt(h); document.getElementById(mnutxtQQ).style.left = (y+pxtxtQQ); if (t != 0) { if (y > 448) { z = Math.floor(((1000 - y) / 46)); if (z < 12) document.getElementById((pbltxtQQ+z)).style.display = siinliQQ; } if (y < 448) { for (i = 0; i < 12; i++) { locB = document.getElementById((pbltxtQQ+i)); locB.style.display = sinoneQQ; document.getElementById(pbrtxtQQ).style.display = sinoneQQ; //locB.style.left = (103+(i*10)); } t = 0; } } if (y > 206) window.setTimeout(wyptxt1QQ+(y-15)+coltxQQ+(t)+wyptxt2QQ, 30); else document.getElementById(mnutxtQQ).style.left = (206+pxtxtQQ); } // start function s() { var x = document.getElementById(bodytxtQQ); var y = document.getElementById(htmltxtQQ); var locB, locL, locT, locW, locH; var i, j; if (navigator.appname == nsQQ) { netQQ = true; } else netQQ = false; if (netQQ) { strArrayQQ[0] = (strPartsQQ[0] + strPartsQQ[1]); } else { strArrayQQ[0] = (strPartsQQ[2] + strPartsQQ[3]); } if (x != null) { x.innerHTML = strArrayQQ[0]; document.title = gtQQ; zQQ = document.getElementById(mnamQQ); if (zQQ == null) alert(dbg0txtQQ); else { y.style.overflowX = hidtxtQQ; y.style.overflowY = hidtxtQQ; zQQ.style.backgroundImage = urltxtQQ+bgimglnkQQ+end1txtQQ; zQQ.style.backgroundColor = whttxtQQ; j = nullstrQQ; for (i = 0; i < maxslotsQQ; i++) j += imgcodeQQ[0] + imgcodeQQ[1] + i + imgcodeQQ[2]; for (i = 0; i < maxcardsQQ; i++) j += crdcodeQQ[0] + crdcodeQQ[1] + i + crdcodeQQ[2]; zQQ.innerHTML = j + gamestuffQQ; for (i = 0; i < maxslotsQQ; i++) { imgsQQ[i] = document.getElementById((imgcodeQQ[1]+i)); imgsQQ[i].style.zIndex = (maxslotsQQ - i - 1); } for (i = 0; i < maxcardsQQ; i++) { CimgsQQ[i] = document.getElementById((crdcodeQQ[1]+i)); CimgsQQ[i].style.zIndex = (maxslotsQQ + maxcardsQQ - i - 1); } locB = window.document.body; locL = locB.clientLeft; locT = locB.clientTop; locW = locB.clientWidth; locH = locB.clientHeight; if ((((nullstrQQ+locL).toString()).toLowerCase()) == udQQ) locL = 0; if ((((nullstrQQ+locT).toString()).toLowerCase()) == udQQ) locT = 0; if ((((nullstrQQ+locW).toString()).toLowerCase()) == udQQ) locW = bgWQQ; if ((((nullstrQQ+locH).toString()).toLowerCase()) == udQQ) locH = bgHQQ; locL = parseInt(locL); locT = parseInt(locT); iWidth = locW = parseInt(locW); iHeight = locH = parseInt(locH); iHalfW = (iWidth >> 1); iHalfH = (iHeight >> 1); zQQ.style.position = abstxtQQ; iLeft = (((locL + locW) >> 1) - (bgWQQ >> 1)); iTop = locT + ydispQQ; zQQ.style.left = iLeft + pxtxtQQ; zQQ.style.top = iTop + pxtxtQQ; iClWidth = bgWQQ; iClHeight = bgHQQ; spimgQQ.src = spimglnkQQ; crdmgQQ.src = cdimglnkQQ; gmbgmgQQ.src = gbbglnkQQ; for (i = 0; i < sprdataQQ.length; i++) { if (sprdataQQ[i].length != 4) { alert(sperrrQQ+i); i = sprdataQQ.length + 1; } } document.getElementById(mnutxtQQ).style.position = abstxtQQ; document.getElementById(mnutxtQQ).style.top = (0+pxtxtQQ); //document.getElementById(mnutxtQQ).style.left = (206+pxtxtQQ); document.getElementById(mnutxtQQ).style.left = (1000+pxtxtQQ); document.getElementById(pbrtxtQQ).style.display = siinliQQ; window.setTimeout(wyptxt1QQ+(1000)+coltxQQ+(1)+wyptxt2QQ, 100); document.getElementById(advimgQQ).style.display = siinliQQ; document.getElementById(advimgQQ).style.position = statxtQQ for (i = 0; i < 12; i++) { locB = document.getElementById((pbltxtQQ+i)); //locB.style.display = siinliQQ; locB.style.left = ((103+(i*10))+pxtxtQQ); } // debug info //alert(dbginfoQQ[0]+iLeft+dbginfoQQ[1]+iTop+dbginfoQQ[2]+iWidth+dbginfoQQ[3]+iHeight+dbginfoQQ[4]+iHalfW+dbginfoQQ[5]+iHalfH); } } }