<?xml version="1.0" encoding="UTF-8"?>
<Module>
<ModulePrefs title="LuckyYou - Try your Luck here" title_url="http://www.voizle.com/luckyyou.xml" screenshot="http://www.voizle.com/image/gambling.gif" thumbnail="http://www.voizle.com/image/gambling.gif" description="Like Gambling? then Try your luck here, LuckyYOU. Powered by http://www.voizle.com" author="Love sharma" author_email="love.sharma.87@gmail.com" height="500">
<Require feature="wave"/> 
<Require feature="wave-preview"/>
<Require feature="dynamic-height"/>
  </ModulePrefs>
<Content type="html" view="canvas"><![CDATA[
<!-- ALm6fM0__X5eTaMpEQvXRxcm5RkDIhfR-sIi4QhEN-wAfQkGujt1C78xQz2OvPLTjOTYy2iOUn0dLBFTf0mfdGgYCd7S6XTC3WNoC3yU62OEubVUemUoYrcpfos0iP2xfdCWA2qOXEcJ -->
	<html>
<head>
<title>LuckyYou</title>
<style type="text/css">
h1{font-family:jokerman;font-size:20pt;margin-bottom:0px;}
.common, .luckytab, .luckynum{
	text-align:center;
	vertical-align:middle;
	font-weight: bolder;
	border-width:2px;
}
.luckytab{
	font-size:15pt;
	width:25%;
}
.num{
	font-size:13pt;
	cursor:pointer;
	color:blue;
}
.on, .off{
	padding-right:5px;
	cursor:pointer;
}
.on{
	color:green;
}
.off{
	color:red;
}
.bal, .on, .off{
	text-align:right;
	padding-right:10px;
}
.luckynum{
	font-size:25pt;
	background-color:#E33100;
	color:white;
	height:50px;
	width:50px;
	font-family:jokerman;
}
hr{
	margin:1px;
	color:#a9a9a9;
}
#playerlist{
	overflow:auto;
}
.sel{
	background-color:#dddddd;
}
.unsel{
	background-color:#ffffff;
}
.search{
	vertical-align:middle;
	text-align:center;
	border-bottom:solid 1px #999999;
}
.uimg{width:40px;height:40px;}
.uname{font-weight:bolder;font-size:12px;}
.ustatus{color:#aeaeae;font-size:11px;}
.help, #credit{color:#cccccc;font-size:10pt; text-align:center;}
.bal, .cntr, .search{font-size:10pt; font-weight:bold;height:30px;}
.highlight{background-color:##FFFF99;}
</style>
</head>
<body>
<div id="msg" style="height:100px;width:100%;display:none;overflow:auto;border:solid 2px #a9a9a9;"></div>
<div style="width:400px;"><center>
 <h1>-- LuckyYou --</h1><a href='http://www.voizle.com'>Powered by Voizle</a><hr/>
<table width="100%" border="2" frame="box" rules="all" bordercolor="#777777" class="common">
	<tr><td class='cntr' align="center"><span id="counter">120</span> sec</td><td colspan="3" class="bal">Your Balance: $<span id="balance"></span></td></tr>
	<tr><td class="luckytab" rowspan="4"><center><div class="luckynum" id="luckynum"></div></center></td><td id="box1"></td><td id="box2"></td><td id="box3"></td></tr>
	<tr><td id="box4"></td><td id="box5"></td><td id="box6"></td></tr>
	<tr><td id="box7"></td><td id="box8"></td><td id="box9"></td></tr>
	<tr><td id="box0"></td><td colspan="2" id="credit"></td></tr>
	<tr><td colspan="4">
		<table width="100%" frame="box" rules="all">
			<tr><td class='search'>Search: <input type="text" autocomplete="off" id="q" onkeyup="showUser(this.value.toLowerCase())" /></td></tr>
			<tr><td><div id="playerlist" style="overflow:auto;height:200px;" valign="top">Participant list</div></td></tr>
		</table>
	</td>
	</tr>
</table>
<hr/><a href='http://www.voizle.com/preview.vz?id=luckyyou' target="_blank"><img src="http://img.voizle.com/luckyyou.jpg" alt='Voizle - Statistics for LuckyYou' title='Voizle - Statistics for LuckYou' /></a>
</center>
</div>
<script type="text/javascript">
var bet, keys, st, cntst;
var tot_bal=100, viewerId = "", sta = false;
var ts = true, minBal = 100, numTop = 3, aTime = tym = 40;
var ele = {
			show:function(id){$(id).style.display='block';}, 
			hide:function(id){$(id).style.display='none';}, 
			write:function(id,msg){$(id).innerHTML = msg;},
			create:function(element){return document.createElement(element);}
		}
function $(id){
	return document.getElementById(id);
}
function reset(){
	wave.getState().reset();
}
function r(num){
	return parseInt(Math.random()*num);
}
function log(msg){
	if(viewerId == 'romeo971987@wavesandbox.com'){
		ele.show('msg');
		var ih = $("msg").innerHTML;
		$("msg").innerHTML = msg+"<br/> "+$("msg").innerHTML;
		try{
			wave.log(msg);
		}catch(e){}
	}
}
function updateBalance(){
	ele.write("balance", tot_bal);
}
function resetBet(){
	for(i=0;i<10;i++) {
		bet[i + viewerId] = 0;
	}
}
function x(){}
function changeBet(){
	bet[this.id] = (bet[this.id] == null) ? 0 : bet[this.id];
	var temp = parseInt(prompt("Your Bet:", bet[this.id]));
	if(temp*1 > (tot_bal*1 + bet[this.id]*1) || temp < 0){
		alert("Sorry, You don't have enough balance to bet");
	}else{
		temp = isNaN(temp * 1) ? bet[this.id] : temp;
		tot_bal = tot_bal*1 + bet[this.id]*1 - temp*1;
		bet["bal" + viewerId] = tot_bal;
		bet[this.id] = temp;
		this.innerHTML = "$" + bet[this.id];
		this.className = (bet[this.id] > 0) ? "on" : "off";
		if(bet[this.id] == 0){
			bet[this.id] = null;
		}
		sta = true;
		wave.getState().submitDelta(bet);
	}
	return;
}
function createUser(id, vid, status, query){
	$(id).innerHTML = '';
	 var user_detail = {};
	if(vid != null && status != null){
		user_detail = wave.getParticipantById(vid);
	}else{
		user_detail.getDisplayName = function(){return "Unknown";};
		user_detail.getThumbnailUrl = function(){return "http://gadget-doc-examples.googlecode.com/svn/trunk/images/unknown.gif";};
	}
	var tab = document.createElement("table");
	tab.style.width = '100%';
	var tr = document.createElement("tr");
	var tdimg = document.createElement("td");
	tdimg.style.width = '40px';
	var img = document.createElement("img");
	img.src = user_detail.getThumbnailUrl();
	img.className = 'uimg';
	tdimg.appendChild(img);
	tdimg.rowSpan='2';
	tr.appendChild(tdimg);
	var tdname = document.createElement("td");
	tdname.innerHTML = user_detail.getDisplayName().replace(query, '<b class="highlight">'+query+'</b>');
	tdname.className = 'uname';
	tdname.align='left';
	tr.appendChild(tdname);
	tab.appendChild(tr);
	var trmsg = document.createElement("tr");
	var tdmsg = document.createElement("td");
	tdmsg.innerHTML = (status == null) ? 'N/A' : 'Balance: $'+status;
	tdmsg.className = 'ustatus';
	tdmsg.align='left';
	trmsg.appendChild(tdmsg);
	tab.appendChild(trmsg);
	var hr = ele.create("hr");
	hr.height = "1px";
	$(id).appendChild(hr);
	$(id).appendChild(tab);
}
function showUser(query){
	ele.write("playerlist", "");
	if(query.length != 0){
		var user = wave.getParticipants();
		var len = user.length, j = false;
		for(var i = 0; i < len; i++){
			if(user[i].getDisplayName().toLowerCase().search(query) > -1 && user[i].getId().search('appspot.com') == -1){
				var vid = user[i].getId();
				var userBal = (bet['bal'+vid] != null) ? bet['bal'+vid] : 0;
				var div = ele.create("div");
				div.id = "d" + i;
				$("playerlist").appendChild(div);
				createUser("d" + i, vid, userBal, query);
				j = true;
			}
		}
		if(!j){
			ele.write("playerlist", "Participant not Found: "+query);
			$('playerlist').className = 'help';
		}
	}else{
		ele.write("playerlist", "<b>Highscores</b>");
		$('playerlist').className = 'x';
		var user = wave.getParticipants();
		var len = user.length;
		var toppers = [];
		for(var i = 0; i < len; i++){
			var vid = user[i].getId();
			if(vid.search('appspot.com') == -1)	toppers[vid] = (bet['bal'+vid] != null) ? bet['bal'+vid] : 0;
		}
		var toprs = sortAssoc(toppers);
		var j = 0;
		for(var topid in toprs){
			var div = ele.create("div");
			div.id = "tops" + j;
			$("playerlist").appendChild(div);
			createUser("tops" + j, topid, toprs[topid], '');
			j++;
			if(j == numTop) break;
		}
	}
	return;
}
function sortAssoc(arr)
{
	var arrTemp = [];
	for (var ky in arr)
	arrTemp.push([ky, arr[ky]]);
	arrTemp.sort(function () {return parseInt(arguments[0][1]) > parseInt(arguments[1][1])});

	var sort_arr = [];
	for (var i = arrTemp.length-1; i >=0; i--){
		sort_arr[arrTemp[i][0]] = arrTemp[i][1];
	}
	return sort_arr;
}
function createSet(id, vid){
	var tab = ele.create("table");
	tab.width = "100%";
	var tr = ele.create("tr");
	tr.title = "Change your bet.";
	var td1 = ele.create("td");
	td1.style.width = "5%";
	td1.innerHTML = id;
	td1.id = id;
	td1.className = "num";
	var td2 = ele.create("td");
	td2.id = id + vid;
	td2.innerHTML = "$" + ((bet[id + vid] == null) ? "0" : bet[id + vid]);
	td2.className = (bet[id + vid] > 0) ? "on" : "off";
	td2.onclick = changeBet;
	tr.appendChild(td1);
	tr.appendChild(td2);
	tab.appendChild(tr);
	$("box"+id).appendChild(tab);
	$("box"+id).style.width="25%";
}

function startCounter(){
	$("box"+bet["last"]).className = 'unsel';
	bet["last"] = r(10);
	$("box"+bet["last"]).className = 'sel';
	ele.write("luckynum", bet["last"]);
	st = setTimeout("startCounter()", 100);
}
function getBet(id){
	return ((bet[id] == null) ? 0 : bet[id]);
}
function startTimer(){
	if(tym == aTime){
		resetBet();
	}
	if(tym == (aTime - 5)){
		ele.write(bet["last"] + viewerId, '$0');
		$(bet["last"] + viewerId).className = 'off';
	}
	if(tym == 10){
		startCounter();
		for(var i = 0; i < 10; i++){
			$(i+viewerId).onclick = x;
		}
	}
	ele.write("counter", --tym);
	if(tym == 0){
		clearTimeout(cntst);
		clearTimeout(st);
		for(var i=0;i<10;i++){
			if(i!=bet["last"]) $("box"+i).className = 'unsel';
		}
		$("box"+bet["last"]).className = 'sel';
		var prev_bal = bet["bal" + viewerId];
		ele.write("credit", "Update: " + getBet(bet["last"] + viewerId) +" * 5 +" + bet["bal" + viewerId] + " = "+(getBet(bet["last"] + viewerId)*5 + bet["bal" + viewerId]*1));
		bet['bal' + viewerId] = getBet(bet["last"] + viewerId)*5 + bet["bal" + viewerId]*1;
		for(var i = 0; i < 10; i++){
			$(i+viewerId).onclick = changeBet;
			if(i!=bet["last"]){
				ele.write(i+viewerId,"$0");
				$(i+viewerId).className = 'off';
			}
			bet[i+viewerId] = null;
		}
		tym = aTime;
		if(bet["bal" + viewerId] != prev_bal || sta){
			sta = false;
			wave.getState().submitDelta(bet);
		}
	}
	cntst = setTimeout("startTimer()", 1000);
}
function start(){
	ele.write("luckynum", bet["last"]);
	tot_bal = (bet["bal" + viewerId] == null) ? minBal : bet["bal" + viewerId];
	updateBalance();
	showUser($('q').value.toLowerCase());
	for(i=0;i<10;i++) {
		$("box"+i).innerHTML = "";
		createSet(i, viewerId);
	}
}
function updateState() {
	if(!wave.getState()) {
		return;
	}
	bet = keys = {};
	var state = wave.getState();
	keys = state.getKeys();
	viewerId = wave.getViewer().getId();
	for (var i = 0, len = keys.length; i < len; ++i) {
		var partInfo = keys[i];
        bet[partInfo] = state.get(partInfo);
		//log('pI: '+ partInfo + ' -- '+ bet[partInfo]);
    }
	bet["last"] = (bet["last"] == null || isNaN(bet["last"])) ? "0" : bet["last"];
	bet["bal" + viewerId] = (bet["bal" + viewerId] == null) ? minBal : bet["bal" + viewerId];
	if(ts){
		startTimer();
		var dt = new Date(wave.getTime());
		var dat = dt.getDate() + '_' + dt.getMonth() + '_' + dt.getFullYear();
			ele.write("credit",'Hello, Welcome back.');
		if(bet['time' + viewerId] == null){
			bet["time" + viewerId] = dat;
			ele.write("credit",'Hello, LuckyYou Welcomes you.');
			wave.getState().submitDelta(bet);
		}else if(bet["time" + viewerId] != dat){
			bet["bal" + viewerId] = parseInt(bet["bal" + viewerId]) + 50*1;
			bet["time" + viewerId] = dat;
			ele.write("credit",'You got daily bonus $50.');
			wave.getState().submitDelta(bet);
		}
		ts = false;
		resetBet();
	}
	start();
}

function init() {
  if (wave && wave.isInWaveContainer()) {
    wave.setStateCallback(updateState);
	wave.setParticipantCallback(updateState);
  }
}
try{
	gadgets.util.registerOnLoadHandler(init);
}catch(e){}
</script><script type="text/javascript">var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));</script><script type="text/javascript">try {var pageTracker = _gat._getTracker("UA-9339177-1");pageTracker._trackPageview();} catch(err) {}</script>
</body>
</html>
]]></Content>
</Module>