var keepOpen=false;

var sortButtonArray = new Array('0','0','0','0');
var currentSort=0;

var hitBetLines=new Array();
var hitBetTicket=null;
var hitBetList=null;

var type;
var returnInInputField=false;
var openedBetId=0;

var GAMENUMBER="N";
var GAMEDATE="D";
var EVENT="E";
var BETEVENT="BE";
var QUOTE="Q";

var BUTTON_UP=IMAGEPATH+'red_up.gif';
var BUTTON_DOWN=IMAGEPATH+'red_down.gif';
var EXCEEDED_BETCOUNT=0;
var filterCount=2;
var maxBetcount=1;

var cookieName="publicTipp3Hit";

var presetFilter=false;
function initRoundTable(type) {
	errorMessages.push('Sie haben die maximale Anzahl von<br/>'+maxBetcount+' Tipp auf dem Wettschein platziert!');
	EXCEEDED_BETCOUNT=(errorMessages.length-1);
	hitBetTicket=new BetTicketHit('hitbetticket');
	showRoundTable(type,-1);
}

function presetTipp(gameNumber,type) {
	presetFilter=true;
	showRoundTable(type,gameNumber);
	addToHitBetTicket(gameNumber);
	keepOpen=true;
	showRoundTable(type,gameNumber);
}

function showRoundTable(type,openId) {																	
	var classNumber=1;
	openedBetId=openId;
	var thisRound = round[0];	
	//----------------------------------------------------------------------------------------------------------------------------------------------
        // open=1/closed=0,gamenumber,event,enddate,endtime,liga,betevent,bettype,result,title,text,array with tipps and quotes,informationtext	
	//----------------------------------------------------------------------------------------------------------------------------------------------        
	if (hitBetList == null) {
		hitBetList = new BetHit(thisRound[0],thisRound[1],thisRound[2],thisRound[3],thisRound[4],thisRound[5],thisRound[6],thisRound[7],thisRound[8],thisRound[9],thisRound[10],thisRound[11],thisRound[12],thisRound[13],defaultBetamount,thisRound[14]);
		for (i=1; i<round.length; i++) {	
			var thisRound = round[i];
			hitBetList.addBet(new BetHit(thisRound[0],thisRound[1],thisRound[2],thisRound[3],thisRound[4],thisRound[5],thisRound[6],thisRound[7],thisRound[8],thisRound[9],thisRound[10],thisRound[11],thisRound[12],thisRound[13],defaultBetamount,thisRound[14]));		
		}	
		var cookie = true;
		if (getCookie(cookieName) == null) {
			setTicketCookie();
			cookie=false;
		} else {				
			setCookieDataToForm(hitBetList,getCookie(cookieName));	
				
		}
		if (BETSTATUS == '1') {
			deleteCookie(cookieName);
			hitBetTicket.confirmTicket=false;
		}				
		if (hitBetTicket == null) {
			hitBetTicket=new BetTicketHit('hitbetticket');
		}		
	}	
	if (hitBetTicket.bets == null && BETSTATUS != "") {		
		hitBetTicket.confirmTicket=false;
		if (BETSTATUS == '-1') {
			drawTicket(hitBetTicket.redrawTicket());
		}		
		resetSystemError();
		resetBetStatus();
		deleteCookie(cookieName);
	}
	if (hitBetTicket.bets != null && BETSTATUS != "") {
		openId=hitBetTicket.bets.getGameNumber();
		var hBet=hitBetList.getHitBetByNumber(openId);	
		hBet.opened=0;
	}
	if (presetFilter == true) {
		this.type=type;	
	} else {
	        if (document.filterform != null && document.filterform.select != null) {
			for(a=0; a<=document.filterform.select.length; a++) {
				if (document.filterform.select[a] && document.filterform.select[a].checked == true)
					this.type=document.filterform.select[a].value;
		        }
	        }

	}
	presetFilter = false;
	drawRoundTable(getCode(openedBetId));	
	if (hitBetTicket.bets != null) {	
		var con=hitBetTicket.confirmTicket;
		hitBetTicket.confirmTicket=false;
		drawTicket(hitBetTicket.redrawTicket());	
		hitBetTicket.checkTicket('1');
		hitBetTicket.confirmTicket=con;
	}
	if (BETSTATUS == '-1') {
		drawTicket(hitBetTicket.redrawTicket());
		resetSystemError();
		resetBetStatus();
	}
}

function getCode(openId) {
	return getTableStart()+hitBetList.displayAllHitBets(this.type,myLeagues,openId)+"</table>"+
		"<input type=\"hidden\" name=\"BETTYPE\" id=\"BETTYPE\" value=\"0\">"+
		"<input type=\"hidden\" name=\"BETMONEY\" id=\"BETMONEY\" value=\"2\">";
}

function setCurrentOpenBet(betNumber) {
	if (this.openedBetId == betNumber) {
		openedBetId=-1;
	} else {
		this.openedBetId = betNumber;
	}
}

function setElementById(id,value) {
	if (document.all) {
		document.getElementById(id).value = value;
	} else if (document.getElementById) {
     		document.getElementById(id).value=value;
   	} else if (document.layers) {
   		document.getElementById(id).value=table;		
   	}
}

function checkSelection(gameNumber,questionNumber,answerNumber) {
	if (errorFlags[EXCEEDED_BETCOUNT] == ERRORON) {
		errorFlags[EXCEEDED_BETCOUNT]=ERROROFF;
		eval('document.GAMES.tipp'+gameNumber+'_'+questionNumber+'_'+answerNumber+'.checked=false');
		hitBetList.selectBet(gameNumber,questionNumber,0);
	}
}

function addToHitBetTicket(gameNumber) {
	var actBet = hitBetList.getHitBetByNumber(gameNumber);
	if (actBet != null) {
		hitBetTicket.addBet(actBet);
		setCookie(cookieName,setCookieValueString(hitBetTicket.bets));
		drawTicket(hitBetTicket.redrawTicket());
		setCookieDataToForm(hitBetTicket.bets,getCookie(cookieName)); 	
	}
}

function resetSystemError() {
	SYSTEMERROR="";
	return;
}

function resetBetStatus() {
	BETSTATUS="";
	return;
}

function deleteBetFromTicket(gameNumber) {
	hitBetTicket.deleteBet(gameNumber);
	drawTicket(hitBetTicket.redrawTicket());
	setTicketCookie();
}

function removeAllBetsFromTicket() {
	var actBet = hitBetTicket.bets;
	while (actBet != null) {
		actBet.resetBet(actBet);
		hitBetList.updateHitBet(actBet);
		actBet=actBet.getNextHitBet();	
	}
	hitBetTicket.deleteAllBets();
	drawTicket('');	
	setTicketCookie();
}

function drawTicket(ticket) {
	if (document.all) 
		document.all.hitbetticket.innerHTML = ticket;
   	else if (document.getElementById)
     		document.getElementById("hitbetticket").innerHTML=ticket;
   	else if (document.layers) 
   		document.getElementById("hitbetticket").innerHTML=ticket;	
}

function drawRoundTable(table) {
	if (document.all) 
		document.all.hitbetlist.innerHTML = table;
   	else if (document.getElementById)
     		document.getElementById("hitbetlist").innerHTML=table;
   	else if (document.layers) 
   		document.getElementById("hitbetlist").innerHTML=table;	
}

function setTicketCookie() {
	var today = new Date();
	var expires = new Date(today.getTime() + (56 * 86400000));
	setCookie(cookieName,setCookieValueString(hitBetList),expires);
}

function sendTicket() {
	var elem=document.getElementById('CONFIRMBUTTON');
	elem.style.display='none';
	elem=document.getElementById('CHANGEBUTTON');
	elem.style.display='none';	
	var ticketParams=hitBetTicket.getTicketParams();	
	window.location.href=pageName+ticketParams;
	return false;
}

function trapKey(event) {
	if (!event) 
		var event = window.event;
	var pressedChar='';
	if (event.keyCode) {
		pressedChar = event.keyCode;
	} else {
		pressedChar = event.which;
	}
	if (pressedChar == 13){
   		returnInInputField=true;
   		if (event.stopPropagation) {
			event.stopPropagation();
		}
		event.returnValue=false; // (needed for IE)
	}
}

function checkOK(openId) {
	if (SYSTEMERROR == "" && BETSTATUS == "1") {	
		var myBet=hitBetTicket.bets;
		var betNumber=-1;
		if (myBet != null)
		 	betNumber = myBet.gameNumber;
		removeAllBetsFromTicket();
		deleteCookie(cookieName);
		resetBetStatus();
		resetSystemError();
		hitBetTicket.confirmTicket=false;
		hitBetTicket.betCount=0;
		if (openId >= -1) {
			drawRoundTable(getCode(openId));
		} else {
			openId=betNumber;
			drawRoundTable(getCode(openId));
		}
	}
}

function handleSelectTipp(gameNumber,questionNumber,answerNumber) {
	checkOK(gameNumber);
	eval('document.GAMES.tipp'+gameNumber+'_'+questionNumber+'_'+answerNumber+'.checked=true');
	hitBetList.selectBet(gameNumber,questionNumber,answerNumber);
	addToHitBetTicket(gameNumber);
	checkSelection(gameNumber,questionNumber,answerNumber);
}

function handleDeleteBet(betOnTicketNumber,gameNumber) {
	hitBetTicket.deleteCurrentBetMoneyFromArray(betOnTicketNumber);
	deleteBetFromTicket(gameNumber);
	var aBet=hitBetList.getHitBetByNumber(gameNumber);
	if(aBet!=null)
		 aBet.betAmount=defaultBetamount;	
	setTicketCookie();
	hitBetTicket.resetErrorFlags();
}

function handleDeleteTicket(gameNumber) {
	removeAllBetsFromTicket();
	hitBetTicket.betMoneyArray=new Array();
	this.betCount=0;
	var aBet=hitBetList.getHitBetByNumber(gameNumber);
	if(aBet!=null)
		 aBet.betAmount=defaultBetamount;		
	deleteCookie(cookieName);
	hitBetTicket.resetErrorFlags();
}

function handleChangeValue(betNumber,betId) {
	hitBetTicket.setCurrentBetMoneyFromArray(betNumber,betId);
	hitBetTicket.renewSummary();
	hitBetTicket.renewPossibleWin();
	hitBetTicket.checkTicket(betNumber);
	setTicketCookie();
}

function setSortFlag(nr) {
	if (sortButtonArray[nr] == '0')
		sortButtonArray[nr]='1';
	else
		sortButtonArray[nr]='0';
	currentSort = nr;
}

function sort(what) {
	var newArrays;
	var DIRECTION;
	if (what==GAMENUMBER) {
		DIRECTION=setButtonImage('SORTNUMBER');	
		setSortFlag(0);	
		sortIt(what,DIRECTION);								
	}	
	if (what==BETEVENT) {
		DIRECTION=setButtonImage('SORTBETEVENT');			
		setSortFlag(2);			
		sortIt(what,DIRECTION);			
	}
	if (what==GAMEDATE) {
		DIRECTION=setButtonImage('SORTDATE');						
		setSortFlag(1);			
		sortIt(what,DIRECTION);	
	}	
	
	if (what==QUOTE) {
		DIRECTION=setButtonImage('SORTQUOTE');			
		setSortFlag(3);			
		sortIt(what,DIRECTION);	
	}			
}

function sortIt(what,DIRECTION) {
	SORT=what;
	var newArrays;
	var cell = getTableStart();
	if (what == GAMENUMBER || what == GAMEDATE || what == QUOTE) {	
		newBetOrder=hitBetList.sortByValue(what,DIRECTION,null,null,null);				
	}	
	if (what == BETEVENT) {			
		newBetOrder=hitBetList.sortAlphabetic(what,1,DIRECTION,null,null);
	}	
	cell=cell+newBetOrder.displayAllHitBets(type);
	cell=cell+"</table>";
	drawRoundTable(cell);		
}

function setButtonImage(id) {
	var dir=ASCENDING;
	var img=document.getElementById(id).src;
	if (img.lastIndexOf('yellow_down.gif') > -1) {
		document.getElementById(id).src=BUTTON_UP;
		dir=ASCENDING;
	} else {
		document.getElementById(id).src=BUTTON_DOWN;
		dir=DESCENDING;		
	}
	return dir;	
}

function getButtonImage(nr) {
	var buttonImg=IMAGEPATH;
	if (currentSort == nr) {
		buttonImg+='yellow';
	} else {
		buttonImg+='red';
	}
	if (sortButtonArray[nr] == '0') {
		buttonImg+='_up.gif';
	} else {
		buttonImg+='_down.gif';
	}
	return buttonImg;
}

function  getTableStart() {
	var start='<TABLE  class="normalTextWhite" style="border-top: solid 1px #ffffff; border-left: solid 1px #8e090a; border-right: solid 1px #8e090a; border-bottom: solid 1px #8e090a;" width="589" cellSpacing="0" cellpadding="2" border="0">'+
	'	<TR height="25">'+
	'		<TD width="30" colspan="2" align="left" bgcolor="#8e090a">';
	start=start+'		<a href="javascript:void(0)" title="Sortieren nach Nummer" onClick="sort(GAMENUMBER)">Nr</a><IMG name="SORTNUMBER" id="SORTNUMBER" title="Sortieren nach Nummer" onClick="sort(GAMENUMBER)" class="sort_arrow" src="'+getButtonImage(0)+'">'+
	'		</TD>'+
	'		<TD width="50" bgcolor="#8e090a">Ereignis</TD>'+
	'		<TD width="100" bgcolor="#8e090a">';
	start=start+'		<a href="javascript:void(0)" title="Sortieren nach Annahmeschluss" onClick="sort(GAMEDATE)">Annahmeschl.</a><IMG name="SORTDATE" id="SORTDATE" title="Sortieren nach Annahmeschluss" onClick="sort(GAMEDATE)" class="sort_arrow" src="'+getButtonImage(1)+'">'+
	'		</TD>'+
	'		<TD width="315" align="left" bgcolor="#8e090a">Wettereignis</TD>'+
	'		<TD width="60" bgcolor="#8e090a">';
	start=start+'		<a href="javascript:void(0)" title="Sortieren nach Quote" onClick="sort(QUOTE)">Quote</a><IMG name="SORTQUOTE" id="SORTQUOTE" title="Sortieren nach Quote" onClick="sort(QUOTE)" class="sort_arrow" src="'+getButtonImage(3)+'">'+
	'		</TD>'+
	'		<TD width="30" bgcolor="#8e090a">';
	start=start+'		beendet'+
	'		</TD>'+
	'	</TR>';
	return start;
}

function markLine(betID) {
	var elemTR = document.getElementById("GID"+betID+"_TR");
	if (elemTR != null) {
		if (elemTR.className.indexOf("_0") > -1) {
			elemTR.className = "hit_line_marked_0 normalTextWhite";
		} else {
			elemTR.className = "hit_line_marked_1 normalTextWhite";
		}		
	}
	var elemPM = document.getElementById("GID"+betID+"_PM");
	if (elemPM != null) {
		if (elemPM.src.indexOf("minus") > -1)
			elemPM.src = IMAGEPATH+"minus_weiss.gif";
		else 
			elemPM.src = IMAGEPATH+"plus_weiss.gif";
	}
	var elemHAK = document.getElementById("GID"+betID+"_HAK");
	if (elemHAK != null) {
		if (elemHAK.src.indexOf("hackerl") > -1)
			elemHAK.src = IMAGEPATH+"hackerlweiss.gif";
	}
}

function unmarkLine(betID) {
	var unmark = true;
	var actHitBet = hitBetTicket.bets;
    while (actHitBet != null && unmark) {
		if (actHitBet.gameNumber == betID)
			unmark = false;
       	actHitBet = actHitBet.nextHitBet;
    }	
	if (unmark) {
		var elemTR = document.getElementById("GID"+betID+"_TR");
		if (elemTR.className.indexOf("_0") > -1) {
			elemTR.className = "hit_line_0 normalTextBlack";
			var elemPM = document.getElementById("GID"+betID+"_PM");
			if (elemPM != null) {
				if (elemPM.src.indexOf("minus") > -1)
					elemPM.src = IMAGEPATH+"minus.gif";
				else 
					elemPM.src = IMAGEPATH+"plus.gif";
			}
			var elemHAK = document.getElementById("GID"+betID+"_HAK");
			if (elemHAK != null) {
				if (elemHAK.src.indexOf("hackerl") > -1)
					elemHAK.src = IMAGEPATH+"hackerlschwarz.gif";
			}
		} else {
			elemTR.className = "hit_line_1 normalTextWhite";
		}		
	}
}


