var DEBUG = 0; 
var DIE_WIDTH = 80;
var rollcount=0;
var alloccount=0;
var currp = 0;
var tsrolled = 0;
var counterdiv = 'counter';
var sounddiv = 'sound';
var SERVER = "64.69.42.2";
var GAMESERVER = 'http://64.69.42.2/fb/musicserver';
var MAXALLOC=60;
var imagedir;
var winnerdiv;
var winnertotal;
var player = "<object codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=' type='application/x-shockwave-flash' height='0' width='0' data='http://" + SERVER + "/xspf_player.swf?autoplay=true&playlist_url=http://" + SERVER + "/musictree/effects/effects.xspf'><param name='movie' value='http://" + SERVER + "/xspf_player.swf?autoplay=true&playlist_url=http://" + SERVER + "/musictree/effects/effects.xspf'/></object>";

function roll(windiv,wintotal,imgdir,sid,alloc,used,more) {
	try {
		if(DEBUG) { console.debug("roll sid=" + sid + "\n"); }
		if(DEBUG) { console.debug("roll init used:alloc= " + used + " : " + alloc + "\n"); }
		imagedir = imgdir;
		winnerdiv = windiv;
		winnertotal = wintotal;
		var now = new Date().getTime();
		if(now - tsrolled < 4000) { return; } else { tsrolled = now; }
		if(rollcount == 0 && alloccount == 0) { rollcount = used; alloccount = alloc; }
		if(DEBUG) { console.debug("roll current roll:alloc=" + rollcount + " : " + alloccount + "\n"); }
		document.getElementById(windiv).innerHTML = '&nbsp;';
		if(rollcount + 1 >= alloccount){
			if(alloccount < MAXALLOC){ document.getElementById(more).style.display = 'block'; }
		}
		if(alloccount <= rollcount){ return; }
		save('sid=' + sid);
	}
	catch(ex) { if(DEBUG) { console.debug("roll ex=" + ex + "\n"); } }
}

function rolled(w,a,b,c,d,e) {
	try {
		if(DEBUG){console.debug("rolled w=" + w + " a=" + a + " b=" + b + " c=" + c + " d=" + d + " e=" + e + "\n"); }
		onedie(a,imagedir,'p1',0);	
		onedie(b,imagedir,'p2',500);	
		onedie(c,imagedir,'s1',2000);	
		onedie(d,imagedir,'s2',2500);	
		onedie(e,imagedir,'s3',3000);	
		var playersum = parseInt(a) + parseInt(b);
		var dealersum = parseInt(c) + parseInt(d) + parseInt(e);
		if(playersum > dealersum) { 
			var fun = "winner('"+winnerdiv+"','" + parseInt(w) + "')";
			if(DEBUG) { console.debug("rolled winner fun=" + fun + "\n"); }
			setTimeout(fun,4000);
		}
	}
	catch(ex) { if(DEBUG) { console.debug("rolled ex=" + ex + "\n"); } }
}

function onedie(r,imgdir,div,time) {
	var rand = 1;
	try {
		for(i=1; i < 9; i++) {
			rand=Math.floor(Math.random()*6 + 1);
			var img = '<img width=' + DIE_WIDTH + ' src=' + imgdir + '/die' + rand + '.jpg />';
			var fun="rolling('"+div+"','"+img+"')"; setTimeout(fun,i*100 + time);
		}
		var rimg = '<img width=' + DIE_WIDTH + ' src=' + imgdir + '/die' + r + '.jpg />';
		var fun="setdiv('"+div+"','"+rimg+"')"; setTimeout(fun,1000 + time);
	}
	catch(ex) { if(DEBUG) { console.debug("turn ex=" + ex + "\n"); } }
	return rand;
}

function rolling(div,img) {
	try { document.getElementById(div).innerHTML = img; }
	catch(ex) { if(DEBUG) { console.debug("rolling ex=" + ex + "\n"); } }
}

function showwinner(div,win) {
	try { document.getElementById(div).innerHTML = win; }
	catch(ex) { if(DEBUG) { console.debug("showwinner ex=" + ex + "\n"); } }
}

function setdiv(div,img) {
	try { playsound(sounddiv); document.getElementById(div).innerHTML = img; }
	catch(ex) { if(DEBUG) { console.debug("setdiv ex=" + ex + "\n"); } }
}

function playsound(dest) {
	try { document.getElementById(dest).innerHTML = player; }
	catch(ex) { if(DEBUG) { console.debug("playsound ex=" + ex + "\n"); } }
}

function setcounter(arr) {
	try { 
		var n = arr[1] + '/' + arr[0]; document.getElementById(counterdiv).innerHTML = n; 
		alloccount = parseInt(arr[0]);
		rollcount = parseInt(arr[1]);
	}
	catch(ex) { if(DEBUG) { console.debug("setcounter ex=" + ex + "\n"); } }
}

function winner(div,total) {
	try { 
		if(DEBUG) { console.debug("winner div=" + div + " total=" + total + "\n"); }
		playsound(sounddiv);
		var fun = "showwinner('"+div+"','W')"; setTimeout(fun,0);
		var fun = "showwinner('"+div+"','WI')"; setTimeout(fun,150);
		var fun = "showwinner('"+div+"','WIN')"; setTimeout(fun,300);
		var fun = "showwinner('"+div+"','WINN')"; setTimeout(fun,450);
		var fun = "showwinner('"+div+"','WINNE')"; setTimeout(fun,600);
		var fun = "showwinner('"+div+"','WINNER')"; setTimeout(fun,800);
		var fun = "showwinner('"+div+"','WINNER!')"; setTimeout(fun,1000);
		document.getElementById(winnertotal).innerHTML = total;
	}
	catch(ex) { if(DEBUG) { console.debug("winner ex=" + ex + "\n"); } }
}

function getRequestObject(){var request=false; if(window.XMLHttpRequest){request=new XMLHttpRequest();} else if(window.ActiveXObject){request=new ActiveXObject("Microsoft.XMLHTTP");} return request; }
function setUrl(srv){var s=srv; if(/www/.test(window.location)){} else{s=srv.replace(/www./g,"");} return s;}
function save(post) {
	try {
		if(DEBUG) { console.debug("save post=" + post + "\n"); }
		var request = getRequestObject();
		if(request) { 
			request.open("POST",GAMESERVER); request.send(post); 
			request.onreadystatechange = function() { callback(request); }
		}
	} 
	catch(ex) { if(DEBUG) { console.debug("save ex=" + ex + "\n"); } }
}

function more(size,numrows){
    try {
		if(DEBUG) { console.debug("more size=" + size + " numrows=" + numrows + "\n"); }
		currp++;
		var start = currp * size;
		var end = start + size;
		var lastp = Math.ceil(numrows / size) - 1;
		if(currp == lastp) { currp = -1; }
        for(var i=0; i < numrows; i++) {
        	var id="mm" + i;
			if(i >= start && i < end) { show(id); } 
			else { hide(id); }
    	} 
    } 
	catch(ex){ if(DEBUG) { console.debug("more ex=" + ex + "\n"); } }
}

function callback(request) {
	if(DEBUG) { console.debug("callback: request=" + request + " : " + request.responseText + "\n"); }
	try { 
		if(request.status == 302){
			var pattern = /(http.+)(">.+)/;
			var url = request.responseText.match(pattern);
			window.location = url[1];
		} 
		else if(request.readyState == 4 && request.status == 200){ 
			var s = request.responseText;
			var arr = new Array();
			arr = s.split(':'); 
			if(DEBUG) { console.debug("callback: arr=" + arr[0] + " : " + arr[1] + " : " + arr[2] + "\n"); }
			setcounter(arr);
			rolled(arr[2],arr[3],arr[4],arr[5],arr[6],arr[7]);
		} 
	}
	catch(e) { }
}

