// JavaScript Document
var loginShowed = false;
function toggleLogin() {
	if (loginShowed) $("#logInPanel").fadeOut("fast");
	else	$("#logInPanel").fadeIn("fast");
	loginShowed = !loginShowed;
}


var seasonShowed = false;
function toggleSeason() {
	if (seasonShowed) $("#seasonPanel").fadeOut("fast");
	else	$("#seasonPanel").fadeIn("fast");
	seasonShowed = !seasonShowed;
}


function openEdit() {

	$("#edit").slideDown("slow");

}

function doLogin() {
	document.forms["login"].submit();	
}

function doubleCheck(txt,url) {
	if (confirm(txt)) document.location = url;	
}


function half(t) {
	
	if (t == 0.5) t = "&frac12;";
	else t = t.toString().split(".5").join("&frac12;");

	return t;
}


function concedeMatch(team) {
	
	var confirmed=false;
	
	if (confirm("Are you sure this match is to be conceded by\n" + $("#" + card + " .field_T"+team).html() + "?")) confirmed=true;
	
	if (confirmed) {
		
		if (team=="H") {
			$(".score.HS").val("0")
			$(".score.AS").val("21")
		}
		else {
			$(".score.HS").val("21")
			$(".score.AS").val("0")
		}
		
		$(".player option").each(function() {
			if ($(this).attr("value")=="-1") 	$(this).attr("selected","selected");							  
		});
		
		var games = match[11];
		
		var frm = document.forms[card+"-form"];
		
		frm.conceded.value=team;

		calculateCard()
	}

}



// adding players  popup
var playerSelected;
	function addNewPlayer(gender,club,locked) {

	var newPlayerWin = window.open('../match/addNewPlayer.asp?club='+club+'&gender='+gender+'&locked='+locked, 'addNewPlayerWindow', 'width=650, height=300, top=50, directories=no, location=no,  menubar=no, resizable=no, scrollbars=0, status=yes, toolbar=no'); 
	newPlayerWin.focus();

}
	
	
	
	
function calculateCard() {

	var fmt = match[2];
	var rubbers = match[10];
	var games = match[11];
	var players = match[5];
		
	var d=fmt+"\n";
	var msg="";

	var tgh=0; var tga=0;
	var trh=0; var tra=0;
	var t_err = false;

	var home_players = "";
	var away_players = "";
	
	for (p=1;p<=players;p++) {
		var pf = $("#" + card + " .player[name='P"+p+"H']");
		if ((home_players.indexOf("["+pf.val()+"]")>-1) && (pf.val()!="-1")) {
			pf.addClass("err");
			t_err = true;
		}
		else {
			pf.removeClass("err");
			home_players+="["+pf.val()+"]";
		}
		var pf = $("#" + card + " .player[name='P"+p+"A']");
		if ((away_players.indexOf("["+pf.val()+"]")>-1) && (pf.val()!="-1")) {
			pf.addClass("err");
			t_err = true;
		}
		else {
			pf.removeClass("err");
			away_players+="["+pf.val()+"]";
		}
	}
	
	for (r=1;r<=rubbers;r++) {
		var gh=0; var ga=0;
		var rh=0; var ra=0;
		var r_err=false;
		for (g=1;g<=games;g++) {
			var ah = Math.floor($("#" + card + " .score[name='A" + r + g + "H']").val());
			var aa = Math.floor($("#" + card + " .score[name='A" + r + g + "A']").val());
			if (aa=="") aa=0; if (ah=="") ah=0;
			if (ah>aa) gh+=1;
			else if (aa>ah) ga+=1;
			
			var err=false;
			

			if (aa==ah) {
				if ((fmt==2) && (aa==0) && (g==games)) {
					//last game of best to three can be 0-0
				}
				else err=true;
				
			}
			else if ((ah<21) && (aa<21)) err=true;
			else if ((ah>30) || (aa>30)) err=true;

			if (err) {
				r_err = true;
				$("#" + card + " .score[name='A" + r + g + "H']").addClass("err");
				$("#" + card + " .score[name='A" + r + g + "A']").addClass("err");
			} else {
				$("#" + card + " .score[name='A" + r + g + "H']").removeClass("err");
				$("#" + card + " .score[name='A" + r + g + "A']").removeClass("err");
			}
		}
		
		if (!r_err) {
		
			if (gh>ga) rh=1;
			else if (ga>gh) ra=1;
			else {rh=0.5;ra=0.5}
		
			$("#" + card + " .field_G"+r+"H").html(gh);
			$("#" + card + " .field_G"+r+"A").html(ga);
			$("#" + card + " .field_R"+r+"H").html(rh);
			$("#" + card + " .field_R"+r+"A").html(ra);

			tgh+=gh; tga+=ga; trh+=rh; tra+=ra;
			
		}
		else {
			$("#" + card + " .field_G"+r+"H").html("");
			$("#" + card + " .field_G"+r+"A").html("");
			$("#" + card + " .field_R"+r+"H").html("");
			$("#" + card + " .field_R"+r+"A").html("");
		}

		if (r_err) t_err=true;

	}

	if (fmt==2) FMT2Summary(card);

	//same for both formats
	$("#" + card + " .field_TGH").html(tgh);
	$("#" + card + " .field_TGA").html(tga);
	$("#" + card + " .field_TRH").html(trh);
	$("#" + card + " .field_TRA").html(tra);
	
	var frm = document.forms[card+"-form"];
	
	
	
	frm.match.value=match[1];
	frm.hometeam.value=match[12];
	frm.awayteam.value=match[13];
	frm.rubbers.value=rubbers;
	frm.games.value=games;
	frm.players.value=match[5];
	

	 var dt = $("#" + card + " input.date").val();
	 if (isDate(dt))  $("#" + card + " input.date").removeClass("err");
	 else {
		 $("#" + card + " input.date").addClass("err");
		 t_err=true;
		 alert("Please enter date in the format: dd/mm/yyyy")
	 }
	var tm = $("#" + card + " input.time").val(); 
	if (isTime(tm)) {
		$("#" + card + " input.time").removeClass("err");
		
	}
	else {
		$("#" + card + " input.time").addClass("err");
		t_err=true;
		alert("Please enter time in the format: hh:mm")
	}
	if (!t_err)	{
		if (confirm("card ok - submit?")) frm.submit();
	}

}
 


function changeDate(dt,tm,id) {
	
	if (confirm("CHANGE THE DATE OF THIS MATCH\n\nClick OK if you know the new date and time of this match")) {
		
		var dt2 = prompt("Enter new date in the format dd/mm/yyyy",dt);
		var tm2 = prompt("Enter new time in the format hh:mm",tm);
		
		if (isDate(dt2) && isTime(tm2)) {
			if (confirm("Change date of this match to: " + dt2 + " " + tm2 + "?")) {
				document.location = "?changedate=1&date=" + dt2+"&time="+tm2+"&match=" + id;	
			}
		}
	}
	else {
		if (confirm("Click OK to label this match as POSTPONED")) {
			document.location = "?changedate=2&match=" + id;	
		}
	}

}


function FMT2Summary(card) {
	row1H = Math.floor($("#" + card + " .field_G1H").html()) + Math.floor($("#" + card + " .field_G9H").html()) + Math.floor($("#" + card + " .field_G5H").html());
	row2H = Math.floor($("#" + card + " .field_G4H").html()) + Math.floor($("#" + card + " .field_G2H").html()) + Math.floor($("#" + card + " .field_G7H").html());
	row3H = Math.floor($("#" + card + " .field_G8H").html()) + Math.floor($("#" + card + " .field_G6H").html()) + Math.floor($("#" + card + " .field_G3H").html());
	row1A = Math.floor($("#" + card + " .field_G1A").html()) + Math.floor($("#" + card + " .field_G9A").html()) + Math.floor($("#" + card + " .field_G5A").html());
	row2A = Math.floor($("#" + card + " .field_G4A").html()) + Math.floor($("#" + card + " .field_G2A").html()) + Math.floor($("#" + card + " .field_G7A").html());
	row3A = Math.floor($("#" + card + " .field_G8A").html()) + Math.floor($("#" + card + " .field_G6A").html()) + Math.floor($("#" + card + " .field_G3A").html());
	
	$("#" + card + " .field_G9H").html(row1H);
	$("#" + card + " .field_G9A").html(row1A);
	$("#" + card + " .field_G2H").html(row2H);
	$("#" + card + " .field_G2A").html(row2A);
	$("#" + card + " .field_G6H").html(row3H);
	$("#" + card + " .field_G6A").html(row3A);
	
	row1H = Math.floor($("#" + card + " .field_R1H").html()) + Math.floor($("#" + card + " .field_R9H").html()) + Math.floor($("#" + card + " .field_R5H").html());
	row2H = Math.floor($("#" + card + " .field_R4H").html()) + Math.floor($("#" + card + " .field_R2H").html()) + Math.floor($("#" + card + " .field_R7H").html());
	row3H = Math.floor($("#" + card + " .field_R8H").html()) + Math.floor($("#" + card + " .field_R6H").html()) + Math.floor($("#" + card + " .field_R3H").html());
	row1A = Math.floor($("#" + card + " .field_R1A").html()) + Math.floor($("#" + card + " .field_R9A").html()) + Math.floor($("#" + card + " .field_R5A").html());
	row2A = Math.floor($("#" + card + " .field_R4A").html()) + Math.floor($("#" + card + " .field_R2A").html()) + Math.floor($("#" + card + " .field_R7A").html());
	row3A = Math.floor($("#" + card + " .field_R8A").html()) + Math.floor($("#" + card + " .field_R6A").html()) + Math.floor($("#" + card + " .field_R3A").html());
	
	$("#" + card + " .field_R9H").html(row1H);
	$("#" + card + " .field_R9A").html(row1A);
	$("#" + card + " .field_R2H").html(row2H);
	$("#" + card + " .field_R2A").html(row2A);
	$("#" + card + " .field_R6H").html(row3H);
	$("#" + card + " .field_R6A").html(row3A);
	
	$("#" + card + " .field_G1H").hide();
	$("#" + card + " .field_G1A").hide();
	$("#" + card + " .field_G5H").hide();
	$("#" + card + " .field_G5A").hide();
	$("#" + card + " .field_G4H").hide();
	$("#" + card + " .field_G4A").hide();
	$("#" + card + " .field_G7H").hide();
	$("#" + card + " .field_G7A").hide();
	$("#" + card + " .field_G8H").hide();
	$("#" + card + " .field_G8A").hide();
	$("#" + card + " .field_G3H").hide();
	$("#" + card + " .field_G3A").hide();
	$("#" + card + " .field_R1H").hide();
	$("#" + card + " .field_R1A").hide();
	$("#" + card + " .field_R5H").hide();
	$("#" + card + " .field_R5A").hide();
	$("#" + card + " .field_R4H").hide();
	$("#" + card + " .field_R4A").hide();
	$("#" + card + " .field_R7H").hide();
	$("#" + card + " .field_R7A").hide();
	$("#" + card + " .field_R8H").hide();
	$("#" + card + " .field_R8A").hide();
	$("#" + card + " .field_R3H").hide();
	$("#" + card + " .field_R3A").hide();
}


















/**
 * DHTML date validation script. Courtesy of SmartWebby.com (http://www.smartwebby.com/dhtml/)
 */
// Declaring valid date character, minimum year and maximum year
var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}


function isTime(tm) {
	tm = tm.split(":");
	if ((Number(tm[0])>=0) && (Number(tm[0])<24) && (Number(tm[1])>=0) && (Number(tm[1])<60)) return true
	else return false
}

function isDate(dtStr){
	var daysInMonth = DaysArray(12)
	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strDay=dtStr.substring(0,pos1)
	var strMonth=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)
	strYr=strYear
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1)
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1)
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYr)
	if (pos1==-1 || pos2==-1){
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		return false
	}
return true
}


