<!--

var fg = new fpaGadgets(),
    winnerstabs = new fpaGadgetsTabs(),
    highscoretabs = new fpaGadgetsTabs(),
    gadgets = {};

function initPoker(lang) {
    fpa.setopt('opensocial',false);
    fpa.setopt('proxy_url','./backendproxy.php');
    fpa.setopt('clientname','gamblingmagazine');
    fpa.setopt('sms_id','Pokerlapelicula');
    switch (lang) {
    	case 'ro':
    	    fpa.setopt('language','ro');
	    	fpa.loadfile('settings_ro.json', onLoadSettings, 'json');
    		break;
    	default:
    	    fpa.setopt('language','en');
	    	fpa.loadfile('settings.json', onLoadSettings, 'json');
    		break;
    }

    winnerstabs.setNumItemsCallback(function(tabIdStr) {
    	var _eid;
    	switch (tabIdStr) {
    		case '#pokerApp_freewinners':
    			_eid = 51;
    			break;
    		case '#pokerApp_freewinners2':
    			_eid = 50;
    			break;
    	}
   	    fpa.get_winners({c:fpa.getopt('clientname'), l:'10', o:0, t:tabIdStr, eid:_eid} , onWinnersPageload);
    });
    winnerstabs.setPageSelectCallback(function(page_index, container) {
    	var _eid;
    	switch ($(container).attr('id')) {
    		case 'pokerApp_freewinners_pager':
    			_eid = 51;
    			break;
    		case 'pokerApp_freewinners2_pager':
    			_eid = 50;
    			break;
    		
    	}
   	    fpa.get_winners({c:fpa.getopt('clientname'), l:'10', o:(page_index*10), t:$(container).attr('id'), eid:_eid} , onWinnersPageload);
    });
    
    highscoretabs.setNumItemsCallback(function(tabIdStr) {
   	    fpa.get_highscore({c:fpa.getopt('clientname'), l:'10', o:0, t:tabIdStr} , onHighscorePageload);
    });
    highscoretabs.setPageSelectCallback(function(page_index, container) {
   	    fpa.get_highscore({c:fpa.getopt('clientname'), l:'10', o:(page_index*10), t:$(container).attr('id')} , onHighscorePageload);
    });
}

function onLoadSettings(data) {
//	alert($.dump(data));
	$(data.prizes).each(function() {
		fg.embedPrize(this);
	});
	$(data.highscore).each(function() {
		highscoretabs.embed(this.id,this.stylename,'idTabshighscore',this.titles,this.tabids,this.heads);
	});
	$(data.winners).each(function() {
		winnerstabs.embed(this.id,this.stylename,'idTabswinners',this.titles,this.tabids,this.heads);
	});
	$(data.techreq).each(function() {
		fg.embedTechnicalReq(this);
	});
	$(data.mobile).each(function() {
	    fg.embedMobile(this.id,onFormSubmit,onChangeManufacturer,this.style,this.title,this.agree,this.sample+' +1 23 456 7890',this.manufacturer,this.model,this.go);
	});
    fpa.get_manufacturers(fpa.getopt('clientname'),onLoadManufacturers);
}

function checkDataResponse(data, callerName) {
	if (data == undefined)
        return criticalError(callerName+': Failed to fetch data (no response).<br/>Please try reloading the page.');
	return true;
}

function onHighscorePageload(data) {
	if (!checkDataResponse(data,arguments.callee.name))
		return;
    var newcontent = '',
    	fields = new Array('displayname','balance','rounds','wonrounds'),
    	index = 1,
    	i,j,cnt=0;
    $(data.items).each(function() {
    	newcontent += '<ul>';
        newcontent += '<li>'+$(this).attr('rank')+'.</li>';
        for (i=0; i<fields.length; i++)
    		newcontent += '<li>'+$(this).attr(fields[i])+'</li>';
        newcontent += '<li>'+Math.round($(this).attr('wonrounds')/$(this).attr('rounds')*100)+'%</li>';
        newcontent += '</ul>';
        cnt++;
    });
    while (cnt<10) {
    	newcontent += '<ul>';
        newcontent += '<li></li>';
        for (i=0; i<fields.length; i++)
    		newcontent += '<li></li>';
        newcontent += '<li></li>';
        newcontent += '</ul>';
    	cnt++;
    }
    $('#'+data.tabid.replace(/_pager$/,'_content')).html(newcontent);
	highscoretabs.setItems(data.tabid, data.totalitems);
}

function onLoadManufacturers(data) {
	if (!checkDataResponse(data,arguments.callee.name))
		return;
	$(data.items).each(function() {
		fg.addMobileManufacturer($(this).attr('name'));
	});
}

function onLoadModels(data) {
	if (!checkDataResponse(data,arguments.callee.name))
		return;
    fg.clearMobileModels();
    fg.changeMobileVisibility(true);
	$(data.items).each(function() {
		fg.addMobileModel($(this).attr('name'));
	});
}

function onSMSSend(data) {
	if (!checkDataResponse(data,arguments.callee.name))
		return;
	if (data.status == 'OK')
		alert('SMS has been sent!');
	else
		alert('Error sending SMS.');
}

function onFormSubmit() {
    if (fg.getMobileManufacturer().length == 0) {
        alert('Please select manufacturer');
        return false;
    }
    if (fg.getMobileModel().length == 0) {
        alert('Please select model');
        return false;
    }
    if (fg.getMobileNumber().length < 5 || !fg.getMobileNumber().match(/^\+?[\d\s?]+$/)) {
        alert('Please enter phone number');
        return false;
    }
    fg.setMobileNumber(fg.getMobileNumber().replace(/\s+/g,''));
    fpa.send_sms({c:fpa.getopt('clientname'), ma:fg.getMobileManufacturer(), mo:fg.getMobileModel(), n:fg.getMobileNumber(), l:'en'}, onSMSSend);
    return false;
}

function onChangeManufacturer() {
    fg.clearMobileModels();
    fg.changeMobileVisibility(false);
    if (fg.getMobileManufacturer().length > 0) {
        fg.addMobileModel('loading...');
        fpa.get_models({c:fpa.getopt('clientname'), m:fg.getMobileManufacturer()}, onLoadModels);
    }
}

function onWinnersPageload(data) {
	if (!checkDataResponse(data,arguments.callee.name))
		return;
    var newcontent = '',
    	dt = $(data.items),
    	fields = new Array('date','prize','loginname'),
    	index = 1,
    	i,j,cnt = 0;
    dt.each(function() {
    	newcontent += '<ul>';
    	for (i=0; i<fields.length; i++)
    		newcontent += '<li>'+$(this).attr(fields[i])+'</li>';
    	newcontent += '</ul>';
    	cnt++;
    });
    while (cnt<10) {
    	newcontent += '<ul>';
    	for (i=0; i<fields.length; i++)
    		newcontent += '<li></li>';
    	newcontent += '</ul>';
    	cnt++;
    }
    $('#'+data.tabid.replace(/_pager$/,'_content')).html(newcontent);
    winnerstabs.setItems(data.tabid, data.totalitems);
}

function criticalError(msg) {
//    document.getElementById('pokerApp').innerHTML = '<h1>Critical Error:</h1><br/>' +msg;
	alert('Critical Error: '+msg);
	return false;
}

//-->

