//
//  JS for LambdaBD class
//
//  Clio Soleil (clio@PrettyGetter.TV)
//  PrettyGetter Productions (http://PrettyGetter.TV) 
//  

LBD_url  = "/_pgtv/_php/class/LambdaBD/LambdaBD.php";     // where installed
//LBD_calendar = null;                                      // the calendar used for date picking

//--------------------------------------------------------------------------------------------------------------------------------------------
// AJAX funtion that sets a name/value pair in the session
function LBD_setSession(db, ssid, name, value)
//--------------------------------------------------------------------------------------------------------------------------------------------
{
  requestAJAX(LBD_url + "?ssid="+ssid+
                        "&db="+db+
                        "&ajax=setSession"+
                        "&name="+name+
                        "&value="+value);
}

//--------------------------------------------------------------------------------------------------------------------------------------------
// GUI function which sets the value of a SELECT option in the session
function LBD_optionSelected(db, ssid, selector)
//--------------------------------------------------------------------------------------------------------------------------------------------
{
  // get the named div's DOM object and toggle the classname
  s = document.getElementById(selector);

  requestAJAX(LBD_url + "?ssid="+ssid+
                        "&db="+db+
                        "&ajax=setSession"+
                        "&name="+selector+
                        "&value="+s.value);
}

//--------------------------------------------------------------------------------------------------------------------------------------------
// AJAX GUI function which shows/hides an element and saves the GUI state in the session
function LBD_toggleDisplay(db, ssid, container)
//--------------------------------------------------------------------------------------------------------------------------------------------
{
  // show/hide the containing div (client side) and save state in session (server-side)
  toggleDisplayByID(container, "", "none");
  requestAJAX(LBD_url + "?ssid="+ssid+
                        "&db="+db+
                        "&ajax=toggleDisplay"+
                        "&name="+container);
}

//--------------------------------------------------------------------------------------------------------------------------------------------
// 
function LBD_addCategory(db, ssid, uid, value, name)
//--------------------------------------------------------------------------------------------------------------------------------------------
{
  requestAJAX(LBD_url + "?ssid="+ssid+
                        "&db="+db+
                        "&uid="+uid+
                        "&ajax=addCategory"+
                        "&cat="+escape(value),
              "getDataCB",
              name);
}

//--------------------------------------------------------------------------------------------------------------------------------------------
// 
function LBD_approveCategory(db, ssid, uid, value, name)
//--------------------------------------------------------------------------------------------------------------------------------------------
{
  requestAJAX(LBD_url + "?ssid="+ssid+
                        "&db="+db+
                        "&uid="+uid+
                        "&ajax=approveCategory"+
                        "&cat="+value,
              "getDataCB",
              name);
}

//--------------------------------------------------------------------------------------------------------------------------------------------
// 
function LBD_deleteCategory(db, ssid, uid, value, name)
//--------------------------------------------------------------------------------------------------------------------------------------------
{
  requestAJAX(LBD_url + "?ssid="+ssid+
                        "&db="+db+
                        "&uid="+uid+
                        "&ajax=deleteCategory"+
                        "&cat="+value,
              "getDataCB",
              name);
}

//--------------------------------------------------------------------------------------------------------------------------------------------
// 
function LBD_mergeCategory(db, ssid, uid, value1, value2, name)
//--------------------------------------------------------------------------------------------------------------------------------------------
{
  requestAJAX(LBD_url + "?ssid="+ssid+
                        "&db="+db+
                        "&uid="+uid+
                        "&ajax=mergeCategory"+
                        "&cat1="+value1+
                        "&cat2="+value2,
              "getDataCB",
              name);
}

//--------------------------------------------------------------------------------------------------------------------------------------------
// 
function LBD_renameCategory(db, ssid, uid, value1, value2, name)
//--------------------------------------------------------------------------------------------------------------------------------------------
{
  requestAJAX(LBD_url + "?ssid="+ssid+
                        "&db="+db+
                        "&uid="+uid+
                        "&ajax=renameCategory"+
                        "&cat1="+value1+
                        "&cat2="+escape(value2),
              "getDataCB",
              name);
}

//--------------------------------------------------------------------------------------------------------------------------------------------
// 
function LBD_assignCategory(db, ssid, uid, value1, value2, name)
//--------------------------------------------------------------------------------------------------------------------------------------------
{
  requestAJAX(LBD_url + "?ssid="+ssid+
                        "&db="+db+
                        "&uid="+uid+
                        "&ajax=assignCategory"+
                        "&cat="+value1+
                        "&bus="+value2,
              "getDataCB",
              name);
}

//--------------------------------------------------------------------------------------------------------------------------------------------
// 
function LBD_removeCategory(db, ssid, uid, value1, value2, name)
//--------------------------------------------------------------------------------------------------------------------------------------------
{
  requestAJAX(LBD_url + "?ssid="+ssid+
                        "&db="+db+
                        "&uid="+uid+
                        "&ajax=removeCategory"+
                        "&cat="+value1+
                        "&bus="+value2,
              "getDataCB",
              name);
}

//--------------------------------------------------------------------------------------------------------------------------------------------
// GUI function which jumps to a category page
function LBD_showCategory(db, ssid, uid, selector)
//--------------------------------------------------------------------------------------------------------------------------------------------
{
  cid = selector.options[selector.selectedIndex].value;
  if (cid != "")
  {
    div = document.getElementById("LBD_Main");
    if (div)
      requestAJAX(LBD_url + "?ssid="+ssid+
                            "&db="+db+
                            "&uid="+uid+
                            "&ajax=getMembers"+
                            "&LBD_cid="+cid,
                  "getDataCB",
                  "LBD_Main");
    else
      location.href = "/directory?LBD_cid="+cid;
  }
}

//--------------------------------------------------------------------------------------------------------------------------------------------
// GUI function which jumps to a category page
function LBD_searchMembers(db, ssid, uid, terms)
//--------------------------------------------------------------------------------------------------------------------------------------------
{
  if (terms != "")
  {
    div = document.getElementById("LBD_Main");
    if (div)
      requestAJAX(LBD_url + "?ssid="+ssid+
                            "&db="+db+
                            "&uid="+uid+
                            "&ajax=getMembers"+
                            "&LBD_terms="+escape(terms),
                  "getDataCB",
                  "LBD_Main");
    else
      location.href = "/directory?LBD_terms="+terms;
  }
}

//--------------------------------------------------------------------------------------------------------------------------------------------
// 
function LBD_setDirty(element, isDirty) 
//--------------------------------------------------------------------------------------------------------------------------------------------
{
  var name = element.className;
  name = name.replace(" dirty", "");
  name = name.replace(" clean", "");
  
  if (isDirty)
    name = name + " dirty";
  else  
    name = name + " clean";
    
  element.className = name;
}


//--------------------------------------------------------------------------------------------------------------------------------------------
// 
function LBD_save(db, ssid, uid, element, value, mid, field) 
//--------------------------------------------------------------------------------------------------------------------------------------------
{
  LBD_setDirty(element, true);
  requestAJAX(LBD_url + "?ssid="+ssid+
                        "&db="+db+
                        "&uid="+uid+
                        "&ajax=saveMember"+
                        "&mid="+mid+
                        "&field="+field+
                        "&value="+escape(value.replace(/\n/gi, "<br>")),
              "LBD_saveCB",
              element.id);
}

//--------------------------------------------------------------------------------------------------------------------------------------------
// for scripts/urls/classes/ajax dlls/etc that return HTML and were given a DIV id, update the contents
function LBD_saveCB(div, data)
//--------------------------------------------------------------------------------------------------------------------------------------------
{
  element = document.getElementById(div);
  if (data == "OK")
    LBD_setDirty(element, false);
  else
    LBD_setDirty(element, true);
}

//--------------------------------------------------------------------------------------------------------------------------------------------
// 
function LBD_showMember(db, ssid, uid, mid) 
//--------------------------------------------------------------------------------------------------------------------------------------------
{
  element = document.getElementById("member-"+mid);
  if (element.innerHTML == "loading...")
  {
    //element.innerHTML = "loading...";
    requestAJAX(LBD_url + "?ssid="+ssid+
                          "&db="+db+
                          "&uid="+uid+
                          "&ajax=getMember"+
                          "&mid="+mid,
                "getDataCB",
                element.id);
  }
  
  toggleDisplayByID(element.id, "", "none");
}

//--------------------------------------------------------------------------------------------------------------------------------------------
// 
function LBD_toggleAppType(container, id)
//--------------------------------------------------------------------------------------------------------------------------------------------
{
  element = document.getElementById(id);
  
  if ((container.value=="associate") || (container.value=="additional")) 
    element.style.display=""; 
  else 
    element.style.display="none";
}

/////////////////
// FTP ROUTINES
/////////////////

//--------------------------------------------------------------------------------------------------------------------------------------------
// 
function FTP_status_LBD_photo_completed(filename) 
//--------------------------------------------------------------------------------------------------------------------------------------------
{ 
  //alert(filename+" was uploaded and is ready for processing."); 
  document.getElementById("LBD_NewPhotoSubmit").style.display = "";
}

//--------------------------------------------------------------------------------------------------------------------------------------------
// 
function FTP_status_LBD_audio_completed(filename) 
//--------------------------------------------------------------------------------------------------------------------------------------------
{ 
  document.getElementById("LBD_NewAudioSubmit").style.display = "";
}

//--------------------------------------------------------------------------------------------------------------------------------------------
// 
function FTP_status_LBD_video_completed(filename) 
//--------------------------------------------------------------------------------------------------------------------------------------------
{ 
  document.getElementById("LBD_NewVideoSubmit").style.display = "";
}

////////////////////////
// CALENDAR ROUTINES
////////////////////////

//--------------------------------------------------------------------------------------------------------------------------------------------
// show calendar
function LBD_showCalendar(ssid, id, result, reload, editable, gameLocation) 
//--------------------------------------------------------------------------------------------------------------------------------------------
{
  //alert("LBD_showCalendar("+ssid+", "+id+", "+result+", "+reload+", "+editable+", "+gameLocation+")");

  if (LBD_calendar) return;
 
  var anchor = document.getElementById(id);

  // create and configure the calendar
	LBD_calendar = new PGTVCalendar();
	LBD_calendar.start_week_day = 7;
	LBD_calendar.show_time = false;
	LBD_calendar.user_onchange_handler = LBD_calendarOnChange;
	LBD_calendar.user_onclose_handler = LBD_calendarOnClose;
	LBD_calendar.user_onautoclose_handler = LBD_calendarOnClose;
  
  LBD_calendar.LBD_format = '%Y-%m-%j';   // our date format
  LBD_calendar.result = result;
  LBD_calendar.reload = reload;
  LBD_calendar.editable = editable;
  LBD_calendar.gameLocation = gameLocation;
  LBD_calendar.ssid = ssid;
 
  // set the date from the input box and show the calendar
	//calendar.parse_date(anchor.value, LBD_format);
	LBD_calendar.show_at_element(anchor, 'adj_left-bottom');
}
 
//--------------------------------------------------------------------------------------------------------------------------------------------
// user defined onChange handler
function LBD_calendarOnChange(cal, what) 
//--------------------------------------------------------------------------------------------------------------------------------------------
{
	if (what == 'day') 
  {
		document.getElementById(cal.result).value = cal.get_formatted_date(cal.LBD_format);
		cal.hide();
		LBD_calendar = null;
    
//    if (cal.reload) 
//      LBD_getTournaments(cal.ssid, cal.get_formatted_date(cal.LBD_format)+" 00:00:00", cal.editable, cal.gameLocation);
	}
}
 
//--------------------------------------------------------------------------------------------------------------------------------------------
// user defined onClose handler (used in pop-up mode - when auto_close is true)
function LBD_calendarOnClose(cal) 
//--------------------------------------------------------------------------------------------------------------------------------------------
{
	LBD_calendar.hide();
	LBD_calendar = null;
}

