/**
 * School Mapping Project Tutorial Pull down script
 * Author: Peter Smith
 * Copyright: Center For Advanced Spatial Technologies, University of Arkansas 2008
 * Usage:
 *       If you are adding a whole new GIS, add it to the gises array, same with GPS
 *       If you are adding a powerpoint, add it to the powerpoints array like so:
 *              powerpoints["Name of GIS\GPS"]["Link Title"] = "link location";
 *       If you are adding a captivate video add it to the videos array like above, replace powerpoints with videos 
 *       The webpage will handle the rest
 * send all questions, comments, concerns, etc... to psmith ([@]) cast ([.]) uark ([.]) edu
 */

var powerpoints = [[]];
var gises = ["ArcGIS 9.1","ArcGIS 9.2","ArcGIS 9.3"]; //When adding a new gis or gps, must add it to one of these, format is ,"name" 
//put it before the ] 
var gpses = ["GeoII","Geo3","GeoCE-XM","Recon","Juno"];
var realbaseurl = "http://outreach.cast.uark.edu/east/east/gis/projects/smp/tutorials/";
var baseurl = realbaseurl+"powerpoints/powerpoints/";
for(var k in gises) {
	powerpoints[gises[k]] = [];
}
for(var k in gpses) {
	powerpoints[gpses[k]] = [];
}
powerpoints["ArcGIS 9.1"]["Ch. 9: Bringing Data into ArcGIS"] = baseurl + "SMP_Chapter_9.ppt";
powerpoints["ArcGIS 9.1"]["Ch. 10: Using GIS for Spatial Analysis"] = baseurl + "SMP_Chapter_10_AV91.ppt";
powerpoints["ArcGIS 9.1"]["Ch. 11: Making a Map from your Data"] = baseurl + "SMP_Chapter_11.ppt";
powerpoints["ArcGIS 9.1"]["Ch. 12: Creating Your Presentation"] = baseurl + "SMP_Chapter_12.ppt";

powerpoints["ArcGIS 9.2"]["Ch. 9: Bringing Data into ArcGIS"] = baseurl + "SMP_Chapter_9.ppt";
powerpoints["ArcGIS 9.2"]["Ch. 10: Using GIS for Spatial Analysis"] = baseurl + "SMP_Chapter_10_AV92.ppt";
powerpoints["ArcGIS 9.2"]["Ch. 11: Making a Map from your Data"] = baseurl + "SMP_Chapter_11.ppt";
powerpoints["ArcGIS 9.2"]["Ch. 12: Creating Your Presentation"] = baseurl + "SMP_Chapter_12.ppt";

powerpoints["ArcGIS 9.3"]["Ch. 9: Bringing Data into ArcGIS"] = baseurl + "SMP_Chapter_9.ppt";
powerpoints["ArcGIS 9.3"]["Ch. 10: Using GIS for Spatial Analysis"] = baseurl + "SMP_Chapter_10_AV92.ppt";
powerpoints["ArcGIS 9.3"]["Ch. 11: Making a Map from your Data"] = baseurl + "SMP_Chapter_11.ppt";
powerpoints["ArcGIS 9.3"]["Ch. 12: Creating Your Presentation"] = baseurl + "SMP_Chapter_12.ppt";


//Explanation: powerpoints["name of software"]["name of Chapter"] = url (normally baseurl + "nameoffilename.ppt")

powerpoints["GeoII"]["Ch. 4: Loading a Data Dictionary"] = baseurl + "SMP_Chapter_4_GeoII.ppt";
powerpoints["GeoII"]["Ch. 5: Collecting GPS Data"] = baseurl + "SMP_Chapter_5_GeoII.ppt";
powerpoints["GeoII"]["Ch. 6: GPS Data Processing "] = baseurl + "SMP_Chapter_6.ppt";
powerpoints["GeoII"]["Ch. 7: Correcting GPS Data"] = baseurl + "SMP_Chapter_7.ppt";
powerpoints["GeoII"]["Ch. 8: Exporting GPS Data"] = baseurl + "SMP_Chapter_8.ppt";

powerpoints["Geo3"]["Ch. 4: Loading a Data Dictionary"] = baseurl + "SMP_Chapter_4_Geo3.ppt";
powerpoints["Geo3"]["Ch. 5: Collecting GPS Data"] = baseurl + "SMP_Chapter_5_Geo3.ppt";
powerpoints["Geo3"]["Ch. 6: GPS Data Processing "] = baseurl + "SMP_Chapter_6.ppt";
powerpoints["Geo3"]["Ch. 7: Correcting GPS Data"] = baseurl + "SMP_Chapter_7.ppt";
powerpoints["Geo3"]["Ch. 8: Exporting GPS Data"] = baseurl + "SMP_Chapter_8.ppt";

powerpoints["GeoCE-XM"]["Ch. 4: Loading a Data Dictionary"] = baseurl + "SMP_Chapter_4_GeoXM.ppt";
powerpoints["GeoCE-XM"]["Ch. 5: Collecting GPS Data"] = baseurl + "SMP_Chapter_5_GeoXM.ppt";
powerpoints["GeoCE-XM"]["Ch. 6: GPS Data Processing "] = baseurl + "SMP_Chapter_6.ppt";
powerpoints["GeoCE-XM"]["Ch. 7: Correcting GPS Data"] = baseurl + "SMP_Chapter_7.ppt";
powerpoints["GeoCE-XM"]["Ch. 8: Exporting GPS Data"] = baseurl + "SMP_Chapter_8.ppt";

powerpoints["Recon"]["Ch. 4: Loading a Data Dictionary"] = baseurl + "SMP_Chapter_4_Recon.ppt";
powerpoints["Recon"]["Ch. 5: Collecting GPS Data"] = baseurl + "SMP_Chapter_5_Recon.ppt";
powerpoints["Recon"]["Ch. 6: GPS Data Processing "] = baseurl + "SMP_Chapter_6.ppt";
powerpoints["Recon"]["Ch. 7: Correcting GPS Data"] = baseurl + "SMP_Chapter_7.ppt";
powerpoints["Recon"]["Ch. 8: Exporting GPS Data"] = baseurl + "SMP_Chapter_8.ppt";

powerpoints["Juno"]["Ch. 4: Loading a Data Dictionary"] = baseurl + "SMP_Chapter_4_Juno.ppt";
powerpoints["Juno"]["Ch. 5: Collecting GPS Data"] = baseurl + "SMP_Chapter_5_Juno.ppt";
powerpoints["Juno"]["Ch. 6: GPS Data Processing "] = baseurl + "SMP_Chapter_6.ppt";
powerpoints["Juno"]["Ch. 7: Correcting GPS Data"] = baseurl + "SMP_Chapter_7.ppt";
powerpoints["Juno"]["Ch. 8: Exporting GPS Data"] = baseurl + "SMP_Chapter_8.ppt";


var videos = [[]];
videos["ArcGIS 9.2"] = [];
videos["ArcGIS 9.2"]["Ch. 2 Introduction to ArcGIS"] = "http://outreach.cast.uark.edu/east/more/SMP_video/SMP_ch2_arc.swf"; 
videos["ArcGIS 9.2"]["Ch. 3 Editing Spatial Data"] = "http://outreach.cast.uark.edu/east/more/SMP_video/SMP_ch3_arc.swf"; 

videos["ArcGIS 9.1"] = [];
videos["ArcGIS 9.1"]["Ch. 2 Introduction to ArcGIS"] = "http://outreach.cast.uark.edu/east/more/SMP_video/SMP_ch2_arc.swf"; 
videos["ArcGIS 9.1"]["Ch. 3 Editing Spatial Data"] = "http://outreach.cast.uark.edu/east/more/SMP_video/SMP_ch3_arc.swf"; 

videos["ArcGIS 9.3"] = [];
videos["ArcGIS 9.3"]["Ch. 2 Introduction to ArcGIS"] = "http://outreach.cast.uark.edu/east/more/SMP_video/SMP_ch2_arc.swf"; 
videos["ArcGIS 9.3"]["Ch. 3 Editing Spatial Data"] = "http://outreach.cast.uark.edu/east/more/SMP_video/SMP_ch3_arc.swf"; 

//Do not change anything below this line
//Main body of script
		function initIt() {
			renderKeys('gisStuff');
			renderSubKeys('gpsStuff');
		}
		function doDropRendering() {
			var ele = document.getElementById('gisStuff');
			var ele2 = document.getElementById('gpsStuff');
			renderValue(ele.value,ele2.value,'contentArea');
		}

function renderKeys(elementid){
  var ele = document.getElementById(elementid);
  for(var j in ele.options) {
    if(!isNaN(j)) {
	    ele.options[j] = null;
    }
  }
  pos = 0;
  for(var k in gises) {
    ele.options[pos++] = new Option(gises[k],gises[k]);
  }
}

function renderSubKeys(elementid) {
  var ele = document.getElementById(elementid);
  for(var j in ele.options) {
    if(!isNaN(j)) {
	    ele.options[j] = null;
    }
  }
  pos = 0;
  for(var k in gpses) {
    ele.options[pos++] = new Option(gpses[k],gpses[k]);
  }
}

function renderValue(key,subkey,elementid) {
  var ele = document.getElementById(elementid);
  var header = "<h2>Powerpoints for $gis and $gps</h2><br/>"
  ele.innerHTML= header.replace("$gis",key).replace("$gps",subkey);
  if(key.indexOf("GeoMedia") == 0) {
	for(var k in powerpoints["GeoMedia"]) {
	  ele.innerHTML = ele.innerHTML + "<a href=\"" + powerpoints["GeoMedia"][j] + "\">"+j+"</a><br/>";
	}
  }
  var outputFormat = '<a href="$powerpointLink">$powerpoint</a><br/>';
  allpowerpoints = [];
  allpowerpoints[0] = [0,'BEFORE YOU BEGIN',realbaseurl+'you_begin/SMP_Before_You_Begin.ppt'];
  allpowerpoints[1] = [1,'Ch. 1: Introduction',realbaseurl+'powerpoints/powerpoints/SMP_Chapter_1.ppt'];
  allpowerpoints[2] = [2,'Ch. 2: Introduction to GIS',realbaseurl+'powerpoints/powerpoints/SMP_Chapter_2.ppt'];
  allpowerpoints[3] = [3,'Ch. 3: Editing Spatial Data',realbaseurl+'powerpoints/powerpoints/SMP_Chapter_3.ppt'];
  for(var j in powerpoints[key]) {
	  try {
	  	insertSorted(j,powerpoints[key][j],allpowerpoints);
	  } catch (o) {
	  }
  }
  for(var j in powerpoints[subkey]) {
	  try {
	  	insertSorted(j,powerpoints[subkey][j],allpowerpoints);
	  } catch (oe) {
	  }
  }
  for(var k in allpowerpoints) {
	  ele.innerHTML = ele.innerHTML + outputFormat.replace("$powerpointLink",allpowerpoints[k][2]).replace("$powerpoint",allpowerpoints[k][1]);
  }
  renderHasVideos(key,subkey,ele);
}
function renderHasVideos(key,subkey,ele) {
  ele.innerHTML = ele.innerHTML + "<br/><h2>Videos</h2><br/>";
  var outputFormat = '<a href="$powerpointLink">$powerpoint</a><br/>';
  allpowerpoints = [];
  allpowerpoints[0] = [0,'Ch. 0: Before You Begin','http://outreach.cast.uark.edu/east/more/SMP_video/before_you_begin.swf'];
  try {
  	for(var j in videos[key]) {
	  try {
	  	insertSorted(j,videos[key][j],allpowerpoints);
	  } catch (o) {
	  }
  	}
  } catch (oe) {}
  try {
 	for(var j in videos[subkey]) {
	  try {
	  	insertSorted(j,videos[subkey][j],allpowerpoints);
	  } catch (oe) {
	  }
  	}
  } catch (oe) {}
  for(var k in allpowerpoints) {
	  ele.innerHTML = ele.innerHTML + outputFormat.replace("$powerpointLink",allpowerpoints[k][2]).replace("$powerpoint",allpowerpoints[k][1]);
  }
}



//Utility Functions
function isDigit(num) {
	if (num.length>1){return false;}
	var string="1234567890";
	if (string.indexOf(num)!=-1){return true;}
	return false;
	}
function extractDigit(key) {
	var p = key.indexOf(".")+2;
	var newstr = '';
	if(p >= 0) {
		for(var x = p; x < key.length && isDigit(key.charAt(x)); x++) {
			newstr = newstr + key.charAt(x);
		}
		return parseInt(newstr);
	}
}
function insertSorted(key,value,inarray) {
	var x = 0;
	var d = extractDigit(key);
	for(x = 0; x < inarray.length && inarray[x][0] < d; x++) 
	{
	}
	for(var p = inarray.length-1; p >= x; p--) {
		inarray[p+1] = inarray[p];
	}
	inarray[x] = [d,key,value];
}
