/*******************************************************************************

    Template:   $Workfile: pulldowns.js $
    Owner:      $Author: maarten $
    Source:     $Archive: /spectra/uvaweb/wwwroot/template/skins/uva-student/js/pulldowns.js $
    Date:       $Date: 2009-09-21 15:18:53 +0200 (ma, 21 sep 2009) $
    Revision:   $Revision: 2785 $

    Description:
        JavaScript for use with UvA Student homepage pulldowns
    
    Developer: Maarten Veerman
    Organisation: Universiteit van Amsterdam (UvA)

*******************************************************************************/

fillCoursesbachelors();
fillCoursesminors();
fillCoursesmasters();
fillCoursesoverig();
	
function change_selectbachelors(which, obj) {
    
	if (!obj) {
		obj = document.forms["uva-student-pulldown-form"].opleidingenbachelorsselect;
	}
	
	if ( which == 'FACULTEIT' ) {
		obj.options.length = 0;
		change_selectmasters('FACULTEIT');
		change_selectminors('FACULTEIT');
		fillCoursesbachelors();
		obj.options[0] = new Option( "Kies je bachelor" ,"" );
		if (document.getElementById)
			document.getElementById("faculteitnaam").innerHTML = "Alle opleidingen op alfabet";
		else
			document.all["faculteitnaam"].innerHTML = "Alle opleidingen op alfabet";

		if ( browser == 'explorer' ){
			document.getElementById("welkefaculteit").style.background = 'white';
			document.getElementById("welkefaculteit").style.color = 'black';
			document.getElementById("opleidingenbachelorsselect").style.background = 'white';
			document.getElementById("opleidingenbachelorsselect").style.color = 'black';
			document.getElementById("opleidingenmastersselect").style.background = 'white';
			document.getElementById("opleidingenmastersselect").style.color = 'black';
		}

	
		// kopie van hieronder
		opleidingnamen = new Array();
		for (which in opleidingenbachelors) {
			for ( i=0; i<opleidingenbachelors[which].length; i++ ) {
				opleidingnamen[opleidingnamen.length] = opleidingenbachelors[ which ][i].text + "#!#" + opleidingenbachelors[ which ][i].value;
			}
		}
		opleidingnamen.sort();
		regex = /(.*)#!#(.*)/;
		for (which in opleidingnamen) {
			regex.exec( opleidingnamen[ which ] );
			text  = RegExp.$1;
			value = RegExp.$2;
			document.forms["uva-student-pulldown-form"].opleidingenbachelorsselect.options[document.forms["uva-student-pulldown-form"].opleidingenbachelorsselect.options.length] = new Option(text, value);
		}
		
		obj.selectedIndex = 0;
		//einde kopie
	
	} else if ( " GEN FGw FdR ACTA FNWI FEE FMG iis ".search(which) > -1 ) {
		obj.options.length = 0;
		fillCoursesbachelors();
		obj.options[0] = new Option( "Volledige lijst van bachelors" ,"FACULTEIT" );
		faculteit = "";
		switch (which) {
			case "GEN": faculteit = "Faculteit der Geneeskunde"; break;
			case "FGw": faculteit = "Faculteit der Geesteswetenschappen"; break;
			case "FdR": faculteit = "Faculteit der Rechtsgeleerdheid"; break;
			case "ACTA": faculteit = "Faculteit der Tandheelkunde (ACTA)"; break;
			case "FNWI": faculteit = "Faculteit der Natuurwetenschappen, Wiskunde en Informatica"; break;
			case "FEE": faculteit = "Faculteit Economie en Bedrijfskunde"; break;
			case "FMG": faculteit = "Faculteit der Maatschappij- en Gedragswetenschappen"; break;
			case "iis": faculteit = "Instituut voor Interdisciplinaire opleidingen (IIS)"; break;
		}
		if (document.getElementById)
			document.getElementById("faculteitnaam").innerHTML = faculteit;
		else
			document.all["faculteitnaam"].innerHTML = faculteit;

		obj.options[1] = new Option( "Kies je bachelor","" );
		// twee stappen: eerst legen, dan vullen
		for ( i=obj.options.length; i>=0; i-- ) {
			obj.options[i+2] = null;
		}
		for ( i=0; i<opleidingenbachelors[which].length; i++ ) {
				if ( opleidingenbachelors[which].length > i ) {
					obj.options[i+2] = opleidingenbachelors[ which ][i];
				} else {
				obj.options[i+2] = null;
				}
		}
		obj.selectedIndex = 1;
	} else {
		if (obj[obj.selectedIndex].value.search("http://") > -1) {
			document.location.href = obj[obj.selectedIndex].value;
		} else 
			document.location.href = "/" + obj[obj.selectedIndex].value + "/";
	}
}

function change_selectminors(which, obj) {
	if (obj == undefined) {
		obj = document.forms["uva-student-pulldown-form"].opleidingenminorsselect;
	}

	if ( which == 'FACULTEIT' ) {
		obj.options.length = 0;
		fillCoursesminors();
		obj.options[0] = new Option( "Kies je minor" ,"" );
		document.forms["uva-student-pulldown-form"].welkefaculteit.value = "Alle opleidingen op alfabet";

	
		//kopie van hieronder
		opleidingnamenminors = new Array();
		for (which in opleidingenminors) {
			for ( i=0; i<opleidingenminors[which].length; i++ ) {
				opleidingnamenminors[opleidingnamenminors.length] = opleidingenminors[ which ][i].text + "#!#" + opleidingenminors[ which ][i].value;
			}
		}
		opleidingnamenminors.sort();
		regex = /(.*)#!#(.*)/;
		for (which in opleidingnamenminors) {
			regex.exec( opleidingnamenminors[ which ] );
			text  = RegExp.$1;
			value = RegExp.$2;
			document.forms["uva-student-pulldown-form"].opleidingenminorsselect.options[document.forms["uva-student-pulldown-form"].opleidingenminorsselect.options.length] = new Option(text, value);
		}
		//einde kopie
		
		obj.selectedIndex = 0;
	
	} 
	else if ( " GEN FGw FdR ACTA FNWI FEE FMG iis ".search(which) > -1 ) {
		obj.options.length = 0;
		fillCoursesminors();
		obj.options[0] = new Option( "Volledige lijst van minors" ,"FACULTEIT" );
		obj.options[1] = new Option( "Kies je minor" ,"" );
		faculteit = "";
		switch (which) {
			case "GEN": faculteit = "Faculteit der Geneeskunde"; break;
			case "FGw": faculteit = "Faculteit der Geesteswetenschappen"; break;
			case "FdR": faculteit = "Faculteit der Rechtsgeleerdheid"; break;
			case "ACTA": faculteit = "Faculteit der Tandheelkunde (ACTA)"; break;
			case "FNWI": faculteit = "Faculteit der Natuurwetenschappen, Wiskunde en Informatica"; break;
			case "FEE": faculteit = "Faculteit Economie en Bedrijfskunde"; break;
			case "FMG": faculteit = "Faculteit der Maatschappij- en Gedragswetenschappen"; break;
			case "iis": faculteit = "Instituut voor Interdisciplinaire Studies (IIS)"; break;
		}
		//even niet de faculteitnaam
		//obj.options[1] = new Option( "minors bij " + faculteit,"" );
		obj.options[1] = new Option( "Kies je minor","" );
		// twee stappen: eerst legen, dan vullen
		for ( i=obj.options.length; i>=0; i-- ) {
			obj.options[i+2] = null;
		}
		if (opleidingenminors[which]) {
			for ( i=0; i<opleidingenminors[which].length; i++ ) {
					if ( opleidingenminors[which].length > i ) {
						obj.options[i+2] = opleidingenminors[ which ][i];
					} else {
					obj.options[i+2] = null;
					}
			}
		}
		if(obj.length == 3){
		//obj.options[1] = null;
		obj.selectedIndex = 1;
		} else {
			obj.selectedIndex = 1;
		}
		
							
	} else {
		if (obj[obj.selectedIndex].value.search("http://") > -1) {
			document.location.href = obj[obj.selectedIndex].value;
		} else 
			document.location.href = "/" + obj[obj.selectedIndex].value + "/";
	}
	
	if (opleidingenminors[which]){
		if (opleidingenminors[which].length == 0){
			obj.options[1] = new Option( "minors: binnenkort beschikbaar" ,"" );
			obj.selectedIndex = 1;
		}
	}
}

function change_selectmasters(which, obj) {
	if (obj == undefined) {
		obj = document.forms["uva-student-pulldown-form"].opleidingenmastersselect;
	}

	if ( which == 'FACULTEIT' ) {
		obj.options.length = 0;
		fillCoursesmasters();
		obj.options[0] = new Option( "Kies je master" ,"" );
		document.forms["uva-student-pulldown-form"].welkefaculteit.value = "Alle opleidingen op alfabet";

	
		//kopie van hieronder
		opleidingnamenmasters = new Array();
		for (which in opleidingenmasters) {
			for ( i=0; i<opleidingenmasters[which].length; i++ ) {
				opleidingnamenmasters[opleidingnamenmasters.length] = opleidingenmasters[ which ][i].text + "#!#" + opleidingenmasters[ which ][i].value;
			}
		}
		opleidingnamenmasters.sort();
		regex = /(.*)#!#(.*)/;
		for (which in opleidingnamenmasters) {
			regex.exec( opleidingnamenmasters[ which ] );
			text  = RegExp.$1;
			value = RegExp.$2;
			document.forms["uva-student-pulldown-form"].opleidingenmastersselect.options[document.forms["uva-student-pulldown-form"].opleidingenmastersselect.options.length] = new Option(text, value);
		}
		//einde kopie
		
		obj.selectedIndex = 0;
	
	} 
	else if ( " GEN FGw FdR ACTA FNWI FEE FMG iis ".search(which) > -1 ) {
		obj.options.length = 0;
		fillCoursesmasters();
		obj.options[0] = new Option( "Volledige lijst van masters" ,"FACULTEIT" );
		obj.options[1] = new Option( "Kies je master" ,"" );
		faculteit = "";
		switch (which) {
			case "GEN": faculteit = "Faculteit der Geneeskunde"; break;
			case "FGw": faculteit = "Faculteit der Geesteswetenschappen"; break;
			case "FdR": faculteit = "Faculteit der Rechtsgeleerdheid"; break;
			case "ACTA": faculteit = "Faculteit der Tandheelkunde (ACTA)"; break;
			case "FNWI": faculteit = "Faculteit der Natuurwetenschappen, Wiskunde en Informatica"; break;
			case "FEE": faculteit = "Faculteit Economie en Bedrijfskunde"; break;
			case "FMG": faculteit = "Faculteit der Maatschappij- en Gedragswetenschappen"; break;
			case "iis": faculteit = "Instituut voor Interdisciplinaire Studies (IIS)"; break;
		}
		//even niet de faculteitnaam
		//obj.options[1] = new Option( "Masters bij " + faculteit,"" );
		obj.options[1] = new Option( "Kies je master","" );
		// twee stappen: eerst legen, dan vullen
		for ( i=obj.options.length; i>=0; i-- ) {
			obj.options[i+2] = null;
		}
		if (opleidingenmasters[which]) {
			for ( i=0; i<opleidingenmasters[which].length; i++ ) {
					if ( opleidingenmasters[which].length > i ) {
						obj.options[i+2] = opleidingenmasters[ which ][i];
					} else {
					obj.options[i+2] = null;
					}
			}
		}
		if(obj.length == 3){
		//obj.options[1] = null;
		obj.selectedIndex = 1;
		} else {
			obj.selectedIndex = 1;
		}
		
							
	} else {
		if (obj[obj.selectedIndex].value.search("http://") > -1) {
			document.location.href = obj[obj.selectedIndex].value;
		} else 
			document.location.href = "/" + obj[obj.selectedIndex].value + "/";
	}
	
	if (opleidingenmasters[which]){
		if (opleidingenmasters[which].length == 0){
			obj.options[1] = new Option( "Masters: binnenkort beschikbaar" ,"" );
			obj.selectedIndex = 1;
		}
	}
}

	
function change_selectoverig(which, obj) {
	if (obj == undefined) {
		obj = document.forms["uva-student-pulldown-form"].opleidingenoverigselect;
	}

	if ( which == 'FACULTEIT' ) {
		obj.options.length = 0;
		fillCoursesoverig();
		obj.options[0] = new Option( "Overige opleidingen" ,"" );

	
		//kopie van hieronder
		opleidingnamenoverig = new Array();
		for (which in opleidingenoverig) {
			for ( i=0; i<opleidingenoverig[which].length; i++ ) {
				opleidingnamenoverig[opleidingnamenoverig.length] = opleidingenoverig[ which ][i].text + "#!#" + opleidingenoverig[ which ][i].value;
			}
		}
		opleidingnamenoverig.sort();
		regex = /(.*)#!#(.*)/;
		for (which in opleidingnamenoverig) {
			regex.exec( opleidingnamenoverig[ which ] );
			text  = RegExp.$1;
			value = RegExp.$2;
			document.forms["uva-student-pulldown-form"].opleidingenoverigselect.options[document.forms["uva-student-pulldown-form"].opleidingenoverigselect.options.length] = new Option(text, value);
		}
				//einde kopie
				
		obj.selectedIndex = 0;
	
	} else if ( " GEN FGw FdR ACTA FNWI FEE FMG iis ".search(which) > -1 ) {
		obj.options.length = 0;
		fillCoursesoverig();
		obj.options[0] = new Option( "Volledige lijst van overige opleidingen" ,"FACULTEIT" );
		obj.options[1] = new Option( "Kies je overig" ,"" );
		faculteit = "";
		switch (which) {
			case "GEN": faculteit = "Faculteit der Geneeskunde"; break;
			case "FGw": faculteit = "Faculteit der Geesteswetenschappen"; break;
			case "FdR": faculteit = "Faculteit der Rechtsgeleerdheid"; break;
			case "ACTA": faculteit = "Faculteit der Tandheelkunde (ACTA)"; break;
			case "FNWI": faculteit = "Faculteit der Natuurwetenschappen, Wiskunde en Informatica"; break;
			case "FEE": faculteit = "Faculteit Economie en Bedrijfskunde"; break;
			case "FMG": faculteit = "Faculteit der Maatschappij- en Gedragswetenschappen"; break;
			case "iis": faculteit = "Instituut voor Interdisciplinaire Studies (IIS)"; break;
		}
		//even niet de faculteitnaam
		//obj.options[1] = new Option( "overig bij " + faculteit,"" );
		obj.options[1] = new Option( "Kies je overig","" );
		// twee stappen: eerst legen, dan vullen
		for ( i=obj.options.length; i>=0; i-- ) {
			obj.options[i+2] = null;
		}
		for ( i=0; i<opleidingenoverig[which].length; i++ ) {
				if ( opleidingenoverig[which].length > i ) {
					obj.options[i+2] = opleidingenoverig[ which ][i];
				} else {
				obj.options[i+2] = null;
				}
		}
		if(obj.length == 3){
		//obj.options[1] = null;
		obj.selectedIndex = 1;
		} else {
			obj.selectedIndex = 1;
		}
		
							
	} else {
		if (obj[obj.selectedIndex].value.search("http://") > -1) {
			document.location.href = obj[obj.selectedIndex].value;
			return 1;
		} else 
			document.location.href = "/" + obj[obj.selectedIndex].value + "/";
			return 1;
	}
	
	if (opleidingenoverig[which]){
		if (opleidingenoverig[which].length == 0){
			obj.options[1] = new Option( "overig: zie bachelors" ,"" );
			obj.selectedIndex = 1;
		}
	}
}

/*******************************************************************************
* Code to fill the pulldowns
*******************************************************************************/

// Bachelor
	// maak eerst een lijst van opleidingnamen
	opleidingnamen = new Array();
	for (which in opleidingenbachelors) {
		for ( i=0; i<opleidingenbachelors[which].length; i++ ) {
			opleidingnamen[opleidingnamen.length] = opleidingenbachelors[ which ][i].text + "#!#" + opleidingenbachelors[ which ][i].value;
		}
	}
	opleidingnamen.sort();
	regex = /(.*)#!#(.*)/;
	for (which in opleidingnamen) {
		regex.exec( opleidingnamen[ which ] );
		text  = RegExp.$1;
		value = RegExp.$2;
		document.forms["uva-student-pulldown-form"].opleidingenbachelorsselect.options[document.forms["uva-student-pulldown-form"].opleidingenbachelorsselect.options.length] = new Option(text, value);
	}
	
// Minor
	// maak eerst een lijst van opleidingnamen
	opleidingnamenminors = new Array();
	for (which in opleidingenminors) {
		for ( i=0; i<opleidingenminors[which].length; i++ ) {
			opleidingnamenminors[opleidingnamenminors.length] = opleidingenminors[ which ][i].text + "#!#" + opleidingenminors[ which ][i].value;
		}
	}
	opleidingnamenminors.sort();
	regex = /(.*)#!#(.*)/;
	for (which in opleidingnamenminors) {
		regex.exec( opleidingnamenminors[ which ] );
		text  = RegExp.$1;
		value = RegExp.$2;
		document.forms["uva-student-pulldown-form"].opleidingenminorsselect.options[document.forms["uva-student-pulldown-form"].opleidingenminorsselect.options.length] = new Option(text, value);
	}

// Master
	// maak eerst een lijst van opleidingnamen
	opleidingnamenmasters = new Array();
	for (which in opleidingenmasters) {
		for ( i=0; i<opleidingenmasters[which].length; i++ ) {
			opleidingnamenmasters[opleidingnamenmasters.length] = opleidingenmasters[ which ][i].text + "#!#" + opleidingenmasters[ which ][i].value;
		}
	}
	opleidingnamenmasters.sort();
	regex = /(.*)#!#(.*)/;
	for (which in opleidingnamenmasters) {
		regex.exec( opleidingnamenmasters[ which ] );
		text  = RegExp.$1;
		value = RegExp.$2;
		document.forms["uva-student-pulldown-form"].opleidingenmastersselect.options[document.forms["uva-student-pulldown-form"].opleidingenmastersselect.options.length] = new Option(text, value);
	}

	
// Overig
	// maak eerst een lijst van opleidingnamen
	opleidingnamenoverig = new Array();
	for (which in opleidingenoverig) {
		for ( i=0; i<opleidingenoverig[which].length; i++ ) {
			opleidingnamenoverig[opleidingnamenoverig.length] = opleidingenoverig[ which ][i].text + "#!#" + opleidingenoverig[ which ][i].value;
		}
	}
	opleidingnamenoverig.sort();
	regex = /(.*)#!#(.*)/;
	for (which in opleidingnamenoverig) {
		regex.exec( opleidingnamenoverig[ which ] );
		text  = RegExp.$1;
		value = RegExp.$2;
		document.forms["uva-student-pulldown-form"].opleidingenoverigselect.options[document.forms["uva-student-pulldown-form"].opleidingenoverigselect.options.length] = new Option(text, value);
	}