

function AddSelItem(id_handle, override) {
  var selindex = document.getElementById(id_handle).selectedIndex;
  var selval = document.getElementById(id_handle)[selindex].value;
  if(override!=0) selval = override;
  if(selval==0) return;
  //  get already selected values
  var currlist = document.getElementById(id_handle+'_values').value;
  if(currlist=="") currlist += "~";
  //  break currrent values into array
  var arr = currlist.split("~"); var saveval = ""; var fndsel = false
  //  loop through each item, if it's not the selected one, then save it
  for (itm_index in arr) {
    var itm = arr[itm_index];
    if(itm!="") saveval += itm + "~";
    if(itm==selval) fndsel = true;
  }
  //  if the selected one was not on the list, then add it
  if(fndsel==false) saveval += selval + "~";
  //  now resave the already selected values
  document.getElementById(id_handle+'_values').value = saveval;
  ReWriteDiv(id_handle, saveval);
  document.getElementById(id_handle).selectedIndex = 0;
}

function ReWriteDiv(id_handle, saveval) {
  //  re-build the div code from this list
  writehtml = ""; var arr = saveval.split("~");
  for (itm_index in arr) {
    var itm = arr[itm_index];
    if(itm!="") writehtml += '<b>&bull; ' + document.getElementById(id_handle)[itm].text + ' &nbsp;&nbsp;&nbsp; [<a href="" onClick="RemoveSelItem(\'' + id_handle + '\', ' + itm + '); return false;">Delete</a>]</b><br>';
  }
  document.getElementById(id_handle + '_list').innerHTML = writehtml;
}

function RemoveSelItem(id_handle, zap) {
  if(zap==0) return;
  //  get already selected values
  var currlist = document.getElementById(id_handle + '_values').value
  currlist = currlist.replace(zap+"~","");
  //  now resave & update
  document.getElementById(id_handle + '_values').value = currlist;
  ReWriteDiv(id_handle, currlist);
}

function UpdateChildDropdown(id_handle, child_handle) {
  var selindex = document.getElementById(id_handle).selectedIndex;
  var selval = document.getElementById(id_handle)[selindex].value;
  //  clear child dropdown
  ResetDropdown(child_handle);
  //  load each item into it
  for(var ii in SubCats[selval]) {
    var opt = document.createElement("option");
    document.getElementById(child_handle).options.add(opt);
    opt.text = SubCats[selval][ii];
    opt.value = ii;
  }
}

function AddSelCombo(id_handle1, id_handle2, override1, override2, value_handle, list_handle) {
  //  get catg
  var cat_selindex = document.getElementById(id_handle1).selectedIndex;
  var cat_selval = document.getElementById(id_handle1)[cat_selindex].value;
  if(override1!=0) cat_selval = override1;
  //  get subcatg
  var cat_s_selindex = document.getElementById(id_handle2).selectedIndex;
  var cat_s_selval = document.getElementById(id_handle2)[cat_s_selindex].value;
  if(override2!=0) cat_s_selval = override2;
  if(cat_selval==0 || cat_s_selval==0) return;
  //  get already selected values
  var currlist = document.getElementById(value_handle).value;
  if(currlist=="") currlist += "~";
  //  break currrent values into array
  var arr = currlist.split("~"); var saveval = ""; var fndsel = false
  //  loop through each item, if it's not the selected one, then save it
  for (itm_index in arr) {
    var itm = arr[itm_index];
    //  split by underscore
    var jnk = itm.split("_");
    if(jnk[0]!="") saveval += itm + "~";
    if(jnk[0]==cat_selval && jnk[1]==cat_s_selval) fndsel = true;
  }
  //  if the selected one was not on the list, then add it
  if(fndsel==false) saveval += cat_selval + "_" + cat_s_selval + "~";
  //  now resave the already selected values
  document.getElementById(value_handle).value = saveval;
  ReWriteComboDiv(saveval, list_handle, value_handle);
  document.getElementById(id_handle1).selectedIndex = 0;
  ResetDropdown(id_handle2);
  document.getElementById(id_handle2).selectedIndex = 0;
}

function ReWriteComboDiv(saveval, list_handle, value_handle) {
  //  re-build the div code from this list
  writehtml = ""; var arr = saveval.split("~");
  for (itm_index in arr) {
    var itm = arr[itm_index];
    if(itm!="") {
      jnk = itm.split("_");
      var catg =Cats[jnk[0]];
      var subc = SubCats[jnk[0]][jnk[1]];
      writehtml += '<b>&bull; ' + catg + ' / ' + subc + ' &nbsp;&nbsp;&nbsp; [<a href="" onClick="RemoveSelComboItem(\'' + itm + '\', \'' + list_handle + '\', \'' + value_handle + '\'); return false;">Delete</a>]</b><br>';
    }
  }
  document.getElementById(list_handle).innerHTML = writehtml;
}

function RemoveSelComboItem(zap, list_handle, value_handle) {
  if(zap==0) return;
  //  get already selected values
  var currlist = document.getElementById(value_handle).value
  currlist = currlist.replace(zap+"~","");
  //  now resave & update
  document.getElementById(value_handle).value = currlist;
  ReWriteComboDiv(currlist, list_handle, value_handle);
}

function CheckFieldLength(entry_field, charsleft_field, charsused_field, chars_allowed) {
  var strlen = document.getElementById(entry_field).value.length;
  var lft = chars_allowed - strlen;
  if(lft<0) {
    alert("You have exceeded the maximum length of " + chars_allowed + " characters for this field.");
    var fixval = document.getElementById(entry_field).value.substr(0,chars_allowed);
    document.getElementById(entry_field).value = fixval;
    lft = 0;
  }
  document.getElementById(charsleft_field).innerHTML = strlen.toString();
  document.getElementById(charsused_field).innerHTML = lft.toString();
  return true;
}

function ToggleAddGLE(newstate, whichone) {
  if(newstate==1) {
    document.getElementById('add_gle_label_open'+whichone).style.display = 'none';
    document.getElementById('add_gle_label_shut'+whichone).style.display = 'block';
    document.getElementById('add_gle_chooser'+whichone).style.display = 'block';
  } else {
    document.getElementById('add_gle_label_open'+whichone).style.display = 'block';
    document.getElementById('add_gle_label_shut'+whichone).style.display = 'none';
    document.getElementById('add_gle_chooser'+whichone).style.display = 'none';
  }
  return true;
}

function LocateGLEs(whichone) {
  //  get vals for Ajax posting
  var selindex = document.getElementById("gle_discipline"+whichone).selectedIndex;
    var gle_discipline = document.getElementById("gle_discipline"+whichone)[selindex].value;
  var selindex = document.getElementById("gle_strand"+whichone).selectedIndex;
    var gle_strand = document.getElementById("gle_strand"+whichone)[selindex].value;
  var selindex = document.getElementById("gle_idea"+whichone).selectedIndex;
    var gle_idea = document.getElementById("gle_idea"+whichone)[selindex].value;
  var selindex = document.getElementById("gle_concept"+whichone).selectedIndex;
    var gle_concept = document.getElementById("gle_concept"+whichone)[selindex].value;
  //  build qstring
  if(gle_discipline=='' || gle_strand=='' || gle_idea=='' || gle_concept=='') return;
  var qstr = "todo=gle_classes&gle_discipline=" + gle_discipline + "&gle_strand=" + gle_strand + "&gle_idea=" + gle_idea + "&gle_concept=" + gle_concept + "&whichone=" + whichone;
	fexec = "ProcessGLEReturn('" + whichone + "')";
  document.getElementById("GLE_Step_1"+whichone).enabled = false;  
	JSDataSubmit("post", "/ajax-feed.asp", qstr);
}

function ProcessGLEReturn(whichone) {
  document.getElementById('pick_gle_grade'+whichone).innerHTML = datashuffle;
  document.getElementById('add_gle'+whichone).style.display = 'none';
  document.getElementById('pick_gle_grade'+whichone).style.display = 'block';
  return true;
}

function ChooseGLE(class_string, whichone) {
  //  get already selected values
  var currlist = document.getElementById('gle_values'+whichone).value;
  if(currlist=="") currlist += "~";
  //  break currrent values into array
  var arr = currlist.split("~"); var saveval = ""; var fndsel = false
  //  loop through each item, see if it's not the selected one
  for (itm_index in arr) {
    var itm = arr[itm_index];
    if(itm!="") saveval += itm + "~";
    if(itm==class_string) fndsel = true;
  }
  //  if the selected one was not on the list, then add it
  if(fndsel==false) saveval += class_string + "~";
  //  now resave the already selected values
  document.getElementById('gle_values'+whichone).value = saveval;
  ReWriteGLEDiv(saveval, whichone);
}

function ReWriteGLEDiv(saveval, whichone) {
  var savecnt = 0;
  writehtml = ""; var arr = saveval.split("~");
  for (itm_index in arr) {
    var itm = arr[itm_index];
    if(itm!="") {
      jnk = itm.split("_");
      //  build header & description for display entry
      var header_line = "<b>&bull; " + Discipline[jnk[0]][2] + " - " + Strand[jnk[1]][3] + " - " + Idea[jnk[2]][3] + " - " + Concept[jnk[3]][3] + " - " + jnk[6];
      var descstr = Discipline[jnk[0]][1] + ", " + Strand[jnk[1]][2] + ", " + Idea[jnk[2]][2] + ", " + Concept[jnk[3]][2] + ", " + jnk[5];
      writehtml += header_line + "&nbsp;&nbsp;&nbsp;<a href=\"\" onClick=\"RemoveGLEItem('" + itm + "','" + whichone + "'); return false;\">delete</a></b><br>" + descstr + "<br><br>";
      savecnt++;
    }
  }
  document.getElementById('gle_list'+whichone).innerHTML = writehtml;
  //  reset all of the buttons, labels, tabs, etc - finish up
  if(savecnt==3) {
    document.getElementById('add_gle_label_open'+whichone).style.display = 'none';
    document.getElementById('add_gle_label_shut'+whichone).style.display = 'none';
    document.getElementById('add_gle_label_done'+whichone).style.display = 'block';
  } else {
    document.getElementById('add_gle_label_open'+whichone).style.display = 'block';
    document.getElementById('add_gle_label_shut'+whichone).style.display = 'none';
    document.getElementById('add_gle_label_done'+whichone).style.display = 'none';
  }
  document.getElementById('gle_discipline'+whichone).selectedIndex = 0;
  ResetDropdown("gle_strand"+whichone);
  ResetDropdown("gle_idea"+whichone);
  ResetDropdown("gle_concept"+whichone);
  document.getElementById('add_gle_chooser'+whichone).style.display = 'none';
  document.getElementById('add_gle'+whichone).style.display = 'block';
  document.getElementById('pick_gle_grade'+whichone).style.display = 'none';
  return true;
}

function RemoveGLEItem(zap, whichone) {
  if(zap==0) return;
  //  get already selected values
  var currlist = document.getElementById('gle_values'+whichone).value
  currlist = currlist.replace(zap+"~","");
  //  now resave & update
  document.getElementById('gle_values'+whichone).value = currlist;
  ReWriteGLEDiv(currlist, whichone);
}

function LoadGLE_Strand(whichone) {
  var selindex = document.getElementById("gle_discipline"+whichone).selectedIndex;
  var selval = document.getElementById("gle_discipline"+whichone)[selindex].value;
  //  reset the STRAND, IDEA and CONCEPT
  ResetDropdown("gle_strand"+whichone);
  ResetDropdown("gle_idea"+whichone);
  ResetDropdown("gle_concept"+whichone);
  if(selval!="") {
    //  load up the STRAND
    for (itm_index in Strand) {
      var itm = Strand[itm_index];
      if(itm[1]==selval) {
        var opt = document.createElement("option");
        document.getElementById("gle_strand"+whichone).options.add(opt);
        opt.text =  itm[2];
        opt.value = itm[0];
      }
    }
  }
}

function LoadGLE_Idea(whichone) {
  var selindex = document.getElementById("gle_strand"+whichone).selectedIndex;
  var selval = document.getElementById("gle_strand"+whichone)[selindex].value;
  //  reset the IDEA and CONCEPT
  ResetDropdown("gle_idea"+whichone);
  ResetDropdown("gle_concept"+whichone);
  if(selval!="") {
    //  load up the IDEA
    for (itm_index in Idea) {
      var itm = Idea[itm_index];
      if(itm[1]==selval) {
        var opt = document.createElement("option");
        document.getElementById("gle_idea"+whichone).options.add(opt);
        opt.text =  itm[2];
        opt.value = itm[0];
      }
    }
  }
}

function LoadGLE_Concept(whichone) {
  var selindex = document.getElementById("gle_idea"+whichone).selectedIndex;
  var selval = document.getElementById("gle_idea"+whichone)[selindex].value;
  //  reset the CONCEPT
  ResetDropdown("gle_concept"+whichone);
  if(selval!="") {
    //  load up the CONCEPT
    for (itm_index in Concept) {
      var itm = Concept[itm_index];
      if(itm[1]==selval) {
        var opt = document.createElement("option");
        document.getElementById("gle_concept"+whichone).options.add(opt);
        opt.text =  itm[2];
        opt.value = itm[0];
      }
    }
  }
}

function ResetDropdown(id_handle) {
  var opt = document.createElement("option");
  document.getElementById(id_handle).options.length = 0;
  document.getElementById(id_handle).options.add(opt);
  opt.text = "Please Select";
  opt.value = "";
  return true;
}

function CopySubmitted(from_handle, to_handle) {
  if(to_handle=="subject_area_pub") {
    document.getElementById("subject_area_pub_values").value = document.getElementById("subject_area_values").value;
    ReWriteComboDiv(document.getElementById("subject_area_values").value, "subject_area_pub_list", "subject_area_values");
  } else if(to_handle=="gle_pub") {
    document.getElementById(to_handle).value = document.getElementById(from_handle).value;
    ReWriteDiv("gle_values_pub", document.getElementById(from_handle).value);
  } else {
    document.getElementById(to_handle).value = document.getElementById(from_handle).value;
    ReWriteDiv(to_handle, document.getElementById(from_handle).value);
  }
}

function CopyGLESubmitted() {
    // alert(document.getElementById('gle_values').value);
    document.getElementById('gle_values_pub').value = document.getElementById('gle_values').value;
    ReWriteGLEDiv(document.getElementById('gle_values_pub').value, '_pub');
}

function AddAnotherUpload() {
  if(file_uploads>=5) {
    alert("You can only upload FIVE files at a time. Click 'SAVE' below to submit these files and provide additional ones, if desired.");
  } else {
    file_uploads++;
  	var rc = [];
    rc[0] = "<b>-- Browse To New File Here:</b><br><input style=\"margin-top: 5px;\" type=\"file\" id=FileUpload_" + file_uploads + " name=FileUpload_" + file_uploads + " size=\"20\">";
  	AddTableRow("LessonFiles", rc, -1);
  }
}

function AddAnotherIComponent() {
  if(i_components>=5) {
    alert("You can only upload FIVE Instructional Components at a time. Click 'SAVE' below to submit this current set and provide additional ones, if desired.");
  } else {
    i_components++;
  	var rc = [];
    rc[0] = "<b>-- Enter New Component Here:</b><br><div style=\"width: 100%; margin-top: 5px; padding:0 4px; background:#EEEEEE; border:1px dotted #999999;\"><textarea style=\"margin-top: 5px; width:95%;\" rows=12 name=\"Component_New_" + i_components + "\" id=\"Component_New_" + i_components + "\"></textarea></div>";
  	AddTableRow("InstructionComponents", rc, -1);
    InitiateEditor('Component_New_'+i_components);
  }
}

function ActivateEditor(cntr, onoff) {
  if(onoff==1) {
    var initiate_handle = "Component_" + cntr;
    var editor_label = initiate_handle + "_edit";
    var viewer_label = initiate_handle + "_view";
    document.getElementById(editor_label).style.display = 'block';
    document.getElementById(viewer_label).style.display = 'none';
    InitiateEditor(initiate_handle);
    document.getElementById("EditToggle"+cntr+"a").style.display = 'none';
    document.getElementById("EditToggle"+cntr+"b").style.display = 'block';
  } else {
    //  turn editor off - hide it, that is, and update the display version
    var initiate_handle = "Component_" + cntr;
    var editor_label = initiate_handle + "_edit";
    var viewer_label = initiate_handle + "_view";
    document.getElementById(editor_label).style.display = 'none';
    document.getElementById(viewer_label).style.display = 'block';
    document.getElementById("EditToggle"+cntr+"a").style.display = 'block';
    document.getElementById("EditToggle"+cntr+"b").style.display = 'none';
    var showhtml = document.getElementById("Component_"+cntr+"_ifr").contentWindow.document.body.innerHTML;
    document.getElementById("Component_"+cntr+"_view").innerHTML = showhtml;
    document.getElementById("EditToggle"+cntr+"a").style.display = 'block';
    document.getElementById("EditToggle"+cntr+"b").style.display = 'none';
  }
}


function InitiateEditor(idhandle) {
    var new_editor = new tinymce.Editor(idhandle, {
    	mode : "exact",
    	theme : "advanced",
    	plugins : "safari,pagebreak,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template",
    	theme_advanced_buttons1 : "bold,italic,underline,separator,strikethrough,justifyleft,justifycenter,justifyright, justifyfull,bullist,numlist,undo,redo,link,unlink,|,table,|,code",
    	theme_advanced_buttons2 : "forecolor,fontselect,fontsizeselect,formatselect,|,cut,copy,paste,pastetext",
    	theme_advanced_buttons3 : "",
    	theme_advanced_toolbar_location : "top",
    	theme_advanced_toolbar_align : "left",
    	theme_advanced_statusbar_location : "bottom",
      valid_elements : "@[id|class|style|title|dir<ltr?rtl|lang|xml::lang|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup],a[rel|rev|charset|hreflang|tabindex|accesskey|type|name|href|target|title|class|onfocus|onblur],strong/b,em/i,strike,u,#p[align],-ol[type|compact],-ul[type|compact],-li,br,img[longdesc|usemap|src|border|alt=|title|hspace|vspace|width|height|align],-sub,-sup,-blockquote,-table[border=0|cellspacing|cellpadding|width|frame|rules|height|align|summary|bgcolor|background|bordercolor],-tr[rowspan|width|height|align|valign|bgcolor|background|bordercolor],tbody,thead,tfoot,#td[colspan|rowspan|width|height|align|valign|bgcolor|background|bordercolor|scope],#th[colspan|rowspan|width|height|align|valign|scope],caption,-div,-span,-code,-pre,address,-h1,-h2,-h3,-h4,-h5,-h6,hr[size|noshade],-font[face|size|color],dd,dl,dt,cite,abbr,acronym,del[datetime|cite],ins[datetime|cite],object[classid|width|height|codebase|*],param[name|value|_value],embed[type|width|height|src|*],script[src|type],map[name],area[shape|coords|href|alt|target],bdo,button,col[align|char|charoff|span|valign|width],colgroup[align|char|charoff|span|valign|width],dfn,fieldset,form[action|accept|accept-charset|enctype|method],input[accept|alt|checked|disabled|maxlength|name|readonly|size|src|type|value],kbd,label[for],legend,noscript,optgroup[label|disabled],option[disabled|label|selected|value],q[cite],samp,select[disabled|multiple|name|size],small,textarea[cols|rows|disabled|name|readonly],tt,var,big"
    });
    new_editor.render();
}


function VerifyLeaveUnsavedPage() {
  var msg = "Are you sure you want to leave this page without saving? Any new information you have entered will be lost.";
  return(confirm(msg));
}


///////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////


function Update_Region(default_value) {
	fexec = "Process_Update_Region('" + default_value + "')";
  var qstr = "todo=getschooldata&load=region";
	JSDataSubmit("post", "/ajax-feed.asp", qstr);
  return;
}
function Process_Update_Region(default_value) {
  var iHTML = "<select name=edit_region id=edit_region onChange=\"Update_District('');\">" + datashuffle + "</select>";
  document.getElementById("a_region").innerHTML = iHTML;
  if(default_value!="") {
    SetPDDefault("edit_region", default_value);
    if(preload_district!='') Update_District(preload_district);
  }
  return;
}

///////////////////////////////////////////////////////////////////

function Update_District(default_value) {
  var sel = document.getElementById("edit_region")
  var edit_region = "";
  if(sel.selectedIndex!=-1) edit_region = sel.options[sel.selectedIndex].value;
  //  get selected REGION value
	fexec = "Process_Update_District('" + default_value + "')";
  var qstr = "todo=getschooldata&load=district&parent=" + edit_region;
	JSDataSubmit("post", "/ajax-feed.asp", qstr);
  return;
}
function Process_Update_District(default_value) {
  var iHTML = "<select name=edit_district id=edit_district onChange=\"Update_Building();\">" + datashuffle + "</select>";
  document.getElementById("a_district").innerHTML = iHTML;
  if(default_value!="") {
    SetPDDefault("edit_district", default_value);
    if(preload_building!='') Update_Building(preload_building);
  }
  return;
}

///////////////////////////////////////////////////////////////////

function Update_Building(default_value) {
  //  get selected DISTRICT value
  var sel = document.getElementById("edit_district")
  var edit_district = "";
  if(sel.selectedIndex!=-1) edit_district = sel.options[sel.selectedIndex].value;
	fexec = "Process_Update_Building('" + default_value + "')";
  var qstr = "todo=getschooldata&load=building&parent=" + edit_district;
	JSDataSubmit("post", "/ajax-feed.asp", qstr);
  return;
}
function Process_Update_Building(default_value) {
  var iHTML = "<select name=edit_building id=edit_building onChange=\"Update_Teacher();\">" + datashuffle + "</select>";
  document.getElementById("a_building").innerHTML = iHTML;
  if(default_value!="") {
    SetPDDefault("edit_building", default_value);
    if(preload_teacher!='') Update_Teacher(preload_teacher);
  }
  return;
}

///////////////////////////////////////////////////////////////////

function Update_Teacher(default_value) {
  //  get selected DISTRICT value
  var sel = document.getElementById("edit_building")
  var edit_building = "";
  if(sel.selectedIndex!=-1) edit_building = sel.options[sel.selectedIndex].value;
	fexec = "Process_Update_Teacher('" + default_value + "')";
  var qstr = "todo=getschooldata&load=teacher&parent=" + edit_building;
	JSDataSubmit("post", "/ajax-feed.asp", qstr);
  return;
}
function Process_Update_Teacher(default_value) {
  var iHTML = "<select name=edit_teacher id=edit_teacher onChange=\"Check_Add_Teacher();\">" + datashuffle + "</select>";
  document.getElementById("a_teacher").innerHTML = iHTML;
  if(default_value!="") {
    SetPDDefault("edit_teacher", default_value);
  }
  return;
}

function Check_Add_Teacher() {
  var sel = document.getElementById("edit_teacher");
  var edit_teacher = "";
  if(sel.selectedIndex!=-1) edit_teacher = sel.options[sel.selectedIndex].value;
  if(edit_teacher=="NEW") {
    document.getElementById("new_teacher").style.display = 'block';
  } else {
    document.getElementById("new_teacher").style.display = 'none';
  }
}



function SetPDDefault(handle, defval) {
  var dropdown = document.getElementById(handle);
  dropdown.selectedIndex = 0;
  for(i=0;i<dropdown.length;i++) {
    var setval = false;
    if(defval.toString()==dropdown.options[i].value.toString()) dropdown.selectedIndex = i;
  }
}



