
// Fix for IE's missing document.getElementById
if(document.all && !document.getElementById) {
  document.getElementById = function(id) {
    return document.all[id];
  }
}

function popupWin(url, name)
{
  winPop = window.open(url, name, "width=640,height=540,scrollbars=auto");
  winPop.focus(); // bring the pop-up window to the top of the desktop
  return false;
}

/*
function validateForm(update)
{
  var i = 0;
  if (!validEmail(update["p[email]"],"E-mail", false) ||
		!validName(update["p[firstName]"],"Förnamn", true) ||
		!validName(update["p[lastName]"],"Efternamn", true)) 
	 return false;
  if (!CheckChars(update["p[birthYear]"], "Födelseår", false, "0123456789") ||
		!CheckChars(update["p[telHome]"], "Tel. hem", false, "0123456789()-+ ") ||
		!CheckChars(update["p[telMob]"], "Mobil", false, "0123456789()-+ ") ||
		!CheckChars(update["p[telWork]"], "Tel. jobb", false, "0123456789()-+ "))
	 return false;
  if (!(update["p[birthYear]"].value.length == 0 || update["p[birthYear]"].value.length == 2 || update["p[birthYear]"].value.length == 4)) {
	 alert("Födelseår måste innehålla två (tex. 55) eller fyra siffror (tex. 1955).");
	 return false;
  }
EOD;
  if (isset($arrP)) {
	 $intGRow = 1;
	 foreach ($arrP['arrGame'] as $gId => $arrG) {
		if (strlen($arrG['dateRegistered']) < 8) {
		  $arrJavaScripts[] = '  if (!CheckRatingRow(update["g['.$gId.'][name]"], update["g['.$gId.'][rating]"], update["g['.$gId.'][club]"], update["g['.$gId.'][result]"], update["g['.$gId.'][color]"], update["g['.$gId.'][competition]"], update["g['.$gId.'][date]"], '.$intGRow.')) return false; ';
		  $intGRow += 1;
		}
	 }
	 foreach (range($arrP['gIdMax'] + 1, $arrP['gIdMax'] + 1 + INT_EMPTY_GAME_ROWS) as $gId) {
		$arrJavaScripts[] = '  if (!CheckRatingRow(update["g['.$gId.'][name]"], update["g['.$gId.'][rating]"], update["g['.$gId.'][club]"], update["g['.$gId.'][result]"], update["g['.$gId.'][color]"], update["g['.$gId.'][competition]"], update["g['.$gId.'][date]"], '.$intGRow.')) return false; ';
		$intGRow += 1;
	 }
  } else {
	 $arrJavaScripts[] = '  if (!CheckRatingField(update["ratingInitial"], "Ranking")) return false; ';
  }
  $arrJavaScripts[] = <<<EOD
  return true;
}
*/

function CheckRatingField(ratingField,ratingLabel) {
  if (!CheckChars(ratingField, ratingLabel, false, "0123456789")) {
	 return false;
  }
  if (!(ratingField.value.length >= 3 && ratingField.value.length <= 4)) {
	 alert(ratingLabel + " måste innehålla tre eller fyra siffror");
	 return false;
  }
  return true;
}

function CheckRatingRow(fName,fRating,fClub,fResult,fColor,fCompetition,fDate,intRow)
{
  if (fName.value == "" && fRating.value == "" && fClub.value == "" && fCompetition.value == "" && fDate.value == "" && fDate.value == "") {
	 return true;
  }
  //if (fName.value == "" || fRating.value == "" || (fResult.value.charAt(0) != "+" && fResult.value.charAt(0) != "-" && fResult.value.charAt(0) != "=")) {
  //alert("fResult: " + typeof(fResult) + ", fResult.value: " + fResult.value + " " +typeof(fResult.value));
  //if (fName.value == "" || fRating.value == "" || typeof(fResultValue) == "undefined") {
  if (fName.value == "" || fRating.value == "" || getButtonValue(fResult) == "") {
	 alert("Fyll i åtminstone Namn, Rating och Resultat på rad " + intRow + ", eller töm raden helt.");
	 return false;
  }
  if (!CheckRatingField(fRating, "Rating, rad " + intRow + ",")) {
	 return false;
  }
  if (!CheckChars(fDate, "Datum, rad " + intRow + " (använd formatet 040831)", false, "0123456789")) {
	 return false;
  }
  if (!(fDate.value.length == 0 || fDate.value.length == 6 || fDate.value.length == 8)) {
	 alert("Datum, rad " + intRow + ", måste innehålla sex (tex. 040831) eller åtta siffror (tex. 20040831).");
	 return false;
  }
  return true;
}

function getButtonValue(aButton) {
  var value = '';
  for (i=0; i<aButton.length; i++) {
	 if (aButton[i].checked) {
		value = aButton[i].value;
	 }
  }
  return value;
}

function isEmailAddr(email) 
{ 
  var result = false; 
  var theStr = new String(email); 
  var index = theStr.indexOf("@"); 
  if (index > 0) 
  { 
    var pindex = theStr.indexOf(".",index); 
    if ((pindex > index+1) && (theStr.length > pindex+1)) 
    result = true; 
  } 
  return result; 
}

function validRequired(formField,fieldLabel) 
{
    var result = true;
    if (formField.value == "") 
    { 
        alert('Fyll i fältet "' + fieldLabel +'".'); 
        formField.focus(); 
        result = false; 
    }     
    return result; 
} 

function validEmail(formField,fieldLabel,required) 
{
    var result = true; 
    if (formField.value=="") return result; // allow empty
    if (required && !validRequired(formField,fieldLabel)) 
        result = false; 
    if (result && ((formField.value.length < 3) || !isEmailAddr(formField.value)) ) 
    { 
        alert("Fyll i en komplett e-mailadress, tex: bengt@telia.se (eller lämna blankt)");
        formField.focus();
        result = false;
    }
  return result; 
}

function validName(formField,fieldLabel,required)
{
  var result = true;
  if (required && !validRequired(formField,fieldLabel)) 
      result = false;
  return result;
}

function CheckChars(formField,fieldLabel,required,GoodChars) {
  var valid = true;
  var i = 0;
  if (formField.value=="") {
	 if (required) {
		alert('Fältet "' + fieldLabel + '" måste fyllas i.');
		// Return false if number is empty
		return false;
	 } else {
		return true;
	 }
  } 
  for (i =0; i <= formField.value.length - 1; i++) {
	 if (GoodChars.indexOf(formField.value.charAt(i)) == -1) {
		// Note: Remove the comments from the following line to see this
		// for loop in action.
		alert('Ta bort "' + formField.value.charAt(i) + '" från fältet ' + fieldLabel);
		return false;
	 } // End if statement
  } // End for loop
  return valid;
}

function newIdShow(ix, maxIx) {
  for (var ixTemp = 0; ixTemp <= maxIx; ixTemp++) {
    if (el = document.getElementById('newId_' + ixTemp)) {
      el.style.display = 'none';
    }
  }
  el = document.getElementById('newId_' + ix);
  el.style.display = 'block';
}

function hideAllTabs(maxIx0, maxIx1) {
	var ix0 = 0;
	var ix1 = 0;
	var el;
   for (var ix0 = 0; ix0 <= maxIx0; ix0++) {
     if (el = document.getElementById('tabTitle_' + ix0)) {
       el.style.backgroundColor = '#ddd';
     }
     for (var ix1 = 0; ix1 <= maxIx1; ix1++) {
       if (el = document.getElementById('tabTitle_' + ix0 + '_' + ix1)) {
         el.style.color = '#fff';
         el.style.display = 'none';
       }
     }
   }
   ixContent = 0;
	while (el = document.getElementById('tabContent_' + ixContent++)) {
     el.style.display = 'none';
   }
}

function tabShow(ix0, ix1, ixContent, maxIx0, maxIx1) {
  var el;
  hideAllTabs(maxIx0, maxIx1);
  el = document.getElementById('tabContent_' + ixContent);
  el.style.display = 'block';
  el = document.getElementById('tabTitle_' + ix0);
  el.style.backgroundColor = '#bbb';
  for (var ixTemp1 = 0; ixTemp1 <= maxIx1; ixTemp1++) {
    if (el = document.getElementById('tabTitle_' + ix0 + '_' + ixTemp1)) {
      el.style.display = 'block';
    }
  }
  if (el = document.getElementById('tabTitle_' + ix0 + '_' + ix1)) {;
    el.style.color = '#000';
    el.style.display = 'block';
  }
}

// These two don't work...
function clearSet(f) {
  var e, i = 0;
  while (e = f.parentNode.getElementsByTagName('INPUT')[i++]) {
    if (e.type == 'text') e.value = ''; else if(e.type == 'checkbox' || e.type == 'radio') e.checked = false;
  }
  i = 0;
  while (e = f.parentNode.getElementsByTagName('SELECT')[i++]) {
    e.selectedIndex = 0;
  }
  return false;
}

function clearForm(frm) {
  var els = frm.elements;
  for(i=0; i<els.length; i++) {
    if(/radio/i.test(els[i].type) || /checkbox/i.test(els[i].type)) {
      els[i].checked = false;
    }
  }
}
