

function closeAskUsersToEnroll() {
  document.getElementById('ask_users_to_enroll_in_the_course_if_they_are_looking_at_course_pages_but_not_yet_enrolled').style.display = 'none';   
  return false;
}




// for onload, I'm going to use Simon Willison’s famous function, first described here:
//
// http://simonwillison.net/2004/May/26/addLoadEvent/
//
// I am renaming the function to be sure it does not conflict with all the other
// onload functions we may already have on the site. 
function simonWillisonsAddLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}




function mp3_to_target_new(){
  var links = document.getElementsByTagName("a");

  for(var i = 0; i < links.length; i++){
    if (links[i].href.indexOf('.mp3') != -1){
      links[i].target = '_blank';
    }
  }
}


simonWillisonsAddLoadEvent(function() {
  mp3_to_target_new(); 
});





function offerSchoolSidebarOptions() {
  var viewportDimensions = document.viewport.getDimensions();
  var viewportScrollOffsets = document.viewport.getScrollOffsets(); // -> [Number, Number] also accessible as { top: Number, left: Number }
  document.getElementById('list_of_all_school_courses_and_classes').style.left = '0px';
  
  // i've set the div with all the options to a width of 600 pixels
  if (viewportDimensions.width > 600) {
    var halfTheWidth = viewportDimensions.width / 2; 
    var halfTheDivHalfTheWidth = halfTheWidth - 300; 
    var newLeftOffset = Math.round(halfTheDivHalfTheWidth);
    var newLeftOffsetStyle = newLeftOffset + "px";
    document.getElementById('list_of_all_school_courses_and_classes').style.left = newLeftOffsetStyle;
  }

  var newTop = viewportScrollOffsets.top + 100;
  var newTopStyle = newTop + "px"; 

  document.getElementById('list_of_all_school_courses_and_classes').style.display = 'block';
  document.getElementById('list_of_all_school_courses_and_classes').style.top = newTopStyle;
}





// info about this bit of code is here:
//
// https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Objects/Array/indexOf
if (!Array.prototype.indexOf)  
{  
  Array.prototype.indexOf = function(elt /*, from*/)  
  {  
    var len = this.length >>> 0;  
  
    var from = Number(arguments[1]) || 0;  
    from = (from < 0)  
         ? Math.ceil(from)  
         : Math.floor(from);  
    if (from < 0)  
      from += len;  
  
    for (; from < len; from++)  
    {  
      if (from in this &&  
          this[from] === elt)  
        return from;  
    }  
    return -1;  
  };  
}  


function closeSchoolSidebarBox() {
  document.getElementById('list_of_all_school_courses_and_classes').style.display='none';
  document.getElementById('yes_school_sidebar').checked = false;

}






// 2010-07-04 - how do we normally getbyclass on M Shanken websites? I am unclear,
// so I introduce this class
function getInputsByClass(class, tag) {
var els = new Array();
var d = document;
var eList =
d.getElementsByTagName(tag);
var re =
new RegExp('\\b' + class + '\\b');
for (var i = 0; i < eList.length; i++) {
if (re.test(eList[i].className))
els.push(eList[i]);
}
return els;
}











function saveSchoolSidebarBox() {
  document.getElementById('list_of_all_school_courses_and_classes').style.display='none';
  var referenceToTextareaForManualSidebar = document.getElementById('c_sidebar_html');
  referenceToTextareaForManualSidebar.innerHTML = '';
  var textToBeUsedToBuildManualSidebar = "";

  var referenceToSelectInputShowManualSidebarYes = document.getElementById('c_use_sidebar'); 
  referenceToSelectInputShowManualSidebarYes.selectedIndex = 1;

  var referenceToInputManuralSidebarTitle = document.getElementById('c_sidebar_title');
  referenceToInputManuralSidebarTitle.value = "Wine Spectator School";

  for (var i=0; i < globalArrayTrackingWhichClassesAreToBeLinkedFromTheSidebar.length; i++) {
    var classId = globalArrayTrackingWhichClassesAreToBeLinkedFromTheSidebar[i];
    var idOfInput = "picked_class_" + classId; 
    var referenceToInput = document.getElementById(idOfInput);
    var textOfInput1 = referenceToInput.value;

    var positionOfDivider1 = textOfInput1.indexOf("----");
    var positionOfDivider1End = positionOfDivider1 + 4;
    var courseId = textOfInput1.slice(0, positionOfDivider1);

    var textOfInput2 = textOfInput1.slice(positionOfDivider1End);

    var positionOfDivider2 = textOfInput2.indexOf("----");
    var positionOfDivider2End = positionOfDivider2 + 4;
    var courseTitle = textOfInput2.slice(0, positionOfDivider2);

    var textOfInput3 = textOfInput2.slice(positionOfDivider2End);

    var positionOfDivider3 = textOfInput3.indexOf("----");
    var positionOfDivider3End = positionOfDivider3 + 4;
    var headline = textOfInput3.slice(0, positionOfDivider3);
    if (headline.length > 3) headline = " / " + headline;

    var classId = textOfInput3.slice(positionOfDivider3End);

    textToBeUsedToBuildManualSidebar += "<p><a href='/school/moduleList/class_id/" + classId  + "/course_id/" + courseId + "'>" + courseTitle + "  " + headline + "</a></p> \n\n";

    // 2010-06-29 - Dana does not think we to include the description
    //   textToBeUsedToBuildManualSidebar += "<p>" + description  + "</p>\n \n\n";
  }
  referenceToTextareaForManualSidebar.innerHTML = textToBeUsedToBuildManualSidebar;

  // 2010-07-04 - Dana asked why the checkboxes are unchecked if she creates an entry and then goes
  // back later and edits it. For clarity sake, it should be clear that every time someone tries 
  // to use this tool, they are starting over from scratch. Therefore, as soon as we are done 
  // storing the info that was just entered above, lets uncheck all the checkboxes. Seeing a 
  // clean form, I hope folks will realize that they are starting over at the beginning, each time
  // they summon up this tool for picking courses and classes. 
  var arrayOfCheckboxes = getInputsByClass('school_sidebar_inputs', 'input');
  for (var i=0; i < arrayOfCheckboxes.length; i++) {
    var referenceToOneParticularCheckbox = arrayOfCheckboxes[i];
    referenceToOneParticularCheckbox.checked = false; 
  }
}



var globalArrayTrackingWhichClassesAreToBeLinkedFromTheSidebar = [];

function classChosenOrUnchosen(idOfClass) {
  if (globalArrayTrackingWhichClassesAreToBeLinkedFromTheSidebar.indexOf(idOfClass) != -1) {
    var thisClassIdIsAlreadyInTheArrayAndThereforeNeedsToBeRemoved = globalArrayTrackingWhichClassesAreToBeLinkedFromTheSidebar.indexOf(idOfClass);
    globalArrayTrackingWhichClassesAreToBeLinkedFromTheSidebar.splice(thisClassIdIsAlreadyInTheArrayAndThereforeNeedsToBeRemoved, 1);
  } else {
    globalArrayTrackingWhichClassesAreToBeLinkedFromTheSidebar.push(idOfClass);
  }
}

