window.onerror  =  null;
var topMargin = 131;
var slideTime = 400;
var ns6 = (!document.all && document.getElementById);
var ie4 = (document.all);
var ns4 = (document.layers);
var show_search_price=false;
var activeElem = "";

function layerObject(id,left) {
  if (ns6) {
    this.obj = document.getElementById(id).style;
    this.obj.left = left;
    return this.obj;
  }
  else if(ie4) {
    this.obj = document.all[id].style;
    this.obj.left = left;
    return this.obj;
  }
  else if(ns4) {
    this.obj = document.layers[id];
    this.obj.left = left;
    return this.obj;
  }
}

function layerSetup() {
  window.setInterval("main()", 5);
}

function floatObject() {
  if (ns4 || ns6) {
    findHt = window.innerHeight;
  } 
  else if(ie4) {
    findHt = document.body.clientHeight;
  }
}

function main() {
  if (ns4) {
    this.currentY = document.layers["floatLayer"].top;
    this.currentY = document.layers["floatLayerShowButton"].top;
    this.scrollTop = window.pageYOffset;
    mainTrigger();
  }
  else if(ns6) {
    this.currentY = parseInt(document.getElementById('floatLayer').style.top);
    this.currentY = parseInt(document.getElementById('floatLayerShowButton').style.top);
    this.scrollTop = scrollY;
    mainTrigger();
  } 
  else if(ie4) {
    this.currentY = floatLayer.style.pixelTop;
    this.currentY = floatLayerShowButton.style.pixelTop;
    this.scrollTop = document.body.scrollTop;
    mainTrigger();
  }
}

function mainTrigger() {
  var newTargetY = this.scrollTop + this.topMargin;
  if ( this.currentY != newTargetY ) {
    if ( newTargetY != this.targetY ) {
      this.targetY = newTargetY;
      floatStart();
    }
    animator();
  }
}

function floatStart() {
  var now = new Date();
  this.A = this.targetY - this.currentY;
  this.B = Math.PI / ( 2 * this.slideTime );
  this.C = now.getTime();
  if (Math.abs(this.A) > this.findHt) {
    this.D = this.A > 0 ? this.targetY - this.findHt : this.targetY + this.findHt;
    this.A = this.A > 0 ? this.findHt : -this.findHt;
  }
  else {
    this.D = this.currentY;
  }
}

function animator() {
  var now = new Date();
  var newY = this.A * Math.sin( this.B * ( now.getTime() - this.C ) ) + this.D;
  newY = Math.round(newY);
  if (( this.A > 0 && newY > this.currentY ) || ( this.A < 0 && newY < this.currentY )) {
    if (ie4) {
      document.all.floatLayer.style.pixelTop = newY;
      document.all.floatLayerShowButton.style.pixelTop = newY;
    }
    if (ns4) {
      document.layers["floatLayer"].top = newY;
      document.layers["floatLayerShowButton"].top = newY;
    }
    if (ns6) {
      document.getElementById('floatLayer').style.top = newY + "px";
      document.getElementById('floatLayerShowButton').style.top = newY + "px";
    }
  }
}
function start() {
  if(this.show_event_info) {
    document.getElementById('floatLayer').style.visibility = 'visible';
    document.getElementById('floatLayerShowButton').style.visibility = 'hidden';
  }
  else {
    document.getElementById('floatLayer').style.visibility = 'hidden';
    document.getElementById('floatLayerShowButton').style.visibility = 'visible';
  }
  if(ns6||ns4) {
    pageWidth = innerWidth;
    pageHeight = innerHeight;
    layerSetup();
    floatObject();
  }
  else if(ie4) {
    pageWidth = document.body.clientWidth;
    pageHeight = document.body.clientHeight;
    layerSetup();
    floatObject();
  }
}

function to_white(_element) {
  _element.style.backgroundColor='#ffffff';
}

function to_blue(_element) {
  _element.style.backgroundColor='#f9f9f9';
}

function jskey(_key) {
  if(_key == 'event_instance_id')
    return 1;
  if(_key == 'event_id')
    return 2;
  if(_key == 'name')
    return 3;
  if(_key == 'acronym')
    return 4;
  if(_key == 'website')
    return 5;
  if(_key == 'start_date')
    return 6;
  if(_key == 'end_date')
    return 7;
  if(_key == 'year')
    return 8;
  if(_key == 'jnj')
    return 9;
  if(_key == 'strictly')
    return 10;
  if(_key == 'showcase')
    return 11;
  if(_key == 'team')
    return 12;
  if(_key == 'solo')
    return 13;
  if(_key == 'lindy')
    return 14;
  if(_key == 'balboa')
    return 15;
  if(_key == 'jazz')
    return 16;
  if(_key == 'blues')
    return 17;
  if(_key == 'tap')
    return 18;
  if(_key == 'westcoast')
    return 19;
  if(_key == 'charleston')
    return 20;
  if(_key == 'workshop')
    return 21;
  if(_key == 'exchange')
    return 22;
  if(_key == 'competition')
    return 23;
  if(_key == 'city')
    return 24;
  if(_key == 'state')
    return 25;
  if(_key == 'country')
    return 26;
  if(_key == 'early')
    return 27;
  if(_key == 'normal')
    return 28;
  if(_key == 'late')
    return 29;
}

function hide_floating_event_info() {
  if(show_event_info) {
    document.getElementById('floatLayer').style.visibility = 'hidden';
    document.getElementById('floatLayerShowButton').style.visibility = 'visible';
    //document.getElementById('show_hide_event_info').innerHTML = 'show';
    this.show_event_info=false;
  }
  else {
    document.getElementById('floatLayerShowButton').style.visibility = 'hidden';
    document.getElementById('floatLayer').style.visibility = 'visible';
    //document.getElementById('show_hide_event_info').innerHTML = 'hide';
    this.show_event_info=true;
  }
}

function does_event_have_dance_types(_eid) {
  return (this.events[_eid][jskey('lindy')] == 1 || this.events[_eid][jskey('balboa')] == 1 || this.events[_eid][jskey('jazz')] == 1 || this.events[_eid][jskey('westcoast')] == 1 || this.events[_eid][jskey('tap')] == 1 || this.events[_eid][jskey('blues')] == 1 || this.events[_eid][jskey('charleston')] == 1);
}

function does_event_have_event_types(_eid) {
  return (this.events[_eid][jskey('workshop')] == 1 || this.events[_eid][jskey('competition')] == 1 || this.events[_eid][jskey('exchange')] == 1);
}

function does_event_have_competition_types(_eid) {
  return (this.events[_eid][jskey('jnj')] == 1 || this.events[_eid][jskey('strictly')] == 1 || this.events[_eid][jskey('solo')] == 1 || this.events[_eid][jskey('team')] == 1 || this.events[_eid][jskey('showcase')] == 1);
}

function does_event_have_price(_eid) {
  return (this.events[_eid][jskey('early')] > 0 || this.events[_eid][jskey('normal')] > 0 || this.events[_eid][jskey('late')] > 0);
}

function does_event_have_instructors(_eid) {
  return false;
}

function display_event_info(_eid) {
  // Declare variables and create the header, footer, and caption.
  var oTableContainer = document.getElementById('floatLayer');
  var oTable = document.createElement("TABLE");
  var oTBody0;
  var oRow, oCell;
  var _eid_index = -1;
  
  for(var i=0; i<this.events.length; i++) {
    if(this.events[i][jskey('event_instance_id')] == _eid) {
      _eid_index = i;
      break;
    }    
  }
  
  if(_eid_index > -1) {
    
    // Display Event Name
    oTBody0 = document.createElement("TBODY");
    oRow = document.createElement("TR");
    oCell = document.createElement("TD");
    oCell.setAttribute("width", "50px");
    oCell.innerHTML = "Event<br>Name";
    oRow.appendChild(oCell);
    oCell = document.createElement("TD");
    if(this.events[_eid_index][jskey('website')] != "") {
      oCell.innerHTML = "<a href=\"" + this.events[_eid_index][jskey('website')] + "\" target=\"_blank\">" + this.events[_eid_index][jskey('name')] + "<img src=\"/images/outside_link.gif\"></a>";
    }
    else {
      oCell.innerHTML = this.events[_eid_index][jskey('name')];
    }
    oRow.appendChild(oCell);
    oTBody0.appendChild(oRow);
    oTable.appendChild(oTBody0);

    // Display Event dates
    oTBody0 = document.createElement("TBODY");
    oRow = document.createElement("TR");
    oCell = document.createElement("TD");
    oCell.setAttribute("width", "50px");
    oCell.innerHTML = "Dates";
    oRow.appendChild(oCell);
    oCell = document.createElement("TD");
    var _start_array = new Array();
    _start_array = this.events[_eid_index][jskey('start_date')].split('-');
    var _end_array = new Array();
    _end_array = this.events[_eid_index][jskey('end_date')].split('-');
    _start_date_obj = new Date();
    _start_date_obj.setFullYear(_start_array[0], _start_array[1]-1, _start_array[2]);
    _end_date_obj = new Date();
    _end_date_obj.setFullYear(_end_array[0], _end_array[1]-1, _end_array[2]);
    if(_start_array[1] == _end_array[1]) {
      oCell.innerHTML = formatDate(_start_date_obj, "MMM d") + " - " + formatDate(_end_date_obj, "d");
    }
    else {
      oCell.innerHTML = formatDate(_start_date_obj, "MMM d") + " - " + formatDate(_end_date_obj, "MMM d");
    }
    oRow.appendChild(oCell);
    oTBody0.appendChild(oRow);
    oTable.appendChild(oTBody0);

    
    // Display City if it exists
    var city_text = _str_event_location(this.events[_eid_index][jskey('city')], this.events[_eid_index][jskey('state')], this.events[_eid_index][jskey('country')]);
    if(city_text != "") {
      oTBody0 = document.createElement("TBODY");
      oRow = document.createElement("TR");
      oCell = document.createElement("TD");
      oCell.setAttribute("width", "50px");
      oCell.innerHTML = "Location";
      oRow.appendChild(oCell);
      oCell = document.createElement("TD");
      oCell.innerHTML = city_text;
      oRow.appendChild(oCell);
      oTBody0.appendChild(oRow);
      oTable.appendChild(oTBody0);
    }
    
    // Display pricing if available
    if(does_event_have_price(_eid_index)) {
      oTBody0 = document.createElement("TBODY");
      oRow = document.createElement("TR");
      oCell = document.createElement("TD");
      oCell.innerHTML = "Price";
      oRow.appendChild(oCell);
      oCell = document.createElement("TD");
      oCell.innerHTML = get_event_info_text(_eid_index, 'price');
      oRow.appendChild(oCell);
      oTBody0.appendChild(oRow);
      oTable.appendChild(oTBody0);
    }
    
    // Display dance types if available
    if(does_event_have_dance_types(_eid_index)) {
      oTBody0 = document.createElement("TBODY");
      oRow = document.createElement("TR");
      oCell = document.createElement("TD");
      oCell.innerHTML = "Dances";
      oRow.appendChild(oCell);
      oCell = document.createElement("TD");
      oCell.innerHTML = get_event_info_text(_eid_index, 'dance_type');
      oRow.appendChild(oCell);
      oTBody0.appendChild(oRow);
      oTable.appendChild(oTBody0);
    }
    
    // Display event types if available
    if(does_event_have_event_types(_eid_index)) {
      oTBody0 = document.createElement("TBODY");
      oRow = document.createElement("TR");
      oCell = document.createElement("TD");
      oCell.innerHTML = "Type";
      oRow.appendChild(oCell);
      oCell = document.createElement("TD");
      oCell.innerHTML = get_event_info_text(_eid_index, 'event_type');
      oRow.appendChild(oCell);
      oTBody0.appendChild(oRow);
      oTable.appendChild(oTBody0);
    }
    
    // Display comp types if available
    if(does_event_have_competition_types(_eid_index)) {
      oTBody0 = document.createElement("TBODY");
      oRow = document.createElement("TR");
      oCell = document.createElement("TD");
      oCell.innerHTML = "Comps";
      oRow.appendChild(oCell);
      oCell = document.createElement("TD");
      oCell.innerHTML = get_event_info_text(_eid_index, 'competition_type');
      oRow.appendChild(oCell);
      oTBody0.appendChild(oRow);
      oTable.appendChild(oTBody0);
    }
    
    // Display instructors if available
    if(does_event_have_instructors(_eid_index)) {
      oTBody0 = document.createElement("TBODY");
      oRow = document.createElement("TR");
      oCell = document.createElement("TD");
      oCell.innerHTML = "Instructors";
      oRow.appendChild(oCell);
      oCell = document.createElement("TD");
      oCell.innerHTML = get_event_instructors(_eid_index);
      oRow.appendChild(oCell);
      oTBody0.appendChild(oRow);
      oTable.appendChild(oTBody0);
    }
    
    // Set table id
    oTable.setAttribute("id","event_info");
    oTable.setAttribute("width","146px");
    // Remove old table
    if(document.getElementById('event_info')) {
      oTableContainer.removeChild(document.getElementById('event_info'));
    }
    // Insert new table
    oTableContainer.appendChild(oTable);
  }
}

function toggle_search_element(_element_id) {
  _element = document.getElementById(_element_id);
  //document.write(_element.style.visibility);
  if('hidden' == _element.style.visbility) {
    _element.style.visibility = 'visible';
//    document.write(_element.style.visibility);
  }
  else {
    _element.style.visibility = 'hidden';
//    document.write(_element.style.visibility);
  }
}

function _add_row(_element_id, _row_html) {
  var _table_element = document.getElementById(_element_id);
  var _new_row = _table_element.insertRow(-1);
  _new_row.id = _new_row.uniqueID; // give row its own ID
  
  var _new_cell = _new_row.insertCell(-1);
  _new_cell.id = _new_cell.uniqueID;
  _new_cell.innerHTML = _row_html;
}

function _delete_row(_element_id, _min) {
  var _table_element = document.getElementById(_element_id);
  if(_table_element.rows.length <= _min) {
    return;
  }
  else {
    _table_element.deleteRow(-1);
  }
}

function _load_event_info(_eid, _link_elem) {
  if(this.show_event_info) {
    display_event_info(_eid);
  }
  else {
    _link_elem.removeAttributeNode(_link_elem.getAttributeNode("href"));
    document.forms['event_list'].action = "event.php?eid=" + _eid + "";
    document.forms['event_list'].submit();
  }
}

function _show_event_info(_eid) {
  display_event_info(_eid);
}

function _form_href_go(_link_elem, _form_name) {
  _link_elem.removeAttributeNode(_link_elem.getAttributeNode("href"));
  document.forms[_form_name].submit();
}

/*function _highlight_all_by_class(_element_type, _element_class, _color) {
  var element_list = document.getElementsByTagName(_element_type);
  for (i=0; i<element_list.length; i++)
    if (element_list.item(i).className == _element_class)
      element_list.item(i).style.backgroundColor = _color;
}

window.onload = function(){
    hideall("img","extra");
};

function _highlight_all_by_id(_element_type, _element_id, _color) {
  var element_list = document.getElementsByTagName(_element_type);
  for (i=0; i<element_list.length; i++)
    if (element_list.item(i).id == _element_id)
      element_list.item(i).style.backgroundColor = _color;
}
*/
function _highlight_event(_element_id) {
  var i=1;
  if(activeElem != "") {
    _normalize_event(activeElem);
  }
  activeElem = _element_id
//  var _true_element_id = _element_id + "_" + i;
  var _popout_element_id = _element_id + "_" + i + "_popout";
//  var _element = document.getElementById(_true_element_id);
  var _element_popout = document.getElementById(_popout_element_id);
  do {
//    _element.style.backgroundColor = '#808ac0';
//    _element_popout.style.backgroundColor = '#808ac0';
    _element_popout.style.visibility="visible";
    i++;
//    _true_element_id = _element_id + "_" + i;
    _popout_element_id = _element_id + "_" + i + "_popout";
//    _element = document.getElementById(_true_element_id);
    _element_popout = document.getElementById(_popout_element_id);
  } while(_element_popout != null);
}

function _normalize_event(_element_id) {
/*  var i=1;
/  var _true_element_id = _element_id + "_" + i;
  var _element = document.getElementById(_true_element_id);
  do {
    _element.style.backgroundColor = '#00137f';
    i++;
    _true_element_id = _element_id + "_" + i;
    _element = document.getElementById(_true_element_id);
  } while(_element != null);
  */
  var i=1;
//  var _true_element_id = _element_id + "_" + i;
  var _popout_element_id = _element_id + "_" + i + "_popout";
//  var _element = document.getElementById(_true_element_id);
  var _element_popout = document.getElementById(_popout_element_id);
  do {
//    _element.style.backgroundColor = '#00137f';
//    _element_popout.style.backgroundColor = '#00137f';
    _element_popout.style.visibility="hidden";
    i++;
//    _true_element_id = _element_id + "_" + i;
    _popout_element_id = _element_id + "_" + i + "_popout";
//    _element = document.getElementById(_true_element_id);
    _element_popout = document.getElementById(_popout_element_id);
  } while(_element_popout != null);
  if(activeElem == _element_id) {
    activeElem = "";
  }
}


function _str_event_location(_city, _state, _country) {
  state_abbreviation = _state_abbrev(_state);
  if(state_abbreviation != false) {
    return _city + ", " + state_abbreviation;
  }
  else {
    if(_city != "") {
      //city filled
      if(_state == "") {
        //state blank
        if(_country == "") {
          //city filled, state and country blank
          return _city;
        }
        else {
          //city and country filled, state blank
          return _city + ", " + _country;
        }
      }
      else {
        //city and state filled, country don't matter = the norm
        return _city + ", " + _state;
      }
    }
    else {
      //city blank
      if(_state == "") {
        //state blank
        if(_country == "") {
          //city blank, state and country blank
          return "";
        }
        else {
          //country filled, city and state blank
          return _country;
        }
      }
      else {
        //state filled, city blank
        if(_country == "") {
          //state filled, city and country blank
          return _state;
        }
        else {
          //state and country filled, city blank
          return _country;
        }
      }
    }
  }
}

function _state_full(_abbrev) {
  switch(_abbrev) {
    case 'AL': return "Alabama";
    case 'AK': return "Alaska";
    case 'AZ': return "Arizona";
    case 'AR': return "Arkansas";
    case 'CA': return "California";
    case 'CO': return "Colorado";
    case 'CT': return "Connecticut";
    case 'DE': return "Delaware";
    case 'DC': return "District Of Columbia";
    case 'FL': return "Florida";
    case 'GA': return "Georgia";
    case 'HI': return "Hawaii";
    case 'ID': return "Idaho";
    case 'IL': return "Illinois";
    case 'IN': return "Indiana";
    case 'IA': return "Iowa";
    case 'KS': return "Kansas";
    case 'KY': return "Kentucky";
    case 'LA': return "Louisiana";
    case 'ME': return "Maine";
    case 'MD': return "Maryland";
    case 'MA': return "Massachusetts";
    case 'MI': return "Michigan";
    case 'MN': return "Minnesota";
    case 'MS': return "Mississippi";
    case 'MO': return "Missouri";
    case 'MT': return "Montana";
    case 'NE': return "Nebraska";
    case 'NV': return "Nevada";
    case 'NH': return "New Hampshire";
    case 'NJ': return "New Jersey";
    case 'NM': return "New Mexico";
    case 'NY': return "New York";
    case 'NC': return "North Carolina";
    case 'ND': return "North Dakota";
    case 'OH': return "Ohio";
    case 'OK': return "Oklahoma";
    case 'OR': return "Oregon";
    case 'PA': return "Pennsylvania";
    case 'RI': return "Rhode Island";
    case 'SC': return "South Carolina";
    case 'SD': return "South Dakota";
    case 'TN': return "Tennessee";
    case 'TX': return "Texas";
    case 'UT': return "Utah";
    case 'VT': return "Vermont";
    case 'VA': return "Virginia";
    case 'WA': return "Washington";
    case 'WV': return "West Virginia";
    case 'WI': return "Wisconsin";
    case 'WY': return "Wyoming";
    default: return false;
  }
}

function _state_abbrev(_full) {
  switch(_full) {
    case "Alabama":              return 'AL'; 
    case "Alaska":              return 'AK'; 
    case "Arizona":              return 'AZ'; 
    case "Arkansas":             return 'AR'; 
    case "California":           return 'CA'; 
    case "Colorado":             return 'CO'; 
    case "Connecticut":          return 'CT'; 
    case "Delaware":             return 'DE'; 
    case "District Of Columbia": return 'DC';  
    case "Florida":              return 'FL'; 
    case "Georgia":              return 'GA'; 
    case "Hawaii":               return 'HI'; 
    case "Idaho":                return 'ID'; 
    case "Illinois":             return 'IL'; 
    case "Indiana":              return 'IN'; 
    case "Iowa":                 return 'IA'; 
    case "Kansas":               return 'KS'; 
    case "Kentucky":             return 'KY'; 
    case "Louisiana":            return 'LA'; 
    case "Maine":                return 'ME'; 
    case "Maryland":             return 'MD'; 
    case "Massachusetts":        return 'MA'; 
    case "Michigan":             return 'MI'; 
    case "Minnesota":            return 'MN'; 
    case "Mississippi":          return 'MS'; 
    case "Missouri":             return 'MO'; 
    case "Montana":              return 'MT'; 
    case "Nebraska":             return 'NE'; 
    case "Nevada":               return 'NV'; 
    case "New Hampshire":        return 'NH'; 
    case "New Jersey":           return 'NJ'; 
    case "New Mexico":           return 'NM'; 
    case "New York":             return 'NY'; 
    case "North Carolina":       return 'NC'; 
    case "North Dakota":         return 'ND'; 
    case "Ohio":                 return 'OH'; 
    case "Oklahoma":             return 'OK'; 
    case "Oregon":               return 'OR'; 
    case "Pennsylvania":         return 'PA'; 
    case "Rhode Island":         return 'RI'; 
    case "South Carolina":       return 'SC'; 
    case "South Dakota":         return 'SD'; 
    case "Tennessee":            return 'TN'; 
    case "Texas":                return 'TX'; 
    case "Utah":                 return 'UT'; 
    case "Vermont":              return 'VT'; 
    case "Virginia":             return 'VA'; 
    case "Washington":           return 'WA'; 
    case "West Virginia":        return 'WV'; 
    case "Wisconsin":            return 'WI'; 
    case "Wyoming":              return 'WY'; 
    default: return false;
  }
}

function _clear_form(_form_name) {
  var _frm = document.forms[_form_name];
  for (i=0; i < _frm.elements.length; i++) {
    if(_frm.elements[i].type == 'text' || _frm.elements[i].type == 'url' || _frm.elements[i].type == 'date') {
      _frm.elements[i].value="";
    }
    else if(_frm.elements[i].type == 'checkbox') {
      _frm.elements[i].checked = false;
    }
  }
  _frm.year.options[0].selected=true;
}


var MONTH_NAMES=new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
var DAY_NAMES=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sun','Mon','Tue','Wed','Thu','Fri','Sat');
function LZ(x) {return(x<0||x>9?"":"0")+x}

// NOTE THE DIFFERENCE BETWEEN MM and mm! Month=MM, not mm!
// Examples:
//  "MMM d, y" matches: January 01, 2000
//                      Dec 1, 1900
//                      Nov 20, 00
//  "M/d/yy"   matches: 01/20/00
//                      9/2/00
//  "MMM dd, yyyy hh:mm:ssa" matches: "January 01, 2000 12:30:45AM"
// ------------------------------------------------------------------
function formatDate(date,format) {
	format=format+"";
	var result="";
	var i_format=0;
	var c="";
	var token="";
	var y=date.getYear()+"";
	var M=date.getMonth()+1;
	var d=date.getDate();
	var E=date.getDay();
	var H=date.getHours();
	var m=date.getMinutes();
	var s=date.getSeconds();
	var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;
	// Convert real date parts into formatted versions
	var value=new Object();
	if (y.length < 4) {y=""+(y-0+1900);}
	value["y"]=""+y;
	value["yyyy"]=y;
	value["yy"]=y.substring(2,4);
	value["M"]=M;
	value["MM"]=LZ(M);
	value["MMM"]=MONTH_NAMES[M-1];
	value["NNN"]=MONTH_NAMES[M+11];
	value["d"]=d;
	value["dd"]=LZ(d);
	value["E"]=DAY_NAMES[E+7];
	value["EE"]=DAY_NAMES[E];
	value["H"]=H;
	value["HH"]=LZ(H);
	if (H==0){value["h"]=12;}
	else if (H>12){value["h"]=H-12;}
	else {value["h"]=H;}
	value["hh"]=LZ(value["h"]);
	if (H>11){value["K"]=H-12;} else {value["K"]=H;}
	value["k"]=H+1;
	value["KK"]=LZ(value["K"]);
	value["kk"]=LZ(value["k"]);
	if (H > 11) { value["a"]="PM"; }
	else { value["a"]="AM"; }
	value["m"]=m;
	value["mm"]=LZ(m);
	value["s"]=s;
	value["ss"]=LZ(s);
	while (i_format < format.length) {
		c=format.charAt(i_format);
		token="";
		while ((format.charAt(i_format)==c) && (i_format < format.length)) {
			token += format.charAt(i_format++);
	  }
		if (value[token] != null) { result=result + value[token]; }
		else { result=result + token; }
	}
	return result;
}

function _toggle_month(_element_id) {
  var _elem = document.getElementById(_element_id);
  var _elem_link = document.getElementById(_element_id + "link");
  if(_elem.style.visibility == 'hidden') {
    _elem.style.display = "block";
    _elem.style.visibility = "visible";
    _elem_link.innerHTML = "hide";
  }
  else {
    _elem.style.display = "none";
    _elem.style.visibility = "hidden";
    _elem_link.innerHTML = "show";
  }
}

function get_event_info_text(_eid, _info_type) {
  var _return_text="";
  if(_info_type == 'price') {
    var _price_to_use=0;
    if(this.events[_eid][jskey('normal')] != 0) {
      _price_to_use = this.events[_eid][jskey('normal')];
    }
    else if(this.events[_eid][jskey('normal')] != 0) {
      _price_to_use = this.events[_eid][jskey('early')];
    }
    else if(this.events[_eid][jskey('normal')] !=0) {
      _price_to_use = this.events[_eid][jskey('late')];
    }
    else {
      return "";
    }
    _return_text="$";
    for(i=0; i<this.prices.length; i++) {
      if(_price_to_use > this.prices[i]) {
        _return_text += "$";
      }
      else {
        return _return_text;
      }
    }
    return _return_text;
  }
  else if(_info_type == 'dance_type') {
    if(this.events[_eid][jskey('lindy')] == 1) {
      if(_return_text != "") {
        _return_text = _return_text + ", ";
      }
      _return_text = _return_text + "Lindy Hop";
    }
    if(this.events[_eid][jskey('balboa')] == 1) {
      if(_return_text != "") {
        _return_text = _return_text + ", ";
      }
      _return_text = _return_text + "Balboa";
    }
    if(this.events[_eid][jskey('blues')] == 1) {
      if(_return_text != "") {
        _return_text = _return_text + ", ";
      }
      _return_text = _return_text + "Blues";
    }
    if(this.events[_eid][jskey('charleston')] == 1) {
      if(_return_text != "") {
        _return_text = _return_text + ", ";
      }
      _return_text = _return_text + "Charleston";
    }
    if(this.events[_eid][jskey('jazz')] == 1) {
      if(_return_text != "") {
        _return_text = _return_text + ", ";
      }
      _return_text = _return_text + "Jazz";
    }
    if(this.events[_eid][jskey('tap')] == 1) {
      if(_return_text != "") {
        _return_text = _return_text + ", ";
      }
      _return_text = _return_text + "Tap";
    }
    if(this.events[_eid][jskey('westcoast')] == 1) {
      if(_return_text != "") {
        _return_text = _return_text + ", ";
      }
      _return_text = _return_text + "West Coast";
    }
    return _return_text;
  }
  else if(_info_type == 'event_type') {
    if(this.events[_eid][jskey('workshop')] == 1) {
      if(_return_text != "") {
        _return_text = _return_text + ", ";
      }
      _return_text = _return_text + "Workshop";
    }
    if(this.events[_eid][jskey('exchange')] == 1) {
      if(_return_text != "") {
        _return_text = _return_text + ", ";
      }
      _return_text = _return_text + "Exchange";
    }
    if(this.events[_eid][jskey('competition')] == 1) {
      if(_return_text != "") {
        _return_text = _return_text + ", ";
      }
      _return_text = _return_text + "Competition";
    }
    return _return_text;
  }
  else if(_info_type == 'competition_type') {
    if(this.events[_eid][jskey('strictly')] == 1) {
      if(_return_text != "") {
        _return_text = _return_text + ", ";
      }
      _return_text = _return_text + "Strictly";
    }
    if(this.events[_eid][jskey('jnj')] == 1) {
      if(_return_text != "") {
        _return_text = _return_text + ", ";
      }
      _return_text = _return_text + "Jack and Jill";
    }
    if(this.events[_eid][jskey('showcase')] == 1) {
      if(_return_text != "") {
        _return_text = _return_text + ", ";
      }
      _return_text = _return_text + "Showcase";
    }
    if(this.events[_eid][jskey('team')] == 1) {
      if(_return_text != "") {
        _return_text = _return_text + ", ";
      }
      _return_text = _return_text + "Team";
    }
    if(this.events[_eid][jskey('solo')] == 1) {
      if(_return_text != "") {
        _return_text = _return_text + ", ";
      }
      _return_text = _return_text + "Team";
    }
    return _return_text;
  }
  return "shouldn't happen";
}

function get_event_instructors(_eid) {
  return "To be developed...";
}

function _toggle_event_audit(_element_id) {
  var _elem_actuals = document.getElementById(_element_id + "_actuals");
  var _elem_actuals_checkbox = document.getElementById(_element_id + "_actuals_checkbox");
  var _elem_inputs = document.getElementById(_element_id + "_inputs");
  var _elem_inputs_checkbox = document.getElementById(_element_id + "_inputs_checkbox");
  if(_elem_actuals.style.visibility == 'hidden') {
    _elem_actuals.style.display = "";
    _elem_actuals.style.visibility = "visible";
    _elem_inputs.style.display = "none";
    _elem_inputs.style.visibility = "hidden";
    _elem_inputs_checkbox.checked=false;
    _elem_actuals_checkbox.checked=false;
  }
  else {
    _elem_inputs.style.display = "";
    _elem_inputs.style.visibility = "visible";
    _elem_actuals.style.display = "none";
    _elem_actuals.style.visibility = "hidden";
    _elem_inputs_checkbox.checked=true;
    _elem_actuals_checkbox.checked=true;
  }
}
