/*
Leonardo Service Provider S.p.A.
Tutti i diritti registrati e riservati,(R)(C) 2009.
La riproduzione parziale o totale del presente software
delle pagine generate nonchè della strutturazione dei dati,
delle tabelle e di quant'altro è ad esso inerente  è illegale 
ed è punibile secondo tutte le Leggi vigenti sulla violazione del Diritto D'Autore.
L'utilizzo del presente software senza regolare licenza d'uso
è illegale e sarà perseguito secondo tutte le Leggi vigenti applicabili
*/

var GLOBALFirst20Load = false;
var GLOBALeve = new Array();
var GLOBALcla = new Array();
var GLOBALeveall = new Array();
var GLOBALAutoOldVal = '';
var GLOBALlastfield = '';
var GLOBALConfirm = false;

var GLOBALSTValue = '1';
var GLOBALSTNavig = GLOBALSTValue;

/// Quando si utilizza la EasyBet viene perso l'ID della Manifestazione
var GLOBALEasyBetMid = '0';

var EAliasArray = new Array();
var showingSpeedAutoname = false;
var autoLOADED = false;

function initOfferNews(){	
	$('#offerNewsSlider li span').each(function(){
		var curhtml = $(this).text().replace(/<P>&nbsp;<\/P>/g, '');
		curhtml = curhtml.replace(/<P>&nbsp;<BR>&nbsp;<\/P>/g, '');
		curhtml = curhtml.replace(/<BR>&nbsp;<BR>/g,'');
		curhtml = curhtml.replace(/<P><BR>&nbsp;<\/P>/g,'');		
		
		$(this).html(curhtml) ;
					   
	});
	/*$('#offerNewsSlider').zSlider();*/
}
$(document).ready(function(){
	
	initOfferNews();     
	delCoupon();
	// Sfondo +1 +2
	/*$('.gcheck a').hover(
		function() {
			$(this).parent().addClass('gcheckhover');
		},
		function() {
			$(this).parent().removeClass('gcheckhover');
		}
	)*/
	// Apre e chiude il sottomenu
	$('.groupmenu li a').click(
		function() {
			var myChildUl = $(this).parent().children('ul:first');
			var myChildUlVisible = myChildUl.hasClass('menuaperto');
			var disp = myChildUlVisible ? 'Y' : 'N';
			if (disp == 'N') {
				$(this).addClass('opened');
				myChildUl.addClass('menuaperto');
			} else {
				$(this).removeClass('opened');
				myChildUl.removeClass('menuaperto');
			}
			//$('#bugreport').html('Hai cliccato ' + $(this).html() + '<br />La UL &egrave; ' + $(this).parent().children('ul').attr('class') + ' e deve avere display =  ' + $(this).parent().children('ul:first').css('display'))
		}
	)
	
	
	// SPEED
	$('#speedPal').attr('autocomplete', 'off');
	$('#speedPal').keydown(function(e){
		if(e.keyCode == 110 || e.keyCode == 190){
			GLOBALlastfield = $(this).attr('id');
			$('#cstake').select();
			return false;
		} else if(e.keyCode == 107){
			if(GLOBALConfirm == true){
				betConfirm(true);
				GLOBALConfirm = false;
			}else{
				betConfirm();
				GLOBALConfirm = true;
			}
			return false;			
		} else if(e.keyCode == 39){
			$('#speedCod').focus()
			return false;
		}		
	})
	$('#cstake').keyup(function(e){		
		var x = $(this).val()
		var re = /^(\s|\d)+$/;
		var check = re.test(x)			
		if(!check)$(this).val('')
		updateCouponData()	
	});	
	$('#speedCod').keydown(function(e){
		if(e.keyCode == 110 || e.keyCode == 190){
			GLOBALlastfield = $(this).attr('id');
			$('#cstake').select();
			return false;
		} else if(e.keyCode == 109){
			var currDelId = ''; var currAction = '';
			$('.ctable').find('tr').each(function(){
				if($(this).attr('id').indexOf($('#speedPal').val()+$('#speedCod').val())!=-1){
					currDelId = $(this).attr('id');
					currAction = $(this).find('td.cqt').find('a').attr('onclick');
				}
			})
			if(currDelId != ''){
				var params = String(currAction).toLowerCase().split(',');
				var offer = params[1];
				var cod = params[2];
				var cid = params[3];
				var oid = params[4];
				/*
				 var rul = params[5];
				var ceo = params[6].split(')')[0];				
				clickOdd($('#'+currDelId),offer.replace(/\'/g, "").replace(" ", ""), cod.replace(/\'/g, "").replace(" ", ""), cid.replace(/\'/g, "").replace(" ", ""), oid.replace(/\'/g, "").replace(" ", ""), rul.replace(/\'/g, "").replace(" ", ""), ceo.replace(/\'/g, "").replace(" ", ""));
				*/
				//Cancellazione con segno meno [?]
				clickOdd($('#'+currDelId),offer.replace(/\'/g, "").replace(" ", ""), cod.replace(/\'/g, "").replace(" ", ""), cid.replace(/\'/g, "").replace(" ", ""), oid.replace(/\'/g, "").replace(" ", ""));
				$('#speedCod').val('');
			}
			return false;
		} else if(e.keyCode == 107){
			if(GLOBALConfirm == true){
				betConfirm(true);
				GLOBALConfirm = false;
			}else{
				betConfirm();
				GLOBALConfirm = true;
			}
			return false;
		} else if(e.keyCode == 39){
			$('#speedSign').focus();
			return false;
		} else if(e.keyCode == 37){
			$('#speedPal').focus()
			return false;
		}
	})


	$('#speedSign').keydown(function(e){
		if(e.keyCode == 110 || e.keyCode == 190){
			GLOBALlastfield = $(this).attr('id');
			$('#cstake').select();
			return false;
		} else if(e.keyCode == 107){
			if(GLOBALConfirm == true){
				betConfirm(true)
				GLOBALConfirm = false;
			}else{
				betConfirm();
				GLOBALConfirm = true;
			}
			return false;			
		} else if(e.keyCode == 37){
			$('#speedCod').focus();
			return false;
		}	
	})


	$('#speedPal').keyup(function(e){
		$('#speedCod').val(''); $('#speedSign').val('');
		if($(this).val().length == 4){
			if(String($(this).val()).search(/^\s*\d+\s*$/) != -1){// NUM
				for(var i = 0; i < EOfferArray.length; i++){
					if(EOfferArray[i].indexOf($('#speedPal').val()) != -1){
						var offerIs = true;
						break;
					}
				}
				if(!offerIs){
					$(this).val('')
				}else{
					$('#speedPal').select()
				}
			} else if(String($(this).val()).search(/^\s*\D+\s*$/) != -1){// STR
				var curTxt = $(this); var curVal = $(this).val();
				if (GLOBALAutoOldVal != curVal || showingSpeedAutoname == false){
					autoLOADED = false; liINDEX = 0;
					$.ajax({
						url: GLOBALPath + 'getEventsFromTeamName.aspx',
						type: "GET",
						data: 'team=' + $(this).val(),
						success: function(xml){
							this.jObj = $.xmlToJSON(xml);
							var valid = this.jObj.Status[0].Validate[0].Text;
							if(valid == '0'){
								var ev = this.jObj.ListData[0].Events_Data2
								var fieldtop = curTxt.offset().top; var fieldleft = curTxt.offset().left;
								var autoHTML = '';
								for(var i = 0; i < ev.length; i++){
									autoHTML += '<li><a href="javascript:void(0)" onclick="writeNameData('+ev[i].EventsOffer+','+ev[i].EventsID+', true)" id="'+ev[i].EventsOffer+'_'+ev[i].EventsID+'">'+ev[i].EventsName+'</a></li>'
								}
								var san = $('<ul>').attr('id', 'speedAutoname').attr('style', 'position:absolute; display:block; background:#fff;');
								$('#container').append(san);
								$('#speedAutoname').css({'top':parseInt(fieldtop+22)+'px','left':parseInt(fieldleft+1)+'px'});
								showingSpeedAutoname = true;
								$('#speedAutoname').html(autoHTML);
								autoLOADED = true;
								$('#speedAutoname li a:first').addClass('autoitemsel');
							} else {
								if(GLOBALAutoOldVal != curVal) {
									$().popw({wtype:'alert', wwidth:200, draggable:true}).writehtml(this.jObj.Status[0].ErrDesc[0].Text);
								}
								$('#popup').hide();
								$('#speedPal').select();
							}
							GLOBALAutoOldVal = curTxt.val()
						}
					});
				}
				if(autoLOADED == true){
					if(e.keyCode == 38 || e.keyCode == 40){
						if(e.keyCode == 38){if(liINDEX > 0)liINDEX--}
						if(e.keyCode == 40){if(liINDEX < $('#speedAutoname').find('li').length-1)liINDEX++}
						$('#speedAutoname').find('a').removeClass('autoitemsel');
						$('#speedAutoname').find('a:eq('+liINDEX+')').addClass('autoitemsel');
					}
				}
			} else{
				$(this).val('')
			}
		}	
	})
	
	
	$('#speedCod').keyup(function(e){
	});
	
	$('#speedSign').keydown(function(e){
	})
	
	
	$('#speedSign').keyup(function(e){
		var look4Sign = true;
		if(e.keyCode == 46 || e.keyCode == 8){
			look4Sign = false;
		}
		if(e.keyCode == 106){
			var tmpVal = $(this).val();
			tmpVal = tmpVal.replace(/\*/g, "X");
			$(this).val(tmpVal);
		}
		if(look4Sign){
			var Eregexp = new RegExp($(this).val() ,"gi");
			var currValue = $(this).val();
			EfoundSignIndex = new Array();
			EfoundSignValue = new Array();
			if($(this).val().length == 1){
				for(var i = 0; i < EAliasArray.length; i++){
					if(Eregexp.test(EAliasArray[i].charAt(0))){
						EfoundSignIndex.push(i);
						EfoundSignValue.push(EAliasArray[i]);
					}
				}
			}else{
				for(var i = 0; i < EAliasArray.length; i++){
					if(Eregexp.test(EAliasArray[i])){
						EfoundSignIndex.push(i);
						EfoundSignValue.push(EAliasArray[i])
					}
				}
			}
			if(EfoundSignValue.length == 0){
				$(this).val('');
			}else if(EfoundSignValue.length == 1){
				$(this).val(EfoundSignValue[0]);
				$('#popup').find('a').each(function(){
					$(this).removeClass('selected')
				});
				$('#popup').find('a:contains('+$(this).val()+')').addClass('selected');
			}else{
				$(this).val(EfoundSignValue[0]);
				selectText($(this).attr('id'), $(this).val().indexOf(currValue.toUpperCase())+currValue.length , $(this).val().length)
				$('#popup').find('a').each(function(){
					$(this).removeClass('selected')
				});
				$('#popup').find('a:contains('+$(this).val()+')').addClass('selected');
			}
		}
	});
	
	$(window).bind('resize', scrollCoupon);
	$(window).bind('scroll', scrollCoupon);
});

function delCoupon(){
	coupon.init();
	$('.selected').removeClass('selected');
	$.ajax({
		url: GLOBALPath + "Slip.aspx?type=xml",	
		type: "GET",
		data: 'action=4',
		success:function(xml){
			this.jObj = $.xmlToJSON(xml)			
			var valid = this.jObj.Status[0].Validate[0].Text
			if(valid == '0'){
				var cinfo = this.jObj.ListData[0];
				showCouponData(cinfo)
				$('.totevents span').html(cinfo.nEve)
				$('.ctable').empty();
			}
		}
	});
	gotoCouponStep(1);
};

function delBet(xml, offer, cod, cid, oid, action){	
	var cinfo = xml.ListData[0];
	var evid = '#'+offer+cod+cid+oid
	if($(evid).hasClass('selected')){$(evid).toggleClass('selected')}
	$('.totevents span').html(cinfo.nEve)	
	$('#r'+offer+cod+cid+oid).remove()	
	showCouponData(cinfo)
	///
	//coupon.del(offer, cod, cid, oid);
	//$('"#'+offer+cod+cid+oid,+'"').removeClass('selected');
};

var GLOBALWaitTime;
function showCouponData(cinfo){	
	var splittedOdd = String(cinfo.TotalOdds).split('.')
	var troncateOdd = (splittedOdd.length > 1) ? splittedOdd[0] + '.' + splittedOdd[1].substr(0,2) : cinfo.TotalOdds
	$('#ioval').html(troncateOdd)	
	$('#ibval').html(cinfo.Bonus+' &euro;')
	if(cinfo.nEve==0){
		$('.iconfirm').show().html('Aggiungi per scommettere!')
		gotoCouponStep(0)
	}else{
		//try{console.log('minimo: '+coupon.min()+' - minimi: '+coupon.minrule()+'\nmassimo: '+coupon.max() +' - massimi: '+coupon.maxrule()+'\nda aggiungere:'+parseInt(coupon.min() - cinfo.nEve))}catch(e){}
		if (parseInt(coupon.min() - cinfo.nEve) > 0) {
			$('.iconfirm').show().html('Aggiungine '+parseInt(coupon.min() - cinfo.nEve)+' per scommettere!')
		} else {
			$('.iconfirm').hide().html('&nbsp;')
		}
		if(parseInt(coupon.min() - cinfo.nEve) > 0){
			$('.iconfirm').show()
			gotoCouponStep(0)
		}else{			
			//$('.iconfirm').hide()
			gotoCouponStep(1)
		}
	}
	if(GLOBALWaitTime != 'undefined'){showWait(0)}
	//gotoCouponStep(1);
	if(cinfo.Status == 0){$('#ibt_g1').show();$('#ibt_g0').hide()}else{$('#ibt_g1').hide();$('#ibt_g0').show()}	
	if(cinfo.Bonus != 0){$('#ibval').addClass('bonuscolor')}else{$('#ibval').removeClass('bonuscolor')}
	$('#iwval').html(cinfo.TotalWinning+' &euro;')
	var tmpwin = parseFloat($('#iwval').html()) - parseFloat($('#ibval').html())		
	GLOBALtmpbon = (parseFloat($('#ibval').html()) == 0) ? 0 : parseFloat($('#ibval').html()) / tmpwin
	if(cinfo.Bonus != 0)$('#ibval').html('('+Math.round(GLOBALtmpbon*100) +'%) '+cinfo.Bonus+' &euro;')
}

function updateCouponData(){
	var odd = parseFloat($('#ioval').html())
	var win = parseFloat($('#iwval').html())		
	var tmpwin = odd * $('#cstake').val()
	var bon = tmpwin * GLOBALtmpbon	
	$('#ibval').html(Math.round(bon*100)/100 + ' &#8364;')
	if(GLOBALtmpbon != 0)$('#ibval').html('('+Math.round(GLOBALtmpbon*100) +'%) '+Math.round(bon*100)/100 + ' &#8364;')
	$('#iwval').html(Math.round((tmpwin + bon)*100)/100 + ' &#8364;')
}

var GLOBALSelectedDay = '';
function offerReq(selected, currItem, day) {
    if ($('#offerLoading').length > 0) {
    } else {
	createOfferLoading();
	
	var selEl = new Array();
	var selElOffset = new Array();
	var firstDiv;
	
	//Se esiste lo SportHomeImage lo nasconde
	if ($('.content').find('.mhead').length == 1) {
	    $('#offerNewsSlider').zSlider({action:'stop'});
	    try{$('#offerNewsContent').hide();}catch(e){}
	}
	
	
	if(GLOBALFirst20Load == true){
	    $('.content').html('');
	    GLOBALFirst20Load = false;
	}
	
	currItem.find('.mitem').each(function(i) {
	    var currId = $(this).attr("id").split('m')[1];
	    $('#maniid'+currId).each(function(){
		if ($(this).is('.day'+day)) {} else { $(this).parent().remove(); }
	    })
	    if(i==0){
		firstDiv = $('#maniid'+currId)
	    }
	    var selDiv = $('#maniid'+currId);
	    if(selDiv.html() == null){
		selEl.push(currId)
	    } else {
		selElOffset.push($(selDiv).offset().top)
	    }
	});
	
	if(selEl.length == 0){
	    selElOffset.sort(function(a,b){if(a<b)return -1;if(a>b)return 1;return 0;});
	    $('html,body').animate({scrollTop:selElOffset[0]}, 500);
	    //$('.coupon').css({position:'fixed'});
	    removeOfferLoading();
	}else{
	    if(selEl.length == currItem.find('.mitem').length){
		var sel = selected
	    }else{
		var sel = 'maniid=' + selEl.join(',')
	    }
	    if(day){
		sel += '&DayId='+day;
		GLOBALSelectedDay = day;
	    } else {
		GLOBALSelectedDay = '';
	    }
	    $.ajax({
		url: GLOBALPath + "OfferDetails.aspx",
		type: "POST",
		data: sel,
		cache: false,
		dataType: "xml",
		processData: false,
		success:function(data){
		    this.jObj = $.xmlToJSON(data)
		    var valid = this.jObj.Status[0].Validate[0].Text
		    if(valid == '0'){
			appendMani(this.jObj, sel)
		    }else{
			//zpopit.show(this.jObj.Status[0].ErrDesc[0].Text)
			$().popw({wtype:'alert', wwidth:200, draggable:true}).writehtml(this.jObj.Status[0].ErrDesc[0].Text)
		    }
		    removeOfferLoading();
		},
		error:function(data){
		    $().popw({wtype:'alert', wwidth:200, draggable:true}).writehtml('Attenzione: '+ data.responseText);
		    removeOfferLoading();
		}
	    });
	}
    }
}

function createOfferLoading() {
    // Creo una animazione di attesa
    $('.content').prepend($('<div id="offerLoading"><img src="img/offerloader.gif"></img></div>'));
    $('body, a').css('cursor', 'wait');
}

function removeOfferLoading() {
    $('#offerLoading').remove();
    $('body').css('cursor', 'auto');
    $('a').css('cursor', 'pointer');
}

function removeMani(currmhead){	
	if($('.content').find('.mhead').length == 2){//2 perche' ci sono le news nascoste
		$('#offerNewsContent').show();
		$('#offerNewsSlider').zSlider();				
	}
	$(currmhead).parent().parent().remove() 
	
}

function appendMani(xml, sel){
	var tmpDiv = $('<div>')
	var groups = xml.ListData[0].OfferDetails_Data;
	for(var i = 0; i < groups.length; i++){//console.log('manig'+i)
		var categs = groups[i].Cate_Data;			
		for(var j = 0; j < categs.length; j++){	//console.log('manic'+j)
			var manifs = categs[j].Mani_Data;
			for(var k = 0; k < manifs.length; k++){	//console.log('manim'+k)
			    if (manifs[k].EventID2) { //potrebbe non arrivare nulla
				var events = manifs[k].EventID2[0].Events_Data2.getNodesByAttribute('EventsType', '0');
				var mcontent = $('<div>').addClass("mcontent");
				var mhead = $('<div id="maniid'+manifs[k].Id+'">').addClass("mhead").addClass('day'+GLOBALSelectedDay);
				var mheadHTML = '<a class="mdel" title="Elimina" href="javascript:void(0)" onclick="removeMani(this)">X</a>';
				mheadHTML+= '<a class="mtoggleclose" title="Mostra / Nascondi" href="javascript:void(0)" onclick="$(\'#mtable'+manifs[k].Id+'4slide\').slideToggle();$(this).toggleClass(\'mtoggleopen\');">&plusmn;</a>';
				if(manifs[k].Multi) mheadHTML+= '<a href="javascript:void(0)" class="mheadanteshow" title="Mostra / Nascondi Antepost" onclick="$(\'.m'+manifs[k].Id+'.mantepost\').toggle();$(this).toggleClass(\'mheadantehide\')">Visualizza Antepost</a>';
				mheadHTML+= '<span class="palcode">'+groups[i].Desc+'</span>';
				mheadHTML+= '<span class="groupcode"> &bull; '+categs[j].Desc+'</span>';
				var evOffer = (events[0]!=null) ? events[0].EventsOffer : manifs[k].EventID2[0].Events_Data2.getNodesByAttribute('EventsType', '1')[0].EventsOffer 
				mheadHTML+= '<span class="catecode"> &bull; '+manifs[k].Desc+' ['+evOffer+']</span>';			
				mhead.html(mheadHTML);				
				mcontent.append(mhead);
				// ----------------------------------------------							
				// CREATE OPTIONAL ANTEPOST
				if(manifs[k].Multi){
					var antepost = manifs[k].Multi.split(',');
					var alreadyUserEv = new Array();//manage same id with different offer
					for(var a = 0; a < antepost.length; a++){										
						var evTmp = manifs[k].EventID2[0].Events_Data2.getNodesByAttribute('EventsID', antepost[a])
						for(var evindex = 0;evindex<evTmp.length;evindex++){							
							if(evTmp[evindex].EventsType == '1'){
								if($.inArray(evTmp[evindex].EventsOffer+evTmp[evindex].EventsID, alreadyUserEv)==-1){									
									var ev = evTmp[evindex]
									alreadyUserEv.push(ev.EventsOffer+ev.EventsID)
									break;
								}					
							}
						}						
						var dispante = (events.length > 0) ? 'none' : 'block'
						var mantep = $('<div>').addClass("m"+manifs[k].Id+" mantepost").css({display:dispante});
						var mantepHTML = '  <table class="atable" cellpadding="0" cellspacing="0">'
							mantepHTML+= '<tr>'	
							mantepHTML+=	'<th colspan="3"><span class="evedate">'+ev.EventsDate+' &bull; '+ev.EventsTime+'</span>'+ev.EventsID+' &bull; '+ev.EventsName+'</td>'
							mantepHTML+= '</tr>'
							mantepHTML+= '<tr>'
							var c = 1;
							for(var o = 0; o < ev.Odd[0].Value.split(',').length; o++){
								var currRule = getRule(ev.Odd[0].Rule.split(',')[o])
								mantepHTML+='<td><a class="'+currRule+'" title="'+currRule.toUpperCase()+'" href="javascript:void(0)" onclick="clickOdd($(this), \''+ev.EventsOffer+'\',\''+ev.EventsID+'\',\''+ev.Odd[0].ClassID+'\',\''+ev.Odd[0].Position.split(',')[o]+'\',\''+ev.Odd[0].Rule.split(',')[o]+'\',\''+ev.Odd[0].Value.split(',')[o]+'\',\''+manifs[k].Id+'\');" id="'+ev.EventsOffer+ev.EventsID+ev.Odd[0].ClassID+ev.Odd[0].Position.split(',')[o]+'">'+ev.Odd[0].Value.split(',')[o]+'</a>'+ev.Odd[0].List.split(',')[o]+'</td>'
								if(c==3){ mantepHTML+= '</tr><tr>'; c = 0;}
								c++;
							}
							mantepHTML+= '<tr>'
							mantepHTML+= '</table>'							
						mantep.html(mantepHTML);				
						mcontent.append(mantep);
					}	
				}
				
				// ------------------------------------					
				// CREATE MANI TABLE
				var events = manifs[k].EventID2[0].Events_Data2.getNodesByAttribute('EventsType', '0');	
				var classes = groups[i].ClassID[0].Classes_Data;			
				if(events.length > 0){
					// CREATE CLASSES TABS										
					GLOBALeve[groups[i].Id+'_'+manifs[k].Id] = events;
					GLOBALcla[manifs[k].Id] = classes;
										
					var mtable4slide = $('<div id="mtable'+manifs[k].Id+'4slide" class="mtableslide">');					
					
					var mclasses = manifs[k].ManiClass.split(',');				
					var mpron = $('<table>').addClass("selez_pron");
					var mpronHTML = '<tr><td><ul>';
					var doppiaChanceAlreadyDrawn = false;
					for(var c = 0; c < mclasses.length; c++){
						var isDoppiaChance = (mclasses[c] == 15 || mclasses[c] == 16 || mclasses[c] == 17);
						var canDraw = (isDoppiaChance && !doppiaChanceAlreadyDrawn) || !isDoppiaChance;
						if(mclasses[c]!=1 && canDraw){
							if (isDoppiaChance && groups[i].Id == 1) {
								doppiaChanceAlreadyDrawn = true;
							}
							var curclass = (manifs[k].Defcid == mclasses[c]) ? 'class="current"' : '';
							mpronHTML+= '<li><a '+curclass +' href="javascript:void(0)" onclick="switchClass('+groups[i].Id+','+manifs[k].Id+','+mclasses[c]+', this)">'+classes.getNodeByAttribute('Id',mclasses[c]).DescDb+'</a></li>' 
						}
					}
						mpronHTML+= '</td></tr></ul>'			
					mpron.html(mpronHTML)
					mtable4slide.append(mpron)	
						
					var mtable = $('<table cellpadding="0" cellspacing="0" class="mtable" id="mtable'+manifs[k].Id+'">')
					// CREATE TABLE BODY
					mtable.html(appendTable(events, classes, manifs[k].Defcid, manifs[k].Id, false, groups[i].Id))
					
					mtable.tSort(0)
					mtable4slide.append(mtable)
					mcontent.append(mtable4slide)
					
					for(var z = 0; z < coupon.id.length; z++){
						$(mtable).find('#'+coupon.id[z]).toggleClass('selected');
					}
					var offerCode = ""
					//try{console.log($(".mtable").find('tr:eq(1) td:eq(2) a').attr("onclick").toString().split(',')[1])}catch(e){}
					
					//$('.catecode').html('&bull; '+manifs[k].Desc+' ['+offerCode+']')
				
								
				}
				// ------------------------------------
				
				var footer = $('<div>').addClass('mfoot');
				mcontent.append(footer)
				//				
				if(sel.indexOf('mani') != -1){//se e' una mani
					if($('.mcontent').length == 0){
						$(mcontent).appendTo(".content")
					}else{
						$(mcontent).insertBefore(".mcontent:eq(0)")
					}
				}else{
					if($('.mcontent').length == 0){
						$(mcontent).appendTo(".content")
					}else{
						$(mcontent).appendTo(tmpDiv)
					}					
				}
			    } else {
				alert('Eventi non disponibili');
			    }
			}
		}
	}
	if(sel.indexOf('mani') == -1){tmpDiv.insertBefore(".mcontent:eq(0)")}
	adjustCategoryCode()
}

function appendTable(events, classes, classid, maniid, cswitch, groupid) {
	var currClass;
	var currNCols;
	for(var z = 0; z < classes.length; z++){
		if(classid==classes[z].Id){
			currClass = classes[z];
			currNCols=classes[z].nCols;
			var currNEle=classes[z].nEle;
		} else if ((classid == '15' || classid == '16' || classid == '17') && classes[z].Id == '15,16,17') {
			currClass = classes[z];
			currNCols = classes[z].nCols;
		}
	}
	var classIdStr = String(classid)
	if ((classIdStr=='15' || classIdStr=='16' || classIdStr=='17' || classIdStr=='15,16,17') && String(groupid)=='1') {
		currClass.nEle = 3;
		currClass.DisplayAsDb = '1X,X2,12';
	}
	if (parseInt(currNCols)<2 && parseInt(currNEle)>4) {
		/* Non siamo in grado di paginare piu di quattro risultati in una singola colonna */
		currNCols = 4;
	}
	$('#bugreport').attr('style', 'background-color:#FFFFFF; padding:6px;').html(currNCols);
	if(currNCols>1) {
		var	mtableHeadHTML = '<thead><tr>'					
			mtableHeadHTML+=  '<th style="text-align:center;">Cod</th>';
			mtableHeadHTML+=  '<th style="text-indent:3px;">Incontro</th>';
			mtableHeadHTML+=  '<th style="text-align:center;" class="nosort">&nbsp;</th>';
			mtableHeadHTML+= '</tr></thead>'
			
			mtableBodyHTML = '<tbody>';
		for(var e = 0; e < events.length; e++){
			var tmpid = String(e)+String(events[e].EventsID)+String(maniid)		
			GLOBALeveall[tmpid] = events[e];
			var odds = new Array();
			for(var z = 0; z < events[e].Odd.length; z++){if(classid==events[e].Odd[z].ClassID){odds[e] = events[e].Odd[z];}}					
			if(odds[e]){
				var altrowclass = e%2 == 0 ? 'altrow' : '';
				var odds = odds[e]
				mtableBodyHTML+= '<tr class="' + altrowclass + '">'
				mtableBodyHTML+=	'<td class="evecode">'; //<a href="javascript:void(0);" onclick="showStats(event,'+events[e].EventsOffer+','+events[e].EventsID+','+odds.ClassID+')" class="stats_ico">Statistiche</a>
				mtableBodyHTML+=	events[e].EventsID+'</td>'
				mtableBodyHTML+=	'<td class="evename" style="text-align:left;"><span class="evedate">'+events[e].EventsDate+' &bull; '+events[e].EventsTime+'</span>'+events[e].EventsName+'</td>'
				mtableBodyHTML+=	'<td class="evename" style="text-align: center; vertical-align: middle;"><a href="javascript:void(0)" class="allodds" onclick="showAllOdds('+e+','+events[e].EventsID+','+maniid+',null,'+groupid+')">Tutti</a></td>'
				mtableBodyHTML+= '</tr>'
				
				
				mtableBodyHTML+= '<tr>'
				mtableBodyHTML+=	'<td colspan="3">'
				mtableBodyHTML+=		'<table style="width:100%" class="etable" cellspacing="0"><tbody>'
				
				///			
				
				mtableBodyHTML+= '<tr>'
				var c = 1;
				var ev = events[e];
				var colClass = "mtablepari";
				for(var z = 0; z < events[e].Odd.length; z++){if(classid==events[e].Odd[z].ClassID){odds[e] = events[e].Odd[z];}}	
				//alert(currClass.DisplayAsDb)
				for(var o = 0; o < odds[e].Value.split(',').length; o++){
					colClass = colClass == "mtabledispari" ? "mtablepari" : "mtabledispari";
					var currRule = getRule(odds[e].Rule.split(',')[o])
					var colPercW = Math.round(100/currNCols)
					mtableBodyHTML+='<td class="' + colClass + '" style="width:'+colPercW+'%;"><a class="'+currRule+'" title="'+currRule.toUpperCase()+'" href="javascript:void(0)" onclick="clickOdd($(this), \''+ev.EventsOffer+'\',\''+ev.EventsID+'\',\''+odds[e].ClassID+'\',\''+odds[e].Position.split(',')[o]+'\',\''+odds[e].Rule.split(',')[o]+'\',\''+ev.Odd[0].Value.split(',')[o]+'\',\''+maniid+'\');" id="'+ev.EventsOffer+ev.EventsID+odds[e].ClassID+odds[e].Position.split(',')[o]+'">'+odds[e].Value.split(',')[o]+'</a>'+currClass.DisplayAsDb.split(',')[o]+'</td>'
					if(c==currNCols){
						colClass = "mtablepari";
						mtableBodyHTML+= '</tr><tr>'; c = 0;
					}
					c++;
				}
				while (c<=currNCols) {
					var colClass = colClass == "mtabledispari" ? "mtablepari" : "mtabledispari";
					mtableBodyHTML+= '<td class="' + colClass + '">&nbsp;</td>'
					c++;
				}
					
				mtableBodyHTML+= '</tr>'
				
				mtableBodyHTML+=		'</tbody></table>'
				mtableBodyHTML+=	'</td>'
				mtableBodyHTML+= '<tr>'
				
				
			}
		}
		mtableBodyHTML += '</tbody>';
		mtableHTML = mtableHeadHTML + mtableBodyHTML
		if(cswitch == true){		
			$('#mtable'+maniid).html(mtableHTML)
			for(var z = 0; z < coupon.id.length; z++){
				$('#mtable'+maniid).find('#'+coupon.id[z]).toggleClass('selected')
			}
		}else{
			return mtableHTML;
		}
	} else {
	
		var	mtableHeadHTML = '<thead><tr>'					
			mtableHeadHTML+=  '<th style="text-align:center;cursor:pointer;">Cod</th>';
			mtableHeadHTML+=  '<th style="cursor:pointer; text-indent:3px;">Incontro</th>';
			
		for(var o = 0; o < currClass.nEle; o++){	
			mtableHeadHTML+=  '<th style="text-align:center; cursor:pointer;">'+currClass.DisplayAsDb.split(',')[o]+'</th>';
		}					
			mtableHeadHTML+=  '<th style="text-align:center; cursor: pointer;" class="nosort">Tutti</th>';
			mtableHeadHTML+= '</tr></thead>'			
		// CREATE TABLE BODY
			mtableBodyHTML = '<tbody>';		
		for(var e = 0; e < events.length; e++){
			var tmpid = String(e)+String(events[e].EventsID)+String(maniid)		
			GLOBALeveall[tmpid] = events[e];
			var odds = new Array();
			var z;
			for(z = 0; z < events[e].Odd.length; z++){
				if(classid==events[e].Odd[z].ClassID){
					odds[e] = events[e].Odd[z];
				} else if ((classid == '15' || classid == '16' || classid == '17') && events[e].Odd[z].ClassID == '15,16,17') {
					odds[e] = events[e].Odd[z];
				}
			}
			if (odds[e]){
				var aa = String(classid);
				if ((aa=='15' || aa=='16' || aa=='17')&&String(groupid)=='1') {
					var found151617 = false;
					for(z = 0; z < events[e].Odd.length; z++){
						if (String(events[e].Odd[z].ClassID) == '15,16,17') {
							found151617 = true;
							odds[e].Value = events[e].Odd[z].Value;
							odds[e].Rule = events[e].Odd[z].Rule;
							odds[e].Position = events[e].Odd[z].Position;
						}
					}
					if (found151617 == false) {
						var found15 = false;
						for(z = 0; z < events[e].Odd.length; z++){
							if (String(events[e].Odd[z].ClassID) == '15') {
								found15 = true;
								var v = events[e].Odd[z].Value.split(',');
								odds[e].Value = v.length == 2 ? v[0] : '-';
								odds[e].Rule = events[e].Odd[z].Rule.split(',')[0];
								odds[e].Position = events[e].Odd[z].Position.split(',')[0];
							}
						}
						if (found15==false) {
							odds[e].Value = '-';
							odds[e].Rule = '-';
							odds[e].Position = '-';
						}
						var found16 = false;
						for(z = 0; z < events[e].Odd.length; z++){
							if (String(events[e].Odd[z].ClassID) == '16') {
								found16 = true;
								var v = events[e].Odd[z].Value.split(',');
								odds[e].Value += ',' + (v.length == 2 ? v[1] : '-');
								odds[e].Rule += ',' + events[e].Odd[z].Rule.split(',')[1];
								odds[e].Position += ',' + events[e].Odd[z].Position.split(',')[1];
							}
						}
						if (found16==false) {
							odds[e].Value += ',-';
							odds[e].Rule += ',-';
							odds[e].Position += ',-';
						}
						var found17 = false;
						for(z = 0; z < events[e].Odd.length; z++){
							if (String(events[e].Odd[z].ClassID) == '17') {
								found17 = true;
								var v = events[e].Odd[z].Value.split(',');
								odds[e].Value += ',' + (v.length == 2 ? v[1] : '-');
								odds[e].Rule += ',' + events[e].Odd[z].Rule.split(',')[1];
								odds[e].Position += ',' + events[e].Odd[z].Position.split(',')[1];
							}
						}
						if (found17==false) {
							odds[e].Value += ',-';
							odds[e].Rule += ',-';
							odds[e].Position += ',-';
						}
					}
					odds[e].ClassID = '15,16,17';
					
					for (var j = 0; j < GLOBALeve[groupid+'_'+maniid][e].Odd.length; j++) {
						var tempClassId = GLOBALeve[groupid+'_'+maniid][e].Odd[j].ClassID
						if (tempClassId == '15' || tempClassId == '16' || tempClassId == '17' || tempClassId == '15,16,17') {
							GLOBALeve[groupid+'_'+maniid][e].Odd[j] = odds[e];
						}
					}
				}
				
			}
			if(odds[e]){
				var altrowclass = e%2 == 0 ? 'altrow' : '';
				var odds = odds[e]		
				mtableBodyHTML+= '<tr class="' + altrowclass + '">'
				mtableBodyHTML+=	'<td class="evecode">'; //<a href="javascript:void(0);" onclick="showStats(event,'+events[e].EventsOffer+','+events[e].EventsID+','+odds.ClassID+')" class="stats_ico">Statistiche</a>'+
				mtableBodyHTML+=	events[e].EventsID+'</td>'
				if(odds.hVal){
					if(odds.hVal.indexOf('-')!=-1){
						mtableBodyHTML+=	'<td class="evename"><span class="evedate">'+events[e].EventsDate+' &bull; '+events[e].EventsTime+'</span>'+events[e].EventsName+' ('+odds.hVal.replace('-','')+')</td>'
					}else{
						mtableBodyHTML+=	'<td class="evename"><span class="evedate">'+events[e].EventsDate+' &bull; '+events[e].EventsTime+'</span>('+odds.hVal+') '+events[e].EventsName+'</td>'
					}
				}else{
					mtableBodyHTML+=	'<td class="evename"><span class="evedate">'+events[e].EventsDate+' &bull; '+events[e].EventsTime+'</span>'+events[e].EventsName+'</td>'
				}
	
				//mtableBodyHTML+=	'<td class="evename"><span class="evedate">'+events[e].EventsDate+' &bull; '+events[e].EventsTime+'</span>'+events[e].EventsName+'</td>'
				for(var o = 0; o < odds.Value.split(',').length; o++){
					var timeLineImage = '';
					if (odds.TimeLine) {
						var timeOdd = odds.TimeLine.split(',')[o]
						switch(timeOdd){
							case '1':
								var imgUrl = 'img/upbluearrow.png';
								var imgAlt = 'Cresce'
								break;
							case '0':
								var imgUrl = 'img/equaltrasparent.png';
								var imgAlt = 'Stabile'
								break;
							case '-1':
								var imgUrl = 'img/downredarrow.png';
								var imgAlt = 'Decresce'
								break;
						}
						timeLineImage = '<img src="' + imgUrl + '" alt="' + imgAlt + '" style="margin-bottom:-1px;"/>'
					}
					if (String(classid)=='15'||String(classid)=='16'||String(classid)=='17'||String(classid)=='15,16,17') {
						var currClassId = odds.ClassID.split(',')[o]
					} else {
						var currClassId = odds.ClassID;
					}
					var currRule = getRule(odds.Rule.split(',')[o])
					/// Eccezione per evitare di scrivere Undefined in caso non arrivi
					var currOdd = '-';
					var currAction = '';
					if (!isNaN(odds.Value.split(',')[o])) {
					    currOdd = odds.Value.split(',')[o];
					    currAction = 'clickOdd($(this), \''+events[e].EventsOffer+'\',\''+events[e].EventsID+'\',\''+currClassId+'\',\''+odds.Position.split(',')[o]+'\',\''+odds.Rule.split(',')[o]+'\',\''+odds.Value.split(',')[o]+'\',\''+maniid+'\');';
					}
					mtableBodyHTML+='<td style="text-align: center;">';
					mtableBodyHTML+='<a class="'+currRule+'" title="'+currRule.toUpperCase()+'" href="javascript:void(0)" onclick="' + currAction + '" id="'+events[e].EventsOffer+events[e].EventsID+currClassId+odds.Position.split(',')[o]+'">';
					mtableBodyHTML+=currOdd;//odds.Value.split(',')[o]
					mtableBodyHTML+='</a></td>';
				}
				mtableBodyHTML+=	'<td class="allodds" style="text-align: center; vertical-align: middle;"><a href="javascript:void(0)" class="allodds" onclick="showAllOdds('+e+','+events[e].EventsID+','+maniid+',null,'+groupid+')">Tutti</a></td>'
				mtableBodyHTML+= '</tr>'
			}
		}
		mtableBodyHTML += '</tbody>';				
		mtableHTML = mtableHeadHTML + mtableBodyHTML	
		if(cswitch == true){		
			$('#mtable'+maniid).html(mtableHTML)
			for(var z = 0; z < coupon.id.length; z++){
				$('#mtable'+maniid).find('#'+coupon.id[z]).toggleClass('selected')
			}
			//try{console.log($('#mtable'+maniid).find('tr:eq(1) td:eq(2) a').attr("onclick").toString().split(',')[1])}catch(e){}
			$('#mtable'+maniid).tSort()		
		}else{
			return mtableHTML;
		}
	}
	adjustCategoryCode()
}
function adjustCategoryCode() {
	$('div.mcontent div:not(.mantepost) table:not(.selez_pron) tbody tr td:not([class]):first>a[id],div.mcontent div:not(.mantepost) table.etable tbody tr td.mtabledispari:first>a[id]').each(function() {
		var aID = $(this).attr('id')
		var myParent = $(this).parent();
		var tentativi = 0;
		while($(myParent).attr('class') != 'mcontent' && tentativi < 12) {
			myParent = $(myParent).parent();
			tentativi++;
		}		
		var oldHtml = $(myParent).find('span.catecode').html();
		var newCode = '['+aID.substring(0,4)+']';
		
		if (oldHtml.indexOf(newCode)<0) {
			var re = new RegExp(/\[.*]/);
			var newHtml = oldHtml.replace(re, newCode);
			$(myParent).find('span.catecode').html(newHtml);
		}		
	})
}


function clickOdd(aObj, offer, cod, cid, oid, rule, odd, mid){
	if (String(mid) == '0') {mid = GLOBALEasyBetMid;}
	try{console.log(offer+','+cod+','+cid+','+oid+','+rule+','+odd+','+mid)}catch(e){}
	//showWait(0)//blocca il wait sulla conferma se visibile
	//var currzid = (!offer) ? $(aObj).attr('id') : offer+cod+cid+oid	
	if($.inArray(offer+cod+cid+oid, coupon.id) == -1){
		if($.inArray(offer+cod, coupon.cod) == -1){
				
			var minRule = Number(rule.split('-')[0]);
			var maxRule = Number(rule.split('-')[1]);
			if ((coupon.length() < coupon.max() && coupon.length() < maxRule) || coupon.max() == 0) {				
				coupon.add(offer, cod, cid, oid, rule, odd, mid)				
				var action = '0'; var qs = '&on='+offer+'&cod='+cod+'&cid='+cid+'&oid='+oid+'&mid='+mid+'&stk='+$('#cstake').val();
				try{console.log(mid)}catch(e){}
				//var h = $('.ctable').height(); $('.ctable').animate({height: h+40+'px'},100)
			} else if(coupon.max()==1 || maxRule == 1) {
				$().popw({wtype:'alert', wwidth:200, draggable:true}).writehtml('Eventi non combinabili [C]')
			} else {
				
				$().popw({wtype:'alert', wwidth:200, draggable:true}).writehtml('Massimo eventi raggiuto [C]')
			}
		}
	}else{
		coupon.del(offer, cod, cid, oid)		
		var action = '1'; var qs = '&on='+offer+'&cod='+cod+'&cid='+cid+'&oid='+oid+'&mid='+mid+'&stk='+$('#cstake').val();		
		//var h = $('.ctable').height(); $('.ctable').animate({height: h-40+'px'},100)
	}
	if(action){
		$.ajax({
			url: GLOBALPath + "Slip.aspx?type=xml",	
			type: "GET",
			data: 'action=' + action + qs,
			success: function(xml){				
				this.jObj = $.xmlToJSON(xml)			
				var valid = this.jObj.Status[0].Validate[0].Text
				if(valid == '0'){				
					//aObj.toggleClass('selected')						
					if(action == '0'){
						addBet(this.jObj, action);
						//try{console.log(valid)}catch(e){}
						//coupon.add(offer, cod, cid, oid);
						//aObj.addClass('selected');
					};
					if(action == '1'){
						delBet(this.jObj, offer, cod, cid, oid, action)
						//coupon.del(offer, cod, cid, oid);
						//aObj.removeClass('selected');
					}			
				}
				else{
					//alert(valid);
					//aObj.toggleClass('selected')
					coupon.del(offer, cod, cid, oid)
					$().popw({wtype:'alert', wwidth:200, draggable:true}).writehtml(this.jObj.Status[0].ErrDesc[0].Text)
				}
			}
		});
	}
}

function addBet(xml, action){ 
	var cinfo = xml.ListData[0]; var cdata = xml.ListData[0].CouponEvent[0].CouponEvent_Data[0];	
	var trbet = $('<tr id="r'+cdata.ceon+cdata.cec+cdata.cegci+cdata.cegoi+'">').addClass("rowcoupon");
	$('.ctable').append(trbet);
	var trbetHtml = '<td class="ccode"><span>'+cdata.cec+'</span></td>'
		if(cdata.ceh){//visualizzazione handicap
			if(cdata.ceh.indexOf('-')!=-1){
				var evname = cdata.cen + ' ('+cdata.ceh.replace('-','')+')';
			}else{
				var evname = '('+cdata.ceh +') ' + cdata.cen;
			}
		}else{
			var evname = cdata.cen;
		}		
		trbetHtml+= '<td class="cevent"><span><strong>'+evname+'</strong></span><span>'+cdata.cegcd+': <strong>'+cdata.ceg+'</strong></span></td>'
		trbetHtml+= '<td class="cqt"><a href="javascript:void(0)" onclick="clickOdd($(\'#'+cdata.ceon+cdata.cec+cdata.cegci+cdata.cegoi+'\'), \''+cdata.ceon+'\', \''+cdata.cec+'\', \''+cdata.cegci+'\', \''+cdata.cegoi+'\')" title="Elimina questo evento">X</a><span>'+cdata.ceo+'</span></td>'
	trbet.html(trbetHtml);
	var evid = '#'+cdata.ceon+cdata.cec+cdata.cegci+cdata.cegoi;
	if(!$(evid).hasClass('selected')){$(evid).toggleClass('selected')}
	$('.totevents span').html(cinfo.nEve)	
	showCouponData(cinfo);
	///
	//coupon.add(cdata.ceon, cdata.cec, cdata.cegci, cdata.cegoi);
	//$('"#'+cdata.ceon+cdata.cec+cdata.cegci+cdata.cegoi+'"').addClass('selected');
}

function showAllOdds(n, evid, maniid, xml, groupid){
	var isXML = false;
	var isSoccer = String(groupid) == '1';
	var isDoppiaChance = false;
	createPopup();
	if (xml) {
		/// Conservo l'ID della Manifestazione in una variabile globale
		GLOBALEasyBetMid = xml.ListData[0].EasyBet_Data[0].emid;
		var ClassGames15;
		var ClassGames16;
		var ClassGames17;
		for (var xmli in xml.ListData[0].EasyBet_Data[0].Class_Data[0].Class_Data) {
			var tmpClassNode = xml.ListData[0].EasyBet_Data[0].Class_Data[0].Class_Data[xmli];
			if (String(tmpClassNode.cid) == '15') {
				ClassGames15 = tmpClassNode.ClassGames[0].GameDetails[0]
			}
		}
		for (var xmli in xml.ListData[0].EasyBet_Data[0].Class_Data[0].Class_Data) {
			var tmpClassNode = xml.ListData[0].EasyBet_Data[0].Class_Data[0].Class_Data[xmli];
			if (String(tmpClassNode.cid) == '16') {
				ClassGames16 = tmpClassNode.ClassGames[0].GameDetails[1]
			}
		}
		for (var xmli in xml.ListData[0].EasyBet_Data[0].Class_Data[0].Class_Data) {
			var tmpClassNode = xml.ListData[0].EasyBet_Data[0].Class_Data[0].Class_Data[xmli];
			if (String(tmpClassNode.cid) == '17') {
				ClassGames17 = tmpClassNode.ClassGames[0].GameDetails[1]
			}
		}
		for (var xmli in xml.ListData[0].EasyBet_Data[0].Class_Data[0].Class_Data) {
			var tmpClassNode = xml.ListData[0].EasyBet_Data[0].Class_Data[0].Class_Data[xmli];
			if (String(tmpClassNode.cid) == '15' || String(tmpClassNode.cid) == '16' || String(tmpClassNode.cid) == '17') {
				xml.ListData[0].EasyBet_Data[0].Class_Data[0].Class_Data[xmli].ClassGames[0].GameDetails = new Array();
				xml.ListData[0].EasyBet_Data[0].Class_Data[0].Class_Data[xmli].ClassGames[0].GameDetails[0] = ClassGames15;
				xml.ListData[0].EasyBet_Data[0].Class_Data[0].Class_Data[xmli].ClassGames[0].GameDetails[1] = ClassGames16;
				xml.ListData[0].EasyBet_Data[0].Class_Data[0].Class_Data[xmli].ClassGames[0].GameDetails[2] = ClassGames17;
				/*for (var forse in xml.ListData[0].EasyBet_Data[0].Class_Data[0].Class_Data[xmli].ClassGames[0].GameDetails[0]) {
					//console.log(forse + ', ' + xml.ListData[0].EasyBet_Data[0].Class_Data[0].Class_Data[xmli].ClassGames[0].GameDetails[0][forse]);
					//console.log(forse + ', ' + xml.ListData[0].EasyBet_Data[0].Class_Data[0].Class_Data[xmli].ClassGames[0].GameDetails[1][forse]);
					//console.log(forse + ', ' + xml.ListData[0].EasyBet_Data[0].Class_Data[0].Class_Data[xmli].ClassGames[0].GameDetails[2][forse]);
				}*/
			}
		}
		isXML = true;
		var currev = xml.ListData[0].EasyBet_Data[0];
		var currcl = xml.ListData[0].EasyBet_Data[0].Class_Data[0].Class_Data;
		$('#mCode').html(currev.eoi+' &bull; '+currev.ec);
		$('#eventName').html(currev.en);
		var listLength = currcl.length;
	} else {
		///// Da qui inizia un grosso Porkaround
		///// Fingo una chiamata per far fare il calcolo alla funzione appendTable;
		appendTable(GLOBALeve[groupid+'_'+maniid], GLOBALcla[maniid], '15', maniid, false, groupid)
		///// Fine del pi￿sso Porkaround
		var id = String(n)+String(evid)+String(maniid);
		var currEv = GLOBALeveall[id];
		var classes = GLOBALcla[maniid];
		$('#mCode').html(currEv.EventsOffer+' &bull; '+currEv.EventsID); $('#eventName').html(currEv.EventsName);
		var listLength = currEv.Odd.length;
	}
	var allOddHtml = '';
	allOddHtml += '<table width="100%" border="0" cellspacing="0" cellpadding="0"><thead>';
	var countDoppiaChance = 0;
	var isDoppiaChance = false;
	for(var o = 0; o < listLength; o++){
		
			var odds = isXML ? currcl[o].ClassGames[0].GameDetails : currEv.Odd[o];
			if (!isXML) {
				var currClass;
				for (var z = 0; z < classes.length; z++) {
					if (classes[z].Id==odds.ClassID && String(odds.ClassID) != '15,16,17') {
						isDoppiaChance = false;
						currClass = classes[z]
					} else if ((String(classes[z].Id) == '15' || String(classes[z].Id) == '16' || String(classes[z].Id) == '17' || String(classes[z].Id) == '15,16,17') && String(odds.ClassID) == '15,16,17') {
						isDoppiaChance = true;
						currClass = classes[z]
						//console.log(String(odds.ClassID)+', '+String(classes[z].Id))
						for (var aa in classes[z]) {
							//console.log('-->'+aa+', '+classes[z][aa])
						}
						classes[z].Id = '15,16,17';
						classes[z].DescDb = 'Dop. Chance';
						classes[z].List = '1,2,2';
						classes[z].DisplayAsDb = '1X,X2,12';
						classes[z].nEle = 3;
					} else {
					}
				}
			} else {
				var mycid = String(xml.ListData[0].EasyBet_Data[0].Class_Data[0].Class_Data[o].cid)
				if (mycid == '15' || mycid == '16' || mycid == '17') {
					isDoppiaChance = true;
				} else {
					isDoppiaChance = false;
				}
			}
			if (isDoppiaChance == false || (isDoppiaChance == true && countDoppiaChance == 0)) {
				if (isDoppiaChance){countDoppiaChance ++;}
				//console.log('Doppia Chance? ' + isDoppiaChance + ' | ' + currev.emid)
				//console.log('Disegno perche isDoppiaChance? ' + isDoppiaChance + '. Perche conto ' + countDoppiaChance)
				var itd = 1;
				var oLength = isXML ? odds.length : odds.Value.split(',').length
					var ncol = 3;
				var divstyle = (isXML!=true && oLength>9) ? 'display:none;' : '';
				var titleclass = (isXML!=true && oLength>9) ? 'closed' : 'opened';
				allOddHtml +='<tr>';
				allOddHtml +='<td class="pronoClass ' + titleclass + '" onclick="togOdds('+o+', $(this))"><span> '
				if(isXML){allOddHtml += currcl[o].cd}else{allOddHtml += currClass.DescDb}
				allOddHtml += '</span></td>';
				allOddHtml +='</tr></thead><tbody><tr><td><div class="odd'+o+'" style="'+divstyle+'"><table><tr>';
					//if(oLength<4) {ncol = 3}
				
				for(var r = 0; r < oLength; r++){
					var currClassId = odds.ClassID;
					if (currClassId == '15,16,17') {
						currClassId = currClassId.split(',')[r];
					}
					var currRule = isXML ? getRule(odds[r].Rule) : getRule(odds.Rule.split(',')[r]);
					var evid = isXML ? currev.eoi+currev.ec+odds[r].clid+odds[r].Cod : currEv.EventsOffer+currEv.EventsID+currClassId+odds.Position.split(',')[r];
					if($.inArray(evid, coupon.id) != -1){currRule += ' selected';}
					
					if (isXML) {
						if (ncol == 3) {
							var colsp = 'colspan="2" ';
						} else {
							var colsp = '';
						}
						allOddHtml +='<td '+ colsp +' class="quoteName" width="33%"><a class="'+currRule+'" title="'+currRule.toUpperCase()+'" href="javascript:void(0)" onclick="clickOdd($(this), \''+currev.eoi+'\',\''+currev.ec+'\',\''+odds[r].clid+'\',\''+odds[r].Cod+'\',\''+odds[r].Rule+'\',\''+odds[r].Odd+'\',\''+currev.emid+'\');$(\'#popup\').hide()" id="all'+currev.eoi+currev.ec+odds[r].clid+odds[r].Cod+'">'+odds[r].Alias+' : <b>'+odds[r].Odd+'</b></a></td>';
						ERuleArray.push(odds[r].Rule); ERuleClassArray.push(currRule); EAliasArray.push(odds[r].Alias);EsignArray.push(odds[r].Cod); EclassArray.push(odds[r].clid);  EOddArray.push(odds[r].Odd); EManiArray.push(maniid); 
						$('#speedSign').focus();
					} else {
						if (ncol == 3) {var colsp = 'colspan="2" ';} else {var colsp = '';}
						allOddHtml +='<td '+ colsp +' class="quoteName" width="33%"><a class="'+currRule+'" title="'+currRule.toUpperCase()+'" href="javascript:void(0)" onclick="clickOdd($(this), \''+currEv.EventsOffer+'\',\''+currEv.EventsID+'\',\''+currClassId+'\',\''+odds.Position.split(',')[r]+'\', \''+odds.Rule.split(',')[r]+'\', \''+odds.Value.split(',')[r]+'\',\''+maniid+'\');$(\'#popup\').hide()" id="all'+currEv.EventsOffer+currEv.EventsID+currClassId+odds.Position.split(',')[r]+'">'+currClass.DisplayAsDb.split(',')[r]+' : <b>'+odds.Value.split(',')[r]+'</b></a></td>'
					}
					if(itd==ncol){allOddHtml +='</tr><tr>'; itd=0}
					itd++
				}
				while (itd%ncol!=1) {
					allOddHtml += '<td width="33%">&nbsp;</td>'
					itd++;
				}
				allOddHtml +='</tr></table></div></td></tr>'
			}
	}
	allOddHtml+= '</tbody></table>'
	$('#pronos').html(allOddHtml);
	$('#popup').zDrag({handler: '#popup_drag'});

}


function togOdds(n, b) {
	$('.odd'+n).toggle();
	b.toggleClass('opened').toggleClass('closed');
}

function createPopup() {
	$('#popup').remove();
	var topOffset = $(window).scrollTop();
	var myPop = $('<div>').addClass('sample_popup').attr('id', 'popup').attr('style', 'z-index: 100; position: absolute; right: 386px; top: ' + (topOffset+165) + 'px;');
	var myForm = $('<div>').addClass('menu_form_header').attr('id', 'popup_drag');
	var cBtn = $('<a>').addClass('mdel').attr('title', 'Chiudi').attr('href', 'javascript:void(0)');
	cBtn.html('X').click(
		function() {
			$('#popup').remove();
		}
	)
			
	var mCode = $('<span>').addClass('eventName').attr('id', 'mCode');
	var eName = $('<span>').addClass('eventName').attr('id', 'eventName');
	var dPron = $('<div>').attr('id', 'pronos').css('overflow', 'hidden');
	
	myForm.append(cBtn).append(eName).append(mCode);
	myPop.append(myForm).append(dPron);
	
	$('body').prepend(myPop);
}


function getRule(rule){
	var cRule = rule.split('-')[0];
	switch(cRule) {	  
		case '1':
			return 'unica'
		break;
		case '2':
			return 'singola'
		break;
		case '3':
			return 'tripla'
		break;
		default:
    		return 'tripla'
	}
}

(function($){
	$.fn.tSort = function(options) {	
		var defaults = {
			sortedBy: 0
		};
		var options = $.extend(defaults, options);	
		var tableObj; var data = []; 
		this.each(function() {
			tableObj = $(this); var l = tableObj.find('tr').length
			tableObj.find('tr').each(function(i){	
				$(this).find('th').each(function(){				
					if(!$(this).hasClass('nosort')){						
						$(this).click(function(){cSort(this.cellIndex)});
					}					
				});			
				data[i-1] = {};
			});		
		});		
		var cSort = function(cIndex){		
			tableObj.find('tbody tr').each(function(i){				
				$(this).find('td:eq('+cIndex+')').each(function(){
					data[i].index = i					
					data[i].value = $(this).text()
				});
			})			
			if(this.lIndex == cIndex){				
				data.reverse();
				this.d=(this.d)?false:true				
			}else{
				tableObj.find('th').each(function(i){if(i==cIndex){$(this).addClass('ord')}else{$(this).removeClass('ord')}})
				this.lIndex = cIndex; data.sort(compare); this.d=false
			}
			var t = $('<tbody>')		
			tableObj.find('tr:gt(0)').each(function(i){				
				tableObj.find('tbody tr:eq('+data[i].index+')').clone().appendTo(t)				
			});			
			tableObj.find('tbody').replaceWith(t);			
		}		
		var compare = function(f,c){
			f = f.value; c = c.value;			
			var i = parseFloat(f.replace(/(\$|\,)/g,'')), n = parseFloat(c.replace(/(\$|\,)/g,''));			
			if(!isNaN(i)&&!isNaN(n)){f=i,c=n}
			return (f>c?1:(f<c?-1:0))
		}
		//cSort(options.sortedBy)
	};
})(jQuery);

var coupon = new Object({
	init: function(){
		this.cod = new Array()
		this.id = new Array();
		this.data = new Array();
		this.odd = new Array();
		this.mid = new Array();
		this.maxRule = new Array(); /// Massimo numero di eventi giocabili. In base a quelli gia selezionati
		this.minRule = new Array(); /// Minimo numero di eventi giocabili. In base a quelli gia selezionati		
	},	
	add: function(offer, cod, cid, oid, rule, odd, mid){		
		this.cod.push(offer+cod)
		this.id.push(offer+cod+cid+oid)
		this.data.push(arguments)
		this.odd.push(odd)
		this.mid.push(mid)
		this.maxRule.push(rule.split("-")[1]);
		this.minRule.push(rule.split("-")[0]);
	},
	del: function(offer, cod, cid, oid){
		var index = $.inArray(offer+cod+cid+oid, this.id)
		this.cod.splice(index, 1); 
		this.id.splice(index, 1); 
		this.data.splice(index, 1);
		this.odd.splice(index, 1);
		this.mid.splice(index, 1);
		this.maxRule.splice(index, 1);
		this.minRule.splice(index, 1);
	},
	length: function(){
		return this.id.length;
	},
	min: function(){
		var dumbMin = this.minRule;
		dumbMin.sort();
		if(dumbMin.length > 0) {
			return(dumbMin[dumbMin.length-1]);
		} else {
			return 0;
		}
	},
	max: function(){
		var dumbMax = this.maxRule;
		dumbMax.sort();
		if(dumbMax.length > 0) {
			return(dumbMax[dumbMax.length-1]);
		} else {
			return 0;
		}
	},
	maxrule:function(){return this.maxRule},
	minrule:function(){return this.minRule}
});

function showWait(time, confirm){
	if(time > 0){
		var x = time-1
		GLOBALWaitTime = setTimeout('showWait('+x+')',1000);
		$('.iconfirm').show().html('Hai ancora '+parseInt(time)+' secondi per confermare!')
	}else{
		if(!confirm){			
			if (String($('.iconfirm').html()).indexOf('secondi per confermare')>0){
				$('.iconfirm').show().html('Scommessa annullata.');
				gotoCouponStep(1);
			}
		}
		GLOBALConfirm = false;
		if(GLOBALWaitTime){clearInterval(GLOBALWaitTime)};
	}	
}

GLOBALeve = new Array(); GLOBALcla = new Array(); GLOBALeveall = new Array();
function switchClass(gid, mid, cid, currtab){
	appendTable(GLOBALeve[gid+'_'+mid], GLOBALcla[mid], cid, mid, true, gid)
	$(currtab).parents('ul').find('li a').each(function(){$(this).removeClass('current')})
	$(currtab).addClass('current')
	adjustCategoryCode();
}


/* Conferma della scommessa */
// Step 1: BetConfirm
function betConfirm(confirm){
	try{console.log(coupon.odd)}catch(e){}
	if(confirm){		
		$('.ib_conf').each(function(){//disabilita il click quando appena premuto
			this.onclick = function(){
				//try{console.log('request-already-sent')}catch(e){}
			}
		})		
		clearInterval(GLOBALWaitTime);
		$('.iconfirm').show().html('Richiesta in corso...');
		var url = GLOBALPath + "Slipconfirm.aspx?type=xml&caller=web";
		 	
		
	}else{
		var url = GLOBALPath + "Slip.aspx?type=xml";
		var data = 'action=2'+'&stk='+$('#cstake').val();
	}
	$.ajax({
		url: url,
		type: "GET",
		data: data,
		success: function(xml){			
			$('.ib_conf').each(function(){//riabilita il click quando appena premuto
				this.onclick = function(){betConfirm(true);}				
			})
			this.jObj = $.xmlToJSON(xml)			
			var valid = this.jObj.Status[0].Validate[0].Text	
			if(!confirm){
				if(valid == '0'){					
					/* Posso passare allo step 2 */
					gotoCouponStep(2);
					showServerData(this.jObj)
					showWait(10);					
				}else{
					/* Devo mostrare un errore */
					var descErr = this.jObj.Status[0].ErrDesc[0].Text;
					var loginFormStr = ''; var loginFormStr2 = ''; 
					if(descErr.indexOf('login') != -1){
						loginFormStr2 += '<div id="login_side"><p>'
						loginFormStr += '</p><p><label for="wlogin_username">Username</label><input type="text" id="wlogin_username" value="username" /></p>'
						loginFormStr += '<p><label for="wlogin_password">Password</label><input type="password" id="wlogin_password" value="password" /></p>'
						loginFormStr += '<p><button>Login</button></p>'
						loginFormStr += '</div>'
						loginFormStr += '<div id="reg_side">'
						loginFormStr += '<p>Se non sei ancora registrato apri un conto oggi stesso. E\' semplice ed immediato.</p>'
						loginFormStr += '<a href="etc.aspx?p=registrazione">Registrati</a>'						
						loginFormStr += '</div>'
						$('#tmpusr').select();
					}
					var w = $().popw({wtype:'alert', wwidth:200, draggable:true}).writehtml(loginFormStr2 + descErr + loginFormStr);
					$('#modalew').attr('class', 'modale_login');
					if (loginFormStr != '') {
						$('#whtml #wlogin_username').focus(function() {
							if ($(this).val() == 'username') {
								$(this).val('')
							}
						})
						$('#whtml #wlogin_password').focus(function() {
							if ($(this).val() == 'password') {
								$(this).val('')
							}
						})
						$('#whtml input').keydown(function(e) {
							if (e.keyCode == 13) {
								loginLoad('post',$('#whtml #wlogin_username').val(),$('#whtml #wlogin_password').val());
							}
						});
						$('#whtml button').click(function(){
							loginLoad('post',$('#whtml #wlogin_username').val(),$('#whtml #wlogin_password').val());
						})
					}
				}				
			}else{
				if(valid == '0'){
					showWait(0, true);
					GLOBALConfirm = false;
					GLOBALBarCode = this.jObj.ListData[0].BarCode;
					$('.iconfirm').show().html('La tua scommessa e stata accettata.');
					$('.bw_balance').html(this.jObj.ListData[0].Userdata[0].Balance);
					gotoCouponStep(3)
				}else{
					/* Devo mostrare un errore */
					if(valid == '3000'){
						$().popw({wtype:'alert', wwidth:200, draggable:true}).writehtml("Attenzione! La tua scommessa &eacute; stata accettata ma per un ritardo di archiviazione non sar&agrave; da subito visualizzabile in Lista Scommesse. Riprova pi&ugrave; tardi.")
					}else{
						$().popw({wtype:'alert', wwidth:200, draggable:true}).writehtml(this.jObj.Status[0].ErrDesc[0].Text)
						gotoCouponStep(1);
						$('.iconfirm').hide().html('&nbsp;')
					}
				}				
			}			
		}
	});	
}

function showServerData(xml){
	try{
		var cData = xml.ListData[0]		
		var clientN = coupon.cod.length; var serverN = cData.nEve;
		if(clientN == serverN){
			$('#ioval').html(cData.TotalOdds.split('.')[0]+'.'+cData.TotalOdds.split('.')[1].substr(0,2))
			$('#ibval').html(cData.Bonus.split('.')[0]+'.'+cData.Bonus.split('.')[1].substr(0,2))
			$('#iwval').html(cData.TotalWinning + ' &#8364;');
			var eData = xml.ListData[0].CouponEvent[0];
			try{console.log(coupon.odd)}catch(e){}
			for(var i = 0; i < coupon.cod.length; i++){
				/*if(coupon.odd[i] != eData.CouponEvent_Data[i].ceo){
					try{console.log(i+','+coupon.odd)}catch(e){}
					alert('Si &egrave; verificato un ritardo nella ricezione dei dati, ricompila il tuo coupon. [A: '+coupon.odd[i]+','+eData.CouponEvent_Data[i].ceo+']');
					delCoupon();
					return false;
				}
				try{console.log(coupon.odd[i]+','+eData.CouponEvent_Data[i].ceo)}catch(e){}*/
			}
		}else{
			alert('Si ￿erificato un ritardo nella ricezione dei dati, ricompila il tuo coupon. [B: '+clientN+','+serverN+']')
			delCoupon()
		}
		
		var cEvents = xml.ListData[0].CouponEvent[0]
		
	}catch(e){}
	
}

function zPrint(print){
	if (print) {
		var printValue = true;
		delCoupon();
	} else {
		var printValue = false;
	}
	var options = 'menubar=no,status=no,scrollbars=yes,resizable=no,width=500,height=450,toolbar=no,location=no,directories=no';
	var pop = window.open('printcoupon.aspx?barcode='+GLOBALBarCode+'&print='+printValue+'&st=1','Bet',options);
	if(window.focus){pop.focus()};
	return false;
}

function gotoCouponStep(num) {
	$('#cstep1').css('display', 'none');
	$('#cstep2').css('display', 'none');
	$('#cstep3').css('display', 'none');
	$('#cstep'+num).css('display', 'block');
}
var GLOBALmouseX = 0;
var GLOBALmouseY = 0;
function showStats(E, off, eve, cla) {
	$('#StatsDiv').remove()
	var tempDiv = $('<div>');
	tempDiv.attr('id', 'StatsDiv');
	tempDiv.html('<div id="stats"></div>');
	$('body').append(tempDiv);
	swf('swf/stats.swf', 'stats', '200', '150', off+', '+eve+', '+cla);
	// Per trovare le coordinate
	var ie = navigator.appName == "Microsoft Internet Explorer";
	GLOBALmouseX = ie ? window.event.clientX : E.clientX;
	GLOBALmouseY = ie ? window.event.clientY : E.clientY
	var e = document.documentElement, b = document.body;
	GLOBALmouseX += (e && e.scrollLeft || b.scrollLeft || 0);
	GLOBALmouseY += (e && e.scrollTop || b.scrollTop || 0);
	// Ho trovato le coordinate
	$('#StatsDiv').css('left', GLOBALmouseX-12);
	$('#StatsDiv').css('top', GLOBALmouseY-12);
	$('#StatsDiv').click(
		function(){
			$(this).remove();
		}
	)
}

function speedReq(){
	if(autoLOADED == true){
		var currID = $('#speedAutoname').find('a:eq('+liINDEX+')').attr('id');
		writeNameData(currID.split('_')[0],currID.split('_')[1], false);
		autoLOADED = false;
	}
	if('' == $('#speedPal').val() || $('#speedPal').val().length < 4){
		$('#speedPal').select(); $('#speedPal').val('');
	} else if('' == $('#speedCod').val()){
		$('#speedCod').focus();
	} else if('' == $('#speedSign').val()){
		if($('#speedCod').val().indexOf('-') == -1){
			$.ajax({
				url: GLOBALPath + 'getgames_eb.aspx',
				type: "GET",
				data: 'oid='+$('#speedPal').val()+'&cid='+$('#speedCod').val(),
				success: function(xml){
					this.jObj = $.xmlToJSON(xml);
					var valid = this.jObj.Status[0].Validate[0].Text;
					if(valid == '0'){
						ERuleArray = new Array(); ERuleClassArray = new Array(); EAliasArray = new Array(); EsignArray = new Array(); EclassArray = new Array(); EfoundSignValue = new Array(); EfoundSignIndex= new Array(); EOddArray = new Array(); EManiArray = new Array();
						showAllOdds(0,0,0,this.jObj);
					}else{
						$().popw({wtype:'alert', wwidth:200, draggable:true}).writehtml(this.jObj.Status[0].ErrDesc[0].Text);
						$('#popup').hide();
						$('#speedPal').select(); $('#speedCod').val('');
					}
				}
			});
		} else{
			$('#speedCod').value = ''; $('#speedCod').focus();
		}
	}else{
		var tmpSign = $('#speedSign').val().toUpperCase(); var cod = $('#speedCod').value;
		//cerca per ogni alias la stringa o parte della stringa digitata
		if(EfoundSignIndex.length > 0){
			var i = EfoundSignIndex[0];
			var offer = $('#speedPal').val(); var cod = $('#speedCod').val(); var cid = EclassArray[i]; var oid= EsignArray[i]; var ruleClass = ERuleClassArray[i]; var rule = ERuleArray[i]; var odd = EOddArray[i]; var mid = EManiArray[i];
			var aId = '#'+offer+cod+cid+oid;
			clickOdd($(aId), offer, cod, cid, oid, rule, odd, mid);
			$('#speedSign').val(''); $('#speedCod').val('');
			palWAIT = true;  $('#speedPal').focus();
			$('#popup').hide();
			ERuleArray = new Array(); ERuleClassArray = new Array(); EAliasArray = new Array(); EsignArray = new Array(); EclassArray = new Array(); EfoundSignValue = new Array(); EfoundSignIndex = new Array(); EOddArray = new Array(); EManiArray = new Array();
		}else{
			$('#speedSign').val(''); $('#speedSign').focus();
		}
	}
}

function writeNameData(offer, cod, toSub){
	$('#speedAutoname').remove();
	showingSpeedAutoname = false;
	$('#speedPal').val(offer);
	$('#speedCod').val(cod);
	$('#speedSign').focus();
	if (toSub) {
		$('#couponForm').submit();
	}
}

function selectText(elId, start, end){
	var el = document.getElementById(elId);
	if(el.setSelectionRange){
		el.focus();
		el.setSelectionRange(start, end);
	}else if (el.createTextRange){
		var range = el.createTextRange();
		range.collapse(true);
		range.moveEnd('character', end);
		range.moveStart('character', start);
		range.select();
	}
}


function scrollCoupon() {
	var topOffset = $(window).scrollTop();
	var topPos = $('#speedcouponcontainer').position().top + $('#speedcouponcontainer').height();
		topOffset = topOffset > topPos ? topOffset - topPos : 0;
	var myD = $('#couponcontainer').height()
	var wD = $(window).height()
	
	if (myD < wD) {
		$('#couponcontainer').css('padding-top', 10+topOffset+'px');
	} else {
		$('#couponcontainer').css('padding-top', '0px');
	}
}