/* ===================================
* 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 = '
'+
'
'+
'
'+
'
'+
'
'+
'
'+
'
'+
'
'+
'
'+
'
'+
'
'+
'
'+
'
'+
'
'+
'';
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);
}
}
}