var mainAreas = new Array();
var aSubAreas = new Array();
var SubAreasPerMainArea = 8;
var id = null;
var header = null;

document.observe('dom:loaded',function() {
	var querystring = document.URL.parseQuery();
	
	if(querystring['expertarea'] != null) {
		showEmployeesByExpertArea(querystring['expertarea'],querystring['name']);
	} else {
		showAllExpertAreas();
	}
});

function ajax_request(url, fOnComplete ) {
  var ajax = new Ajax.Request(url,{
    method: 'get',
    evalJSON: true,
    sanitizeJSON: false,
    nFailure: function() {
      alert('failure');
    },
    onComplete: fOnComplete,
    onException: function(e) {
      if (e.transport.status != 200 ) {
	alert('exception: '+e.transport.status);
      }
    }
  });
}
	
function showAllExpertAreas() {
  ajax_request('/Scripts/getMainExpertAreas.php',showMainExpertAreas);
}

function showMainExpertAreas(request) {
  $('result').update('');
  var units = request.responseJSON;
  var html = new Element('div');
  units.results.each(function(obj){
    var link = new Element('a',{'href':'javascript:showOneMainExpertArea('+obj.ID+');','onclick':'showOneMainExpertArea('+obj.ID+'); return false;'});
    link.update(obj.Name);
    html.insert(new Element('h1',{'id':obj.ID,'class':'h3-subhead-caps'}).update(link));
    ajax_request('/Scripts/getSubExpertAreas.php?id='+obj.ID,showSubExpertAreas);
  });
  $('result').update(html);
  ddequalcolumns.resetHeights('reset');
}

function showSubExpertAreas(request) {
  var iCounter = 1;
  var id = null;
  var subAreas = new Element('div',{'style':'margin-bottom: 20px;'});
  request.responseJSON.results.each(function(obj){
    if (obj.ID.include('-')){
      if (iCounter > 1 && iCounter <= SubAreasPerMainArea) {
	subAreas.insert(', ');
      }
      if (iCounter <= SubAreasPerMainArea) {
	var link = new Element('a',{'href':'javascript:showEmployeesByExpertArea("'+obj.ID+'","'+obj.Name+'");','onclick':'showEmployeesByExpertArea("'+obj.ID+'","'+obj.Name+'"); return false;'});
	link.insert(obj.Name);
	subAreas.insert(link);
      }
      iCounter++;
    } else {
      id = obj.ID;
    }
  });
  if (request.responseJSON.results.size() > SubAreasPerMainArea) {
    var link = new Element('a',{'href':'javascript:showOneMainExpertArea('+id+');','onclick':'showOneMainExpertArea('+id+'); return false;'});
    link.insert(' .. [flere områder]');
    subAreas.insert(link);
  }
  $(id).insert({after: subAreas});
}

function updateHeader(str) {
  var result = new Element('p',{'style':'margin-bottom: 20px'});
  var link = new Element('a',{'onclick':'showAllExpertAreas(); return false;','href':'javascript:showAllExpertAreas();'});
  link.update(str);
  return result.insert(link);
}

function showOneMainExpertArea(id) {
  ajax_request('/Scripts/getSubExpertAreas.php?id='+id,showOneSubExpertArea);
}

function showOneSubExpertArea(request) {
  $('result').update('');
  var html = new Element('div');
  html.insert(updateHeader('&gt;&gt;&nbsp;Tilbage til oversigten'));
  request.responseJSON.results.each(function(obj){
    if(obj.ID.include('-')){
      var link = new Element('a',{'href':'javascript:showEmployeesByExpertArea("'+obj.ID+'","'+obj.Name+'");','onclick':'showEmployeesByExpertArea("'+obj.ID+'","'+obj.Name+'"); return false;'});
      link.update(obj.Name);
      html.insert(new Element('div',{'id':obj.ID}).update(link));
    } else {
      html.insert(new Element('h1',{'id':obj.ID}).update(obj.Name));
    }
  });
  $('result').insert(html);
  ddequalcolumns.resetHeights('reset');
}

function showEmployeesByExpertArea(id,name) {
	header = name;
  ajax_request('/Scripts/getEmployByExpertArea.php?id='+id,showEmployees);
}

function getName(obj) {
  var name = new Array(obj.Firstname,obj.Middlename,obj.Lastname).join(' ');
  name = name.replace(/^\s*|\s*$/g,'');
  name = name.replace(/\s\s/g,' ');
  return name;
}

function showEmployees(request) {
  $('result').update('');
  var html = new Element('div',{'class':'contact person all','style':'font-size: 16px;'});
	html.insert(new Element('h3',{'style':'margin-bottom: 10px'}).insert(header));
  html.insert(updateHeader('&gt;&gt;&nbsp;Tilbage til oversigten'));

  var sorted = request.responseJSON.results.sortBy(function(obj) {return obj.Firstname});
  sorted.each(function(obj) {
    var person = new Element('div',{'class':'contact person entry'});
    var link = new Element('a',{'href':'javascript:show_employ(\''+obj.ID+'\');','onclick':'show_employ(\''+obj.ID+'\'); return false;'});
    link.update(getName(obj));
    person.insert(new Element('div',{'class':'name'}).update(link));
    person.insert(new Element('div',{'class':'jobtitle'}).update(obj.JobTitle));
    person.insert(new Element('div',{'class':'officephonenumber'}).update(obj.OfficePhoneNumber));
    person.insert(new Element('div',{'class':'cellphonenumber'}).update(obj.CellPhoneNumber));
    var mailto = new Element('a',{'href':'mailto:'+obj.Email}).update(obj.Email);
    person.insert(new Element('div',{'class':'email'}).update(mailto));
    html.insert(person);
  });
  if (request.responseJSON.results.size() == 0) {
    html.update(updateHeader('&gt;&gt;&nbsp;Tilbage til oversigten'));
    html.insert('Intet søgeresultat.');
  }
  $('result').update(html);
  ddequalcolumns.resetHeights('reset');
}

function show_employ(id) {
	var url = '/Scripts/getEmploy.php?id='+id;
	ajax_request(url,getEmploy);
}

var getEmploy = function(request) {
		var p = request.responseJSON;
		var container = new Element('div');
		container.insert(updateHeader('&gt;&gt;&nbsp;Tilbage til oversigten'));	
		container.insert(new Element('h1',{'class':'headline'}).update(getName(p)));
		container.insert(new Element('h2',{'class':'h2-subhead'}).update(p.JobTitle));
		var img = new Element('img',{src:'http://domino.djh.dk'+p.Picture});
		container.insert(new Element('div',{'class':'picture','style':'height: 250px'}).update(img));
		if (!p.Departments[0].blank()) {
			var regExDepartment = 'Danmarks Medie- og Journalisthøjskole/|Mdiehøjsken/|Journalisthøjskolen/';
			var departments = new Element('div',{'class':'department'});
			departments.insert(new Element('span',{'class':'label'}).update('Afdeling: ')).insert(p.Departments[0].gsub(regExDepartment,''));
			container.insert(departments);
		}
		if (!p.OfficePhoneNumber.blank()) {
			var officephonenumber = new Element('div',{'class':'officephonenumber'});
			officephonenumber.insert(new Element('span',{'class':'label'}).update('Fastnet: ')).insert(p.OfficePhoneNumber);
			container.insert(officephonenumber);
		}

		if (!p.CellPhoneNumber.blank()) {
			var cellphonenumber = new Element('div',{'class':'cellphonenumber'});
			cellphonenumber.insert(new Element('span',{'class':'label'}).update('Mobil: ')).insert(p.CellPhoneNumber);
			container.insert(cellphonenumber);
		}
		
		var mailto = new Element('a',{'href':'mailto:'+p .Email}).update(p.Email);
		var email = new Element('div',{'class':'email'});
  		email.insert(new Element('span',{'class':'label'}).update('E-mail: ')).insert(mailto);
		container.insert(email);

		if (!p.WorkTasks.blank()) {
			var worktasks = new Element('div',{'class':'worktasks'});
			worktasks.insert(new Element('span',{'class':'label'}).update('Arbejdsopgaver: ')).insert(p.WorkTasks);
			container.insert(worktasks);
		}
		if (!p.Publications.blank()) {
			var publications = new Element('div',{'class':'publications'});
			publications.insert(new Element('span',{'class':'label'}).update('Udgivelser: ')).insert(p.Publications);
			container.insert(publications);
		}
		if (!p.CV.blank()) {
			var cv = new Element('div',{'class':'cv'});
			cv.insert(new Element('span',{'class':'label'}).update('CV: ')).insert(p.CV);
			container.insert(cv);
		}
		if (!p.Education.blank()) {
			var educations = new Element('div',{'class':'educations'});
			educations.insert(new Element('span',{'class':'label'}).update('Uddannelse: ')).insert(p.Education);
			container.insert(educations);
 		}
		if (!p.ResearchArea.blank()) {
			var researcharea = new Element('div',{'class':'researcharea'});
			researcharea.insert(new Element('span',{'class':'label'}).update('Research: ')).insert(p.ResearchArea);
			container.insert(researcharea);
		}
		if (!p.Workplaces.blank()) {
			var workplaces = new Element('div',{'class':'workplaces'});
			workplaces.insert(new Element('span',{'class':'label'}).update('Erhvervserfaring: ')).insert(p.Workplaces);
			container.insert(workplaces);
		}
		if (!p.ExtraInfo.blank()) {
			var extrainfo = new Element('div',{'class':'extrainfo'});
			extrainfo.insert(new Element('span',{'class':'label'}).update('Yderlige informationer: ')).insert(p.ExtraInfo);
			container.insert(extrainfo);
		}
		if (p.Attachments.size() > 0) {
		  var attachments = new Element('div',{'class':'attachments'});
		  attachments.insert(new Element('span',{'class':'label'}).update('Vedhæftninger: '));
			var list = new Element('ul');
			p.Attachments.each(function(a) {
					var name = a.gsub(/^(.)*\$FILE\//,'');
					list.insert(new Element('a',{'href':'http://domino.djh.dk'+a}).update(name));
			});
			attachments.insert(list);
		  container.insert(attachments);
		}
		if (p.ExpertAreas.size() > 0) {
		  var attachments = new Element('div',{'class':'expertareas'});
		  attachments.insert(new Element('span',{'class':'label'}).update('Ekspertområder:'));
			var list = new Element('ul');
			p.ExpertAreas.each(function(a) {
					var name = a[1];
					var id = a[0];
					var item = new Element('li');
					item.insert(new Element('a',{'href':'/kontakt/ekspert.html?expertarea='+id+'&name='+name}).update(name));
					list.insert(item);
			});
			attachments.insert(list);
		  container.insert(attachments);
		}

		$('result').innerHTML = '';
		$('result').update(container);
		ddequalcolumns.resetHeights('reset');
 }

