
	var professions = Class.create(opleidingen,{
		initialize : function($super, RPCURI, container){
			$super(RPCURI, container);
			this.instID = 'kb_beroepen_' + parseInt(Math.random()*1000000);
		},
		
		startBeroepen : function(){
			$('page').hide();
//			$('contentContainer').update('<a href="javascript:window.location.reload();">[Terug]</a>');
			this.mainCat = 1;
			this.getSectors(this.writeBeroepenSectoren.bind(this));
		},
		
		writeBeroepenAlfa : function(){
			$('page').hide();
			this.container.update('<h1>Beroepen op alfabet</h1>');
			var beroepenContainer = new Element('div', {className:'beroepen'})
			this.container.insert(beroepenContainer);
			
			var ulLeft = new Element('ul');
			beroepenContainer.insert(ulLeft);
			
			$R(65, 90).each(
				(function(int){
					var letter = String.fromCharCode(int);
					var li = new Element('li');
					var inlineContainer = new Element('div', {className:'inlineBeroepen'});
					inlineContainer.hide();
					var link = new Element('a').update(letter);
					li.insert(link);
					li.insert(inlineContainer);
					ulLeft.insert(li);
					
					link.inlineContainer = inlineContainer;
					link.letter = letter;
					link.observe('click', this.getProfessionsByLetter.bind(this));
				}).bind(this)
			)	
		},
		
		writeBeroepenSectoren : function(sectors){
			this.container.update('<h1>Beroepen per sector</h1>');
			var beroepenContainer = new Element('div', {className:'beroepen'})
			this.container.insert(beroepenContainer);
			
			var ulRight = new Element('ul');
			beroepenContainer.insert(ulRight);
			
			sectors.each(
				(function(sector){
					var li = new Element('li');
					var inlineContainer = new Element('div', {className:'inlineBeroepen'});
					inlineContainer.hide();
					var link = new Element('a').update(sector.name);
					li.insert(link);
					li.insert(inlineContainer);
					ulRight.insert(li);
					
					link.inlineContainer = inlineContainer;
					link.sector = sector;
					link.observe('click', this.getProfessionsBySector.bind(this));
				}).bind(this)
			)
		},
		
	  	getProfessionsByLetter : function(e){
	  		var elem = e.element();
	  		var container = elem.inlineContainer;
	  		var letter = elem.letter;
	  		container.show();
	  		this.waiter(container);
	  		var rpc = new rpcClient(this.RPCURI, '439b3a44-76ce-11de-86f2-001f297dba24');
			if (window.console) rpc.debug = true;
	  		rpc.createCall('is', 'getProfessions', {startsWith:letter});
  			rpc.execute(
  				(function(req, rpc){
  					this.writeProfessionList(req,rpc,container);
  				}).bind(this)
  			);
	  		
	  	},
	  	
	  	writeProfessionList : function(req,rpc, container){
	  		container.update('');
	  		var profs = rpc.toObject().responses.response.row;
	  		this.getCloser(container);
	  		var ul = new Element('ul');
	  		container.insert(ul);
	  		
	  		profs.each(
	  			(function(prof){
					var li = new Element('li');
					var inlineContainer = new Element('div', {className:'inlineBeroep'});
					inlineContainer.hide();
					var link = new Element('a').update(prof.name);
					li.insert(link);
					li.insert(inlineContainer);
					ul.insert(li);
					link.observe('click', (function(){
						inlineContainer.show();
						inlineContainer.update('');
						var detailsContainer = new Element('div', {className:'detailsInlineContainer'});
						this.getCloser(detailsContainer);
						inlineContainer.insert(detailsContainer);
						detailsContainer.insert('<h2>' + prof.name + '</h2>');
						detailsContainer.insert('<p>' + prof.description + '</p>');
						detailsContainer.insert('<p><b> Grondhouding : </b>' + prof.grondhouding + '<br/>');
						detailsContainer.insert('<b> Sector : </b>' + prof.sectorName+ '<br/>');
						detailsContainer.insert('<b> Nivo : </b>' + prof.nivo+ '<br/>');
						detailsContainer.insert('</p>');
						if (prof.after_study_id == '1003' || prof.after_study_id == '1004' || prof.after_study_id == '1008' || prof.after_study_id == '1009' ){
							var link = new Element('a').update("Opleidingen voor dit beroep");
							detailsContainer.insert(link);
							var studyContainer = new Element('div', {className:"detailsInlineContainer"});
							detailsContainer.insert(studyContainer);
							
							link.inlineContainer = studyContainer;
							link.profession = prof;
							link.after_study_id = prof.after_study_id;
							link.observe('click', this.getStudiesAtProfessions.bind(this))
						}
						if ( prof.after_study_id == '1008' || prof.after_study_id == '1000' || prof.after_study_id == '1001' || prof.after_study_id == '1002' || prof.after_study_id == '1005' || prof.after_study_id == '1006' || prof.after_study_id == '1007'){
				  			var link = new Element('a').update("MBO scholen in de sector " + prof.sectorName)
				  			detailsContainer.insert(link);
				  			var studyContainer = new Element('div', {className:'detailsInlineContainer'});
				  			studyContainer.hide();
				  			detailsContainer.insert(studyContainer);
				  			link.inlineContainer = studyContainer;
				  			link.profession = prof;
				  			link.sector_id = prof.sector_id;
				  			link.after_study_id = prof.after_study_id;
				  			link.observe('click', this.getSchoolsAtProfessions.bindAsEventListener(this))							
							
						}
						
					}).bind(this));
	  			}).bind(this)
	  		)
	  	},
	  	
	  	getSchoolsAtProfessions : function(e){
  			var profession = e.element().profession;
  			var after_study_id = e.element().after_study_id;
  			var parentContainer = e.element().inlineContainer;
  			var sectorID = e.element().sector_id;
  			this.getSchoolsAtSector('', sectorID, parentContainer);

	  		
	  	},
	  	
	  	getStudiesAtProfessions : function(e){
	  		if (e) {
	  			var profession = e.element().profession;
	  			var after_study_id = e.element().after_study_id;
	  			var parentContainer = e.element().inlineContainer;
	  			
	  			var container = new Element('div', {className:'levelContainer'});
	  			parentContainer.insert(container);
	  			
	  			
	  			this.getCloser(container);
	  			if (after_study_id == '1003' || after_study_id == '1008' || after_study_id == '1009'){
		  			var link = this.getLevelLink('hbo', "HBO opleidingen voor dit beroep (als je nu HAVO doet)", profession);
		  			container.insert(link);
		  			var inlineContainer = new Element('div', {className:'professionInlineStudies'});
		  			inlineContainer.hide();
		  			container.insert(inlineContainer);
		  			link.inlineContainer = inlineContainer;
		  			link.mainCatID = 1;
		  			link.level = 3;
		  			link.observe('click', this._getStudiesAtProfessions.bindAsEventListener(this))
	
		  			container.insert("<br/>");
	  			}
	  			
	  			if (after_study_id == '1003' || after_study_id == '1008' || after_study_id == '1009'){
		  			var link = this.getLevelLink('hbo', "HBO opleidingen voor dit beroep (als je nu VWO doet)", profession);
		  			container.insert(link);
		  			var inlineContainer = new Element('div', {className:'professionInlineStudies'});
		  			inlineContainer.hide();
		  			container.insert(inlineContainer);
		  			link.inlineContainer = inlineContainer;
		  			link.mainCatID = 4;
		  			link.level = 3;
		  			link.observe('click', this._getStudiesAtProfessions.bindAsEventListener(this))
		  			container.insert("<br/>");
	  			}
	  			
	  			if (after_study_id == '1004' || after_study_id == '1009'){
		  			var link = this.getLevelLink('wo', "WO opleidingen voor dit beroep (als je nu VWO doet)", profession);
		  			container.insert(link);
		  			var inlineContainer = new Element('div', {className:'professionInlineStudies'});
		  			inlineContainer.hide();
		  			container.insert(inlineContainer);
		  			link.inlineContainer = inlineContainer;
		  			link.mainCatID = 5;
		  			link.level = 4;
		  			link.observe('click', this._getStudiesAtProfessions.bindAsEventListener(this))
	  			}
	  		}	  		
  		
	  	},
	  	
	  	_getStudiesAtProfessions : function(e){
	  		var container = e.element().inlineContainer;
	  		var profession = e.element().sector;
	  		var mainCatID = e.element().mainCatID;
	  		var level = e.element().level;
	  		container.show();
	  		this.waiter(container);
	  		this.getCloser(container);
	  		this.mainCat = mainCatID;
	  		this.activeLevel = level;

	  		var rpc = new rpcClient(this.RPCURI, '439b3a44-76ce-11de-86f2-001f297dba24');
			if (window.console) rpc.debug = true;
	  		rpc.createCall('is', 'getStudies', {professionID:profession.id, 'mainCatID':mainCatID, 'levelID':level });
  			rpc.execute(
  				(function(req, rpc){
  					container.update('');
  					this.drawStudies(req, rpc, container, level, '');
  				}).bind(this)
  			);
	  	},
	  	
	  	getProfessionsBySector : function(e){
	  		var elem = e.element();
	  		var container = elem.inlineContainer;
	  		var sector = elem.sector;
	  		this.waiter(container);
	  		container.show();
	  		var rpc = new rpcClient(this.RPCURI, '439b3a44-76ce-11de-86f2-001f297dba24');
			if (window.console) rpc.debug = true;
	  		rpc.createCall('is', 'getProfessions', {sector:sector.id});
  			rpc.execute(
  				(function(req, rpc){
  					container.update('');
  					this.writeProfessionList(req,rpc,container);
  				}).bind(this)
  			);
	  			
	  	}
		
	});
	
