var imsportz = new Object();

function mask(e, str,textbox,loc,delim){
    var len=str.length;
    var checkdate;
    if (len==10) {
       checkdate=checkDate(str);
	if (!checkdate) {textbox.value=''; return;}
    }
    var keyCode = e.keyCode;
    var isNumeric=(keyCode >= 48 && keyCode <= 57) || (keyCode >= 96  && keyCode <= 105);
    var isdelimiter =  (keyCode==191);
    if (!(isNumeric || isdelimiter)) {textbox.value=str.substring(0,len-1);return;}

    var locs = loc.split(','); 

    for (var i = 0; i <= locs.length; i++){
	for (var k = 0; k <= str.length; k++){
	    if (str.substring(k,k+1).match(/^\d+$/) && str.substring(k, k+1) && str.substring(k, k+1)!='/') {
	    if (k == locs[i]){
		if (str.substring(k, k+1) != delim){
                      str = str.substring(0,k) + delim + str.substring(k,str.length)
                 }//if !=delim
         }//if k==locs[i]
     }//if a digit and not blank and not a '/'
   }
}
    textbox.value = str;
}

function checkDate(str) {
    var d = new Date();
    var curr_year = d.getFullYear();
    var dmy = str.split('/');
    if (dmy[0]<1 || dmy[0]>12)  return false;
    if (dmy[1]<1 || dmy[1]>31) return false;
    if (dmy[2]<1900 || dmy[2]>curr_year) return false;
    return true;
}

function setTargetAndIframe(iframename, formname) {
//use this function to dynamically create the iframe and set the form target so the back button on the browser works.
//allowtransparency="true" background-color="transparent"
            var frameId = iframename;

//        if (document.getElementById(frameId)) document.getElementById(frameId).remove();

            var iframe = document.createElement("iframe");
            var form = document.getElementById(formname);
            form.target='';

            var dim = GetTopLeft(document.getElementById('submitbutton'));
            var top = dim.Top + 25;
            var left = dim.Left;

            iframe.id = frameId;
            iframe.name = frameId;
iframe.setAttribute("id", frameId);
iframe.setAttribute("name", frameId);
            iframe.style.position = 'absolute';
            iframe.style.width = '500px';
            iframe.style.height = '25px';
            iframe.style.border = '0px';
            iframe.style.top = top + "px"; //'-1000px';
            iframe.style.left = left + "px"; //'-1000px';
iframe.src = '';
            document.body.appendChild(iframe);
         
          form.target=frameId;
//history.go(1);

            form.submit();
// if (document.getElementById(frameId)) document.getElementById(frameId).remove();

}

function checkForgotPasswordEmail() {
  if (!document.getElementById('entry').value)
     {alert("Please enter an email address");return;}
  if (document.getElementById('entry').value)
     var res = checkemailtext('entry','Please enter a valid email address');

  if (res)  {alert(res); return;}

  document.getElementById('forgotpassword').submit();

}


function selectAll()
{
        var numelem=document.getElementById('num_imports');
        var len = numelem.value;
        for(var i=0;i<len;i++)
        {
           var elem = document.getElementById('load:' + i);
           elem.checked = true;
        }
}

function clearAll()
{
        var numelem=document.getElementById('num_imports');
        var len = numelem.value;
        for(var i=0;i<len;i++)
        {
           var elem = document.getElementById('load:' + i);
           elem.checked = false;
        }
}


function login () {
	var elem = document.getElementById("loginform");		
	var disp = ("disp type","block");
	if (elem) elem.style.display = disp;
	var useridid = document.getElementById("useridid");
	if (useridid) useridid.focus();
		
}

function showSportArea(type) {
  if (type==1)
{
    document.getElementById('sportarea').style.display='none';
    document.getElementById('sport').value='';
}
if (type==2)
{
    document.getElementById('sportarea').style.display='block';
}
}

function removeTeamFromLeagueAdmin() {
    var team = getSelectValue('manageleague-manageLeagueTeams-id');
    var league = getValue('removeleague');
    asyncreq('/TEAMSPGMS/removeTeamFromLeague.php?js=1&league=' + league + '&team=' + team, updateRemoveTeam);
}

function updateRemoveTeam(response) {
    if (response == 'removed') {
        removeSelected('manageleague-manageLeagueTeams-id');
    }
    var removeTeam = document.getElementById('removeteam-id');
    var removeLeague = document.getElementById('removeleaguebutton-id');
    if (getNumberInSelect('manageleague-manageLeagueTeams-id')) {
        removeLeague.disabled = true;
        removeTeam.disabled   = false;
    }
    else {
        removeLeague.disabled = false;
        removeTeam.disabled   = true;
    }

}

function downloadRosterExcel(team) {
    asyncreq('/TEAMSPGMS/downloadexcelteam.php?team=' + team);
}


function checkRosterEditForm()
{
  var fname = document.getElementById('efname');
  var lname = document.getElementById('elname');
  var email = document.getElementById('eemail');
  var pemail1 = document.getElementById('eparent_email');
  var pemail2 = document.getElementById('eparent_email2');

  if (!fname.value)
      {alert("You must enter a first name"); return;}
  if (!lname.value)
      {alert("You must enter a last name"); return;}
  if (email.value)
     var res = checkemailtext('eemail','Please enter a valid email address');
  if (pemail1.value)
     var res = checkemailtext('eparent_email','Please enter a valid email address');
  if (pemail2.value)
     var res = checkemailtext('eparent_email2','Please enter a valid email address');

  if (res)  {alert(res); return;}
  document.getElementById('erosterform').submit();

}

function unlinkRosterMember(member)
{
   var url = "/TEAMSPGMS/unlinkRosterProfile.php?pkey=" + member;
   var c = confirm("This roster player is linked to an imsportz member's profile. Are you sure you want to unlink this player from that profile page? The entry will still appear in the roster but you will not be able to click through to that member's profile on imsportz from this roster.");

   if (c == true)
    {
    window.location=url;
    }
   else
    {
    return;
    }
}



function forgotpassword () {
        var elem = document.getElementById("forgot_password_form");
        var disp = ("disp type","block");
	if (elem) elem.style.display = disp;
        var useridid = document.getElementById("emailaddress");
        if (useridid) useridid.focus();

}

function checkforgotpasswordform() {
        var elemlogin = document.getElementById("userlogin");
        var elememail = document.getElementById("emailaddress");

        if (elemlogin.value == "")
        {
            var res = checkemailtext('emailaddress','Please enter a valid email address');
            if (res)
            { 
              document.getElementById('emailstrresponse').innerHTML=res;
              return;
            }
        }
        document.getElementById('forgotpassword').submit();
}


function accountoptionemail()
{
       var msgelem = document.getElementById('emailstrresponse');
       var res1 = checkemailtext('newemailaddress','Please enter a valid email address');
       var res2 = checkemailtext('repeatnewemailaddress','Please enter a valid email address');
       if (res1 || res2) 
           msgelem.innerHTML='Please enter valid email addresses.';
       else 
       {
          if (document.getElementById('newemailaddress').value != document.getElementById('repeatnewemailaddress').value)
          {
             msgelem.innerHTML = 'New email and repeat email do not match.';
             return;
          }
          document.getElementById('changeemail').value='true';
          document.getElementById('accountoptions').submit();
       }
}

function accountoptionpassword()
{
    var msgelem = document.getElementById('passwordstrresponse');
    if ((!document.getElementById('password').value)||(!document.getElementById('newpassword').value)||(!document.getElementById('repeatnewpassword').value)) {
        msgelem.innerHTML='Please fill in all three password fields.';
        return;
    }
    else       {
        if (document.getElementById('newpassword').value != document.getElementById('repeatnewpassword').value)           {
            msgelem.innerHTML = 'New password and repeat password do not match.';
            return;
        }
        document.getElementById('changepassword').value='true';
        document.getElementById('accountoptions').submit();
    }
}

//For campaigncircus
function maketagsfromlist(/*teamselem,*/tagselem,full_upload_tagselem)
{
 //  var list1 = document.getElementById(teamselem);
   var tags = document.getElementById(tagselem).value;
   var fulltags = document.getElementById(full_upload_tagselem);/*

   var indexes1 = new Array();
   for (var i = 0; i < list1.options.length; i++) 
   {
       if (list1.options[i].selected) 
          indexes1.push(list1.options[i].text);
   }

   fulltags.value = indexes1 + "|" +  tags;
*/
   fulltags.value = tags;
}


//for campaign circus
function summarizesubscription()
{
      var str = document.getElementById('full_keywords').value;
      var arrs = str.split("|");
      var summary = "Candidates: " + arrs[0] + " <br />Issues: " + arrs[1] + "<br />Keywords: " + arrs[2] + "<br />";
      document.getElementById('summary').innerHTML = summary;
}

function askToDeleteRoster(e) {
    var event = e || window.event;
    var value = confirm('You are about to delete this roster entry.  Are you sure you want to do this?');
    if (!value) {
        event.preventDefault();
        return false;
    }
    return true;
}


function checkvideoname() {
   //   var filename = document.getElementById('userfile').value;

      var filename = document.getElementById('my_file_element').value;

      var allowed = new Array("flv", "wmv", "mov","mpg", "mpeg", "avi", "fli", "flc", "xvid", "ogg", "DivX3", "DivX4", "DivX5", "3GP");
 
      if (filename.length == 0)
      {
         alert("You must select a file to upload.");
         return null;
      }
      var dot = filename.lastIndexOf(".");

      if (dot == -1)
         return null;
      var ext = filename.substr(dot+1,filename.length);

      for (var i=0; i< allowed.length; i++)
      {
           if (ext == allowed[i])
           {
                document.getElementById('submit_btn').click();
                return;
           }
      }
      alert('Invalid file format');
}

function postembedvideo(url) {
        HTTP.post(url,showembedvideo,'embedvideoform');
}

function embedvideo(url) {
        HTTP.get(url,showembedvideo);
}


function showembedvideo(divhtml) {
        var div = document.getElementById('embedvideodiv');
        if (div)
           div.innerHTML = divhtml;
}


function postsharevideo(url) {
	HTTP.post(url,showsharevideo,'sharevideoform');
}

function sharevideo(url) {
	HTTP.get(url,showsharevideo);
}


function showsharevideo(divhtml) {
	var div = document.getElementById('sharevideodiv');
	if (div) 
           div.innerHTML = divhtml;
}

function postsharepicture(url) {
        HTTP.post(url,showsharepicture,'sharepictureform');
}

function sharepicture(url) {
    var elemcurr = document.getElementById('currentindex');
    var elem = document.getElementById('pic-' + elemcurr.innerHTML);
    var pic = elem.innerHTML;   

    url = url + '?p=' + pic;

    HTTP.get(url,showsharepicture);
}


function showsharepicture(divhtml) {
        var div = document.getElementById('sharevideodiv');

        if (div) div.innerHTML = divhtml;
}


function alertinfo() {
	var div = document.getElementById('sharevideodiv');
	if (document.sharevideoform == 'undefined') alert ("form is undefined");
	else { 
		var newc = document.sharevideoform.newcomment;
		if (newc == null) alert ("newc is null");
		else alert("newc is: " + newc);
	}
}

function selectfirstfriend() {
	var select = document.getElementById('sendfriend');
	if (select && select.options[0]) {
		select.options[0].selected = true;
		changefriend();
	}
}

function changefriend() {
   	var div = document.getElementById('addressdiv');
	if (div) {
		var select = document.getElementById('sendfriend');
		/* test if email is selected */
		if (select != 'undefined') {
			if (select.selectedIndex != 0) {
					div.style.display = "none";
			}
			else {
				div.style.display = "block";
		
			}
		}
	}
}

function addcomment () {
	var elem = document.getElementById("commentform");		
	elem.style.display = 'block';
	var addc = document.getElementById("addcomment");		
	addc.style.color = "grey";
}

function addcommentreply (divnum) {
        var elem = document.getElementById("commentreplyform-" + divnum);
        elem.style.display = 'block';
}

function showfriendoptions(divnum) {
        var elem = document.getElementById('friendoptions-' + divnum);
        elem.style.display = 'block';
}

function hidefriendoptions(divnum) {
        var elem = document.getElementById('friendoptions-' + divnum);
        elem.style.display = 'none';
}


function showeditpicdescription(divnum) {
        var elem = document.getElementById('editpicdescription-' + divnum);
        elem.style.display = 'block';
}

function hideeditpicdescription(divnum) {
        var elem = document.getElementById('editpicdescription-' + divnum);
        elem.style.display = 'none';
}

function processresponse(response) {
	var processresponse = document.getElementById('processresponse');
	if (processresponse) {
		processresponse.innerHTML = response;
	}
}

function clear(textid) {
	var text = document.getElementById(textid);
	if (text) {
		text.value = "";
	}
}

function getvalue(field) {
	var control = document.getElementById(field);
	if (control) return control.value;
	return '';
}


function getValue(inputid) {
	var input = document.getElementById(inputid);
	if (input) {
		return input.value;
	}
	return null;
}

function setValue(inputid,value) {
	var input = document.getElementById(inputid);
	if (input) {
		input.value = value;
	}
}

function setCKValue(id,value) {

	// Get the editor instance that we want to interact with.
	var oEditor = CKEDITOR.instances[id];
    if (oEditor) {
        oEditor.setData( value , function() {
            oEditor.resetDirty();
        });
    }
}

function getCKValue(id) {
    var oEditor = CKEDITOR.instances[id];
    if (oEditor) {
        var value = oEditor.getData();
        return value;
    }
}

function CKgetDirty(id) {
    var oEditor = CKEDITOR.instances[id];
    if (oEditor) {
        var value = oEditor.checkDirty();
        return value;
    }
}

function CKresetDirty(id) {
    var oEditor = CKEDITOR.instances[id];
    if (oEditor) {
        var value = oEditor.resetDirty();
        return value;
    }
}




function getHTML(id){
    var element = document.getElementById(id);
    if (element) {
        return element.innerHTML;
    }
}



function setHTML(id,value){
    var element = document.getElementById(id);
    if (element) {
        element.innerHTML = value;
    }
}


function FocusComment() {
	if (document.commform != null && document.commform.newcomment != null) {
		document.commform.newcomment.focus();
	}
}


function submitshare(which) {
	var message = "";
	if  (!getValue('sendfriend')) {
		message = checkemailtext('send_email',"<br />Please provide your correct email<br />");
		message += checkemailtext('recip_email',"Please provide your friend's correct email<br />");
	}
	if (message.length > 0) {
		processresponse(message);
	}
	else {
             if (which == 'video')
             {
		processresponse("Processing Share Video");
		//HTTP.post("/MEMBERPGMS/processsharevideo.php",processsharevideo,'sharevideoform');
             }
             if (which == 'picture')
             {
                processresponse("Processing Share Picture");
               // HTTP.post("/MEMBERPGMS/processsharepicture.php",processsharevideo,'sharepictureform');
             }
	}
}

function processsharevideo(response) {
	processresponse(response);
	if (response.indexOf("correct") == -1) {
		clear('recip_first_name');
		clear('recip_last_name');
		clear('recip_email');
	}
}


function checkemailtext(field,errormessage) {
    var text = document.getElementById(field);
	if (text) {
		if (!echeck(trim(text.value, ' '))) {
			return errormessage;
		}
	}
	return "";
}

function echeck(str) {
	    if (!str) return false;
		var at="@";
		var dot=".";
		var lat=str.indexOf(at);
		var lstr=str.length;
		var ldot=str.indexOf(dot);
		if (str.indexOf(at)==-1) return false;
		if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr) return false; 
		if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr)return false;
		if (str.indexOf(at,(lat+1))!=-1) return false;
        if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot) return false;
        if (str.indexOf(dot,(lat+2))==-1) return false;
        if (str.indexOf(" ")!=-1) return false;
		return true;				
}

HTTP.post = function(url, callback, formid) {
    var request = HTTP.newRequest();
    request.onreadystatechange = function() {
        if (request.readyState == 4 && request.status == 200) 
            callback(request.responseText);
    }
    request.open("POST", url);
	request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	var docform = document.getElementById(formid);
    request.send(formData2QueryString(docform));
} 

HTTP.get = function(url, callback) {
    var request = HTTP.newRequest();
    request.onreadystatechange = function() {
        if (request.readyState == 4 && request.status == 200)
            callback(request.responseText);
    }
    request.open("GET", url);
	try {
    request.send(null);
	}
	catch (ex) {
		alert(ex);
	}
}


function HTTP () {}


HTTP._factories = [
    function() { return new XMLHttpRequest(); },
    function() { return new ActiveXObject("Msxml2.XMLHTTP"); },
    function() { return new ActiveXObject("Microsoft.XMLHTTP"); }
];

// When we find a factory that works, store it here.
HTTP._factory = null;

// Create and return a new XMLHttpRequest object.
//
// The first time we're called, try the list of factory functions until
// we find one that returns a non-null value and does not throw an
// exception. Once we find a working factory, remember it for later use.
//
HTTP.newRequest = function() {
    if (HTTP._factory != null) return HTTP._factory();

    for(var i = 0; i < HTTP._factories.length; i++) {
        try {
            var factory = HTTP._factories[i];
            var request = factory();
            if (request != null) {
                HTTP._factory = factory;
                return request;
            }
        }
        catch(e) {
            continue;
        }
    }
    // If we get here, none of the factory candidates succeeded,
    // so throw an exception now and for all future calls.
    HTTP._factory 
 = function() {
        throw new Error("XMLHttpRequest not supported");
    }
    HTTP._factory(); // Throw an error
}

HTTP.encodeFormData = function(data) {
    var pairs = [];
    var regexp = /%20/g; // A regular expression to match an encoded space

    for(var name in data) {
        var value = data[name].toString();
        // Create a name/value pair, but encode name and value first
        // The global function encodeURIComponent does almost what we want,
        // but it encodes spaces as %20 instead of as "+". We have to
        // fix that with String.replace()
        var pair = encodeURIComponent(name).replace(regexp,"+") + '=' +
            encodeURIComponent(value).replace(regexp,"+");
        pairs.push(pair);
    }

    // Concatenate all the name/value pairs, separating them with &
    return pairs.join('&');
};

function switchpic(which, totalrows) {
   var elemcurr = document.getElementById('currentindex');
   var newcurr = parseInt(elemcurr.innerHTML);

   if (which == 'prev')
   {
         elemcurr.innerHTML = newcurr-1;
   }
   else if (which == 'next')
   {
         elemcurr.innerHTML = newcurr+1;
   }
   else
   {
         elemcurr.innerHTML = which;
   }

   var elem = document.getElementById('picindex-' + elemcurr.innerHTML);
   var descelem = document.getElementById('descindex-' + elemcurr.innerHTML);

   var s = new String(elem.innerHTML);
   s = s.replace('&amp;','&');

   document.getElementById('mainpic').src = s;
   document.getElementById('currpicdescription').innerHTML = descelem.innerHTML;

   if (elemcurr.innerHTML ==0)
             document.getElementById('prevdiv').style.display = 'none';
   else
             document.getElementById('prevdiv').style.display = 'inline';

   if (elemcurr.innerHTML == totalrows-1)
             document.getElementById('nextdiv').style.display = 'none';
   else
             document.getElementById('nextdiv').style.display = 'inline';
}

function setpicnavigation(totalrows)
{
   var elemcurr = document.getElementById('currentindex');

   if (elemcurr.innerHTML ==0)
             document.getElementById('prevdiv').style.display = 'none';
   else
             document.getElementById('prevdiv').style.display = 'inline';

   if (elemcurr.innerHTML == totalrows-1)
             document.getElementById('nextdiv').style.display = 'none';
   else
             document.getElementById('nextdiv').style.display = 'inline';
}


function slideshow(numpics)
{
       document.getElementById('picdetails').innerHTML = '';
       document.getElementById('slideshow1').style.display='none';
       document.getElementById('resume1').style.display='none';
       document.getElementById('pause1').style.display='inline';
       var currpicelem = document.getElementById('currpic');
       currpicelem.innerHTML = 0;
       show = setInterval("slideshownextimage(" + numpics + ")", 2000);
}


function slideshownextimage(numpics)
{
var currpicelem = document.getElementById('currpic');
var currpic = currpicelem.innerHTML;
var bigimg = document.getElementById('bigimg');
var imgcaption = document.getElementById('imgcaption');

if (currpic <= numpics-1)
{
  imgurl = document.getElementById("img" + currpic).src;
  imgurl = imgurl.replace('size=OXS', 'size=B');
  bigimg.src = imgurl;
//  imgcaption.innerHTML = '';
  currpicelem.innerHTML = parseInt(currpic)+1;
}
else
{
  clearInterval(show);
  document.getElementById('slideshow1').style.display='inline';
  document.getElementById('resume1').style.display='inline';
  currpicelem.innerHTML = 0;
}
  
}

function slideshowpause()
{
  clearInterval(show);
  document.getElementById('slideshow1').style.display='inline';
  document.getElementById('resume1').style.display='inline';
  document.getElementById('pause1').style.display='none';
}

function slideshowresume(numpics)
{
  document.getElementById('slideshow1').style.display='none';
  document.getElementById('resume1').style.display='none';
  document.getElementById('pause1').style.display='inline';
  show = setInterval("slideshownextimage(" + numpics + ")", 2000);
}


function runslideshow(totalrows) {
  document.getElementById('nextdiv').style.display = 'none';
  document.getElementById('prevdiv').style.display = 'none';
  document.getElementById('slideshowcontrols').style.display = 'inline';
  
  document.getElementById('speed').innerHTML = 4;

  var elemcurr = document.getElementById('currentindex');
  var newcurr = parseInt(elemcurr.innerHTML);
 
  if (newcurr == totalrows-1)
     elemcurr.innerHTML=-1;

  show = setInterval("slideshownextimage(" + totalrows + ")", 4000);
}					

function changeslideshow(totalrows, rate) {
    var elem = document.getElementById('speed');
    var speed = elem.innerHTML;

    if (rate == 'faster')
       speed++;
    if (rate == 'slower')
       speed--;
    if (speed <=0 )
       speed = 1;

    elem.innerHTML = speed;

    clearInterval(show);
    speed = speed + '000';
    speed = parseInt(speed);
    
    show = setInterval("getnextimage(" + totalrows +  ")", speed);
}


function pauseslideshow(totalrows) {
   var elem = document.getElementById('pause');
   var speed = document.getElementById('speed').innerHTML;
   speed = speed + '000';
   speed = parseInt(speed);
   if (speed <= 0)
       speed = 1000;

   if (elem.innerHTML == 'Pause')
   {
      clearInterval(show);
      document.getElementById('nextdiv').style.display = 'inline';
      document.getElementById('prevdiv').style.display = 'inline';
      elem.innerHTML = 'Continue';
   }
   else
   {
      show = setInterval("getnextimage(" + totalrows + ")", speed);
      document.getElementById('nextdiv').style.display = 'none';
      document.getElementById('prevdiv').style.display = 'none';
      elem.innerHTML = 'Pause';
   }
}


function getnextimage(totalrows) {
  var elemcurr = document.getElementById('currentindex');
  var newcurr = parseInt(elemcurr.innerHTML);

  elemcurr.innerHTML = newcurr+1;

  var elem = document.getElementById('picindex-' + elemcurr.innerHTML);

  var s = new String(elem.innerHTML);
  s = s.replace('&amp;','&');

  document.getElementById('mainpic').src = s;

  var descelem = document.getElementById('descindex-' + elemcurr.innerHTML);
  document.getElementById('currpicdescription').innerHTML = descelem.innerHTML;

  if (newcurr >= totalrows-2)
  {
     document.getElementById('slideshowcontrols').style.display = 'none';
     clearInterval(show);
  }
}


function getLeagueApplicationsByStatus(league){
var val = 0;

for( i = 0; i < document.form1.status.length; i++ )
{
if( document.form1.status[i].checked == true )
val = document.form1.status[i].value;
}
var params = "league=" + league + "&status=" + val;
var url = "/TEAMSPGMS/getListLeagueApplicationsByStatus.php";
var ajax = new Ajax.Updater({success: 'showleagueapplications'}, url,{method: 'get', parameters: params, onFailure: reportError});
}


function showStatesForCountry() {
   var elem = document.getElementById('country');

   var val = elem.value;

   document.getElementById('statesOther').style.display='none';
   document.getElementById('statesUS').style.display='none';
   document.getElementById('statesCanada').style.display = 'none';   

   if (val == 1)
   {
      document.getElementById('statesUS').style.display='block';
      document.getElementById('stateUS').selectedIndex=0;
   }
   if (val == 6)
   {
      document.getElementById('statesCanada').style.display = 'block';
      document.getElementById('stateCanada').selectedIndex=0;
   }
   if (val != 1 && val != 6)
   {
       document.getElementById('statesOther').style.display='block';
   }
   document.getElementById('state').value='';
}


function recordState()  {
   var elem = document.getElementById('country');
   var val = elem.value;

   if (val == 1)
   {
      var stateUSElem = document.getElementById('stateUS');
      var stateUSVal = stateUSElem.options[stateUSElem.selectedIndex].value;
      document.getElementById('state').value = stateUSVal;
   }
   if (val == 6)
   {
      var stateCanadaElem = document.getElementById('stateCanada');
      var stateCanadaVal = stateCanadaElem.options[stateCanadaElem.selectedIndex].value;
      document.getElementById('state').value = stateCanadaVal;
   }
   if (val != 1 && val != 6)
   {
       var stateOtherElem = document.getElementById('stateOther');
       var stateOtherVal = stateOtherElem.options[stateOtherElem.selectedIndex].value;
       document.getElementById('state').value = stateOtherVal;
   }
}


function checkEditForm() {
   var vchange_title = document.getElementById('vchange_title').value;
   //var vchange_description = document.getElementById('vchange_description').value;
   var vchange_tags = document.getElementById('vchange_tags').value;
  // var vchange_teams = document.getElementById('vchange_teams').value;

   //var vchange_category = document.getElementById('vchange_category').value;

  // var vchange_language = document.getElementById('vchange_language').value;

   if (vchange_title == "")
   {
       alert ("TITLE IS MISSING - REQUIRED");
       return false;
   }
/*
   if (vchange_description == "")
   {
       alert ("DESCRIPTION IS MISSING - REQUIRED");
       return false;
   }
*/
   if (vchange_tags == "")
   {
       alert ("TAGS IS MISSING - REQUIRED");
       return false;
   }
/*
  if (vchange_teams == "")
   {
       alert ("TEAMS(S) MISSING - REQUIRED");
       return false;
   }
*/
   return true;

}



function checkUploadForm() {
   var upload_file = document.getElementById('my_file_element').value;
   var upload_title = document.getElementById('upload_title').value;
   var upload_description = document.getElementById('upload_description').value;
   var upload_tags = document.getElementById('upload_tags').value;
   //var upload_teams = document.getElementById('upload_teams').value;

   if (upload_file == "")
   {
       alert ("FILE IS MISSING - REQUIRED");
       return false;
   }

   if (upload_title == "")
   {
       alert ("TITLE IS MISSING - REQUIRED");
       return false;
   }

   if (upload_description == "")
   {
       alert ("DESCRIPTION IS MISSING - REQUIRED");
       return false;
   }
   
   if (upload_tags == "")
   {
       alert ("TAGS IS MISSING - REQUIRED");
       return false;
   }
/*
   if (upload_teams == "")
   {
       alert ("TEAM(S) MISSING - REQUIRED");
       return false;
   }
*/
   return true;

}

function showmembers(teamid) {
    var members = document.getElementById('amembers');
    if (members) {
        members.style.height = '400px';
        members.style.overflow = 'auto';
        submitenter2(this, event,teamid);
    }
}


function switchsidemenu(headersStr, divsStr, headerOn, divOn)
{
   var headersArr = headersStr.split(";");
   var divsArr = divsStr.split(";");

   var i = 0;
 
   while (i < headersArr.length)
   {
   if (document.getElementById(headersArr[i]) != null)
      {
      if (headersArr[i] == headerOn)
        document.getElementById(headersArr[i]).attributes["class"].value="here";
      else
        document.getElementById(headersArr[i]).attributes["class"].value="";
      }
   i++;
   }

   i=0;
   while (i < divsArr.length)
   {
   if (document.getElementById(divsArr[i]) != null)
     {
     if (divsArr[i] == divOn)
        showdiv(divsArr[i]);
     else
        hidediv(divsArr[i]);
     }
   i++;
   }
}

function updaterating(vid,zc) {

var params = 'v=' + vid + '&' + 'r=' + zc;
var url = "/MEMBERPGMS/ratingstor2.php";

var ajax = new Ajax.Updater({success: 'newrating'}, url,{method: 'get', parameters: params, onFailure: reportError});
/*
t = setTimeout("updaterating2()", 400);
*/
}

function updaterating2()
{
var response = document.getElementById('newrating').innerHTML;
var parts = response.split(":");
var rating = parts[0];
var feedback = parts[1];
var i;

for (i=1;i<=5;i++)
{
 if (i==rating)
     document.getElementById("current_rating_" + i).attributes["class"].value = "current_rating_" + i;
 else
     document.getElementById("current_rating_" + i).attributes["class"].value = "";
}
document.getElementById('rating_feedback').innerHTML = "<font color='white'>" + feedback + "</font>";

clearTimeout(t);
}


function reportError(request) {
    alert("ajax error");
}

/*FOR FLASH PLAYER
function getUpdate(typ,pr1,pr2,pid)
===================================
getUpdate() gets called by the player
on state changes and whenever there is new position data.


The pid variable holds the javascriptid of the player calling the function
==========================================================================


The typ variable can have the values
====================================
item, index
load, percent
size, width, height
state, 0=paused, 1=buffering, 2=playing, 3=completed
time, elapsed, remaining
volume, percent


when type = item
==================================
pr1 holds the item number


when type = load
==================================
pr1 holds the % loaded


when type = size
==================================
pr1 holds the width value
pr2 holds the height value


when typ = state
==================================
pr1 can have the values:
0 = ready/paused
1 = buffering
2 = playing
3 = finished


when type = time
==================================
pr1 holds the elapsed time
pr2 holds the remaining time


when type = volume
==================================
pr1 holds the volume value


*/

var flag = 0;

// these functions are caught by the JavascriptView object of the player.

function getUpdate(typ,pr1,pr2,pid) {
/*
     if (document.getElementById('afterplay'))
        {
         //if its not a playlist

         var playerarea = document.getElementById('playerarea');
         if(typ == "time") { if (pr1 == 0 && flag==1) {hidediv('playerarea');showdiv('afterplay');flag=0;}}
         else if(typ == "state") {if (pr1 ==2) flag=0; if (pr1 ==3) flag=1;}
         if(pid != "null") {
            document.getElementById("pid").innerHTML = "(received from the player with id <i>"+pid+"</i>)";
            }
        }
     return;
  */      
}


function addTeamReportChecks(event, onpage, league, url, currdate, paramstr, anchor) {
 var status = document.getElementById('status').value;
 var reason = document.getElementById('reason').value;
 var member = document.getElementById('member').value;
 var forteam = document.getElementById('forteam').value;

 if (status==3)  {
    if (!reason) {
       alert("Please enter a reason for rescheduling and a reschedule date, if available");
       return;
    }
    else {
      addTeamReportForLeagueEvent(event);
      hidediv('edit_event');
      if (onpage=='c') {
            openDaysEvents(url, currdate, paramstr);
      }else{
            reloadLeagueScheduleListTable(league, anchor);
      }
    }
 }
else {
 var params;
 params = "event=" + event + "&bymember=" + member + "&byteam=" + forteam;

 var url2 = "/TEAMSPGMS/checkmembersubmittedbothscoresforreport.php?" + params;

 new Ajax.Request(url2, {
  method: 'get',
  onSuccess: function(transport) {
  if (transport.responseText)
      {
      if (trim(transport.responseText, ' ')=="2")
         {
         alert("Please enter a score for each team. If the game was not played, change the status from played to 'To Be Rescheduled'.");
         }
      else {
         addTeamReportForLeagueEvent(event);
         hidediv('edit_event');
      //Then hide edit div and reload page
         if (onpage=='c') {
            openDaysEvents(url, currdate, paramstr);
}else{
            reloadLeagueScheduleListTable(league, anchor);
}
         }
     }
}
     });
}
}



function updateTeamReportChecks(event, reportid, elem, onpage) {
 var status = document.getElementById('status').value;
 var reason = document.getElementById('reason').value;
 var member = document.getElementById('member').value;
 var forteam = document.getElementById('forteam').value;

 if (status==3)  {
    if (!reason) {
       alert("Please enter a reason for rescheduling and a reschedule date, if available");
       return;
    }
    else {
      updateTeamReportForLeagueEvent(event, reportid);
      hidediv('editreport');
      showSubmittedTeamReportsForEvent(event, elem, onpage);
    }
 }
else {
 var params;
 params = "event=" + event + "&bymember=" + member + "&byteam=" + forteam + "&reportid=" + reportid;

 var url2 = "/TEAMSPGMS/checkmembersubmittedbothscoresforreport.php?" + params;

 new Ajax.Request(url2, {
  method: 'get',
  onSuccess: function(transport) {
  if (transport.responseText)
      {
      if (trim(transport.responseText, ' ')=="2")
         {
         alert("Please enter a score for each team. If the game was not played, change the status from played to 'To Be Rescheduled'.");
         }
      else {
         updateTeamReportForLeagueEvent(event, reportid);
         hidediv('editreport');
         showSubmittedTeamReportsForEvent(event, elem, onpage);
         }
     }
}
     });
}

}



function addTeamReportForLeagueEvent(event) {
 var status = document.getElementById('status').value;
 var reason = document.getElementById('reason').value;
 var member = document.getElementById('member').value;
 var forteam = document.getElementById('forteam').value;

//Want the ajax to work synchronously, so put the rest of this function within  the previous ajax onSuccess.
 var params = "status=" + status + "&event=" + event + "&member=" + member + "&forteam=" + forteam + "&reason=" + reason;

  var url = "/TEAMSPGMS/addteamreportforleagueevent.php?" + params;
  new Ajax.Request(url, {
  method: 'get',
  onSuccess: function(transport) {
  if (transport.responseText)
        {
      //The transport response text is the report id
//      publishscore(event, transport.responseText);
  }
  }
 });

//var ajax = new Ajax.Updater({success: ''}, url,{method: 'get', parameters: params, onFailure: reportError});
}


function updateTeamReportForLeagueEvent(event, reportid) {
 var status = document.getElementById('status').value;
 var reason = document.getElementById('reason').value;
 var member = document.getElementById('member').value;
 var forteam = document.getElementById('forteam').value;
 var params = "reportid=" + reportid + "&status=" + status + "&event=" + event + "&member=" + member + "&forteam=" + forteam + "&reason=" + reason;
  var url = "/TEAMSPGMS/updateteamreportforleagueevent.php?" + params;
  new Ajax.Request(url, {
  method: 'get',
  onSuccess: function(transport) {
  if (transport.responseText)
        {
      //The transport response text is the report id
      //publishscore(event, transport.responseText);
  }
  }
 });

//var ajax = new Ajax.Updater({success: ''}, url,{method: 'get', parameters: params, onFailure: reportError});
}

String.prototype.startsWith = function(prefix){
    var index = this.indexOf(prefix);
    return (index == 0);
}


function addscoresetselectsupdate(response) {
	if (response.startsWith('<span')) {
		setdiv(response,'scoresetselects');
	}
	
	else {
		
	}
}

function addscoresetselects(grouptype, groupid, event, reportid){
    if (grouptype == 'team' && groupid == 0) {
        groupid = document.getElementById('forteam').value;
    }
    document.getElementById('addnewscorebutton').style.display = 'none';
    var params = "?groupid=" + groupid + "&event=" + event + "&grouptype=" + grouptype + "&reportid=" + reportid;
    var url = "/TEAMSPGMS/addscoresetselects.php" + params; //TODO stop from using score in tournament
    asyncreq(url,addscoresetselectsupdate);
/*    var ajax = new Ajax.Updater({
        success: 'scoresetselects'
    }, url, {
        method: 'get',
        parameters: params,
        onFailure: reportError
    });
    document.getElementById('scoresetselects').style.display = 'block'; */
}

function publishscore(lspkey, reportid) {
var params = "lspkey=" + lspkey + "&report=" + reportid;
var url = "/TEAMSPGMS/publishscore.php";
var ajax = new Ajax.Updater({success: ''}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function finalizescores(lspkey) {
var params = "lspkey=" + lspkey;
var url = "/TEAMSPGMS/finalizescores.php";
var ajax = new Ajax.Updater({success: ''}, url,{method: 'get', parameters: params, onFailure: reportError});
}



function addscore(lpkey, grouptype, groupid, reportid) {
var hscore = document.getElementById('hscore').value;
var vscore = document.getElementById('vscore').value;
var params = "reportid=" + reportid + "&lpkey=" + lpkey +   "&hscore=" + hscore + "&vscore=" + vscore + "&grouptype=" + grouptype + "&groupid=" + groupid;
var url = "/TEAMSPGMS/addscore.php";
var ajax = new Ajax.Updater({success: 'scores'}, url,{method: 'get', parameters: params, onFailure: reportError});
}


function acceptscore(lpkey, pkey) {
  var params = "pkey=" + pkey + "&lpkey=" + lpkey;
  var url = "/TEAMSPGMS/acceptscore.php";
  var ajax = new Ajax.Updater({success: 'scores'}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function deletescore(pkey, lpkey, grouptype, groupid, reportid) {
  var params = "pkey=" + pkey + "&lpkey=" + lpkey +"&reportid=" + reportid + "&grouptype=" + grouptype + "&groupid=" + groupid;
  var url = "/TEAMSPGMS/deletescore.php";
  var ajax = new Ajax.Updater({success: 'scores'}, url,{method: 'get', parameters: params, onFailure: reportError});
}



function cancelUpdatedScores(lspkey) {
  var params = "lspkey=" + lspkey;
  var url = "/TEAMSPGMS/cancelupdatedscores.php";
  var ajax = new Ajax.Updater({success: 'scores'}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function rescheduleLeagueEvent(event, editdivname, onpage, league, url, currdate, paramstr, currmonth, curryear, anchor) {
  var echosendate = document.getElementById('echosendate').value;
  var etime_tbd_checked = document.getElementById('etime_tbd').checked;
  var ehrs = document.getElementById('ehrs').value;
  var emnts = document.getElementById('emnts').value;
  var eapm = document.getElementById('eapm').value;
  var ehrs2 = document.getElementById('ehrs2').value;
  var emnts2 = document.getElementById('emnts2').value;
  var eapm2 = document.getElementById('eapm2').value;
  var etime_tbd;

  if (!echosendate)
   {
   alert("Please enter a date and time");
   return;
   }  

  if (etime_tbd_checked == true)  {etime_tbd="on";} else {etime_tbd="";}

  var params = "event=" + event + "&chosendate=" + echosendate + "&time_tbd=" + etime_tbd + "&hrs=" + ehrs + "&mnts=" + emnts + "&apm=" + eapm + "&hrs2=" + ehrs2 + "&mnts2=" + emnts2 + "&apm2=" + eapm2;

  var url = "/TEAMSPGMS/rescheduleLeagueEvent.php";

  new Ajax.Request(url, {
  method: 'get',
  parameters: params,
  onSuccess: function(transport) {
      hidediv(editdivname);
      if (onpage=='c') {
//            openDaysEvents(url, currdate, paramstr);
             reloadLeagueCalendarTable(league,currmonth, curryear);
      }else{
            reloadLeagueScheduleListTable(league, anchor);
      }
  }
});


}



function reloadStandingsTable(league) {
var division = document.getElementById('division').value;
var interdivisiongames;
if (document.getElementById('showinterdivisiongames').checked == true)  interdivisiongames = 1;
else interdivisiongames = 0;
var season = document.getElementById('season').value;
var seasonyear = document.getElementById('seasonyear').value;
var params  = "league=" + league + "&division=" + division + "&season=" + season + "&seasonyear=" + seasonyear + "&interdivisiongames=" + interdivisiongames;
var url = "/TEAMSPGMS/printStandingsTable.php";
var ajax = new Ajax.Updater({success: 'tablestandings'}, url,{method: 'get', parameters: params, onFailure: reportError});

}


function reloadLeagueCalendarTable(league, month, year) {
    getLeagueCalendarUpdate(month, year, "league=" + league);
}

function leagueAdminEnteredBothScores(lspkey) {
  if (document.getElementById('resolved').checked == true) {
//  var url = "/TEAMSPGMS/leagueAdminEnteredBothScores.php?lspkey=" + lspkey;
//  new Ajax.Request(url, {
//  method: 'get',
//  onSuccess: function(transport) {
//    if (transport.responseText == 1)  var res = confirm("There are scores listed for both teams by league administrators. Would you like to finalize the score and close it to further team reports?");
//       if (res == true)  {document.getElementById('resolved').checked=false;}
//    }
//  });
//}
if (document.getElementById('leagueadminenteredscores')) {
      document.getElementById('status').value=2;
      var res = confirm("There are scores listed for both teams by league administrators. Would you like to finalize the score and close it to further team reports?");
       if (res == true)  {document.getElementById('resolved').checked=false;}
}
}
}

function playlistadd(vid) {
var params = 'v=' + vid;
var url = "/MEMBERPGMS/playlistadd.php";
var ajax = new Ajax.Updater({success: 'playlistresponse'}, url,{method: 'get', parameters: params, onFailure: reportError});
}


function playlistdel(vid) {
var params = 'v=' + vid;
var url = "/MEMBERPGMS/playlistdel.php";
var ajax = new Ajax.Updater({success: 'playlistresponse'}, url,{method: 'get', parameters: params, onFailure: reportError});
}


function playlistupdate(page) {
var params = 'page=' + page;
var url = "/MEMBERPGMS/playlistupdate.php";
var ajax = new Ajax.Updater({success: 'list3'}, url,{method: 'get', parameters: params, onFailure: reportError});
}


function commentlistupdate(vid,comment) {
var params = 'v=' + vid + '&' + 'c=' + comment;
var url = "/MEMBERPGMS/commentlistupdate.php";
var ajax = new Ajax.Updater({success: 'video_comments_cont'}, url,{method: 'get', parameters: params, onFailure: reportError});
}


function addnewcomment(vid,parent,commentelem) {
var params = 'vidnum=' + vid + '&' + 'newcomment=' + document.getElementById(commentelem).value + '&' + 'reply=' + parent;
var url = "/MEMBERPGMS/commentadd.php";
var ajax = new Ajax.Updater({success: ''}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function deletecomment(vidowner,comment) {
var params = 'vidowner=' + vidowner + '&' + 'comment=' + comment;
var url = "/MEMBERPGMS/commentdel.php";
var ajax = new Ajax.Updater({success: ''}, url,{method: 'get', parameters: params, onFailure: reportError});
}


function showRecordForTeam(league, team) {
  var params = 'league=' + league + '&team=' + team;
  var url = "/TEAMSPGMS/showrecordforteam.php";
  var ajax = new Ajax.Updater({success: 'record'}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function switchtab(whichtab,whichcontent)
{
  document.getElementById('tab1').className='';
  document.getElementById('tab2').className='';
  document.getElementById('tab3').className='';
  document.getElementById('tab4').className='';
  document.getElementById(whichtab).className='here';

  hidediv('campaignadsdiv');
  hidediv('historicaladsdiv');
  hidediv('attackadsdiv');
  hidediv('relatedvideosdiv');

  showdiv(whichcontent);
}


function switchuploadtab(whichtab)
{
  document.getElementById('tab1').className='';
  document.getElementById('tab2').className='';
  document.getElementById('tab3').className='';
  document.getElementById('tab4').className='';
  document.getElementById(whichtab).className='here';
}


function showVideosInPoll(index) {
var poll = document.getElementById('poll2');
var pollval = poll.options[index].value;
var params = 'poll=' + pollval;
var url = "showVideosInPoll.php";
var ajax = new Ajax.Updater({success: 'vids'}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function uncheckAll(selectboxelem) {
var obj = document.getElementById(selectboxelem);
for (i=0; i <obj.options.length; i++) {
   obj.options[i].selected = false;
  }
}

function getSimilarFriends(member,name)
{
  var sh = document.getElementById('similarfriends');
  var params = 'member=' + member + '&name=' + name;
  var url = "FRIENDPGMS/getSimilarFriends.php";
  var ajax = new Ajax.Updater({success: 'similarfriends'}, url,{method: 'get', parameters: params, onFailure: reportError, onSuccess: function(transport){if (transport.responseText) {sh.style.display = 'block';}else{sh.style.display = 'none';};}});
}

function getSimilarHosts(name, textinputid)
{
  var sh = document.getElementById('similarhosts');
  var params = 'name=' + name + "&textinputid=" +textinputid;
//replace all spaces with %20
//  name=name.replace(/\s/g,"%20");
  var url = "/TEAMSPGMS/getSimilarHosts.php";
  var ajax = new Ajax.Updater({success: 'similarhosts'}, url,{method: 'get', parameters: params, onFailure: reportError, onSuccess: function(transport){if (transport.responseText) {sh.style.display = 'block';}else{sh.style.display = 'none';};}});

}

function getSimilarSports(name, textinputid)
{
  var sp = document.getElementById('similarsports');
  var params = 'name=' + name + "&textinputid=" +textinputid;
  var url = "/TEAMSPGMS/getSimilarSports.php";
  var ajax = new Ajax.Updater({success: 'similarsports'}, url,{method: 'get', parameters: params, onFailure: reportError, onSuccess: function(transport){if (transport.responseText) {sp.style.display = 'block';}else{sp.style.display = 'none';};}});
}

function setRadioUrl(url,id) {
    var radio = document.getElementById(id);
    radio.dataurl = url;
    if (radio && radio.type == 'radio' && radio.checked && radio.onclick) {
        var form = radio.form;
        var next = document.getElementById(form.id + '-next-button-id');
        if (next) {
                    next.onclick = function() {
                        window.location = url;
                    }
        }
    }
 }


function initRadioForm(formid) {
    var form = document.getElementById(formid);
    var radios = form.getElementsByTagName('input');
    var last = null;
    var current = null;
    for(var i = 0; i < radios.length; i++) {
        var radio = radios[i];
        if (radio.type != 'radio') continue;
        last = radio;
        if (radio.checked) current = radio;
    }
    if (last) {
        var done = document.getElementById(form.id + '-done-button-id');
        var next = document.getElementById(form.id + '-next-button-id');
        if (done && next) {
            if (last.onclick) {
                last.click();
                var url = last.dataurl;
                done.onclick = function() {
                    window.location = url;
                }
            }
        }
    }
    if (current) {
        if (current.onclick) current.click();
    }
}

function getSimilarSports2(name)
{
  var sp = document.getElementById('esimilarsports');
  var params = 'name=' + name;
  var url = "/TEAMSPGMS/getSimilarSports2.php";
  var ajax = new Ajax.Updater({success: 'esimilarsports'}, url,{method: 'get', parameters: params, onFailure: reportError, onSuccess: function(transport){if (transport.responseText) {sp.style.display = 'block';}else{sp.style.display = 'none';};}});
}
//This is a function to use for the new team form, not sure what sport the team is so show all similar positions
function getSimilarPositions(name)
{
  var sp = document.getElementById('similarpositions');
  var params = 'name=' + name;
  var url = "/TEAMSPGMS/getSimilarPositions.php";
  var ajax = new Ajax.Updater({success: 'similarpositions'}, url,{method: 'get', parameters: params, onFailure: reportError, onSuccess: function(transport){if (transport.responseText) {sp.style.display = 'block';}else{sp.style.display = 'none';};}});
 
}

function selectPosition (id,curname) {
    setValue(id,curname);
    hidediv('positionsforsport');
}


function getPositionsForSport(id,position, sportstr, sportid)
{
  var ps = document.getElementById('positionsforsport');
  var params = 'id=' + id + '&position=' + position + '&sportstr=' + sportstr + '&sportid=' + sportid;
  var url = "/TEAMSPGMS/getPositionsForSport.php";
  asyncreq(url + '?' + params,showPositions);
  //var ajax = new Ajax.Updater({success: 'positionsforsport'}, url,{method: 'get', parameters: params, onFailure: reportError, onSuccess: function(transport){if (transport.responseText) {ps.style.display = 'block';}else{ps.style.display = 'none';};}});
}



function showPositions(response) {
    if (response) {
        setdiv(response,'positionsforsport');
        var positions = document.getElementById('positionsforsport');
        if (positions) {
            positions.onmouseover = delayPositionsTimer;
            positions.onmouseout  = hidePositionsTimer;
        }
        showPositionsTimer();
    }
}

function delayPositionsTimer() {
    showPositionsTimer(15000);
}

function hidePositionsTimer() {
    showPositionsTimer(200);
}

function showPositionsTimer(time) {
    if (time == undefined) time = 10000;
    if (showPositions.timer) clearTimeout(showPositions.timer);
    showPositions.timer = setTimeout(function () {
        hidediv('positionsforsport');
    },time);
}


//For the team roster edit - need alternate function to write to a different div since its on the same page as team roster add
function getPositionsForSport2(position, sportstr, sportid)
{
  var ps = document.getElementById('positionsforsport2');
  var params = 'position=' + position + '&sportstr=' + sportstr + '&sportid=' + sportid;
  var url = "/TEAMSPGMS/getPositionsForSport2.php";
  var ajax = new Ajax.Updater({success: 'positionsforsport2'}, url,{method: 'get', parameters: params, onFailure: reportError, onSuccess: function(transport){if (transport.responseText) {ps.style.display = 'block';}else{ps.style.display = 'none';};}});

}

function clearNewTeamDivs() {
//document.getElementById('similarpositions').style.display='none';
    clearEditLeagueDivs();
}

function clearEditTeamDivs() {
    var hosts = document.getElementById('similarhosts');
    if (hosts) hosts.style.display='none';
    var sports = document.getElementById('similarsports');
    if (sports) sports.style.display='none';
}

function clearNewLeagueDivs() {
//document.getElementById('similarpositions').style.display='none';
document.getElementById('similarsports').style.display='none';
}

function clearEditLeagueDivs() {
document.getElementById('similarsports').style.display='none';
}

function addseason(league) {
    var name = document.getElementById('seasonname').value;
    var smonth = document.getElementById('smonth').value;
    var emonth = document.getElementById('emonth').value;
    var params = "league=" + league + "&name=" + name + "&smonth=" + smonth + "&emonth=" + emonth;
    var url = "/TEAMSPGMS/addseason.php";
    window.location = url + '?' + params;
//    var ajax = new Ajax.Updater({success: ''}, url,{method: 'get', parameters: params, onFailure: reportError});
//    showseasons (league);
}

function removeseason(league, pkey) {
    var params = "pkey=" + pkey + '&' + "league=" + league;
    var url = "/TEAMSPGMS/removeseason.php";
    window.location = url + '?' + params;
 //   var ajax = new Ajax.Updater({success: ''}, url,{method: 'get', parameters: params, onFailure: reportError});
 //   showseasons (league);
}

function showseasons (league) {
  var params = 'league=' + league;
  var url = "/TEAMSPGMS/showseasons.php";
  var ajax = new Ajax.Updater({success: 'seasons'}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function clearTeamRosterDivs() {
    hidediv('positionsforsport');
    hidediv('positionsforsport2');
}

function showEditRoster(elem, team, pkey) {
var dim = GetTopLeft(elem);
var top = dim.Top - 500;
var left = dim.Left -550;

//  var top = elem.offsetParent.offsetTop;
  var offsettable = elem.offsetParent.offsetParent.offsetParent.offsetTop +200;
//  var left =  elem.offsetParent.offsetLeft-200;
  var params = 'pkey=' + pkey + '&team=' + team;
  var url = "/TEAMSPGMS/rosteredit.php";
  var ajax = new Ajax.Updater({success: 'edit_roster'}, url,{method: 'get', parameters: params, onFailure: reportError});
  document.getElementById('edit_roster').style.position = 'absolute';
  document.getElementById('edit_roster').style.top = offsettable + top + "px";
  document.getElementById('edit_roster').style.left = left + "px";
  showdiv('edit_roster');
}

function switchComposeMessageTo(elem)
{
  var u = document.getElementById('touser');
  var t = document.getElementById('toteam');
  var l = document.getElementById('toleague');
  var s = document.getElementById('toschool');
  var m = document.getElementById('tomember');

  if (elem.value=='To Team Members'){
      if (t)  document.getElementById('toteam').style.display = 'block';
      if (u)  document.getElementById('touser').style.display = 'none';
      if (l)  document.getElementById('toleague').style.display = 'none';
      if (s)  document.getElementById('toschool').style.display = 'none';
      if (m) document.getElementById('tomember').style.display = 'none';
      document.getElementById('message_type').value = 'team';
  }
  if (elem.value=='To Friends'){
      if (l)  document.getElementById('toleague').style.display = 'none';
      if (t)  document.getElementById('toteam').style.display = 'none';
      if (u)  document.getElementById('touser').style.display = 'block';
      if (s)  document.getElementById('toschool').style.display = 'none';
      if (m) document.getElementById('tomember').style.display = 'none';
      document.getElementById('message_type').value = 'member';
  }
  if (elem.value=='To League Members'){ 
      if (u)  document.getElementById('touser').style.display = 'none';
      if (t)  document.getElementById('toteam').style.display = 'none';
      if (l)  document.getElementById('toleague').style.display = 'block';
      if (s)  document.getElementById('toschool').style.display = 'none';
      if (m) document.getElementById('tomember').style.display = 'none';
      document.getElementById('message_type').value = 'league';
  }
  if (elem.value=='To School Members'){
      if (s)  document.getElementById('toschool').style.display = 'block';
      if (u)  document.getElementById('touser').style.display = 'none';
      if (t)  document.getElementById('toteam').style.display = 'none';
      if (l)  document.getElementById('toleague').style.display = 'none';
      if (m) document.getElementById('tomember').style.display = 'none';
      document.getElementById('message_type').value = 'school';
  }
  if (elem.value=='To Member'){
      if (s)  document.getElementById('toschool').style.display = 'none';
      if (u)  document.getElementById('touser').style.display = 'none';
      if (t)  document.getElementById('toteam').style.display = 'none';
      if (l)  document.getElementById('toleague').style.display = 'none';
      if (m) document.getElementById('tomember').style.display = 'block';
      document.getElementById('message_type').value = 'tomember';
  }
}

function getTeamMembers(team)
{
  var params = 'team=' + team;
  var url = "/TEAMSPGMS/getTeamMembers.php";
  var ajax = new Ajax.Updater({success: 'teammembers'}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function getLeagueMembers(league)
{
  var params = 'league=' + league;
  var url = "/TEAMSPGMS/getLeagueMembers.php";
  var ajax = new Ajax.Updater({success: 'leaguemembers'}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function getSchoolMembers(school)
{
  var params = 'school=' + school;
  var url = "/TEAMSPGMS/getSchoolMembers.php";
  var ajax = new Ajax.Updater({success: 'schoolmembers'}, url,{method: 'get', parameters: params, onFailure: reportError});
}


function makeprofilepicture(pic)
{
    var c = confirm("Do you want to make this picture your profile picture?");
    if (c == true)
       {
        var params = 'pic=' + pic;
        var url = "PICTURESPGMS/setasprofilepic.php";
        var ajax = new Ajax.Updater({success: 'updatepic'}, url,{method: 'get', parameters: params, onFailure: reportError});
       }
}

function maketeamprofilepicture(pic, team)
{
    var c = confirm("Do you want to make this picture the team profile picture?");
    if (c == true)
       {
        var params = 'pic=' + pic + '&team=' + team;
        var url = "/PICTURESPGMS/setasteamprofilepic.php";
        var ajax = new Ajax.Updater({success: 'updatepic'}, url,{method: 'get', parameters: params, onFailure: reportError});
       }
}

function makehostprofilepicture(pic, host)
{
    var c = confirm("Do you want to make this picture the school/club profile picture?");
    if (c == true)
       {
        var params = 'pic=' + pic + '&host=' + host;
        var url = "PICTURESPGMS/setashostprofilepic.php";
        var ajax = new Ajax.Updater({success: 'updatepic'}, url,{method: 'get', parameters: params, onFailure: reportError});
       }
}

function makeleagueprofilepicture(pic, league)
{
    var c = confirm("Do you want to make this picture the league profile picture?");
    if (c == true)
       {
        var params = 'pic=' + pic + '&league=' + league;
        var url = "PICTURESPGMS/setasleagueprofilepic.php";
        var ajax = new Ajax.Updater({success: 'updatepic'}, url,{method: 'get', parameters: params, onFailure: reportError});
       }
}

function makeprofilevideo(vid)
{
    var c = confirm("Do you want to make this video your profile video?");
    if (c == true)
       {
        var params = 'v=' + vid;
        var url = "/MEMBERPGMS/setasprofilevideo.php";
        var ajax = new Ajax.Updater({success: 'updatevid'}, url,{method: 'get', parameters: params, onFailure: reportError});
       }
}


function maketeamprofilevideo(vid, team)
{
    var c = confirm("Do you want to make this video the team profile video?");
    if (c == true)
       {
        var params = "v=" + vid + "&t=" + team;
        var url = "/TEAMSPGMS/setasteamprofilevideo.php";
        var ajax = new Ajax.Updater({success: 'updatevid'}, url,{method: 'get', parameters: params, onFailure: reportError});
       }
}

function makehostprofilevideo(vid, host) {
    var c = confirm("Do you want to make this video the school/club profile video?");
    if (c)        {
        var params = "v=" + vid + "&h=" + host;
        var url = "/TEAMSPGMS/setashostprofilevideo.php";
        var ajax = new Ajax.Updater({success: 'updatevid'}, url,{method: 'get', parameters: params, onFailure: reportError});
    }
}

function makeleagueprofilevideo(vid, league)
{
    var c = confirm("Do you want to make this video the league profile video?");
    if (c == true)
       {
        var params = "v=" + vid + "&l=" + league;
        var url = "/TEAMSPGMS/setasleagueprofilevideo.php";
        var ajax = new Ajax.Updater({success: 'updatevid'}, url,{method: 'get', parameters: params, onFailure: reportError});
       }
}

function getUserPictures(elem, user, which)
{
  var params = "user=" + user + "&which=" + which;
  var url = "/MEMBERPGMS/getUserPictures.php";
  var ajax = new Ajax.Updater({success: 'new_img_resume_cont'}, url,{method: 'get', parameters: params, onFailure: reportError});
  showdiv('new_img_resume_cont');
}

function getUserPicturesE(elem, user, which)
{
  var params = "user=" + user + "&which=" + which;
  var url = "/MEMBERPGMS/getUserPictures.php";
  var ajax = new Ajax.Updater({success: 'img_resume_cont'}, url,{method: 'get', parameters: params, onFailure: reportError});
  showdiv('img_resume_cont');
}

function getUserVideos(elem, user, which)
{
  var params = 'user=' + user + "&which=" + which;
  var url = "/MEMBERPGMS/getUserVideos.php";
  var ajax = new Ajax.Updater({success: 'new_img_resume_cont'}, url,{method: 'get', parameters: params, onFailure: reportError});
  showdiv('new_img_resume_cont');
}

function getUserVideosE(elem, user, which)
{
  var params = 'user=' + user + "&which=" + which;
  var url = "/MEMBERPGMS/getUserVideos.php";
  var ajax = new Ajax.Updater({success: 'img_resume_cont'}, url,{method: 'get', parameters: params, onFailure: reportError});
  showdiv('img_resume_cont');
}


function addDivision() {
  var name = document.getElementById('ndivision').value;
  var league = getValue('leagueid');
  if (trim(name, ' ') == '')  {
      setHTML('ndivfeedback','<p>Division must have a name</p>');
      return;
  }
  var params = 'league=' + league + "&name=" + name;
  var url = "/TEAMSPGMS/updatedivision.php?" + params;
    asyncreqdiv(url,'ndivfeedback');
}

function deleteDivision() {
    var division =  - getValue('divisionselect');
    var league = getValue('leagueid');
    if (!division || !league) return;
    var params = "league=" + league + "&division=" + division;
    var url = "/TEAMSPGMS/updatedivision.php?" + params;
    asyncreqdiv(url,'errorfeedback');
}

function updateDivision() {
    var division = getValue('divisionselect');
    var name = getValue('eudivision');
    var league = getValue('leagueid');
    if (trim(name, ' ') == '')  {return;}
    var params = "league=" + league + "&division=" + division + "&name=" + name;
    var url = "/TEAMSPGMS/updatedivision.php?" + params;
    asyncreqdiv(url,'errorfeedback');
}

function showTeamsInDivisionSelect() {
    var division = getValue('divisionselect');
    var params = "division=" + division;
    var url = "/TEAMSPGMS/printteamsindivisionselect.php?" + params;
    asyncreqdiv(url,'divisionteamsarea');
}

function addTeamToDivision() {
    var division = getValue('divisionselect');
    if (division) {
        var option = transferSelect('lteams','dteams');
        var league = getValue('leagueid');
        if (option) {
            var teamIndex = option.value;
            var params = "league=" + league + "&team=" + teamIndex + "&division=" + division;
            var url = "/TEAMSPGMS/updatedivision.php?" + params;
            asyncreqdiv(url,'errorfeedback');
        }
    }
}

function removeTeamFromDivision(league) {
    var division = getValue('divisionselect');
    if (division) {
        var league = getValue('leagueid');
        var option = transferSelect('dteams','lteams');
        if (option) {
            var teamIndex = option.value;
            var params = "league=" + league + "&team=" + teamIndex + "&division=" + division;
            var url = "/TEAMSPGMS/updatedivision.php?" + params;
            asyncreqdiv(url,'errorfeedback');
        }
    }
}

function loadEventPlayingFields() {
    var hteam = document.getElementById('home_team-id').value;
    var vteam = document.getElementById('visiting_team-id').value;
    var league = document.getElementById('league').value;
    var currentPlayingField = document.getElementById('playing_field-id').value;
    var params = "league=" + league + "&current=" + currentPlayingField + "&hteam=" + hteam;// + "&vteam=" + vteam;
    var url = "/TEAMSPGMS/loadEventPlayingFields.php?";
    asyncreq(url+params,showLocationText);
//    var ajax = new Ajax.Updater({success: 'playing_field-id'}, url,{method: 'get', parameters: params, onFailure: reportError});
}


function deletePlayingField(pkey, type, typeid, referenceKey) {
    var params = "pkey=" + pkey + "&type=" + type + "&typeid=" + typeid + "&referenceKey=" + referenceKey;

    var url = "/TEAMSPGMS/deleteplayingfield.php";
    var ajax = new Ajax.Updater({success: ''}, url,{method: 'get', parameters: params, onFailure: reportError});
    var url = "/TEAMSPGMS/showplayingfields.php";
    var ajax = new Ajax.Updater({success: 'tpflist'}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function removePlayingFieldReference(pkey, type, typeid, referenceKey) {
    var params = "pkey=" + pkey + "&type=" + type + "&typeid=" + typeid + "&referenceKey=" + referenceKey;

    var url = "/TEAMSPGMS/deleteplayingfieldreference.php";
    var ajax = new Ajax.Updater({success: ''}, url,{method: 'get', parameters: params, onFailure: reportError});

    var url = "/TEAMSPGMS/showplayingfields.php";
    var ajax = new Ajax.Updater({success: 'tpflist'}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function showLocationText(prefix) {
    var playingField = document.getElementById(prefix + '-playing_field-id');
    var value = 0;
    if (playingField) {
        value = playingField.value;
        if (value >= 1)  showdiv(prefix + '-viewpf-id');
        else hidediv(prefix + '-viewpf-id');
        if (value == -2) {
            showdiv(prefix + '-location-div');
        }
        else {
            hidediv(prefix + '-location-div');
        }
    }
}

function initLocation(prefix) {
    setTimeout(
        function() {
            showLocationText(prefix);
        },0);
}

function showPlayingField(elem, displayelem) {
  var pkey = document.getElementById(elem).value;
  if (pkey>0) {
    var dim = GetTopLeft(document.getElementById(displayelem));
    var top = dim.Top + 200;
    var left = dim.Left +200;
    var params = 'pkey=' + pkey;
    var url = "/TEAMSPGMS/showplayingfield.php";
    var ajax = new Ajax.Updater({success: displayelem}, url,{method: 'get', parameters: params, onFailure: reportError});
    document.getElementById(displayelem).style.top = top + "px";
    document.getElementById(displayelem).style.left = left + "px";
    showdiv(displayelem);
  }
}

function showPlayingFieldById(pkey, displayelem, rownum) {
	if (pkey>0) {
            var dim = GetTopLeft(document.getElementById(displayelem));
            var top = 500 + parseInt(dim.Top) + (parseInt(rownum)*53);
            var left = 200 + dim.Left;
            var params = 'pkey=' + pkey;
            var url = "/TEAMSPGMS/showplayingfield.php";
            var ajax = new Ajax.Updater({success: displayelem}, url,{method: 'get', parameters: params, onFailure: reportError});
            document.getElementById(displayelem).style.top = top + "px";
            document.getElementById(displayelem).style.left = left + "px";
	    showdiv(displayelem);
    }
}


function showPlayingFieldsList() {
  var value = document.getElementById('whichpfs').value;
  var pagetype = document.getElementById('pagetype').value;
  var pagetypeid = document.getElementById('pagetypeid').value;
  var top = 50;
  var left =  200;
  var params = 'whichpfs=' + value + '&pagetype=' + pagetype + '&pagetypeid=' + pagetypeid;
  var url = "/TEAMSPGMS/showplayingfieldslist.php";
  var ajax = new Ajax.Updater({success: 'pflist'}, url,{method: 'get', parameters: params, onFailure: reportError});
  showdiv('pflist');
}

function addPlayingFieldReference() {
   var pf = document.getElementById('pf').value;
   var pagetype = document.getElementById('pagetype').value;
    var pagetypeid = document.getElementById('pagetypeid').value;

   var params = 'pagetype=' + pagetype + '&pagetypeid=' + pagetypeid + '&pf=' + pf;
   var url = "/TEAMSPGMS/addplayingfieldreference.php";

   var ajax = new Ajax.Updater({success: ''}, url,{method: 'get', parameters: params, onFailure: reportError});

   var params = 'type=' + pagetype + '&typeid=' + pagetypeid 
   var url = "/TEAMSPGMS/showplayingfields.php";
   var ajax = new Ajax.Updater({success: 'tpflist'}, url,{method: 'get', parameters: params, onFailure: reportError});

}

function showEditPlayingField(pkey, referenceKey) {
  var dim = GetTopLeft(document.getElementById('epf'));
  var top = dim.Top;
  var left = dim.Left;
  var params = 'pkey=' + pkey + "&referenceKey=" + referenceKey;
  var url = "/TEAMSPGMS/editplayingfield.php";
  var ajax = new Ajax.Updater({success: 'editpf'}, url,{method: 'get', parameters: params, onFailure: reportError});
//  document.getElementById('editpf').style.position = 'absolute';
//  document.getElementById('editpf').style.top = top + "px";
//  document.getElementById('editpf').style.left = left + "px";
  showdiv('editpf');
}

function showEditCoach(pkey) {
    var params = "pkey=" + pkey;    
    var url = "/TEAMSPGMS/showEditCoach.php";
    var ajax = new Ajax.Updater({success: 'editcoach'}, url,{method: 'get', parameters: params, onFailure: reportError});
    showdiv('editcoach');
}


function showEditResume(elem, pkey, i) {
//var top = elem.offsetParent.offsetTop + 100;
var dim = GetTopLeft(elem);
var top = dim.Top - 100;
var left = dim.Left -800;
//var browser = navigator.appName;
//var left =  elem.offsetLeft-850;
var params = 'pkey=' + pkey + '&i=' + i;
var url = "/MEMBERPGMS/editUserResume.php";
var ajax = new Ajax.Updater({success: 'edit_resume2'}, url,{method: 'get', parameters: params, onFailure: reportError});
document.getElementById('edit_resume2').style.position = 'absolute';
document.getElementById('edit_resume2').style.top = top + "px";
document.getElementById('edit_resume2').style.left = left + "px";
showdiv('edit_resume2');
}


function GetTopLeft(elm) {
    if (elm) {
        var x, y = 0;
//set x to elm.s offsetLeft
        x = elm.offsetLeft;

//set y to elm.s offsetTop
        y = elm.offsetTop;

//set elm to its offsetParent
        elm = elm.offsetParent;

//use while loop to check if elm is null
// if not then add current elm.s offsetLeft to x
//offsetTop to y and set elm to its offsetParent

        while(elm != null) {

            x = parseInt(x) + parseInt(elm.offsetLeft);
            y = parseInt(y) + parseInt(elm.offsetTop);
            elm = elm.offsetParent;
        }

//here is interesting thing
//it return Object with two properties
//Top and Left

        return {Top:y, Left: x};
    }
}

function showSendResume(elem, pkey, i) {
//  var top = elem.offsetParent.offsetTop;
//  var left =  elem.offsetLeft-250;
var dim = GetTopLeft(elem);
var top = dim.Top - 200;
var left = dim.Left - 450;
  document.getElementById('sresume').value = pkey;
  document.getElementById('send_resume2').style.position = 'absolute';
  document.getElementById('send_resume2').style.top = top + "px";
  document.getElementById('send_resume2').style.left = left + "px";
  showdiv('send_resume2');
}

function getCalendarUpdate(month, year, otherparam)
{
  //other param is either team or member
  var params = 'month=' + month + '&year=' + year + '&' + otherparam;
  var url = "/TEAMSPGMS/getCalendarUpdate.php";
  var ajax = new Ajax.Updater({success: 'calendar'}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function getCalendarUpdateForDatePicker(month, year)
{
  var params = 'month=' + month + '&year=' + year;
  var url = "/TEAMSPGMS/getCalendarUpdateForDatePicker.php";
  var ajax = new Ajax.Updater({success: 'calendar'}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function getLeagueCalendarUpdate(month, year, otherparam)
{
  //other param is either team or member
  var params = 'month=' + month + '&year=' + year + '&' + otherparam;
  var url = "/TEAMSPGMS/getLeagueCalendarUpdate.php";
  var ajax = new Ajax.Updater({success: 'calendar'}, url,{method: 'get', parameters: params, onFailure: reportError});
}


function openDatePicker(url) {
  var name = 'datepicker';
  var params = 'left=600,top=700,height=300,width=225,fullscreen=no,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,';
  window.open(url, name,params);
}

function showEditEvent(event, elem, param)  {
  var url = "/TEAMSPGMS/editEvent.php";
  var params = 'event=' + event + '&' + param;
  var ajax = new Ajax.Updater({success: 'edit_event'}, url,{method: 'get', parameters: params, onFailure: reportError});

  var dim = GetTopLeft(elem);
  var top = dim.Top - 200;
  var left = dim.Left - 700;

  document.getElementById('edit_event').style.position = 'absolute';
  document.getElementById('edit_event').style.top = top + "px";
  document.getElementById('edit_event').style.left = left + "px";
  showdiv('edit_event');
}

function showEditLeagueEvent(event, elem, division)  {
  var url = "/TEAMSPGMS/showEditEvent.php";
  var params = 'event=' + event + '&division=' + division;
  var ajax = new Ajax.Updater({success: 'edit_event'}, url,{method: 'get', parameters: params, onFailure: reportError});
/*
  var dim = GetTopLeft(elem);
  var top = dim.Top - 200;
  var left = dim.Left - 700;

  document.getElementById('edit_event').style.position = 'absolute';
  document.getElementById('edit_event').style.top = top + "px";
  document.getElementById('edit_event').style.left = left + "px";
*/
var top = 200;
 //  window.scrollTo(0,top);

  showdiv('edit_event');
}

function initializeEdit(response) {
    setdiv(response,'edit_event');
    showLocationText('scheduleform-Edit');
}


function processAddPageForm(response) {
    if (response == 'Page Added') {
        setValue('editPageDone',1);
        var addpageform = document.getElementById('addpageform');
        if (addpageform) addpageform.submit();
    }
    else {
        setHTML('editpageerror',response);
    }

}

function submitAddPage() {
    asyncpost('addpageform',processAddPageForm);
}

function checkPageChanged(index) {
    var edit = imsportz.editPage;
    if (edit.selected == index) return false;
    if (edit.menutitle != getValue('menutitle')) return true;
    if (edit.linkname  != getValue('linkname'))  return true;
    if (CKgetDirty('html')) return true;
//    var ckvalue = getCKValue('html');
//    if (edit.pagecontent      != ckvalue)    return true;
    return false;
}

function initEditPageIndex(selected) {
    if (!imsportz.editPage) {
        imsportz.editPage = new Object;
    }
    imsportz.editPage.selected = selected;
}

function initEditPage(selected) {
    imsportz.editPage = new Object;
    imsportz.editPage.selected = selected;
    imsportz.editPage.menutitle = getValue('menutitle');
    imsportz.editPage.linkname = getValue('linkname');
    imsportz.editPage.pagecontent = getCKValue('html');
    var xx = 3;
}




function selectPageSelect(reload) {
    if (reload == undefined) reload = true;
    var selectpage = document.getElementById('selectpage');
    if (selectpage) {
        var selected = selectpage.selectedIndex;
        if (imsportz.editPage == undefined) {
            initEditPage(selected);
        }
        if (checkPageChanged(selected)) {
            var alertResponse = confirm('You have edited the page, if you select another page, your changes will be lost.  Are you sure you want to do this?');
            if (!alertResponse) {
                selectpage.selectedIndex = imsportz.editPage.selected;
                return true;
            }
        }
        var addpage     = document.getElementById('addpage-id');
        var deletepage   = document.getElementById('deletepage-id');
        var moveuppage   = document.getElementById('moveuppage-id');
        var movedownpage = document.getElementById('movedownpage-id');
        showelem(addpage);
        showelem(moveuppage);
        showelem(movedownpage);
        showelem(deletepage);
        if (selected == -1) {
//            hideelem(editpage);
            hideelem(moveuppage);
            hideelem(movedownpage);
            hideelem(deletepage);
        }
        else {
            if (selected == 0) {
                hideelem(moveuppage);
            }
            if (selected == selectpage.length - 1) {
                hideelem(movedownpage);
            }
        }
        if (reload  && selected != imsportz.editPage.selected) {
            showEditPage();
        }
    }
}

function cancelEditPage() {
    if (checkPageChanged(-2)) {
        var alertResponse = confirm('You have edited the page, if you cancel, your changes will be lost.  Are you sure you want to do this?');
        if (!alertResponse) return;
    }
    var selectpage = document.getElementById('selectpage');
    selectpage.selectedIndex = -1;
    showNewPageDiv(-1);
}

function addPage() {
    var selectpage = document.getElementById('selectpage');
    if (selectpage) {
        var selected = selectpage.selectedIndex;
        if (checkPageChanged(-2)) {
            var alertResponse = confirm('You have edited the page, if you create another page, your changes will be lost.  Are you sure you want to do this?');
            if (!alertResponse) return;
        }
        selectpage.selectedIndex = -1;
        setNewURL(true);
        showNewPageDiv(-1);
    }
}

function setNewURL(update) {
    var menutitle = document.getElementById('menutitle');
    var linkname = document.getElementById('linkname');
    var change = changeURL;
    if (!update) {
        change = null;
    }
    if (menutitle && linkname) {
        menutitle.onkeyup = change;
        menutitle.onpaste = change;
        menutitle.oninput = change;
        menutitle.onchange  = change;
        linkname.onchange = linknameChange;
    }
    imsportz.newpage = update;



}


function linknameChange() {
    setNewURL(false);
}

function changeURL() {
    if (imsportz.newpage) {
        var menutitle = getValue('menutitle');
        if (menutitle) {
            setValue('linkname',string_to_slug(menutitle));
        }
    }
}

function string_to_slug(str) {
  str = str.replace(/^\s+|\s+$/g, ''); // trim
  str = str.toLowerCase();

  // remove accents, swap ñ for n, etc
  var from = "àáäâèéëêìíïîòóöôùúüûñç·/_,:;";
  var to   = "aaaaeeeeiiiioooouuuunc------";
  for (var i=0, l=from.length ; i<l ; i++) {
    str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i));
  }

  str = str.replace(/[^a-z0-9 -]/g, '') // remove invalid chars
    .replace(/\s+/g, '-') // collapse whitespace and replace by -
    .replace(/-+/g, '-'); // collapse dashes

  return str;
}


function json_decode(jsontext) {
    var text = jsontext ? eval('(' + jsontext + ')') : '';
    return text;
}
function processEditPage(editinfo) {
    if (editinfo) {
        var edit = json_decode(editinfo);
        processEditPageArray(edit);
    }
}

function processEditPageArray(edit) {
/*    setHTML('pageactiontitle','Edit Page');
    setValue('linkname',edit['linkname']);
    setValue('menutitle',edit['menutitle']);
    setCKValue('html',edit['html']);
*/
    var selectpage = document.getElementById('selectpage');
    if (selectpage) {
        var selected = selectpage.selectedIndex;
        if (selected == edit['num']) {
            setHTML('pageactiontitle','Edit Page');
            setValue('linkname',edit['linkname']);
            setValue('menutitle',edit['menutitle']);
            setCKValue('html',edit['html']);
            initEditPageValue(edit);
            showNewPageDiv(selected);
        }
    }
}

function initEditPageValue(edit) {
    imsportz.editPage = new Object;
    imsportz.editPage.selected    = edit['num'];
    imsportz.editPage.menutitle   = edit['menutitle'];
    imsportz.editPage.linkname    = edit['linkname'];
    imsportz.editPage.pagecontent = edit['html'];
    var xx = 3;
}


function showEditPage() {
    var selectpage = document.getElementById('selectpage');
    if (selectpage) {
        var selected = selectpage.selectedIndex;
        if (selected == -1) {
            var edit = new Array();
            edit['menutitle'] = '';
            edit['linkname'] = '';
            edit['html'] = '';
            edit['num'] = -1;
            processEditPageArray(edit);
        }
        else {
            var type = getValue('editPageType');
            var pageId = getValue('editPageId');
            var params = new Object();
            params['id'] = pageId;
            params['type'] = type;
            params['num'] = selected;
            asyncreq("/TEAMSPGMS/editpage.php?" + getParams(params),processEditPage);
        }
    }
}

function showNewPageDiv(index) {
    setHTML('editpageerror','');
    if (index == -1) {
        setValue('menutitle','');
        setValue('linkname','');    
        setCKValue('html','');
        setHTML('pageactiontitle','Add Page');
    }
    else {
        setHTML('pageactiontitle','Edit Page');
    }
    setPageNum(index);
    selectPageSelect(true);
}

function setPageNum(index) {
    initEditPageIndex(index);
    setValue('editPageNum',index);

}

function hideNewPage() {
    hidediv('newpage');
    showdiv('editpagecontrol');
}

function movepageup() {
    var selectpage = document.getElementById('selectpage');
    if (selectpage) {
        var selected = selectpage.selectedIndex;
        if (selected > 0 && selected < selectpage.length) {
            exchange(selectpage,selected,selected-1,false);
            updatePageOrder('up',selected);
            setPageNum(selected-1);
            selectPageSelect(false);
        }
    }


}

function movepagedown() {
    var selectpage = document.getElementById('selectpage');
    if (selectpage) {
        var selected = selectpage.selectedIndex;
        if (selected != -1 && selected < selectpage.length - 1) {
            exchange(selectpage,selected,selected+1,false);
            updatePageOrder('down',selected);
            setPageNum(selected+1);
            selectPageSelect(false);
        }
    }
}

function deletePage() {
    var selectpage = document.getElementById('selectpage');
    if (selectpage) {
        var selected = selectpage.selectedIndex;
        if (selected != -1) {
            var confirmResult = confirm('Once you delete the page, you cannot recover the contents.  Are you sure you want to do this?');
            if (confirmResult) {
                selectpage.remove(selected);
                updatePageOrder('delete',selected);
                if (selected == selectpage.length) {
                    selected = selectpage.length -1;
                }
                selectpage.selectedIndex = selected;
                showEditPage();
            }
        }
    }
}

function updatePageOrder(order,num) {
    var type = getValue('editPageType');
    var id   = getValue('editPageId');
    var url = "/TEAMSPGMS/addpage.php?type=" + type + '&id=' + id + '&order=' + order + '&num=' + num;
    asyncreq(url);

}

function showEditLeagueEventFromListPage(eventid){
	var url = "/TEAMSPGMS/showEditEvent.php?leagueEvent=" + eventid;
	asyncreq(url, initializeEdit);
	var top = 200;
//	window.scrollTo(0, top);
}


function showEditTeamEventFromListPage(eventid){
	var url = "/TEAMSPGMS/showEditEvent.php?&teamEvent=" + eventid;
	asyncreq(url, initializeEdit);
	var top = 200;
//	window.scrollTo(0, top);
}


function editScoreInit(response) {
//   alert('inside editScoreInit, response is: ' + response);
	setdiv(response,'edit_event');
//    alert('after setdiv');
	reschedule_checkbox();
//    alert('after reschedule');
}

function showEditScoreNotFinalized() {
    alert("This tournament has not been finalized yet and therefore you can't enter scores. If you are done entering all the teams and ranking them, then go to the Arrange Tournament Screen and press Finalize.  In the meantime, you can still set up your schedule, by clicking the Edit button.");
}

function showEditScoreLeagueEventFromListPage(eventid,warn){
//    alert('inside showEditScoreLeagueEventFromListPage');

    if (warn) {
        var conf = confirm('You have asked to Reenter the Scores for a game that has already been Finalized.  If you change the score, this will affect the standings, and may affect subsequent games in a Tournament.  Are you sure you want to do this?');
        if (!conf) return;
    }
//    alert('after warn');
//    var backto = encodeURIComponent(document.location);
//    alert('after encode');
    var url = "/TEAMSPGMS/editLeagueScores.php?event=" + eventid; // + "&backto=" + backto;
//    alert('url is' + url);
    asyncreq(url, editScoreInit);
    var top = 200;
//    window.scrollTo(0, top);
}


function showEditLeagueEvent(eventid) {
	asyncreqdiv('TEAMSPGMS/showEditEvent.php' + '?event=' + eventid,'edit_event');
}


function getElementsByClassName(classname, tag, elemid){
	var elem = document.getElementById(elemid);
	if (!elem) return null;
	var elems = elem.getElementsByTagName(tag);
	if (!elems) return null;
	var list = new Array();
	for (var i = 0; i < elems.length; i++) {
		var ele = elems[i];
		if (ele.className && ele.className.indexOf(classname) != -1) {
			list.push(ele);
		}
	} 
	return list;
}

function init_edit_tournament() {
	var games = getElementsByClassName('game','div','tournament se_16');
	for(var i = 0; i < games.length; i++) {
		var game = games[i];
		game.onmousedown = showEditLeagueEvent;
	}
}



function showEnterLeagueScores(event, elem)  {
  var url = "/TEAMSPGMS/enterLeagueScores.php";
  var params = 'event=' + event;
  var ajax = new Ajax.Updater({success: 'edit_event'}, url,{method: 'get', parameters: params, onFailure: reportError});
  var dim = GetTopLeft(elem);
  var top = dim.Top - 200;
  var left = dim.Left - 500;

  document.getElementById('edit_event').style.position = 'absolute';
  document.getElementById('edit_event').style.top = top + "px";
  document.getElementById('edit_event').style.left = left + "px";
//   window.scrollTo(0,top);

  showdiv('edit_event');
}

/*
function showTeamReportForEvent(event, elem, page)  {
  var url = "/TEAMSPGMS/enterTeamReportForEvent.php";
  var params = 'event=' + event + "&page=" + page;
  var ajax = new Ajax.Updater({success: 'edit_event'}, url,{method: 'get', parameters: params, onFailure: reportError});
  var dim = GetTopLeft(elem);
/*
  var top = dim.Top - 800;
  var left = dim.Left - 500;

  document.getElementById('edit_event').style.position = 'absolute';
  document.getElementById('edit_event').style.top = top + "px";
  document.getElementById('edit_event').style.left = left + "px";
// 
  var top = 200;
//  window.scrollTo(0,top);

  showdiv('edit_event');
}
*/

function showSubmittedTeamReportsForEvent(event, elem, page, anchor)  {
  var url = "/TEAMSPGMS/showSubmittedTeamReportsForEvent.php";
  var params = 'event=' + event + "&page=" + page + "&anchor=" + anchor;
  var ajax = new Ajax.Updater({success: 'edit_event'}, url,{method: 'get', parameters: params, onFailure: reportError});
  var dim = GetTopLeft(elem);
/*
  var top = dim.Top - 800;
  var left = dim.Left - 500;

  document.getElementById('edit_event').style.position = 'absolute';
  document.getElementById('edit_event').style.top = top + "px";
  document.getElementById('edit_event').style.left = left + "px";
*/
var top=200;
//   window.scrollTo(0,top);
  showdiv('edit_event');
}

function openDaysEvents(url, date, paramstr) {
  //var name = 'daysevents';
  //var params = 'height=500,width=500,fullscreen=no,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=no,';
  //window.open(url, name,params);
   var params= 'date=' + date + paramstr;
   var ajax = new Ajax.Updater({success: 'events'}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function openDaysEventsUnderCalendar(url, date, paramstr) {
    var params= 'date=' + date + paramstr;
    var ajax = new Ajax.Updater({success: 'dayseventslist'}, url,{method: 'get', parameters: params, onFailure: reportError});
    window.location.hash='#calendarlist';
}


function selectDate(day, date, month, year) {
  var chosendate  = document.getElementById('chosendate');
  var chosentime  = document.getElementById('chosentime');
  var days = new Array('', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');

  chosendate.innerHTML = days[day] + ' ' + month + '/' + date + '/' + year;
   chosentime.innerHTML = document.getElementById('hrs').value + ':' + document.getElementById('mnts').value + ' ' + document.getElementById('apm').value + ' until ' + document.getElementById('hrs2').value + ':' + document.getElementById('mnts2').value + ' ' + document.getElementById('apm2').value;
}

function selectTime() {
  var chosentime  = document.getElementById('chosentime');
  chosentime.innerHTML = document.getElementById('hrs').value + ':' + document.getElementById('mnts').value + '  \
' + document.getElementById('apm').value + ' until ' + document.getElementById('hrs2').value + ':' + document.getElementById('mnts2').value + ' ' + document.getElementById('apm2').value;
}

function enterDateTime(which) {
  if (document.getElementById('chosendate').innerHTML == '' || document.getElementById('chosentime').innerHTML == '')
    {
    document.getElementById('updatemsg').innerHTML = "Please choose a date and time or specify the time as To Be Determined.";
    return;
    }
  if (which == 'new')
    self.opener.document.nform.ndatetime.value = document.getElementById('chosendate').innerHTML + ' ' + document.getElementById('chosentime').innerHTML;
   if (which == 'edit')
    self.opener.document.eform.edatetime.value = document.getElementById('chosendate').innerHTML + ' ' + document.getElementById('chosentime').innerHTML;
  window.close();
}

function checkNewLeagueEventForm() {
  var event = document.getElementById('nchosendate').value;
  if (!event || event == '00/00/00') {
     alert('Please choose a date and time or specify the time as To Be Determined.');
     document.getElementById('nupdatemsg').innerHTML = 'Please enter an event and date';
     return false;
  }
  /*   var nevent = document.getElementById('nevent').value;
  if (!nevent)
{
     alert('Please enter the event name');
     document.getElementById('nupdatemsg').innerHTML = 'Please enter the event name';
     return false;
} */
 var nhteam = document.getElementById('nhome_team-id').value;
/*  if (!nhteam || nhteam==0){
     alert('Please enter the home team');
     document.getElementById('nupdatemsg').innerHTML = 'Please enter the home team name';
     return false;
} */
 var nvteam = document.getElementById('nvisiting_team-id').value;
/*  if (!nvteam || nvteam==0) {
     alert('Please enter the visiting team');
     document.getElementById('nupdatemsg').innerHTML = 'Please enter the visiting team name';
     return false;
}
   */

    if (!nhteam || !nvteam || nhteam == nvteam) {
        alert('A team cannot play itself!');
        return false;
    }
if (checkneweventtimes() ==  false)
{
     alert('The times you entered are invalid. The end time must be equal to or after the start time');
     document.getElementById('nupdatemsg').innerHTML = 'The end time must be equal to or after the start time.';
     return false;
}

return true;
}

function submitNewEventForm(sitename) {
  if (true==checkNewEventForm()){
      if( document.getElementById('ntime_tbd').checked==false){
            checkNewEventScheduleConflict(sitename);
            return;
      }else{
      document.getElementById('nform').submit();
      return;
      }
  }
  return;
}

function reloadEvents() {
    saveScrollY();
    var form = document.getElementById('getevents');
    if (form) {
        form.submit();
    }
    var x = 34;
    x++;
}

function processEditScoreForm(response) {
	var err = response;	
	if (response == 'update score processed') {
		hidediv('edit_event');
        reloadEvents();
//        window.location.reload(true);
	}
}

function reschedule_checkbox(){
	var checkbox = document.getElementById("reschedule_checkboxid");

	if (checkbox && checkbox.checked) {
		hidediv('userscore');
		var hscore = document.getElementById("hscore");
		hscore.value = -1;
		var vscore = document.getElementById("vscore");
		vscore.value = -1;
		showdiv('reschedule_reason');
	}
	else {
		showdiv('userscore');
		hidediv('reschedule_reason');
		var reschedule_text = document.getElementById("reschedule_text");
        if (reschedule_text) reschedule_text.value = "";
	}
}

function submitAcceptLeagueScoreForm(report) {
    var url = "/TEAMSPGMS/submitAcceptLeagueScore.php?score=" + report;
    saveScrollY();
    asyncreq(url,reloadEvents);
    hidediv('edit_event');
}

function deleteEditLeagueScoreForm(event) {
    var confirmIt = confirm('This will delete all score reports for this game.  This may affect standings, or future games in a tournament.  Are you sure you want to do this?');
    if (confirmIt) {
        saveScrollY();
        url = 'TEAMSPGMS/deleteReportedScores.php?event=' + event;
        asyncreq(url,reloadEvents);
    }
}

function reload() {
    window.location.reload(true);
}

function scrollToDelay(amount,delay) {
    if (delay == undefined) delay = 50;
    setTimeout(function() {
        window.scrollTo(0,amount);
    },delay);
}

function saveScrollY() {
    var scrollYElem = document.getElementById('scrollyposid');
    if (scrollYElem) {
        scrollYElem.value = window.pageYOffset;
    }
}

function submitEditLeagueScoreForm(e,dontAllowTie) {
    saveScrollY();
	var checkbox = document.getElementById("reschedule_checkboxid");
	if (checkbox.checked) {
		var reschedule_text = document.getElementById("reschedule_text");
		if (reschedule_text.value == '') {
			alert('Please enter the reason for rescheduling');
			return;
		}
	}
	else {
		var hscore = document.getElementById("hscore");
		var vscore = document.getElementById("vscore");
		if (hscore.value == -1 || 	vscore.value == -1) {
			alert('Please enter a score for both teams');
			return;
		}
        if (dontAllowTie && (hscore.value == vscore.value)) {
            alert('Tied scores not allowed for this sport');
        }
	}
	asyncpost('eform',processEditScoreForm);
}

function submitEditEventForm(sitename, e) {
  if (true==checkEditEventForm()){
      if( document.getElementById('etime_tbd').checked==false){
            checkENewEventScheduleConflict(sitename,e);
            return;
      }else{
      document.getElementById('eform').submit();
      return;
      }
  }
  return;
}


function submitNewLeagueEventForm(sitename) {
  if (true==checkNewLeagueEventForm()){
      if( document.getElementById('ntime_tbd').checked==false){
            checkNewLeagueEventScheduleConflict(sitename);
            return;
      }else{
      document.getElementById('nform').submit();
      return;
      }
  }
  return;
}

function submitEditLeagueEventForm(e) {
//  leagueAdminEnteredBothScores(e);
  if (true==checkEditEventForm()){
      if( document.getElementById('etime_tbd').checked==false){
            checkENewLeagueEventScheduleConflict(e);
            return;
      }else{
      document.getElementById('eform').submit();
      return;
      }
  }
return;
}

function processDeleteTeam(response,event) {
	if (response == "scores already submitted") {
		var confirmit = confirm("Scores have already been submitted for this game.  If you delete this game, the scores will be deleted and this may affect the standings.  Are you sure you want to do this?");
		if (confirmit) {
            deleteEvent(event,true);
		}
	}
    else {
        reloadEvents()
//	    window.location.reload(true);
    }
}

function deleteEvent(event,force) {
    hidediv('edit_event');
    var type = '';
    if (getvalue('leagueScheduleKey')) type = 'league';
    else if (getvalue('teamScheduleKey')) type = 'team';
    else return;
    var url = "/TEAMSPGMS/deleteEventReference.php?" + type + '&event=' + event;
    if (force) {
        url += '&force=1';
    }
    asyncreq(url,processDeleteTeam,event);
}

function submitDeleteEvent(id,force) {
    var eventElement = document.getElementById('eventScheduleId');
    if (eventElement) {
        var event = eventElement.value;
    }
	var confirmit = confirm("Are you sure you want to delete this event?");
	if (confirmit) {
        deleteEvent(event,false);
	}
}


function checkNewEventForm() {
  var event = document.getElementById('nchosendate').value;
  if (!event || event == '00/00/00')
{
     alert('Please choose a date and time or specify the time as To Be Determined');
     document.getElementById('nupdatemsg').innerHTML = 'Please enter an event and date';
     return false;
}
 var nevent = document.getElementById('nevent').value;
  if (!nevent)
{
     alert('Please enter the event name');
     document.getElementById('nupdatemsg').innerHTML = 'Please enter the event name';
     return false;
}

if (checkneweventtimes() ==  false)
{
     alert('The times you entered are invalid. The end time must be equal to or after the start time');
     document.getElementById('nupdatemsg').innerHTML = 'The end time must be equal to or after the start time.';
     return false;
}

return true;
}

function checkneweventtimes() {
if (document.getElementById('ntime_tbd').checked == true)  return true;
var hrs1 = parseInt(document.getElementById('nhrs').value, 10);
var hrs2 = parseInt(document.getElementById('nhrs2').value, 10);
var mnts1 = parseInt(document.getElementById('nmnts').value, 10);
var mnts2 = parseInt(document.getElementById('nmnts2').value, 10);
var apm1 = document.getElementById('napm').value;
var apm2 = document.getElementById('napm2').value;

//if no end time specified then don't need to check this function
if (hrs2 == 0 || mnts2 == 0)
{
  return true;
}

if (apm1 == 'PM' && hrs1!=12)  hrs1 = hrs1 + 12;
if (apm2 == 'PM' && hrs2!=12)  hrs2 = hrs2 + 12;
if (hrs1 == 12 && apm1=='AM')  hrs1=0;
if (hrs2 == 12 && apm2=='AM') hrs2=0;

if (hrs1 > hrs2)  return false;
if (hrs1==hrs2  && mnts1>mnts2)  return false;

return true;

}



function checkEditEventForm() {
  var event = document.getElementById('echosendate').value;
  if (!event || event == '00/00/00')
     {
     alert('Please choose a date and time or specify the time as To Be Determined.');
     document.getElementById('eupdatemsg').innerHTML = 'Please enter an event and date';
     return false;
     }

// var eevent = document.getElementById('eevent').value;
//  if (!eevent)
//{
//     alert('Please enter the event name');
//     document.getElementById('nupdatemsg').innerHTML = 'Please enter the event name';
//     return false;
//}

if (checkediteventtimes() ==  false)
{
     alert('The times you entered are invalid. The end time must be equal to or after the start time');
     document.getElementById('eupdatemsg').innerHTML = 'The end time must be equal to or after the start time.';
     return false;
}

     return true;
}


function checkediteventtimes() {
if (document.getElementById('etime_tbd').checked == true)  return true;
var hrs1 = parseInt(document.getElementById('ehrs').value, 10);
var hrs2 = parseInt(document.getElementById('ehrs2').value, 10);
var mnts1 = parseInt(document.getElementById('emnts').value, 10);
var mnts2 = parseInt(document.getElementById('emnts2').value, 10);
var apm1 = document.getElementById('eapm').value;
var apm2 = document.getElementById('eapm2').value;

if (apm1 == 'PM' && hrs1!=12)  hrs1 = hrs1 + 12;
if (apm2 == 'PM' && hrs2!=12)  hrs2 = hrs2 + 12;
if (hrs1 == 12 && apm1=='AM')  hrs1=0;
if (hrs2 == 12 && apm2=='AM') hrs2=0;

if (hrs1 > hrs2)  return false;
if (hrs1==hrs2  && mnts1>mnts2)  return false;

return true;
}

function checkInviteTeamFields() {
var i;
var fname, lname, email, msg;

var numbered = new Array('first', 'second', 'third', 'fourth', 'fifth');

for (i=1; i <= 5; i++)
{
   fname = document.getElementById('first_name' + i).value;
   lname = document.getElementById('last_name' + i).value;
   email = document.getElementById('email' + i).value;
   if (fname || lname || email)
     {
        if (!fname || !lname || !email)  msg = 'First name, last name and email required for ' + numbered[i] + ' entry.';
        if (!echeck(email))  msg += ' Invalid e-email in '  + numbered[i] + ' entry.';
     }
if (msg)  {alert(msg); return;}
}
document.getElementById('form1').submit();
}

function setdivproperty(id, property, value) {
    document.getElementById(id).style[property] = value;
}
/* <li id='lidivisions' $tstyle><a href="javascript:void(null);" onclick="
       resetTabColors('lidivisions', 'liseasons', 'lipages', 'liadmins', 'liplayingfields', 'liuploadlogo', 'liuploadphotos', 'liuploadvideos');
       showdiv('divisionsarea');
       setdivproperty('lidivisions', 'backgroundColor', '#999999');
       hideAreas('pagesarea', 'seasonsarea', 'adminsarea', 'playingfieldsarea', 'uploadlogoarea', 'uploadphotosarea', 'uploadvideosarea');">Divisions</a></li>\n
END;*/
function setTabs(tab) {
    var tabs = document.getElementById('tabs');
    if (tabs) {
        var listitems = tabs.childNodes;
        var litab = 'li' + tab;
        for (var i = 0; i < listitems.length; i++) {
            var listitem = listitems[i];
            if (listitem.tagName != 'LI') continue;
            if (listitem.id == litab) listitem.className = 'tab-here';
            else listitem.className = '';
        }
    }
    var block_main = document.getElementById('areaparent');
    if (block_main) {
        var divs = block_main.childNodes;
        var divarea =  tab + 'area';
        for (var i = 0; i < divs.length; i++) {
            var div = divs[i];
            if (div.tagName != 'DIV') continue;
            if (div.id == divarea) div.style.display = 'block';
            else div.style.display = 'none';
        }
    }
}

function resetTabColors(tab1, tab2, tab3, tab4, tab5, tab6, tab7, tab8) {
 for (var i = 0, j = arguments.length; i < j; i++){
        if (document.getElementById(arguments[i]))   document.getElementById(arguments[i]).style.backgroundColor = "#FFFFFF";
    }
}

function hideAreas(area1, area2, area3, area4, area5, area6, area7, area8) {
 for (var i = 0, j = arguments.length; i < j; i++){
        if (document.getElementById(arguments[i]))    hidediv(arguments[i]);
    }
}

function loadpic(type, server, pic)
{
  var src = server + '/getUserPicture.php?size=B&id=' + pic + '.jpg';
  document.getElementById('bigimg').src = src;
  var backto = document.getElementById('backto').innerHTML;
  var url = "PICTURESPGMS/loadpicdetails.php";
  var params = "type1=" + type + "&pic=" + pic + "&backto=" + backto;
  var ajax = new Ajax.Updater({success: 'picdetails'}, url,{method: 'get', parameters: params, onFailure: reportError});
  //showdiv('picdetails');
}


function editpicdescription()
{
  var pic = document.getElementById('pic');
  var description = document.getElementById('picdescription');
  var picthumb = "pd-" + pic.value;

  var url = "PICTURESPGMS/editpicturedescription.php";
  var params = "pic=" + pic.value + "&description=" + escape(description.value);
  var ajax = new Ajax.Updater({success: 'imgcaption'}, url,{method: 'get', parameters: params, onFailure: reportError});
  document.getElementById(picthumb).innerHTML = description.value;
}

function editteampicdescription(team)
{
  var pic = document.getElementById('pic');
  var description = document.getElementById('picdescription');
  var picthumb = "pd-" + pic.value;

  var url = "PICTURESPGMS/editpicturedescription.php";
  var params = "pic=" + pic.value + "&description=" + escape(description.value) + "&team=" + team;
  var ajax = new Ajax.Updater({success: 'imgcaption'}, url,{method: 'get', parameters: params, onFailure: reportError});
  document.getElementById(picthumb).innerHTML = description.value;
}

function edithostpicdescription(host)
{
  var pic = document.getElementById('pic');
  var description = document.getElementById('picdescription');
  var picthumb = "pd-" + pic.value;

  var url = "PICTURESPGMS/editpicturedescription.php";
  var params = "pic=" + pic.value + "&description=" + escape(description.value) + "&host=" + host;
  var ajax = new Ajax.Updater({success: 'imgcaption'}, url,{method: 'get', parameters: params, onFailure: reportError});
  document.getElementById(picthumb).innerHTML = description.value;
}

function editleaguepicdescription(league)
{
  var pic = document.getElementById('pic');
  var description = document.getElementById('picdescription');
  var picthumb = "pd-" + pic.value;

  var url = "PICTURESPGMS/editpicturedescription.php";
  var params = "pic=" + pic.value + "&description=" + escape(description.value) + "&league=" + league;
  var ajax = new Ajax.Updater({success: 'imgcaption'}, url,{method: 'get', parameters: params, onFailure: reportError});
  document.getElementById(picthumb).innerHTML = description.value;
}

function removeTeam(team)
{
  var url = "/TEAMSPGMS/removeTeam?team=" + team;
  var c = confirm("Are you sure you want to remove this team? It will also remove the roster and any information associated with the team, such as news and wall posts, and links to associated pictures and videos.");

    if (c == true)
       {
       window.location = url;
       }
}

function removeLeague(league)
{
  var url = "/TEAMSPGMS/removeLeague?league=" + league;
  var c = confirm("Are you sure you want to remove this league? It will also remove any information associated with the league, such as news, pictures and videos. Teams in the league will not be removed from imsportz, they will just no longer be associated with the league.");

    if (c == true)
       {
       window.location = url;
       }
}


function removeTeamFromLeague(elem, league, team)
{

   var c = confirm("Are you sure you want to delete this league? The team will no longer be associated with it.");

   if (c == true)
        {
         var url = "/TEAMSPGMS/removeTeamFromLeague.php";
         var params = "team=" + team + "&league=" + league + "&js=1";
         var ajax = new Ajax.Updater({success: ''}, url,{method: 'get', parameters: params, onFailure: reportError});
         elem.parentNode.removeChild( elem );
        }

}

function removeSubleagueFromLeague(elem, league, sleague)
{

   var c = confirm("Are you sure you want to leave this organizational league? The league will no longer be associated with it.");

   if (c == true)
        {
         var url = "/TEAMSPGMS/removeSubleagueFromLeague.php";
         var params = "sleague=" + sleague + "&league=" + league + "&js=1";
         var ajax = new Ajax.Updater({success: ''}, url,{method: 'get', parameters: params, onFailure: reportError});
         elem.parentNode.removeChild( elem );
        }
}


function removeTeamLogo(team)
{
  var url = "/TEAMSPGMS/removeTeamLogo.php";
  var params = "team=" + team;
  var ajax = new Ajax.Updater({success: 'logopicandtext'}, url,{method: 'get', parameters: params, onFailure: reportError});
  document.getElementById('logo').src='';
}

function removeLeagueLogo(league)
{
  var url = "/TEAMSPGMS/removeLeagueLogo.php";
  var params = "league=" + league;
  var ajax = new Ajax.Updater({success: 'logopicandtext'}, url,{method: 'get', parameters: params, onFailure: reportError});
  document.getElementById('logo').src='';
}

function redirectSelect(thisSelect) {
    if (thisSelect) {
        if (thisSelect.selectedIndex) {
            var pos = thisSelect.selectedIndex;
            if (thisSelect.options) {
                if (thisSelect.options.length >= pos) {
                    var loc = thisSelect.options[pos].value;
                    window.location = loc;
                }
            }
        }
    }
}

function removeHostFromSite(host, state)
{
  var hasteams = document.getElementById('hasteams').value;
  var msg;
/*
  if (hasteams == 'yes')
    {
    alert("This school/club contains teams. before you can remove the school/club.");
    return;
    }
*/
  var url = "/TEAMSPGMS/removeHost?host=" + host;
  var c = confirm("Are you sure you want to remove this school/club? Any teams associated with this school/club will then be listed as independant.");

    if (c == true)
       {
       window.location = url;
       }
}


/*
Example how to use prototype Ajax.Request
  var url = "http://sacotube.com/imsportztest/TEAMSPGMS/rostercheckifemailexists.php?team=16&email=e@e.com";
  new Ajax.Request(url, {
  method: 'get',
  onSuccess: function(transport) {
  alert(transport.responseText);
  }
});
*/


function checkinviteteamtoleague(team, league) {
  var url = "/TEAMSPGMS/checkinviteteamtoleague.php?team=" + team + "&league=" + league;
  new Ajax.Request(url, {
  method: 'get',
  onSuccess: function(transport) {
  if (!transport.responseText) {
    document.getElementById('nform').submit();
  }
  else {
    if (transport.responseText == 1)  alert("This team is already in this league");
    else {
       var res  = confirm("There is an open invitation to this league. Do you want to resend if it was last sent over a month ago?");}
       if (res == true)  document.getElementById('nform').submit();
    }
  }
});

}


function checkinviteteamtoschool(team, school) {
  var url = "/TEAMSPGMS/checkinviteteamtoschool.php?team=" + team + "&school=" + school;
  new Ajax.Request(url, {
  method: 'get',
  onSuccess: function(transport) {
  if (!transport.responseText) {
    document.getElementById('sform').submit();
  }
  else {
    if (transport.responseText == 1)  alert("This team is already in this school");
    else {
       var res  = confirm("There is an open invitation to this school. Do you want to resend?");}
       if (res == true)  document.getElementById('sform').submit();
    }
  }
});

}





function checkCSVForm() {
  var type = document.getElementById('type');
  var location = document.getElementById('location');
  var date = document.getElementById('date');
  var start_time = document.getElementById('start_time');
  var home_team = document.getElementById('home_team');
  var visiting_team = document.getElementById('visiting_team');

  if (date.value==-1 || start_time.value==-1 || home_team.value ==-1 || visiting_team.value==-1)
    {
    alert('date, home_team, visiting_team and start time are required.');
    return;
    }
  return 1;
}


function submitSearchForm() {
var searchselect = document.getElementById('search_select').value;
var searchterms = document.getElementById('search_input').value;
var action;

if (searchselect == 0 || !searchterms)   {alert("Please choose a category from the select box and enter a search term.");}
else
{
document.getElementById('search').submit();
}

}

function addAnotherHostField(i) {
    var additionalhosts = document.getElementById('additionalhosts');
    var newspan = document.createElement('span');
    newspan.style.fontSize='1.2em';
    newspan.style.color='black';
    while (elem = document.getElementById('host' + i))  {i++;}
    var hostid = 'host' + i;
    newspan.innerHTML = "<input id='" + hostid + "' type='text' name='host[]' value='' onkeyup=\"getSimilarHosts(this.value,'" + hostid + "');\" onfocus=\"document.getElementById('similarhosts').innerHTML='';\"/>";
    additionalhosts.appendChild(newspan);
}

function addAnotherSportField(i) {
    var additionalsports = document.getElementById('additionalsports');
    var newspan = document.createElement('span');
    newspan.style.fontSize='1.2em';
    newspan.style.color='black';
    while (elem = document.getElementById('sport' + i))  {i++;}
    var sportid = 'sport' + i;
    newspan.innerHTML = "<input id='" + sportid + "' type='text' name='sport[]' value='' onkeyup=\"getSimilarSports(this.value,'" + sportid + "');\" onfocus=\"document.getElementById('similarsports').innerHTML='';\"/>";
    additionalsports.appendChild(newspan);
}

function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function showadminselect(which) {
   document.getElementById('adminsof').innerHTML = '';
   if (which=='h')
      {
      document.getElementById('teams').style.display='none';
      document.getElementById('team').value=0;
      document.getElementById('leagues').style.display='none';
      document.getElementById('league').value=0;
      document.getElementById('hosts').style.display='block';
      }
   if (which=='t')
      {
      document.getElementById('hosts').style.display='none';
      document.getElementById('host').value=0;
      document.getElementById('leagues').style.display='none';
      document.getElementById('league').value=0;
      document.getElementById('teams').style.display='block';
      }
   if (which=='l')
      {
      document.getElementById('teams').style.display='none';
      document.getElementById('team').value=0;
      document.getElementById('hosts').style.display='none';
      document.getElementById('host').value=0;
      document.getElementById('leagues').style.display='block';
      }
   
}

function displayLeaguePossibility(league, pic, name) {
var text = "<img style='border:4px solid orange;' id='leagueimg' src='" + pic + "' /><br /><span style='font-size:0.9em;color:black;'>" + name + "</span><input type='hidden' name='sleague' id='sleague' value='" + league + "' /><br /><input style='width:200px;' value='Invite " + name + " to be a subleague' name='invitesubleaguebutton' id='makeadminbutton' class='button1' type='button' onclick='invitesubleague(" + league + ");' /><hr />";

document.getElementById('leaguedetails').innerHTML = text;
document.getElementById('feedback').innerHTML='';
}


function showBigRosterImage(elem, src) {
var bigimgelem = document.getElementById('bigrosterimage');
if (bigimgelem.style.display=='block')  return;
   bigimgelem.src = src;
  var dim = GetTopLeft(elem);
  var top = dim.Top;
  var left = dim.Left;
bigimgelem.style.position = 'absolute';
bigimgelem.style.top = top + "px";
bigimgelem.style.left = left + "px";
   bigimgelem.style.display = 'block';
}

function hideBigRosterImage(elem) {
  var bigimgelem = document.getElementById('bigrosterimage');
  if (bigimgelem.style.display=='none')  return;
  bigimgelem.src = '';
  document.getElementById('bigrosterimage').style.display = 'none';
}

function showBigStaffImage(elem, src) {
var bigimgelem = document.getElementById('bigstaffimage');
if (bigimgelem.style.display=='block')  return;
   bigimgelem.src = src;
  var dim = GetTopLeft(elem);
  var top = dim.Top;
  var left = dim.Left;
bigimgelem.style.position = 'absolute';
bigimgelem.style.top = top + "px";
bigimgelem.style.left = left + "px";
   bigimgelem.style.display = 'block';
}

function hideBigStaffImage(elem) {
  var bigimgelem = document.getElementById('bigstaffimage');
  if (bigimgelem.style.display=='none')  return;
  bigimgelem.src = '';
  document.getElementById('bigstaffimage').style.display = 'none';
}

function showLeagueApplication(league) {
  var pkey = document.getElementById('application').value;
  var params = "pkey=" + pkey;
  var url = "/TEAMSPGMS/showLeagueApplication.php";
  var ajax = new Ajax.Updater({success: 'showapp'}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function updateLeagueApplication(pkey, name) {
  var notes = document.getElementById('notes').value;
  var params = "pkey=" + pkey + "&notes=" + escape(notes) + "&name=" + escape(name);
  var url = "/TEAMSPGMS/updateLeagueApplication.php";
  var ajax = new Ajax.Updater({success: 'shownotes'}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function displayAdminPossibility(member, pic, name) {
var text = "<img style='border:4px solid orange;' id='adminimg' src='" + pic + "' /><br /><span style='font-size:0.9em;color:black;'>" + name + "</span><input type='hidden' name='member' id='member' value='" + member + "' /><br /><input style='width:150px;' value='Make admin' name='makeadminbutton' id='makeadminbutton' class='button1' type='button' onclick='makeadmin();' /><hr />";

document.getElementById('admindetails').innerHTML = text;
document.getElementById('feedback').innerHTML='';
}

function makeadmin() {
  if (document.getElementById('member'))  var member = document.getElementById('member').value;
  if (document.getElementById('team'))    var team = document.getElementById('team').value;
  if (document.getElementById('host'))    var host = document.getElementById('host').value;
  if (document.getElementById('league'))    var league = document.getElementById('league').value;

  var params = 'member=' + member + '&team=' + team + '&host=' + host + '&league=' + league;
  var url = "/MEMBERPGMS/makeuseradmin.php";
  var ajax = new Ajax.Updater({success: 'feedback'}, url,{method: 'get', parameters: params, onFailure: reportError});
showAdminsOf();
}

//For roster page
function maketeamadmin(member, team) {
var res = confirm("Are you sure you want to give this staff member administrator rights to this team? Administrators can edit all team information, and photos and videos, and send team invitations.");
if  (res == true)
{
  var params = 'member=' + member + '&team=' + team;
  var url = "/MEMBERPGMS/makeuseradmin.php";
  var ajax = new Ajax.Updater({success: 'feedback'}, url,{method: 'get', parameters: params, onFailure: reportError});
}
}

function invitesubleague(sleague) {
  var league =  document.getElementById('league').value;
  var params = 'league=' + league + '&sleague=' + sleague;
  var url = "/TEAMSPGMS/invitesubleague.php";
  var ajax = new Ajax.Updater({success: 'feedback'}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function submitadminsearch(myfield)
{
var search = myfield.value;
var params = 'search=' + search;
var url = "/MEMBERPGMS/showadminpossibilities.php";
var ajax = new Ajax.Updater({success: 'amembers'}, url,{method: 'get', parameters: params, onFailure: reportError});
return true;
}

var OnKeyRequestBuffer = {
        bufferText: false,
        bufferTime: 500,

        modified : function(strId)
        {
            var search = document.getElementById(strId);
            if (search) {
                compare = function() {
                    OnKeyRequestBuffer.compareBuffer(search);
                }
                setTimeout(compare,this.bufferTime);
            }

        },
        compareBuffer : function(elem)
        {
            if (elem.value  != this.bufferText)
            {
                this.bufferText = elem.value;
                OnKeyRequestBuffer.makeRequest(elem.value);
            }
        },

        makeRequest : function(search)
        {
            var params = 'search=' + search;
            var url = "/MEMBERPGMS/showadminpossibilities.php";
            var ajax = new Ajax.Updater({success: 'amembers'}, url,{method: 'get', parameters: params, onFailure: reportError});
            return true;
        }
}


//if press enter in search field on roster search form
function submitenter2(myfield,e,team) {
    var search = myfield.value;
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (e) keycode = e.which;
    else return true;
    if (keycode == 13)    {
        var params = 'search=' + search + '&team=' + team;
        var url = "/MEMBERPGMS/showrosterpossibilities.php";
        var ajax = new Ajax.Updater({success: 'amembers'}, url,{method: 'get', parameters: params, onFailure: reportError});
        return false;
    }
    else {
        return true;
    }
}

function submitrostersearch(myfield,e,team)
{
var search = myfield.value;
var params = 'search=' + search + '&team=' + team;
var url = "/MEMBERPGMS/showrosterpossibilities.php";
var ajax = new Ajax.Updater({success: 'amembers'}, url,{method: 'get', parameters: params, onFailure: reportError});
return true;
}

function submitenter3(myfield,e)
{
var search = myfield.value;
var keycode;
if (window.event) keycode = window.event.keyCode;
else if (e) keycode = e.which;
else return true;

if (keycode == 13)
   {
    var params = 'search=' + search;
    var url = "/TEAMSPGMS/showleaguepossibilities.php";
  var ajax = new Ajax.Updater({success: 'amembers'}, url,{method: 'get', parameters: params, onFailure: reportError});
//   myfield.form.submit();
   return false;
   }
else
   return true;
}



function showAdminsOf()  {
  var team='', host='', league='';
  team = document.getElementById('team').value;
  host = document.getElementById('host').value;
  league = document.getElementById('league').value;
  document.getElementById('admindetails').innerHTML='';
  document.getElementById('feedback').innerHTML='';
  var params = 'team=' + team + '&host=' + host + '&league=' + league;
  var url = "/MEMBERPGMS/showAdminsOf.php";
  var ajax = new Ajax.Updater({success: 'adminsof'}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function removeAdmin(which1, which2, member, i)  {
  var params = 'which1=' + which1 + '&which2=' + which2 + '&member=' + member;
  var url = "/MEMBERPGMS/removeAdmin.php";
  var ajax = new Ajax.Updater({success: 'feedbackadminremove'}, url,{method: 'get', parameters: params, onFailure: reportError});
  showAdminsOf();
}

function submitContactForm()  {
  var email = document.getElementById('email');
  var subject = document.getElementById('subject');
  var body = document.getElementById('body');

  if (trim(email.value, ' ') == '')
      {alert("You must enter an email address"); return;}
  if (!subject.value)
      {alert("You must enter a subject"); return;}
  if (trim(body.value, ' ') == '')
      {alert("You must enter some content"); return;}


  if (email.value)
     var res = checkemailtext('email','Please enter a valid email address');
  if (res)  {alert(res); return;}

  document.getElementById('contactform').submit();

}

function checkAddAdminByEmailForm() {
    var email  = document.getElementById('email').value;
    var fname  = document.getElementById('fname').value;
    var lname  = document.getElementById('lname').value;
    var team   = document.getElementById('team').value;
    var host   = document.getElementById('host').value;
    var league = document.getElementById('league').value;

    if (!fname) {alert("You must enter a first name"); return;}
    if (!lname) {alert("You must enter a last name"); return;}
    if (!email) {alert("You must enter an email"); return;}

    var res = checkemailtext('email','Please enter a valid email address');
    if (res)  {alert(res); return;}

//  document.getElementById('addadminbyemail').submit();
    var params = 'fname=' + fname + '&lname=' + lname + '&email=' + email + '&team=' + team + '&host=' + host + '&league=' + league;
    var url = "/MEMBERPGMS/inviteuseradmin.php?";
    asyncreq(url + params, processAdminEmail);
}

function processAdminEmail(response) {
     if (response = 'success') {
         setdiv('Admin Invitation Sent','adminmsg');
         setValue('email','');
         setValue('fname','');
         setValue('lname','');
     }
}


function checkInviteSubleagueByEmailForm() {
  var email = document.getElementById('email').value;
  var fname = document.getElementById('fname').value;
  var lname = document.getElementById('lname').value;
  var league = document.getElementById('league').value;

  if (!fname)
      {alert("You must enter a first name"); return;}
  if (!lname)
      {alert("You must enter a last name"); return;}
  if (!email)
      {alert("You must enter an email"); return;}

  var res = checkemailtext('email','Please enter a valid email address');
  if (res)  {alert(res); return;}

  var params = 'fname=' + fname + '&lname=' + lname + '&email=' + email + '&league=' + league;
  var url = "/TEAMSPGMS/invitesubleaguebyemail.php";
  var ajax = new Ajax.Updater({success: 'leagueinvitemsg'}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function addPictureTo() {
  var str = document.getElementById('addto').value;
  if (str == '0') return;
  var arr = str.split(":");
  var params = 'type=' + arr[0] + '&pkey=' + arr[1] + '&pic=' + arr[2];
  var url = "PICTURESPGMS/copypictureto.php";
  var ajax = new Ajax.Updater({success: 'feedback'}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function addVideoTo() {
  var str = document.getElementById('addto').value;
  if (str == '0') return;
  var arr = str.split(":");

  var params = 'type=' + arr[0] + '&pkey=' + arr[1] + '&video=' + arr[2];
  var url = "PICTURESPGMS/copyvideoto.php";
  var ajax = new Ajax.Updater({success: 'feedback'}, url,{method: 'get', parameters: params, onFailure: reportError});
}


function checkSendResumeForm()
{
  var fname = document.getElementById('first_name');
  var lname = document.getElementById('last_name');
  var email = document.getElementById('email');

  if (!fname.value)
      {alert("You must enter a first name"); return;}
  if (!lname.value)
      {alert("You must enter a last name"); return;}
  if (!email.value)
      {alert("You must enter a email"); return;}

  var res = checkemailtext('email','Please enter a valid email address');
  if (res)  {alert(res); return;}

  document.getElementById('send_resume_form').submit();
}


function sendmessage() {
if (document.getElementById('message_type').value == 'team')
{
  if (!document.getElementById('members') || document.getElementById('members').value == -1)
    {
    alert("Choose someone to send the message to.");
    return;
    }  
}
if (document.getElementById('message_type').value == 'member')
{
  if (!document.getElementById('memberid')  && (!document.getElementById('friend') || document.getElementById('friend').value == -1))
    {
    alert("Choose someone to send the message to.");
    return;
    }
}
if (document.getElementById('message_type').value == 'league')
{
  if (!document.getElementById('members') || document.getElementById('members').value == -1)
    {
    alert("Choose someone to send the message to.");
    return;
    }
}
if (document.getElementById('message_type').value == 'school')
{
  if (!document.getElementById('school') || document.getElementById('school').value == 0)
    {
    alert("Choose someone to send the message to.");
    return;
    }
}

if (trim(document.getElementById('message_subject').value, ' ') == '')
{
    alert("Choose a subject.");
    return;
}
if (trim(document.getElementById('message_body').value, ' ') == '') {
  if (confirm('Are you sure you want to send this message without text in the body?')) 
    {
    document.getElementById('sendmessage').submit();
    }
} 
  else {
    document.getElementById('sendmessage').submit();
  }
}

function removeNotification(note) {
document.getElementById("note-" + note).style.display = 'none';
var params = 'n=' + note;
var url = "/MEMBERPGMS/removeNotification.php";
var ajax = new Ajax.Updater({success: ''}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function checkFamilyForm()
{
  var fname = document.getElementById('fname');
  var lname = document.getElementById('lname');
  var email = document.getElementById('email');

  if (!fname.value)
      {alert("You must enter a first name"); return;}
  if (!lname.value)
      {alert("You must enter a last name"); return;}
  if (email.value)
     var res = checkemailtext('email','Please enter a valid email address');

  if (res)  {alert(res); return;}
  document.getElementById('checkfamilyform').submit();

}


//New Team Event, Edit Team Event

//checkNewEventScheduleConflict -- getTeamScheduleConflict - checks in team schedule table for any other events 
//at that time for that team and the pkey is not "" (for new) and pkey is not epkey (for edit).

//If no conflict in team calendar calls checkNewLeagueEventScheduleConflict2 and checkENewLeagueEventScheduleConflict2

//both call getLeagueTeamScheduleConflict2 which calls getLeagueTeamScheduleConflict2 which checks for an event at 
//same time in league calendar where the home team or visiting team is this team.

//New event on league calendar - calls checkNewLeagueEventScheduleConflict which calls checkNewLeagueEventScheduleConflict.php
//Checks if there is a conflict for either team either in the team calendar or the league calendar.


function checkNewLeagueEventScheduleConflict2(server)
{
var c;
var team = document.getElementById('nteam').value;
var ndatetime = document.getElementById('nchosendate').value + ' ' + document.getElementById('nhrs').value + ':' + document.getElementById('nmnts').value + ' ' + document.getElementById('napm').value + ' until ' + document.getElementById('nhrs2').value + ':' + document.getElementById('nmnts2').value + ' ' + document.getElementById('napm2').value;

var params = 'team=' + team + '&ndatetime=' + ndatetime;
var url = server + "/TEAMSPGMS/checkNewLeagueEventScheduleConflict2.php?" + params;
  new Ajax.Request(url, {
  method: 'get',
  onSuccess: function(transport) {
//alert(transport.responseText);
   if (trim(transport.responseText, ' ') == 'conflict')  {
          c = confirm("The time of this event conflicts with an event on the league calendar. Do you want to enter the event in the calendar anyway?");
          if (c == true) document.getElementById('nform').submit();
  } //if conflict
  else  document.getElementById('nform').submit();
  }//ajax request
 });//function
}

function checkENewLeagueEventScheduleConflict2(server)
{
var c;
var team = document.getElementById('eteam').value;
var ndatetime = document.getElementById('echosendate').value + ' ' + document.getElementById('ehrs').value + ':' + document.getElementById('emnts').value + ' ' + document.getElementById('eapm').value + ' until ' + document.getElementById('ehrs2').value + ':' + document.getElementById('emnts2').value + ' ' + document.getElementById('eapm2').value;

var params = 'team=' + team + '&ndatetime=' + ndatetime;
var url = server + "/TEAMSPGMS/checkNewLeagueEventScheduleConflict2.php?" + params;
  new Ajax.Request(url, {
  method: 'get',
  onSuccess: function(transport) {
//alert(transport.responseText);
   if (trim(transport.responseText, ' ') == 'conflict')  {
          c = confirm("The time of this event conflicts with an event on the league calendar. Do you want to enter the event in the calendar anyway?");
          if (c == true) document.getElementById('eform').submit();
  } //if conflict
  else  document.getElementById('eform').submit();
  }//ajax request
 });//function
}

function getTimeParams() {
    var params = new Object();
    params.date  = document.getElementById('nchosendate').value;
    params.start = document.getElementById('nhrs').value + ':' + document.getElementById('nmnts').value + ' ' + document.getElementById('napm').value;
    var napm2 = document.getElementById('napm2');
    if (napm2) {
        var ampm = document.getElementById('napm2').value;
    }
    else {
        ampm = '';
    }
    params.end   = document.getElementById('nhrs2').value + ':' + document.getElementById('nmnts2').value + ' ' + ampm;
    params.etime_tbd_checked = document.getElementById('ntime_tbd').checked;
    return getParams(params);
}

function getParams(params) {
    var param;
    var parameters = '';
    var concat = '';
    for(param in params) {
        if (params.hasOwnProperty(param) && params[param]) {
            parameters += concat + param + '=' + encodeURI(params[param]);
            concat = '&';
        }
    }
    return parameters;
}

function isArray(obj) {
   if (obj.constructor.toString().indexOf("Array") == -1)
      return false;
   else
      return true;
}

function showErrors(errors,update) {
    var text = '';
    for(var i = 0; i < errors.length; i++) {
        text += errors[i];
    }
    update.innerHTML = text;
}

function processResponse(response) {
    try {
    var errors = eval(response);
        if (isArray(errors) && !errors.length) errors = null;
    }
    catch (ex) {
        errors = response;
    }
    return errors;

}

function processLeagueEvent(response,form) {
    var prefix = form.id;
    var update = document.getElementById(prefix + '-updatemsg');
    if (response) {
        update.innerHTML = response;
    }
    else {
        reloadEvents();
    }
}


function submitLeagueEvent(id) {
    var button = document.getElementById(id);
    if (id.endsWith('anyway-id')) {
        var forceElems = document.getElementsByName('force');
        if (forceElems && forceElems.length) {
            var forceElem = forceElems[0];
            forceElem.value = 1;
        }
    }
    var form = button.form;
/*    var params = new Object();
    params['hteam']         = document.getElementById('nhome_team-id').value;
    params['vteam']         = document.getElementById('nvisiting_team-id').value;
    params['league']        = document.getElementById('league').value;
    params['description']   = document.getElementById('ndescription-id').value;
    var url = "/TEAMSPGMS/submitEvent.php?" + getParams(params) + '&' + getTimeParams();
    asyncreq(url,processLeagueEvent); */
    asyncpost(form,processLeagueEvent,form);
}

function checkNewEventScheduleConflict(server)
{
var team = document.getElementById('nteam').value;
if (team == 0)  {document.getElementById('nform').submit(); return; }  //if its a school event no need to really check for a schedule conflict
var ndatetime = document.getElementById('nchosendate').value + ' ' + document.getElementById('nhrs').value + ':' + document.getElementById('nmnts').value + ' ' + document.getElementById('napm').value + ' until ' + document.getElementById('nhrs2').value + ':' + document.getElementById('nmnts2').value + ' ' + document.getElementById('napm2').value;
var params = 'team=' + team + '&ndatetime=' + ndatetime;
var url = server + "/TEAMSPGMS/checkNewEventScheduleConflict.php?" + params;
  new Ajax.Request(url, {
  method: 'get',
  onSuccess: function(transport) {
   if (trim(transport.responseText, ' ') == 'conflict')  alert("The time of this event conflicts with another event on the calendar.");
   else checkNewLeagueEventScheduleConflict2(server); //else  document.getElementById('nform').submit();
  }
 });
}


function checkENewEventScheduleConflict(server, epkey)
{
var team = document.getElementById('eteam').value;
if (team == 0)  {document.getElementById('eform').submit(); return; } 
var ndatetime = document.getElementById('echosendate').value + ' ' + document.getElementById('ehrs').value + ':' + document.getElementById('emnts').value + ' ' + document.getElementById('eapm').value + ' until ' + document.getElementById('ehrs2').value + ':' + document.getElementById('emnts2').value + ' ' + document.getElementById('eapm2').value;
var params = 'team=' + team + '&ndatetime=' + ndatetime + '&epkey=' + epkey;
var url = server + "/TEAMSPGMS/checkNewEventScheduleConflict.php?" + params;
  new Ajax.Request(url, {
  method: 'get',
  onSuccess: function(transport) {
   if (trim(transport.responseText, ' ') == 'conflict')  alert("The time of this event conflicts with another event on the calendar.");
   else checkENewLeagueEventScheduleConflict2(server); //else  document.getElementById('nform').submit();
  }
 });
}


//actually this is for checking when a new event is added to the team calendar, does it conflict with any league events for that team for any leagues the team belongs to.
function checkNewLeagueEventScheduleConflict2(server)
{
var c;
var team = document.getElementById('nteam').value;
var ndatetime = document.getElementById('nchosendate').value + ' ' + document.getElementById('nhrs').value + ':' + document.getElementById('nmnts').value + ' ' + document.getElementById('napm').value + ' until ' + document.getElementById('nhrs2').value + ':' + document.getElementById('nmnts2').value + ' ' + document.getElementById('napm2').value;

var params = 'team=' + team + '&ndatetime=' + ndatetime;
var url = server + "/TEAMSPGMS/checkNewLeagueEventScheduleConflict2.php?" + params;
  new Ajax.Request(url, {
  method: 'get',
  onSuccess: function(transport) {
//alert(transport.responseText);
   if (trim(transport.responseText, ' ') == 'conflict')  {
          c = confirm("The time of this event conflicts with an event on the league calendar. Do you want to enter the event in the calendar anyway?");
          if (c == true) document.getElementById('nform').submit();
  } //if conflict
  else  document.getElementById('nform').submit();
  }//ajax request
 });//function
}

function checkENewLeagueEventScheduleConflict2(server)
{
var c;
var team = document.getElementById('eteam').value;
var ndatetime = document.getElementById('echosendate').value + ' ' + document.getElementById('ehrs').value + ':' + document.getElementById('emnts').value + ' ' + document.getElementById('eapm').value + ' until ' + document.getElementById('ehrs2').value + ':' + document.getElementById('emnts2').value + ' ' + document.getElementById('eapm2').value;

var params = 'team=' + team + '&ndatetime=' + ndatetime;
var url = server + "/TEAMSPGMS/checkNewLeagueEventScheduleConflict2.php?" + params;
  new Ajax.Request(url, {
  method: 'get',
  onSuccess: function(transport) {
//alert(transport.responseText);
   if (trim(transport.responseText, ' ') == 'conflict')  {
          c = confirm("The time of this event conflicts with an event on the league calendar. Do you want to enter the event in the calendar anyway?");
          if (c == true) document.getElementById('eform').submit();
  } //if conflict
  else  document.getElementById('eform').submit();
  }//ajax request
 });//function
}


function checkNewLeagueEventScheduleConflict(server)
{
var c;
var nhome_team = document.getElementById('nhome_team-id').value;
var nvisiting_team = document.getElementById('nvisiting_team-id').value;
var league = document.getElementById('league').value;
var ndatetime = document.getElementById('nchosendate').value + ' ' + document.getElementById('nhrs').value + ':' + document.getElementById('nmnts').value + ' ' + document.getElementById('napm').value + ' until ' + document.getElementById('nhrs2').value + ':' + document.getElementById('nmnts2').value + ' ' + document.getElementById('napm2').value;

var params = 'league=' + league + '&hteam=' + nhome_team + '&vteam=' + nvisiting_team  + '&ndatetime=' + ndatetime;
var url = server + "/TEAMSPGMS/checkNewLeagueEventScheduleConflict.php?" + params;
  new Ajax.Request(url, {
  method: 'get',
  onSuccess: function(transport) {
   if (trim(transport.responseText, ' ') == 'conflict')  
        {
        c = confirm("The time of this event conflicts with an event on the league calendar or one of the team calendars. Do you want to enter the event in the league calendar anyway?");
   if (c == true)
       document.getElementById('nform').submit();
  }//conflict
  else
   {
       document.getElementById('nform').submit();
   }
  }
 });
}


function checkENewLeagueEventScheduleConflict(epkey){
    var c;
    var ehome_team = getvalue('ehome_team');
    var evisiting_team = getvalue('evisiting_team');
    var eleague = document.getElementById('eleague').value;
    var ndatetime = document.getElementById('echosendate').value + ' ' + document.getElementById('ehrs').value + ':' + document.getElementById('emnts').value + ' ' + document.getElementById('eapm').value + ' until ' + document.getElementById('ehrs2').value + ':' + document.getElementById('emnts2').value + ' ' + document.getElementById('eapm2').value;
    var params = 'league=' + eleague + '&hteam=' + ehome_team + '&vteam=' + evisiting_team + '&ndatetime=' + ndatetime + '&epkey=' + epkey;
    var url =  "/TEAMSPGMS/checkNewLeagueEventScheduleConflict.php?" + params;
    new Ajax.Request(url, {
        method: 'get',
        onSuccess: function(transport){
            if (trim(transport.responseText, ' ') == 'conflict') {
                c = confirm("The time of this event conflicts with an event on the league calendar or one of the team calendars. Do you want to enter the event in the league calendar anyway?");
                if (c == true) 
                    document.getElementById('eform').submit();
            }//conflict
            else {
                document.getElementById('eform').submit();
            }
        }
    });
}


function openRosterContactList(url) {
  var name = 'contactlist';
  var params = 'left=600,top=500,height=800,width=500,fullscreen=no,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,';
  window.open(url, name,params);
}

/*
<!--//--><![CDATA[//><!--

sfHover = function() {
        var sfEls = document.getElementById("nav").getElementsByTagName("LI");
        for (var i=0; i<sfEls.length; i++) {
                sfEls[i].onmouseover=function() {
                        this.className+=" sfhover";
                }
                sfEls[i].onmouseout=function() {
                        this.className=this.className.replace(new RegExp(" sfhover\\b"), "");
                }
        }
}
if (window.attachEvent) window.attachEvent("onload", sfHover);

//--><!]]>
*/

function sharecontactinfomember(member) {
  var share = document.getElementById('sharecontactinfo').checked;
  if (share == true)  share=1;
  else share=0;
  var params = 'share=' + share + "&member=" + member;
  var url = "/MEMBERPGMS/sharecontactinfo.php";
  var ajax = new Ajax.Updater({success: 'aaaa'}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function sharecontactinfomemberpublic(member) {
  var share = document.getElementById('sharecontactinfopublic').checked;
  if (share == true)  share=1;
  else share=0;
  var params = 'share=' + share + "&member=" + member;
  var url = "/MEMBERPGMS/sharecontactinfopublic.php";
  var ajax = new Ajax.Updater({success: ''}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function sharecontactinfoteamstaff(team) {
  var share = document.getElementById('shareteamstaffcontactinfo').checked;
  if (share == true)  share=1;
  else share=0;
  var params = 'share=' + share + "&team=" + team;
  var url = "/TEAMSPGMS/shareteamstaffcontactinfopublic.php";
  var ajax = new Ajax.Updater({success: ''}, url,{method: 'get', parameters: params, onFailure: reportError});
}


function sharecontactinfoleagueteamstaff(league) {
  var share = document.getElementById('shareleagueteamstaffcontactinfo').checked;
  if (share == true)  share=1;
  else share=0;
  var params = 'share=' + share + "&league=" + league;
  var url = "/TEAMSPGMS/shareleagueteamsstaffcontactinfopublic.php";
  var ajax = new Ajax.Updater({success: ''}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function openEmailList(team) {
  var params = 'team=' + team;
  var url = "/TEAMSPGMS/getRosterEmailList.php";
  var ajax = new Ajax.Updater({success: 'emaillist'}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function openParentEmailList(team) {
  var params = 'team=' + team;
  var url = "/TEAMSPGMS/getRosterParentEmailList.php";
  var ajax = new Ajax.Updater({success: 'emaillist'}, url,{method: 'get', parameters: params, onFailure: reportError});
}


//takes id of div to refresh, scriptname to call, and php string with params
function refreshDiv(id, url, params) {
     var ajax = new Ajax.Updater({success: id}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function refreshParentDiv(id, url, params) {
     var ajax = new parent.Ajax.Updater({success: id}, url,{method: 'get', parameters: params, onFailure: reportError});
}



// var req = createXMLHttpRequest();  
//   
// function createXMLHttpRequest() {  
//  var ua;  
// if(window.XMLHttpRequest) {  
//  try {  
//   ua = new XMLHttpRequest();  
//  } catch(e) {  
//   ua = false;  
//  }  
//  } else if(window.ActiveXObject) {  
//   try {  
//     ua = new ActiveXObject("Microsoft.XMLHTTP");  
//   } catch(e) {  
//     ua = false;  
//  }  
//  }  
// return ua;  
// }  
//   
// function sendRequest(frm, file) {  
//  var rnd982g = Math.random();  
//  var str = "";  
//  if(str = getForm(frm)) {  
//   req.open('GET', file+'?'+str+'&rnd982g='+rnd982g);  
//   req.onreadystatechange = handleResponse;  
//   req.send(null);  
//  }  
//  return false;  
// }  
   
// function handleResponse() {  
//  if(req.readyState == 4){  
//   var response = req.responseText;  
//   document.getElementById("results").innerHTML = 

 function getForm(fobj) {  
  var str = "";  
  var ft = "";  
  var fv = "";  
  var fn = "";  
  var els = "";  
  for(var i = 0;i < fobj.elements.length;i++) {  
   els = fobj.elements[i];  
   ft = els.title;  
   fv = els.value;  
   fn = els.name;  
  switch(els.type) {  
   case "text":  
   case "hidden":  
   case "password":  
case "file":
   case "textarea":  
   // is it a required field?  
   if(encodeURI(ft) == "required" && encodeURI(fv).length < 1) {  
     alert('\''+fn+'\' is a required field, please complete.');  
     els.focus();  
     return false;  
   }  
   str += fn + "=" + encodeURI(fv) + "&";  
   break;   
   
   case "checkbox":  
   case "radio":  
    if(els.checked) str += fn + "=" + encodeURI(fv) + "&";  
   break;      
   
   case "select-one":  
     str += fn + "=" +  
     els.options[els.selectedIndex].value + "&";  
   break;  
   } // switch  
  } // for  
  str = str.substr(0,(str.length - 1));  
  return str;  
 }


function unsetShowDiv() {
//  document.getElementById('checkinvitations').style.display = 'block';
  var params='';
  var url = "/MEMBERPGMS/unsetShowDiv.php";
  var ajax = new Ajax.Updater({success: ''}, url,{method: 'get', parameters: params, onFailure: reportError});
}

function setShowDiv() {
//  document.getElementById('checkinvitations').style.display = 'none';
document.getElementById('showkeys').style.height='auto';
  var params='';
  var url = "/MEMBERPGMS/setShowDiv.php";
  var ajax = new Ajax.Updater({success: ''}, url,{method: 'get', parameters: params, onFailure: reportError});
}

String.prototype.textAfter = function(text){
    var length = text.length;
    if (length == 0) 
        return "";
    var pos = this.indexOf(text);
    if (pos == -1) 
        return "";
    if (pos + length >= this.length) 
        return "";
    var rem = this.substring(pos + length);
    return rem;
}

String.prototype.textBefore = function(text){
    var length = text.length;
    if (length == 0) return "";
    var pos = this.indexOf(text);
    if (pos == -1) return "";
    var beg = this.substring(0,pos);
    return beg;
}

function initnumoption(select,num) {
	var option = select.options[num];
	initoption(option, num + 1);
}

function initoption(option,num) {
	var text = option.text;
	var after = text.textAfter(':');
	if (!after) after = text;
	var newtext = num + ': ' + after;
	option.text = newtext;
}

function uninitoption(option) {
	var text = option.text;
	var after = text.textAfter(':');
	if (!after) after = text;
//	var newtext = num + ': ' + after;
	option.text = after;
}


function initialize_elimteams() {
	var elist = document.getElementById("elimteamsselect");
	for (var i = 0; i < elist.length; i++) {
		var option = elist.options[i];
		initoption(option,i+1);
	}
}

function uninitialize_elimteams() {
	var elist = document.getElementById("elimteamsselect");
	for (var i = 0; i < elist.length; i++) {
		var option = elist.options[i];
        var text = option.text;
        var after = text.textAfter(':');
        if (!after) after = text;
        option.text = after;
	}
}

function getSelectValue(id) {
    var fromList = document.getElementById(id);
    if (fromList) {
        var selected = fromList.selectedIndex;
        if (selected != -1) {
            var option = fromList.options[selected];
            if (option) return option.value;
        }
    }
    return null;
}

function removeSelected(id) {
    var fromList = document.getElementById(id);
    if (fromList) {
        var selected = fromList.selectedIndex;
        if (selected != -1) {
            fromList.remove(selected);
            var length = fromList.length;
            if (length) {
                if (selected == fromList.length) {
                    fromList.selectedIndex = fromList.length -1;
                }
                else  {
                    fromList.selectedIndex = selected;
                }
            }

        }
        return selected;
    }
    return null;
}

function confirmRemoveLeague(name) {
    return confirm("You are about to delete " + name + ".  This action is irreversible.  All teams informatin, games schedules, etc., will be deleted.  Are you sure you want to do this?");
}

function getNumberInSelect(id) {
    var fromList = document.getElementById(id);
    var length = 0;
    if (fromList) {
        length = fromList.length;
    }
    return length;
}





function updateAttribute(id,value) {
    var team = getvalue('team');
    var attibute = getSelectValue(id);
    if (team && attibute) {
        asyncreq('/TEAMSPGMS/updateattribute.php?team=' + team + '&attribute=' + attibute + '&value=' + value);
    }
}



function processAttibutes(id) {
    switch(id) {
        case 'addtorequired-id':        updateAttribute('rosterproperties-unassigned-id',2);
                                        transferSelect('rosterproperties-unassigned-id','rosterproperties-required-id');
                                        break;
        case 'removerequired-id':       updateAttribute('rosterproperties-required-id',0);
                                        transferSelect('rosterproperties-required-id','rosterproperties-unassigned-id');
                                        break;
        case 'addtodisplayed-id':       updateAttribute('rosterproperties-required-id',1);
                                        transferSelect('rosterproperties-required-id','rosterproperties-availableattributes-id');
                                        break;
        case 'removedisplayed-id':      updateAttribute('rosterproperties-availableattributes-id',2);
                                        transferSelect('rosterproperties-availableattributes-id','rosterproperties-required-id');
                                        break;
    }
}

function updateRoster(id) {
    var program = getvalue('program');
    var team = getSelectValue('teams-id');
    var rosterId = getSelectValue(id);
    var add = (id == 'programroster-id') ? 'add' : 'remove';
    if (team && program && rosterId) {
        asyncreq('/TEAMSPGMS/updateroster.php?team=' + team + '&program=' + program + '&rosterid=' + rosterId + '&add=' + add);
        return true;
    }
    return false;
}

function updateAgeGroup(teamselect) {

    var team = getSelectValue(teamselect);
    var fromagegroup = null;
    var toagegroup = null;
    if(teamselect == 'myteams-id'){
        fromagegroup = getSelectValue('myagegroups-id');
        toagegroup = getSelectValue('allagegroups-id');
    }
    else {
        fromagegroup = getSelectValue('allagegroups-id');
        toagegroup = getSelectValue('myagegroups-id');
    }

    if (team && fromagegroup && toagegroup && toagegroup != fromagegroup) {
        asyncreq('/TEAMSPGMS/updateagegroup.php?team=' + team + '&fromagegroup=' + fromagegroup + '&toagegroup=' + toagegroup);
        return true;
    }
    return false;
}

function updateSelect(response,id,numberId) {
    removeAll(id);
    if (response) {
        //var roster = JSON.parse(response);

        var list = json_decode(response);
        if (list) {
            var select = document.getElementById(id);
            if (select) {
                for(var index in list) {
                    var value = list[index];
                    addSelect(select,index,value);
                }
                select.selectedIndex = 0;

            }
        }
    }
    updateCount(id,numberId);
}


function onChangeTeam() {
    var team = getSelectValue('teams-id');
    if (team) {
        removeAll('teamroster-id');
        setInVisible('rostercountmembers');
        asyncreq('/TEAMSPGMS/getroster.php?team=' + team,updateTeamRoster);
    }
}

function updateTeamRoster(response) {
    updateSelect(response,'teamroster-id','rostercountmembers');
}

function onChangeAgeGroup(id) {
    var ag = getSelectValue(id+'agegroups-id');
    if (ag) {
        removeAll(id+'teams-id');
        asyncreq('/TEAMSPGMS/getLeagueTeams.php?league=' + ag,updateAgeGroupTeams,id);
    }
}

function updateAgeGroupTeams(response,id) {
    updateSelect(response,id+'teams-id');
}

function addToParam(arg,params) {
    var val = getSelectValue(arg + '-id');
    if (val) {
        params[arg] = val;
    }
}

function onChangeProperty() {
    var params = new Object();
    addToParam('grade',params);
    addToParam('sex',params);
    addToParam('fromMonth',params);
    addToParam('toMonth',params);
    addToParam('fromYear',params);
    addToParam('toYear',params);
    var program = getvalue('program');
    params['program'] = program;
    removeAll('programroster-id');
    asyncreq("/TEAMSPGMS/getprogram.php?" + getParams(params),updateProgramRoster);
}

function updateProgramRoster(response) {
    updateSelect(response,'programroster-id');
}


function processRoster(id) {
    switch(id) {
        case 'addtoteamroster-id':   if (updateRoster('programroster-id')) {
                                          transferSelect('programroster-id','teamroster-id');
                                          updateCount('teamroster-id','rostercountmembers');
                                     }
                                     break;
        case 'removefromteamroster-id':
                                     if (updateRoster('teamroster-id')) {
                                          transferSelect('teamroster-id','programroster-id');
                                         updateCount('teamroster-id','rostercountmembers');
                                     }
                                     break;
    }
}

function processAgeGroupSwitcher(id) {
    switch(id) {
        case 'tootheragegroup-id':  if (updateAgeGroup('myteams-id')) {
            transferSelect('myteams-id','allteams-id');
        }
            break;
        case 'tomyagegroup-id':
            if (updateAgeGroup('allteams-id')) {
                transferSelect('allteams-id','myteams-id');
            }
            break;
    }
}

function updateCount(id,numberId) {
    var i = 0;
    var select = document.getElementById(id);
    if (select) {
        var number = select.length;
        if (number) {
            setInnerHTML(numberId,number + ' Members');
            setVisible(numberId);
        }
        else {
            setInVisible(numberId);
        }
    }
}



function addtoelimination() {
    transferSelect('tournamentlistselect','elimteamsselect');
    initialize_elimteams();
    updateelimination();
}

function removefromelimination() {
    uninitialize_elimteams();
    var result = transferSelect('elimteamsselect','tournamentlistselect');
    if (result) {
        initialize_elimteams();
        updateelimination();
    }
}

function addSelectId(id,text,value) {
    var select = document.getElementById(id);
    addSelect(select,text,value);
}


function addSelect(select,text,value) {
    if (select) {
        try {
            var newoption = new Option(text, value);
            select.add(newoption, null); //add new option to end of "sample"
        }
        catch (e) {
            select.add(newoption);
        }
    }
}


function removeAll(id) {
    var select = document.getElementById(id);
    if (select) {
        var length = select.length;
        for (var i = 0; i < length; i++) {
            select.remove(0);
        }
    }
}



function transferSelect(fromId,toId) {
	var fromList = document.getElementById(fromId);
    var toList = document.getElementById(toId);
	if (fromList  && toList) {
		var selected = fromList.selectedIndex;
		if (selected != -1) {
			var option = fromList.options[selected];
            addSelectId(toId,option.text,option.value);
            toList.selectedIndex = toList.length - 1;
		    //initoption(newoption,toList.length);
			fromList.remove(fromList.selectedIndex);
			if (fromList.length > 0) {
				if (selected == fromList.length  && selected != 0) {
					selected--;
				}
				if (selected >= 0 && selected < fromList.length)
					fromList.options[selected].selected = true;
			}
            return option;
		}
	}
    return null;
}
/*
function removefromelimination() {
	var elist = document.getElementById("elimteamsselect"); // elimteamsselect
    var tlist = document.getElementById("tournamentlistselect");
	if (tlist && elist) {
		var selected = elist.selectedIndex;
		if (selected != -1) {
			var option = elist.options[selected];
			try {
				var newoption = new Option(option.text, option.value);
				tlist.add(newoption, null); //add new option to end of "sample"
			} 
			catch (e) { 
				tlist.add(newoption); 
			}
			//uninitoption(newoption);
			elist.remove(selected);
			if (elist.length > 0) {
				if (selected == tlist.length   && selected != 0) {
					selected--;
				}
				if (selected >= 0 && selected < elist.length) 	 	
				elist.options[selected].selected = true;
			}
		}
	}
	initialize_elimteams();
	updateelimination();
}
*/

function removeNullOption(id) {
    var select = document.getElementById(id);
    if (select) {
        if (select.length == 1) {
            var option = select.options[0];
            if (option && (option.text.length <= 1) ) {
                select.remove(0);
            }
        }
    }
}

function exchange(elist,num1,num2,hasNumber) {
    if (hasNumber == undefined) hasNumber = true;
    var text = elist.options[num1].text;
    var value = elist.options[num1].value;
    elist.options[num1].text  = elist.options[num2].text;
    elist.options[num1].value = elist.options[num2].value;
    elist.options[num2].text  = text;
    elist.options[num2].value = value;
    if (hasNumber) {
        initnumoption(elist,num1);
        initnumoption(elist,num2);
    }
    elist.options[num1].selected = false;
    elist.options[num2].selected = true;
}

function moveupelimination() {
	var elist = document.getElementById("elimteamsselect"); // elimteamsselect
	if (elist) {
		var selected = elist.selectedIndex;
		if (selected >  0) {
			exchange(elist,selected, selected-1);
		}
	}
	updateelimination();
}

function movedownelimination() {
	var elist = document.getElementById("elimteamsselect"); // elimteamsselect
	if (elist) {
		var selected = elist.selectedIndex;
		if (selected <  elist.length -1) {
			exchange(elist,selected, selected + 1);
		}
	}
	updateelimination();
}

function processFinalize() {
    var back = document.getElementById('back_button');
        if (back) {
            document.location = back.href;
        }
}

function finalizeelimination() {
	var confirmit = confirm("Once you finalize this tournament, you will not be able to add more teams to the elimination or change their  ranking.  Are you sure you want to do this?")
	if (confirmit) {
		var league = getLeagueTitle();
		asyncreq('TEAMSPGMS/finalizeTournament.php' + '?league=' + league,processFinalize);
    }
}

function confirmUnFinalize() {
    return confirm("The tournament has already been finalized.  If you click this button, to rearrange the tournament, all scheduling and scoring information will be lost.  Are you sure you want to do this?");
}


function getselectstring(selectid) {
	var elist = document.getElementById(selectid); // elimteamsselect
	var earray = new Array();
	if (elist) {
		for(var i = 0; i < elist.length; i++) {
			var value = elist.options[i].value;
			earray.push(value);			 
		}
	}
	return earray.join('-');	
}

function updatetournament(response) {
	if (response == "scores updated") {
		var voidscores = confirm("Scores have already been updated for this tournament.  Changing the teams for this tournament will delete the scores, since th games will be changed.  Do you want to void the scores and change the tournament?");
		if (voidscores) {
			updateelimination(true);
		}
	}
	else {
		var brackets = document.getElementById("brackets");
		brackets.innerHTML = this;
	}	
}

function getLeagueTitle() {
	var leaguetitle = document.getElementById("leaguetitle");
	if (leaguetitle) {
		var href = leaguetitle.href;
		var league = href.textAfter('?l=');
		return league;
	}
	return null;
}

function updateelimination(voidscores) {
	var league = getLeagueTitle();
	if (!league) return;
	var url = "/TEAMSPGMS/updateelim.php?l=";
	var elims = getselectstring('elimteamsselect');
	var tournament = getselectstring('tournamentlistselect');
	voidscores =  voidscores ? "&void=1" : "";
	url = url + league + voidscores + '&elim=' + elims + '&tours=' + tournament;
	asyncreq(url,updatetournament);
    var brackets = document.getElementById("brackets");
    brackets.innerHTML = '<h3>Updating ....</h3>';

}


function setonclick(id,func) {
	var button = document.getElementById(id);
	if (button) {
		button.onclick = func;
	}
}

function initialize_elimation() {
	setonclick('removefromelimination',removefromelimination);
	setonclick('addtoelimination',addtoelimination);
	setonclick('moveupelimination',moveupelimination);
	setonclick('movedownelimination',movedownelimination);
	setonclick('finalizeelimination',finalizeelimination);	
//	setonclick('updateelimination',updateelimination);
//	setonclick('cancelelimination',addtoelimination);
	initialize_elimteams();
}

function setdiv(response,id) {
    if (response.startsWith("http")) {
        window.location = response;
    }
    else {
        var elem = document.getElementById(id);
        if (elem) {
            elem.innerHTML = response;
            elem.style.display = "block";
        }
    }
}

function asyncreqdiv(url,div) {
     asyncreq(url,setdiv,div);
}

function getInternetExplorerVersion() {
    var rv = -1; // Return value assumes failure.
    if (navigator.appName == 'Microsoft Internet Explorer') {
        var ua = navigator.userAgent;
        var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
        if (re.exec(ua) != null)
            rv = parseFloat(RegExp.$1);
    }
    alert('version is: ' + rv);
    return rv;
}


function syncreq() {
    var xmlhttp = false;
    if(window.ActiveXObject) {
        try {
            xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
//            alert('msxml2')
        } catch (e) {
            try {
                xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
//                alert('microsoft');
            } catch (e) {
//                xmlhttp = false;
            }
        }
    }

    else if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
//        alert('xmlhttpreq');
    }
    return xmlhttp;
}

function syncreq2() {
	var xmlhttp;
	if (window.XMLHttpRequest || getInternetExplorerVersion() > 6.5)   {// co for IE7+, Firefox, Chrome, Opera, Safari
//        alert('isXML');
		xmlhttp=new XMLHttpRequest();
	}
	else {
//        alert('isactivex');
		xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	return xmlhttp;	
}

function convertProperties(obj) {
    var str = '';
    for(var prop in obj){
        try {
            alert(prop + ': ' + obj[prop]);
//            str += prop + ': ' + obj[prop];
        }
        catch (ex) {
        }
    }
    return str;
}

function asyncreq(url,func,arg) {
	var xmlhttp = syncreq();
	if (func) {
		xmlhttp.onreadystatechange=function()  {
			if (xmlhttp.readyState==4 && xmlhttp.status==200) {
				var response = xmlhttp.responseText;
//                alert('xmlhttp');
//                alert(convertProperties(xmlhttp));
//                alert('asyncreq response is: ' + response);
				func.call(response,response,arg);
			}
		}
    }
	xmlhttp.open("GET",url,true);
	xmlhttp.send();
    return xmlhttp;
}

function abort(xmlhttp) {
    if (xmlhttp && xmlhttp.abort) {
        xmlhttp.abort();
    }
}

function is_string(input){
    return typeof(input)=='string';
}


function asyncpost(form, callback,arg){
    if (is_string(form)) {
        form = document.getElementById(form);
    }
    if (!form) return;
	url = form.action;
    var request = syncreq();
	request.onreadystatechange = function(){
		if (request.readyState == 4 && request.status == 200) {
			var response = request.responseText;
			callback.call(response, response, arg);
		}
	}
	request.open("POST", url);
	request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	var data = null;
	if (form) {
		data = formData2QueryString(form);
	}
	request.send(data);
}


var req;

function getCalWin(which) {
    return document.getElementById(which + '-calwin');
}

function showCalSoon(which,show) {
    var calwin = getCalWin(which);
    if (show && calwin.showIt) {
        calwin.showIt = false;
        showCal(which);
        return;
    }
    calwin.showIt = true;
    calwin.timer = setTimeout(function() {
        showCalSoon(which,true);
    },500);

}

function dontShowCal (which) {
    var calwin = getCalWin(which);
    if (calwin.showIt) {
        calwin.showIt = false;
    }
    if (calwin.timer) {
        clearTimeout(calwin.timer);
        calwin.timer = false;
    }
}

function showCal(which,month,year){
	if (!month) month = '';
	if (!year) year='';
    var calwin = getCalWin(which);
    if (calwin) {
        calwin.style.display = "block";
        if (('mon' in calwin)) {
            if (calwin.mon == month && calwin.yr == year) {
                return;
            }
        }
        calwin.mon = month;
        calwin.yr = year;

    }
    else {
       var x = 3;
    }
    if (which == 'new') {
        var dim = GetTopLeft(getObject("nchosendate"));
    }
    if (which == 'edit') {
        var dim = GetTopLeft(getObject("echosendate"));
    }
    if (dim) {

    var top = dim.Top - 237.5;
    var left = dim.Left - 1050;
    if (calwin) {
        calwin.style.top = top + "px";
    }
    navigate(month, year, which);
    }
}

function showCalInit(which) {
    var init = function () {
        showCal('new');
        var calwin = getCalWin(which);
        if (calwin) calwin.style.display = "none";
    //    else showCalInit();
    };
    setTimeout(init, 200);
}
function GetTopLeft(elm)

{
    if (elm) {
        var x, y = 0;

//set x to elm.s offsetLeft
        x = elm.offsetLeft;

//set y to elm.s offsetTop
        y = elm.offsetTop;

//set elm to its offsetParent
        elm = elm.offsetParent;

//use while loop to check if elm is null
// if not then add current elm.s offsetLeft to x
//offsetTop to y and set elm to its offsetParent

        while(elm != null)
        {

            x = parseInt(x) + parseInt(elm.offsetLeft);
            y = parseInt(y) + parseInt(elm.offsetTop);
            elm = elm.offsetParent;

        }

//here is interesting thing
//it return Object with two properties
//Top and Left

        return {Top:y, Left: x};
    }
}

function hideCal($which) {
	getObject($which + '-calwin').style.display = "none";
}

function navigate(month,year,which) {
	setFade(0);
	var url = "/super_calendar_admin.php?f=cal&month="+month+"&year="+year+"&which="+which;
	if(window.XMLHttpRequest) {
		req = new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	req.open("GET", url, true);
	req.onreadystatechange = callback;
	req.send(null);
}

function callback() {        
	var obj = getObject("c-calendar");
	if(req.readyState == 4) {
		response = req.responseText;
        if (obj) obj.innerHTML = response;
		setFade(100);
	}
}

function setFade(amt) {
	obj = getObject("c-calendar");
    if (!obj) return;
	
	amt = (amt == 100)?99.999:amt;
  
	// IE
	obj.style.filter = "alpha(opacity:"+amt+")";
  
	// Safari<1.2, Konqueror
	obj.style.KHTMLOpacity = amt/100;
  
	// Mozilla and Firefox
	obj.style.MozOpacity = amt/100;
  
	// Safari 1.2, newer Firefox and Mozilla, CSS3
	obj.style.opacity = amt/100;
}

function getObject(obj) {
	var o = null;
	if(document.getElementById) o = document.getElementById(obj);
	else if(document.all) o = document.all.obj;	
	return o;	
}

function loadDate(d, which) {
//	document.f.date.value = d;
        if (which == 'new')  getObject('nchosendate').value = d;
        if (which == 'edit')  getObject('echosendate').value = d;
	hideCal(which);
}


function hidediv(id) {
	var elem = document.getElementById(id);
	if (elem) {
		elem.style.display = 'none';
	}
}

function hideelem(elem) {
    if (elem) {
        elem.style.display = 'none';
    }
}

function setInnerHTML(id,text) {
    var elem = document.getElementById(id);
   	if (elem) {
   		elem.innerHTML = text;
   		elem.innerHTML = text;
   	}
}


function setInVisible(id) {
    var elem = document.getElementById(id);
   	if (elem) {
   		elem.style.visibility = 'hidden';
   	}
}

function setVisible(id) {
    var elem = document.getElementById(id);
   	if (elem) {
   		elem.style.visibility = 'visible';
   	}
}


function showdiv(id) {
	var elem = document.getElementById(id);
	if (elem) {
		elem.style.display = 'block';
	}
}

function showelem(elem) {
    if (elem) {
        elem.style.display = 'block';
    }
}

function isdefined( variable)
{
    return (typeof(window[variable]) == "undefined")?  false: true;
}


function formData2QueryString(docForm){
    var submitContent = '';
    var formElem;
    var lastElemName = '';
    for (var i = 0; i < docForm.elements.length; i++) {
    
        formElem = docForm.elements[i];
        switch (formElem.type) {
            // Text fields, hidden form elements
            case 'text':
            case 'hidden':
            case 'password':
            case 'textarea':
            case 'select-one':
                var oEditor = null;
                if (isdefined('CKEDITOR')) {
                    oEditor = CKEDITOR.instances[formElem.name];
                }
                var value;
                if (oEditor) {
                    value = oEditor.getData();
                }
                else {
                    value = formElem.value;
                }
                submitContent += formElem.name + '=' + encodeURIComponent(value) + '&';
                break;
                
            // Radio buttons
            case 'radio':
                if (formElem.checked) {
                    submitContent += formElem.name + '=' + escape(formElem.value) + '&'
                }
                break;
                
            // Checkboxes
            case 'checkbox':
                if (formElem.checked) {
                    // Continuing multiple, same-name checkboxes
                    if (formElem.name == lastElemName) {
                        // Strip of end ampersand if there is one
                        if (submitContent.lastIndexOf('&') == submitContent.length - 1) {
                            submitContent = submitContent.substr(0, submitContent.length - 1);
                        }
                        // Append value as comma-delimited string
                        submitContent += ',' + escape(formElem.value);
                    }
                    else {
                        submitContent += formElem.name + '=' + escape(formElem.value);
                    }
                    submitContent += '&';
                    lastElemName = formElem.name;
                }
                break;
                
        }
    }
    // Remove trailing separator
    var regexp = /%20/g; // A regular expression to match an encoded space
    submitContent.replace(regexp, "+");
    submitContent = submitContent.substr(0, submitContent.length - 1);
    return submitContent;
}

function checkForSportsFields(prevsports) {
    var i=1;
    var elem;
    var sports = '';
    document.getElementById('membershipform').submit();
    //TODO try to figure out what this is supposed to do
    // not sure what the rest does, but it seems to be buggy;
    /*
    while (elem = document.getElementById('sport' + i))  {
        if (trim(elem.value, ' ')) sports = sports + "," + elem.value;
        i++;
    }

    if (sports!='' && sports==prevsports)   {
        document.getElementById('membershipform').submit();
    }

    var params = 'sports=' + sports;

    var url = "/TEAMSPGMS/checkForSportsSpecificFields.php?" + params;

    new Ajax.Request(url, {
        method: 'get',
        onSuccess: function(transport) {
            if (trim(transport.responseText, ' ')=="1")
            {
                var url = "/TEAMSPGMS/getSportsSpecificFields.php";
                var ajax = new Ajax.Updater({success: 'sportsfields'}, url,{method: 'get', parameters: params, onFailure: reportError});
            }
            else {
                document.getElementById('membershipform').submit();
            }

        }//onsuccess
    });
    */
}

// motion.js

var timerlen = 5;
var slideAniLen = 250;

var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var endHeight = new Array();
var moving = new Array();
var dir = new Array();

function slidedown(objname){
        if(moving[objname])
                return;

        if(document.getElementById(objname).style.display != "none")
                return; // cannot slide down something that is already visible

        moving[objname] = true;
        dir[objname] = "down";
        startslide(objname);
}

function slideup(objname){
        if(moving[objname])
                return;

        if(document.getElementById(objname).style.display == "none")
                return; // cannot slide up something that is already hidden

        moving[objname] = true;
        dir[objname] = "up";
        startslide(objname);
}

function startslide(objname){
        obj[objname] = document.getElementById(objname);

        endHeight[objname] = parseInt(obj[objname].style.height);
        startTime[objname] = (new Date()).getTime();

        if(dir[objname] == "down"){
                obj[objname].style.height = "1px";
        }

        obj[objname].style.display = "block";

        timerID[objname] = setInterval('slidetick(\'' + objname + '\');',timerlen);
}

function slidetick(objname){
        var elapsed = (new Date()).getTime() - startTime[objname];

        if (elapsed > slideAniLen)
                endSlide(objname)
        else {
                var d =Math.round(elapsed / slideAniLen * endHeight[objname]);
                if(dir[objname] == "up")
                        d = endHeight[objname] - d;

                obj[objname].style.height = d + "px";
        }

        return;
}

function endSlide(objname){
        clearInterval(timerID[objname]);

        if(dir[objname] == "up")
                obj[objname].style.display = "none";

        obj[objname].style.height = endHeight[objname] + "px";

        delete(moving[objname]);
        delete(timerID[objname]);
        delete(startTime[objname]);
        delete(endHeight[objname]);
        delete(obj[objname]);
        delete(dir[objname]);

        return;
}





