function goToUrl(url) {
	location = url;
}

function button_onClick(btnId, onClick, clickBehaviour, type)
{
  var tbl = document.getElementById(btnId+"_table");
  var reenableTimeout = false;

  if (tbl.className.indexOf("_disabled") > 0)
    return;  // Already pressed

  if(clickBehaviour == "single") {
    reenableTimeout=false;
  }
  else if(clickBehaviour == "multi") {
    reenableTimeout=200;
  }
  else if(clickBehaviour == "multi_delay") {
    reenableTimeout=800;
  }

  // disable button
  if(type != "logout") {
    if (tbl.className.indexOf("_disabled") == -1)
      tbl.className += "_disabled";
  }

  eval("ret="+onClick);
  if(ret == false) {
    if(type != "logout") {
      reenableButton(btnId);
    }
    return ret;
  } else {
    if(reenableTimeout != false) {
      setTimeout("reenableButton('" +btnId + "')", reenableTimeout);
    }
  }

  return ret;
}


function disableButton(btnId)
{
  var tbl = document.getElementById(btnId+"_table");
  if (tbl) {
    if (tbl.className.indexOf("_disabled") == -1)
      tbl.className += "_disabled";
  }
}


function reenableButton(btnId)
{
  var tbl = document.getElementById(btnId+"_table");
  if (tbl) {
    if (tbl.className.indexOf("_disabled") > 0)
      tbl.className = tbl.className.substr(0,tbl.className.indexOf("_disabled"));
  }
}
function disableIframes()
{
  var iframes = document.getElementsByTagName("iframe");
  for (o=0 ; o<iframes.length ; o++) {
    iframes[o].style.visibility = "hidden";
  }
}
function enableIframes()
{
  var iframes = document.getElementsByTagName("iframe");
  for (o=0 ; o<iframes.length ; o++) {
    iframes[o].style.visibility = "visible";
  }
}


var mx, my;

function textInputOnFocus(obj,col)
{
  if (col != undefined)
    obj.style.backgroundColor=col;
  else
    obj.style.backgroundColor="#cccccc";
}
function textInputOnBlur(obj,col)
{
  if (col != undefined)
    obj.style.backgroundColor=col;
  else
  obj.style.backgroundColor="#dddddd";
}
function textInputOnFocusLogin(obj, str)
{
  if (str == obj.value)
    obj.value = "";
  obj.style.backgroundColor="#555555";
}
function textInputOnBlurLogin(obj)
{
  obj.style.backgroundColor="#333333";
}

function loginFocus()
{
  try {
    document.forms["logindata"].elements[0].focus();
  } catch(error) {}
}

function DHTMLObj(name)
{
  if (document.all)
  {
    this.obj = document.all[name];
    this.style = document.all[name].style;
  }
  else if (document.getElementById)
  {
    o = document.getElementById(name);
    this.obj = o;
    this.style = o.style;
  }
  else if (document.layers)
  {
   	this.obj = document.layers[name];
   	this.style = document.layers[name];
  }
}

function iframe_write(iframe, str)
{
	eval(iframe+"_content=str;");

	var frame = document.getElementById(iframe+"_iframe");
	if ( frame.src.indexOf("iframes/" + iframe + ".php") == -1 ) {
		frame.src = "iframes/" + iframe + ".php"
	}
}

function iframe_append(iframe, str)
{
	eval(iframe+"_content=str;");

	var frame = document.getElementById(iframe+"_iframe");
	if ( frame.src.indexOf("iframes/" + iframe + ".php") == -1 ) {
		frame.src = "iframes/" + iframe + ".php"
	}
}

var IFrameHandler = {
	loadedFrames:new Array(),
	frame_is_loaded:function(iframe){
		return IFrameHandler.loadedFrames[ iframe ] === true;
	},
	frame_onload:function(iframe){
		IFrameHandler.loadedFrames[ iframe ] = true;
	},
	get_iframe_content:function(iframe, doc) {

		var v;
		try{
			eval("v=" + iframe + "_content");
		} catch ( e ) {
			return false;
		}
		if(v == "") {
			return false;
		}

		var base = new String(document.location);

		var idx=0;
		while( (i = base.indexOf("/", idx+1)) != -1)
			idx = i;
		base = base.substring(0, base.indexOf("/", idx)+1);

		return v;
	}
}

function layer_write(layer, str)
{
  if (document.getElementById) {
    var obj = document.getElementById(layer);
    obj.innerHTML = str;
  }
  else if(document.all) {
    document.all(layer).innerHTML= str;
  }
  else if(document.layers) {
    document[layer].document.open();
    document[layer].document.write(str);
    document[layer].document.close();
  }
}

function layer_append(layer, str)
{
	if(document.all) {
    document.all(layer).innerHTML += str;
  }
  else if (navigator.userAgent.indexOf("Netscape6")>0 ||
           (document.getElementById)) {
    document.getElementById(layer).innerHTML += str;
  }
  else if(document.layers) {
//    document[layer].document.open();
    document[layer].document.write(str);
//    document[layer].document.close();
  }
}

function layer_hide(layer)
{
	if (document.layers)
    document.layers[layer].visibility = "hide";
  else if(document.all)
    document.all(layer).style.visibility = "hidden";
  else if(document.getElementById)
    document.getElementById(layer).style.visibility = "hidden";
}
function layer_show(layer)
{
  if (document.layers)
    document.layers[layer].visibility = "show";
  else if(document.all)
    document.all(layer).style.visibility = "visible";
  else if(document.getElementById)
    document.getElementById(layer).style.visibility = "visible";
}
function layer_resize(layer, height)
{
  if (document.layers) {
    document.layers[layer].height = height+"px";
  }
  else if(document.all) {
    document.all(layer).style.height = height+"px";
  }
  else if(document.getElementById) {
    document.getElementById(layer).style.height = height+"px";
    document.getElementById(layer).style.overflow = "hidden";
  }
}


/* Call from <form> tag: onSubmit='disableSubmitButton(this)' */
function disableSubmitButton(formobj)
{
  /* form.elements:
   * Retrieves a collection, in source order, of all controls in a given form.
   * input type=image objects are excluded from the collection.
   */
  for(i=0; i<formobj.elements.length; i++) {
    if(formobj.elements[i].type=="submit") {
      formobj.elements[i].disabled=true;
    }
  }
}

function enableSubmitButton(formobj)
{
  for(i=0; i<formobj.elements.length; i++) {
    if(formobj.elements[i].type=="submit") {
      formobj.elements[i].disabled=false;
    }
  }
}

function account_confirm(msg, form)
{
  try{
    ret = confirm(msg);
    if (ret)
      form.submit();
  }catch(e){
    alert(e);
  }
}

function package_confirm(msg, form)
{
  ret = confirm(msg);
  if (ret)
    form.submit();
}

function isValidHex(str)
{
  var validChars = "0123456789abcdefABCDEF";
  if (str.length != 6)
    return false;
  for (var i = 0; i < 6; i++) {
    if (validChars.indexOf(str.charAt(i)) == -1)
      return false;
  }
  return true;
}

function form_confirm(msg, form)
{
  if(confirm(msg)) {
    form.submit();
  }
}

function form_confirm_transfer(msg, form, warning)
{
  var warningValue = "";

  if (warning) {
    for(i=0; i<form.elements.length; i++) {
      if(form.elements[i].name == "explanation") {
        warningValue = form.elements[i].value;
      }
    }
  }

  if (warning && warningValue == "")
    alert(warning_confirm_message);
  else {
    if(confirm(msg))
      form.submit();
  }
}

function exchange(source_currency_id,
                  dest_currency_id,
                  amount,
                  exchange_rates)
{
  for(var i=0; i<exchange_rates.length; i++) {
    if(exchange_rates[i][0] == source_currency_id &&
       exchange_rates[i][1] == dest_currency_id) {
      val = exchange_rates[i][2] * amount;
      if(val > 0 && val < 1)
        val = 1;
      return Math.round(val);
    }
  }
  return false;
}

function exchangeCeil(source_currency_id,
                      dest_currency_id,
                      amount,
                      exchange_rates)
{
  for(var i=0; i<exchange_rates.length; i++) {
    if(exchange_rates[i][0] == source_currency_id &&
       exchange_rates[i][1] == dest_currency_id) {
      return Math.ceil(exchange_rates[i][2] * amount);
    }
  }
  return false;
}

function isInjured(layer, injurySeverity)
{
  var playerInjurySeverity = eval("pdata"+layer.substr(1, layer.length)+"[18]");

  if(injurySeverity == playerInjurySeverity)
    return true;
  else
    return false;
}

function inTrainingCamp(layer) {

	if(p_isNationalCoachPage)
    return false;

	var tcOffer = eval("pdata"+layer.substr(1, layer.length)+"[26]");
	if(tcOffer > 0)
		return true;
	return false;
}

function showWarningWindow(title, message, id)
{
  var click = "ajaxCall('ajax_com/com.php', 'val=deleteWarning&id="+id+"', 'doNothing', '');";
  str =  "<table border=0 cellpadding=0 cellspacing=0 width=200>";
  str += " <tr>";
  str += "  <td><img src=\"img/help_corner_top_left.gif\" height=5 width=5></td>";
  str += "  <td style=\"background: #000000;\"></td>";
  str += "  <td><img src=\"img/help_corner_top_right.gif\" height=5 width=5></td>";
  str += " </tr>";
  str += " <tr>";
  str += "  <td style=\"background: #000000;\"></td>";
  str += "  <td valign=top>";
  str += "   <table width=100% border=0 cellpadding=0 cellspacing=0>";
  str += "    <tr>";
  str += "     <td width=5><img src=\"img/help_header_left.gif\" width=5 height=20></td>";
  str += "     <td class=help_header_bg align=center>"+title+"</td>";
  str += "     <td width=5><img src=\"img/help_header_right.gif\" width=5 height=20></td>";
  str += "    </tr>";
  str += "   </table>";
  str += "  </td>";
  str += "  <td style=\"background: #000000;\"></td>";
  str += " </tr>";
  str += " <tr>";
  str += "  <td style=\"background: #000000;\"></td>";
  str += "  <td valign=top class=help_bg>";
  str += "   <table border=0 cellpadding=0 cellspacing=0 width=100%>";
  str += "    <tr>";
  str += "     <td colspan=3 class=help_content>"+message+"</td>";
  str += "    </tr>";
  str += "    <tr>";
  str += "     <td align=bottom><img src=\"img/help_content_bottom_left.gif\" width=5 height=27></td>";
  str += "     <td colspan=2 align=right>";
  str += "      <table border=0 cellpadding=0 cellspacing=0>";
  str += "       <tr>";
  str += "        <td><a href=\"#\" onclick=\"layer_hide('warningwindow');\"><img src=\"img/help_close_button.gif\" width=22 height=27 border=0></a></td>";
  str += "        <td class=help_close_bg><a class=\"help_link\" href=\"#\" onclick=\"layer_hide('warningwindow'); "+click+"\">"+js_translations["close"]+"</a></td>";
  str += "        <td><img src=\"img/help_close_right.gif\" width=5 height=27></td>";
  str += "       </tr>";
  str += "      </table>";
  str += "     </td>";
  str += "    </tr>";
  str += "   </table>";
  str += "  </td>";
  str += "  <td style=\"background: #000000;\"></td>";
  str += " </tr>";
  str += " <tr>";
  str += "  <td><img src=\"img/help_corner_bottom_left.gif\" height=5 width=5></td>";
  str += "  <td style=\"background: #000000;\"></td>";
  str += "  <td><img src=\"img/help_corner_bottom_right.gif\" height=5 width=5></td>";
  str += " </tr>";
  str += "</table>";

  layer_write("warningwindow", str);
  layer_show("warningwindow");
}

function sprintf()
{
  if (!arguments || arguments.length < 1 || !RegExp) {
    return;
  }
  var str = arguments[0];
  var re = /([^%]*)%('.|0|\x20)?(-)?(\d+)?(\.\d+)?(%|b|c|d|u|f|o|s|x|X)(.*)/;
  var a = b = [], numSubstitutions = 0, numMatches = 0;

	a = re.exec(str);
  while (a) {
    var leftpart = a[1], pPad = a[2], pJustify = a[3], pMinLength = a[4];
    var pPrecision = a[5], pType = a[6], rightPart = a[7]; numMatches++;

    if (pType == '%') {
      subst = '%';
    }
    else {
      numSubstitutions++;
      if (numSubstitutions >= arguments.length) {
        alert("Error! Not enough function arguments (" + (arguments.length -1) + ", excluding the string)\n" +
      "for the number of substitution parameters in string (" +numSubstitutions + " so far).");
      }

      var param = arguments[numSubstitutions];
      var pad = '';
      if (pPad && pPad.substr(0,1) == "'")
        pad = leftpart.substr(1,1);
      else if (pPad)
        pad = pPad;
      var justifyRight = true;
      if (pJustify && pJustify === "-")
        justifyRight = false;
      var minLength = -1;
      if (pMinLength)
        minLength = parseInt(pMinLength);
      var precision = -1;
      if (pPrecision && pType == 'f')
        precision = parseInt(pPrecision.substring(1));
      var subst = param;

      switch (pType) {
      case 'b':
        subst = parseInt(param).toString(2);
        break;
      case 'c':
        subst = String.fromCharCode(parseInt(param));
        break;
      case 'd':
        subst = parseInt(param) ? parseInt(param) : 0;
        break;
      case 'u':
        subst = Math.abs(param);
        break;
      case 'f':
        subst = (precision > -1) ? Math.round(parseFloat(param) * Math.pow(10, precision)) / Math.pow(10, precision) : parseFloat(param);
        break;
      case 'o':
        subst = parseInt(param).toString(8);
        break;
      case 's':
        subst = param;
        break;
      case 'x':
        subst = ('' + parseInt(param).toString(16)).toLowerCase();
        break;
      case 'X':
        subst = ('' + parseInt(param).toString(16)).toUpperCase();
        break;
      }
      var padLeft = minLength - subst.toString().length;
      if (padLeft > 0) {
        var arrTmp = new Array(padLeft+1); var padding = arrTmp.join(pad?pad:" ");
      }
      else {
        var padding = "";
      }
    }
    str = leftpart + padding + subst + rightPart;
		a = re.exec(str)
  }
  return str;
}

function closeSessionCommandWindow()
{
 	layer_hide('commandwindow');
	document.location = document.location+"&close_command_window=true";
}

function showSessionCommandWindow(message, subject, str_close, str_service_info)
{
  var str;
  str = "";
	str += "<table class=\"service_outerborder\" border=0 cellpadding=0 cellspacing=0>";
  str += " <tr>";
  str += "  <td class=\"service_colorBorder1\" valign=\"top\">";
  str += "   <table border=0 cellpadding=0 cellspacing=0>";
  str += "    <tr>";
  str += "     <td class=\"service_colorBorder2\" valign=\"top\">";
  str += "      <table border=0 cellpadding=0 cellspacing=0 class=\"service_innerBorder\">";
  str += "       <tr>";
  str += "        <td class=\"service_heading\" valign=\"center\" align=\"center\">"+subject+"</td>";
  str += "       </tr>";
  str += "       <tr>";
  str += "        <td class=\"service_bg\">"+message+"</td>";
  str += "       </tr>";
  str += "       <tr>";
  str += "        <td align=right class=\"service_bg\"><a href=\"javascript: closeSessionCommandWindow();\">"+str_close+"</a></td></tr>";
  str += "      </table>";
  str += "     </td>";
  str += "    </tr>";
  str += "   </table>";
  str += "  </td>";
  str += " </tr>";
  str += "</table>";

  layer_write("commandwindow", str);
  layer_show("commandwindow");
}

function resizeFrame(parentName, childName, offsetHeight)
{
  var isInternetExplorer = (document.all) ? true : false;
  var ns6_mozilla = (document.getElementById) ? true : false;

  //if Macintosh
  if (navigator.platform.indexOf('Mac') != -1) {
    //if Internet Explorer
    if (isInternetExplorer) {
      var parent = eval("document.all."+parentName);
      var child = eval(childName+"document.documentElement");
      offsetHeight *= 2;
      parent.height=child.offsetHeight+offsetHeight;
    }
    else if (ns6_mozilla) {
      var parent = eval("document.getElementById(\""+parentName+"\")");
      var child = eval(childName+".document.body");
      offsetHeight *= 5;
      parent.height=child.offsetHeight+offsetHeight;
    }
  }
  else {
    //if Internet Explorer
    if (isInternetExplorer) {
      var parent = eval("document.all."+parentName);
      var child = eval(childName+".document.body");
      parent.height=child.scrollHeight+offsetHeight;
      parent.scrolling="no";
    }
    //if at least Netscape 6 or Mozilla
    else if (ns6_mozilla) {
      var parent = eval("document.getElementById(\""+parentName+"\")");
      var child = eval(childName+".document.body");
      if (navigator.userAgent.indexOf('Netscape') != -1) {
        // Appearantly netscape refuse to remove scrollbars unless a new default height is set. =/
        parent.height=1;
      }
      parent.height=child.offsetHeight + offsetHeight;
      parent.scrolling="no";
      parent.scrollbars="no";
    }
  }
}

function iframeGoToPage(objectName, link)
{
  var isInternetExplorer = (document.all) ? true : false;
  var ns6_mozilla = (document.getElementById) ? true : false;
  var object;

  if (isInternetExplorer) {
    object = eval("document."+objectName);
    object.location=link;
  }
  else if (ns6_mozilla) {
    object = eval("document.getElementById(\""+objectName+"\")");
    object.src=link;
  }
}

function mouse_move(ev)
{
  if (document.all) {
    mx = window.event.clientX;
    my = window.event.clientY;
    if (document.body) {
      mx += document.body.scrollLeft;
      my += document.body.scrollTop;
    }
  }
  else if (document.layers || document.getElementById) {
    mx = ev.pageX;
    my = ev.pageY;
  }
}
if (document.all || document.getElementById) {
  document.onmousemove = mouse_move;
}
else if (document.layers) {
  window.captureEvents(Event.MOUSEMOVE);
  window.onMouseMove = mouse_move;
}
function layer_move(layer, x, y)
{
  if (document.all) {
    document.all[layer].style.pixelLeft=x;
    document.all[layer].style.pixelTop=y;
  }
  else if (document.layers) {
    document.layers[layer].left = x;
    document.layers[layer].top = y;
  }
  else if (document.getElementById) {
    document.getElementById(layer).style.left=x + 'px';
    document.getElementById(layer).style.top=y + 'px';
  }

}

function showHelpLayer(helpMsg, headStr)
{
  if (document.all || document.getElementById) {
    document.onmousemove = mouse_move;
  }
  else if (document.layers) {
    window.captureEvents(Event.MOUSEMOVE);
    window.onMouseMove = mouse_move;
  }

  str = getStandardLayerFrame("helpLayer", headStr, helpMsg);

  if ((mx-document.getElementById("contentDiv").offsetLeft) >= 560)
    layer_move("helpLayer", mx-400, my);
  else
    layer_move("helpLayer", mx, my);
  layer_write("helpLayer", str);
  layer_show("helpLayer");
}


function getStandardLayerFrame(id, header, content)
{
	str =  "<table border=0 cellpadding=0 cellspacing=0 width=400 style=\"border: 3px solid #000;\">";
  str += " <tr>";
  str += "     <td height=20 class=help_header_bg align=center><img src=\"img/help_header_left.gif\" width=5 height=20 style=\"float: left; display: block;\">"+header;
  str += " </tr>";
  str += " <tr>";
  str += "  <td valign=bottom class=help_bg width=\"100%\">";
  str += "   <table border=0 cellpadding=0 cellspacing=0 width=\"100%\">";
  str += "    <tr>";
  str += "     <td colspan=3 class=help_content>"+content+"</td>";
  str += "    </tr>";
  str += "    <tr>";
  str += "     <td valign=bottom><img src=\"img/help_content_bottom_left.gif\" width=5 height=27 style=\"display: block;\"></td>";
  str += "     <td colspan=2 align=right>";
  str += "      <table border=0 cellpadding=0 cellspacing=0>";
  str += "       <tr>";
  str += "        <td><a href=\"#\" onclick=\"layer_hide('"+id+"'); return false;\"><img src=\"img/help_close_button.gif\" width=22 height=27 border=0 style=\"display: block;\"></a></td>";
  str += "        <td class=help_close_bg><a class=\"help_link\" href=\"#\" onclick=\"layer_hide('"+id+"'); return false;\">"+js_translations["close"]+"</a></td>";
  str += "        <td><img src=\"img/help_close_right.gif\" width=5 height=27 style=\"display: block;\"></td>";
  str += "       </tr>";
  str += "      </table>";
  str += "     </td>";
  str += "    </tr>";
  str += "   </table>";
  str += "  </td>";
  str += " </tr>";
  str += "</table>";

  return str;
}
function showControlHelpLayer(helpMsg, headStr)
{
  if (document.all || document.getElementById) {
    document.onmousemove = mouse_move;
  }
  else if (document.layers) {
    window.captureEvents(Event.MOUSEMOVE);
    window.onMouseMove = mouse_move;
  }

  str =  "<table border=0 cellspacing=0 cellpadding=0 width=200>";
  str += " <tr>";
  str += "  <td valign=top><img src=\"img/trans.gif\" width=1 height=19><br><img src=\"img/help_arrow.gif\"></td>";
  str += "  <td class=\"help_frame\" valign=top><img src=\"img/trans.gif\" width=1 height=21><br><img src=\"img/help_arrow_inner.gif\"></td>";
  str += "  <td colspan=3 width=\"100%\">";
  str += "   <table border=0 cellspacing=0 cellpadding=4 width=\"100%\">";
  str += "    <tr>";
  str += "     <td class=\"help_frame\" align=\"center\">"+headStr+"</td>";
  str += "    </tr>";
  str += "    <tr>";
  str += "     <td class=\"help_bg\">"+helpMsg+"</td>";
  str += "    </tr>";
  str += "    <tr>";
  str += "     <td class=\"help_bg\" align=\"right\"><a class=\"help_link\" href=\"#\" onclick=\"layer_hide('helpLayer');\">Close</a></td>";
  str += "    </tr>";
  str += "   </table>";
  str += "  </td>";
  str += "  <td class=\"help_frame\"><img src=\"img/trans.gif\" width=2 height=1></td>";
  str += " </tr>";
  str += " <tr>";
  str += "  <td></td>";
  str += "  <td colspan=5 class=\"help_frame\"><img src=\"img/trans.gif\" height=2 width=1></td>";
   str += " </tr>";
  str += "</table>";
  layer_move("helpLayer", mx+15, my-38);
  layer_write("helpLayer", str);
  layer_show("helpLayer");
}

function printTopMenu2(shortcuts,
                       strdate,
                       date,
                       members,
                       strmembers,
                       online,
                       stronline,
                       stronlineas,
                       onlineas,
                       nextmatch,
                       partner,
                       nextMatchId,
                       sport)
{
  var i;

  // Description of shortcuts array (arg 1)
  // shortcuts[x][0]  =  page name
  // shortcuts[x][1]  =  page link
  // shortcuts[x][2]  =  localized string
  // shortcuts[x][3]  =  state

  var str = "";
  str += '<table border=0 cellpadding=0 cellspacing=0>';
  str += '    <tr> ';
  str += '     <td width=300>';
  str += '      <table border=0 cellpadding=0 cellspacing=0 width="100%">';
  str += '       <tr>';

  for(i=0; i<shortcuts.length; i++) {
    page     = shortcuts[i][0];
    link     = shortcuts[i][1];
    title    = shortcuts[i][2];
    state    = shortcuts[i][3];
    if (state == "new")
      state = "_" + state;
    str += printShortCut(page, link, title, state, partner, nextMatchId, sport);
  }

  str += '        <td><img src="img/trans.gif" border=0 height=36 width=1></td>';
  str += '       </tr>';
  str += '      </table>';
  str += '     </td>';

  // Separator..
  str += '     <td height=32 width=7><img src="img/trans.gif" height=32 width=7></td>';
  str += '     <td class=separate height=32 width=1><img src="img/trans.gif" height=32 width=1></td>';

  str += '     <td>';
  str += '      <table border=0 cellpadding=2 cellspacing=0 width=527>';
  str += '       <tr>';
  str += '        <td class=info width=1>&nbsp;</td>';
  str += '        <td class=info width=120>' + strdate + '&nbsp;<b>' + date + '</b></td>';
  str += '        <td class=info width=80><div id="clock"></div></td>';
  str += '        <td class=info width=150 align=right><nobr>' + strmembers + ' <b>' + members + '</b></nobr></td>';
  str += '        <td class=info align=right><nobr>' + stronline + ' <b>' + online + '</b></nobr></td>';
  str += '       </tr>';
  str += '      </table>';

  str += '      <table border=0 cellpadding=2 cellspacing=0 width=531>';
  str += '       <tr>';
  str += '        <td class=info width=1>&nbsp;</td>';
  str += '        <td class=orange width="100%"></nobr>' + nextmatch + '</nobr></td>';
  str += '        <td class=infobold width="100%"><nobr>' + stronlineas + '&nbsp;</nobr></td>';
  str += '        <td class=orange><nobr><b>' + onlineas + '</nobr></b></td>';
  str += '       </tr>';
  str += '      </table>';

  str += '     </td>';
  str += '    </tr>';
  str += '   </table>';

  document.write(str);
}


function printShortCut(name, url, title, state, part, nextMatchId, sport)
{
   var js = "";
   if (state == "new")
      state = "_" + state;

   if (name == "match")
     url += "&sub=result&mid="+nextMatchId;
   else if (name == "im") {
     url = "";
     js = " onclick=\"window.parent.im_openSettings(); return false;\"";
   }
   else if (name == "mail") {
     js = " onclick=\"window.open('" + url + "', 'webmail', 'width=760,height=400,titlebar=1,menubar=0,location=0,resizable=1,status=1,scrollbars=yes'); return false;\"";
     url = "";
   }
   else if(name == "friendlyseries" && state == "_new") {
     url +="&sub=list";
   }

   var str = "";
   str += '        <td align=center>';
   str += "<a href=\"" + url + "\"" + js + " class=shortcut ";
   str += " onmousedown=\"document." + name + ".src='img/" + sport + "/$iconDir";
   str += name + state + "_on.gif'\"";
   str += " onmouseout=\"document." + name + ".src='img/" + sport + "/$iconDir";
   str += name + state + "_off.gif'\"";
   str += ">";
   str += "<img name=\"" + name + "\" src=\"img/" + sport + "/$iconDir" + name;

   str += state + "_off.gif\" $iconWidth iconHeight title=\""+title+"\" alt=\""+title+"\" border=0></a>";
   str += "</td>";
   return str;
}

function bookmarkPage(url, who, desc)
{
  var ver = navigator.appName;
  var num = parseInt(navigator.appVersion);
  if ((ver == "Microsoft Internet Explorer")&&(num >= 4)) {
  	window.external.AddFavorite(url,who);
  }
  else {
   alert(desc);
  }
}

function createJSBtn(id, action, js_str, type)
{

  if (type == undefined || type == 'normal')
    type = "account";

  str = "<div id='"+id+"'>";
  str += "<table class=buttondiv border=0 cellpadding=0 cellspacing=0 id=\""+id+"_table\">";
  str += "<tr><td width=5 align=right class=\"ButtonCursor\" onMouseUp=\"javascript: "+action+"\">";
  str += "<img src=\"../img/btn/"+type+"_left.gif\" id=\""+id+"_limg\" width=6 height=24 style='display: block;'></td>";
  str += "<td onClick=\"javascript: "+action+"\" align=\"center\" valign=\"center\" class=\"button_"+type+"_middle\"><nobr>"+js_str+"</nobr></td>";
  str += "<td width=5 class=\"ButtonCursor\" onMouseUp=\"javascript: "+action+"\"',1);\">";
  str += "<img src=\"../img/btn/"+type+"_right.gif\" id=\""+id+"_rimg\" height=24 width=6 style='display: block;'></td></tr></table></div>";
  return str;
}


function setActive(name, extra_name)
{
  ajaxCall('ajax_com/com.php', 'val=setSess&extra='+name+'&extra_name='+extra_name+'&sport='+ajaxSport , 'doNothing', '');
}

function divsShowOnly(name, baseName1, ajaxSetActive)
{
  var divs = document.getElementsByTagName("DIV");
  if (typeof baseName1 == "undefined")
    baseName1 = name;
  for(i = 0; i < divs.length; i++)
  {
    div = divs[i];
    str = div.id;

    if (str.substr(0, baseName1.length) == baseName1)
    {
      if (div.id == name)
      {
        if (div.style.display == '')
        {
          if (ajaxSetActive != undefined && ajaxSetActive)
            setActive('', baseName1);
          div.style.display = 'none';
          if (document.getElementById(str+"_close_icon"))
            document.getElementById(str+"_close_icon").src = "img/window_expand.gif";
        }
        else
        {
          if (ajaxSetActive != undefined && ajaxSetActive)
            setActive(name, baseName1);
          div.style.display = '';
          if (document.getElementById(str+"_close_icon"))
            document.getElementById(str+"_close_icon").src = "img/window_minimize.gif";
        }
      }
      else
      {
        div.style.display = 'none';
        if (document.getElementById(str+"_close_icon"))
          document.getElementById(str+"_close_icon").src = "img/window_expand.gif";
      }
    }
  }

  var inputs = document.getElementsByTagName("INPUT");
  for(i = 0; i < inputs.length; i++) {
    input = inputs[i];
    str = input.id;

    if (input.id == name)
    {
      input.checked = true;
    }
    else
    {
      input.checked = false;
    }
  }

}

function showTextCnt(obj, maxlength, outid, text)
{
  var l = obj.value.length;
  if (typeof text == "undefined")
    text = "";
  document.getElementById(outid).innerHTML = (maxlength - l) +" "+ text;
  return (maxlength - l)>=0;
}


function setAllCheckboxes(form, checked)
{
  var count = form.elements.length;
  for(var i = 0; i < count; i++)
  {
    var e = form.elements[i];
    if (e.type == "checkbox")
      e.checked = checked;
  }
}


function getAllCheckboxes(form, baseName, checked)
{
//  alert(form);
  var form = document.getElementById(form);
  var ret = new Array();
  var count = form.elements.length;
  for(var i = 0; i < count; i++)
  {
    var e = form.elements[i];
    if (e.name.substr(0,baseName.length) == baseName && e.type == "checkbox" && e.checked == checked)
      ret[ret.length] = e.value;
  }
  return ret;
}


function isUnused(testVar) {
  if (typeof(testVar) === "undefined" || testVar === null || testVar === "") {
    return true;
  }
  return false;
}


function updateVariable(newVar, oldVar, defaultVar) {
  if (!isUnused(newVar)) {
    return newVar;
  }
  else if (!isUnused(oldVar)) {
    return oldVar;
  }
  else if (!(typeof(defaultVar) === "undefined")) {
    return defaultVar;
  }
  return null;
}


function ltrim(s) {
   return s.replace(/^\s+/, "");
}

function rtrim(s) {
   return s.replace(/\s+$/, "");
}

function trim(s) {
   return rtrim(ltrim(s));
}

function isSafari() {
	return navigator.userAgent.match(/safari/gi) != null && navigator.userAgent.match(/chrome/gi) == null;
}

//The purpose is to check the validity of the content of a string according
//to already setup rules for texts.
function jsCheckAttribute(strtype,str) {
  switch(strtype) {
    case 'password':
      var reg = new RegExp("^([A-Za-z0-9_@!£&?.-])+$");
     break;

    case 'username':
      var reg = new RegExp("^[a-zA-Z]([0-9a-zA-Z_-])*$");
     break;

    case 'email':
      var reg = new RegExp("^[a-zA-Z0-9]+[a-zA-Z0-9_.-]*@([a-zA-Z0-9]+([.-][.a-zA-Z0-9]+)*)[.][a-zA-Z]{2,4}$");
     break;

    default:
      return false;
     break;
  }

  if(str.match(reg))
    return true;
  else
    return false
}

// Verify string as a valid email address
function verifyEmail(email) {
	var pattern = /^([a-zA-Z0-9_\-]+)((\.{1,1}[a-zA-Z0-9_\-]+)*|([a-zA-Z0-9_\-]*))@(([a-zA-Z0-9]+(\-*[a-zA-Z0-9]+)*\.)+)([a-zA-Z]{2,4})$/;
	return pattern.test(email);
}

$(function(){
	$(".mz_button").live("mouseover",
		function(){
			var cssParams = {backgroundPosition: 'bottom left'};
			$(this).css(cssParams).find(".button_middle, .button_expand").css(cssParams);
			$(this).find(".button_right").css({backgroundPosition: 'bottom right'});
		}
	);
	$(".mz_button").live("mouseout",
		function(){
			var cssParams = {backgroundPosition: 'top left'};
			$(this).css(cssParams).find(".button_middle, .button_expand").css(cssParams);
			$(this).find(".button_right").css({backgroundPosition: 'top right'});
		}
	);
});


function subnav_open() {
	subnav_canceltimer();
	subnav_close();
	$('.topnav li a.hover').removeClass('hover');
	$(this).find('a').addClass('hover');
	$(this).find('a.selected').removeClass('hover');

	var subid = '#' + $(this).attr('id') + '_sub';
	$('#menuDiv ul.subnav').css('display', 'none');
	$(subid).css('display', '');
}

function subnav_close() {
	$('#menuDiv ul.subnav').css('display', 'none');
	$('#menuDiv ul.selected').css('display', '');
	$('.topnav li a.hover').removeClass('hover');
}

function subnav_timer() {
	var timeout = 200;
	subnav_canceltimer();
	closetimer = window.setTimeout(subnav_close, timeout);
}

function subnav_canceltimer() {
	if (typeof(closetimer) != 'undefined') {
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}

var Competition = new function() {
	this.add_invitation = function(a, refId, refType) {
		var okToAdd = true;
		$('#competition_invitations > tbody > tr').each(function(index) {
			var tmp = $(this).attr("id").split(':');
			if (refType == tmp[0] && refId == tmp[1]) { // already exists, skip
				okToAdd = false;
			}
		});
		
		if (!okToAdd) {
			switch (refType) {
				case 'team':
					alert(strTeamAlreadyInvited);
					break;
				case 'division':
					alert(strDivisionAlreadyInvited);
					break;
				case 'country':
					alert(strCountryAlreadyInvited);
					break;
				default:
					alert(refType + ' already invited');
					break; 
			}
			return;
		}
		
		var clone = a.closest('tr').clone();
		clone.attr('id', clone.attr('id') + ':invited');
		html = clone.wrap("<div>").parent().html();
		
		html = html.replace(new RegExp('add_one.png', 'g'), 'remove_one.png');
		html = html.replace(new RegExp('add_invitation', 'g'), 'delete_invitation');
		
		a.closest('tr').remove();
		$('#competition_invitations_body').append(html);
		$('#competition_count_invited').text(parseInt($('#competition_count_invited').text()) + 1);
		
		$('.tablesorter').trigger('update');
		$('.tablesorter').trigger('applyWidgets');
	}
	
	this.add_invitations = function() {
		var alreadyAdded = new Array();
		$('#competition_invitations > tbody > tr').each(function(index) {
			var tmp = $(this).attr('id').split(':');
			alreadyAdded.push(tmp[0] + ':' + tmp[1]);
		});
		
		var html = '';
		var numAdded = 0;
		$('#competition_search_results > tbody > tr').each(function(index) {
			if ($.inArray($(this).attr('id'), alreadyAdded) == -1) {
				var clone = $(this).clone();
				clone.attr('id', clone.attr('id') + ':invited');
				html += clone.wrap("<div>").parent().html();
				numAdded++;
			}
		});
		
		html = html.replace(new RegExp('add_one.png', 'g'), 'remove_one.png');
		html = html.replace(new RegExp('add_invitation', 'g'), 'delete_invitation');
		
		$('#competition_search_results').find('tr:gt(0)').remove();
		$('#competition_invitations_body').append(html);
		$('#competition_count_invited').text(parseInt($('#competition_count_invited').text()) + numAdded);
		
		$('.tablesorter').trigger('update');
		$('.tablesorter').trigger('applyWidgets');
	}
	
	this.delete_all = function() {
		var toDelete = new Array();
		var teamIds = "";
		$("#competition_invitations > tbody > tr").each(function(index) {
			var tmp = $(this).attr("id").split(":");
			if (tmp[2] == "invited")
				toDelete.push($(this));
		});
		
		for (var i = 0; i < toDelete.length; i++) {
			toDelete[i].closest('tr').remove();
		}
		
		var numInvited = parseInt($('#competition_count_invited').text()) - toDelete.length;
		if (numInvited < 0)
			numInvited = 0;
		$('#competition_count_invited').text(numInvited);
		
		$('.tablesorter').trigger('update');
		$('.tablesorter').trigger('applyWidgets');
		onSubmitSearchForm();
	};
	
	this.delete_invitation = function(a) {
		a.closest('tr').remove();
		
		var numInvited = parseInt($('#competition_count_invited').text()) - 1;
		if (numInvited < 0) {
			numInvited = 0;
		}
		
		$('#competition_count_invited').text(numInvited);
		
		$('.tablesorter').trigger('update');
		$('.tablesorter').trigger('applyWidgets');
		
		if ($('#competition_search_where').val() == 0) {
			onSubmitSearchForm();
		}
	};
	
	this.search = function() {
		var searchstr = $.trim($('#competition_search_searchstr').val());
		var where = $('#competition_search_where').val();
		
		if ((where == 1 || where == 2) && searchstr.length == 0) {
			return;
		}
		
		$('#competition_search_searchstr').val('');
		$('#competition_search_results_container').html(strAjaxLoadingWait);
		
		var existing = "";
		$("#competition_invitations > tbody > tr").each(function(index) {
			var tmp = $(this).attr("id").split(":");
			if (tmp[0] == 'team') {
				existing += tmp[1] + ",";
			}
		});
		existing = existing.substring(0, existing.length - 1);
		
		$.ajax({
			type: 'POST',
			url: 'ajax_com/competition.php?val=search',
			success: function(res) {
				$('#competition_search_results_container').html(res);
			},
			data: { where: where, searchstr: searchstr, existing: existing }
		});
	}
};

var Tactics = new function() {

		this.add_tooltip = function(sport, season) {
				$('.ui-tooltip').hoverIntent(
						function(e) {
								showTacticBoxPlayerInfo(e, $(this), sport, season);
						},
						function() {
								hideTacticBoxPlayerInfo($(this));
						}
				);
		}
};

var cachedPlayerInfo = new Array();
function showTacticBoxPlayerInfo(mouseEvent, obj, sport, season) {
	position = obj.position();
	if (position.top == 0  && position.left == 0)
		return; // The object has been removed from the page
	
	var objId = obj.attr("id").replace("n_", "p_");
	var arr = objId.split("_");
	var playerId = arr[arr.length-1];
	obj.attr("id", objId);
	obj.addClass("highlighted");
	
	// Use synchronous call, so the code will "pause" while the data is being fetched
	if (cachedPlayerInfo["id_" + playerId] == undefined) {
		$.ajax({
			url:     'tooltip.php?sport='+sport+'&get=player&id=' + playerId + '&season='+season,
			method:  'get',
			async:   false,
			success: function(playerInfo) { cachedPlayerInfo["id_" + playerId] = playerInfo; }
		});
	}
	
	if (typeof cachedPlayerInfo["id_" + playerId] != 'undefined') {
		tooltip = $(document.createElement('div'))
			.addClass('tooltip')
			.html(cachedPlayerInfo["id_" + playerId])
			.css({'z-index': 100, 'position': 'absolute'})
			.appendTo('body');
		
		var tooltipWidth = tooltip.outerWidth(true);
		var tooltipHeight = tooltip.outerHeight(true);
		
		if (mouseEvent.pageX + tooltipWidth + 10 <= $(window).width())
			tooltip.css('left', mouseEvent.pageX + 10 + 'px');
		else
			tooltip.css('left', mouseEvent.pageX - (tooltipWidth + 10) + 'px');
		
		if (mouseEvent.pageY + tooltipHeight <= $(window).height())
			tooltip.css('top', mouseEvent.pageY + 'px');
		else
			tooltip.css('top', mouseEvent.pageY - tooltipHeight + 'px');
	}
}

function hideTacticBoxPlayerInfo(obj) {
  $("body > .tooltip").remove();
  objId = obj.attr("id").replace("p_", "n_");
  obj.attr("id", objId);
  obj.removeClass("highlighted");
}

var AgeSlider = new function() {
	this.onChanged = function(min, max, min_age, max_age, disabled) {
		$('#age_slider').slider('option', 'disabled', disabled);

		if (min_age == false)
			min_age = min;
		if (max_age == false)
			max_age = max;

		$('#age_slider').slider('option', 'values', [min_age, max_age]);
		if (min_age == min)
			$("#age_min").html('&nbsp;');
		if (max_age == max)
			$("#age_max").html('&nbsp;');

		if (min_age != min)
		  $('#age_min').html('<strong>' + strOver + ' ' + min_age + '</strong>');
		if (max_age != max)
		  $('#age_max').html('<strong>' + strUnder + ' ' + max_age + '</strong>');

 		if ($('#birthseason_desc').length) {
 		    var html = '';
		    if (min_age == 15 && max_age == 38)
 			html = strAny;
		    else if (min_age == 15) {
			html = strXOrLater;
			html = html.replace('{X}', curSeason - max_age);
		    }
		    else if (max_age == 38) {
			html = strXOrEarlier;
			html = html.replace('{X}', curSeason - min_age);
		    }
		    else {
			html = strBetweenXAndY;
			html = html.replace('{X}', curSeason - max_age);
			html = html.replace('{Y}', curSeason - min_age);
		    }
		    $('#birthseason_desc').html(html);
 		}
	}
};

function htmlspecialchars(str) {
	str = str.replace('&', '&amp;');
	str = str.replace('"', '&quot;');
	str = str.replace("'", '&#039;');
	str = str.replace('<', '&lt;');
	str = str.replace('>', '&gt;');
	return str;
}

function setDefaultTactic(checkbox, refType, refId) {
	if (checkbox.is(':checked')) {
		var setTactic = $('#' + checkbox.val()).val();

		// find all matches of same refType + refId and set tactic to : setTactic

		$('select').each(function() {
			var arr = $(this).attr('name').split(':');
			var curRefType = arr[3];
			var curRefId = arr[4];
			if (refType == curRefType && refId == curRefId && $(this).val() != setTactic) {
				$(this).css({opacity:0 });
				$(this).val(setTactic);
				$(this).animate({opacity:1 }, 1000);
			}
		});
		$('input:checkbox').each(function() {
			var arr = $(this).attr('name').split(':');
			var curRefType = arr[3];
			var curRefId = arr[4];
			if (refType == curRefType && refId == curRefId && $(this).val() != checkbox.val())
				$(this).attr('checked', false);
		});
	}
}

function saveMatchList() {
	$('select :selected').each(function() {
		if ($(this).is(':disabled')) {
			var arr = $(this).attr('name').split(':');
			$('#cb_' + arr[1]).attr('checked', true);
			$(this).parent().val('a');
		}
	});

	$('#saveMatchTactics').submit();
}

