var globalElNr = 0;

function showLoading(elName)
{
	var img = document.createElement('img');
	img.src = sysUrl + 'template/images/spinner.gif';
	img.alt = 'Loading...';
	img.id  = 'loading' + elName;
	$(elName).appendChild(document.createTextNode(' '));
	$(elName).appendChild(img);
	
}function hideLoading(elName){ $(elName).removeChild($('loading' + elName)); }

function buildGroups(selectedId)
{
	
	var institutionId = $F('institution_id');
	if(selectedId != undefined)
		var pars = 'ajaxAction=loadGroups&institution_id=' + institutionId + '&selectedId=' + selectedId;
	else
		var pars = 'ajaxAction=loadGroups&institution_id=' + institutionId;

	showLoading('groups');

	var myAjax = new Ajax.Request(
								  ajaxUrl, 
								  { method: 'get', 
								  parameters: pars, 
								  onComplete: showGroups
								  });
}

function showGroups(originalRequest)
{
	hideLoading('groups');
	$('groups').innerHTML = originalRequest.responseText;
}

// 'Add new group' form on Create Experiment page
function formNewGroup()
{
	
	if($('newGroup').innerHTML == '')
	{
		$('newGroup').appendChild(document.createTextNode('Group name: '));
		
		var input       = document.createElement('input');
		input.type      = 'text';
		input.className = 'text';
		input.id        = 'newGroupName';
		
		$('newGroup').appendChild(input);
		$('newGroup').appendChild(document.createTextNode(' '));
		$('newGroup').innerHTML += '<input type="button" class="button" onclick="saveNewGroup()" value="Save" />';
	}
}

// Save new group
function saveNewGroup()
{
	if($('newGroupName').value == '')
		return;
	else
	{
		var institutionId = $F('institution_id');
		var newGroupName  = $F('newGroupName');
		showLoading('newGroup');
		var pars = 'ajaxAction=addNewGroup&institution_id=' + institutionId + '&groupName=' + newGroupName;
		var myAjax = new Ajax.Request( 
									  ajaxUrl, 
									  { method: 'get', 
 									  parameters: pars, 
									  onComplete: showSaveNewGroup
									  });
	}
}

// saveNewGroup callback
function showSaveNewGroup(originalRequest)
{
	//$('newGroup').innerHTML = originalRequest.responseText;
    //alert(originalRequest.responseText);
	hideLoading('newGroup');
	if(originalRequest.responseText.indexOf('true') != -1)
	{
		group = originalRequest.responseText.split(',');
		id    = group[1];
		$('newGroup').innerHTML = '';
		buildGroups(id);
	}
	else
		alert(originalRequest.responseText);

}

function sessionHasConflicts()
{
	var selects       = document.getElementsByTagName('select');
	var validKey      = -1;
	var selName       = '';
	var dates         = new Array();
	
	for(var i = 0, size = selects.length; i < size; i++)
	{
		if(selects[i].name.indexOf('[location_id]') != -1)
		{
			selName  = selects[i].name;
			validKey = selName.substring(8, selName.indexOf('][location_id]'));
			var additionalMod = false;
		}
		
		if(selects[i].name.indexOf('[location_id]') != -1)
		{
			dates[validKey] = validKey + '__' + $F(selects[i]) + '__';
		}
		
		if(selects[i].name.indexOf('[date]') != -1 && selects[i].name.indexOf('[additional_day]') == -1)
		{
			if(selects[i].name.indexOf('[date][month]') != -1)
				dates[validKey] += $F(selects[i]);
			else
				dates[validKey] += '-' + $F(selects[i]);
		}
		
		if(selects[i].name.indexOf('[time]') != -1 && selects[i].name.indexOf('[additional_day]') == -1)
		{
			if(selects[i].name.indexOf('[time][hour]') != -1)
				dates[validKey] += ' ' + $F(selects[i]);
			else
				dates[validKey] += ':' + $F(selects[i]);
		}
		
		
		if($F('session[' + validKey + '][additional_day_boolean]') == 'on')
		{
			
			if(selects[i].name.indexOf('[date]') != -1 && selects[i].name.indexOf('[additional_day]') != -1)
			{
				if(!additionalMod)
				{
					dates[validKey] += '__';
					additionalMod = true;
				}
				if(selects[i].name.indexOf('[date][month]') != -1)
					dates[validKey] += $F(selects[i]);
				else
					dates[validKey] += '-' + $F(selects[i]);
			}
		
			if(selects[i].name.indexOf('[time]') != -1 && selects[i].name.indexOf('[additional_day]') != -1)
			{
				if(selects[i].name.indexOf('[time][hour]') != -1)
					dates[validKey] += ' ' + $F(selects[i]);
				else
					dates[validKey] += ':' + $F(selects[i]);
			}	
		}
		
		
		
		if(selects[i].name.indexOf('[length_of_session]') != -1)
		{
			//alert($F(selects[i]));
			dates[validKey] += '__' + $F(selects[i]);
			//alert(dates[validKey]);
		}
	}
	
	dates.shift();
	//alert(dates);

	var datesStr = dates.toString();
	var pars = 'ajaxAction=sessionCheckConflicts&dates=' + datesStr;
	//alert(pars);
	showLoading('sessions');
	//$('sessions').innerHTML = pars;
	var myAjax = new Ajax.Request(
								  ajaxUrl, 
								  { method: 'get', 
								  parameters: pars, 
								  onComplete: showSessionHasConflicts
								  });
}

function showSessionHasConflicts(originalRequest)
{
	hideLoading('sessions');
	var r = originalRequest.responseText;
	//alert(r);
	
	if(r != 'false')
	{
		if($('bottomWarning'))
			$('sessions').removeChild($('bottomWarning'));
		var div       = document.createElement('div');
		div.innerHTML = "<strong>There's a conflict on one of your sessions.</strong>";
		div.id        = 'bottomWarning';
		$('sessions').appendChild(div);
		
		var conflictSessions = r.split(',');
		for(var i = 0, size = conflictSessions.length; i < size; i++)
		{
			var arr = conflictSessions[i].split('__');
			var id = arr[0];
			var experimentName = arr[1];
			$('conflictMessage' + id).style.display = 'block';
			$('conflictMessage' + id).innerHTML = 'This session is conflicting with a session from experiment ' + experimentName;
		}
	}
	else
	{	
		$('newSessions').submit();
	}
}

function submitNewSessions()
{
	sessionHasConflicts();
}

function addNewSession()
{
	var sessionId    = $('sessionId').value;
	var sessionCount = $('sessionCount').value;
	sessionCount++;
	$('sessionCount').value++;

	var found = false;
	var bonusSessionId = sessionId;
	while(found == false && bonusSessionId > 0)
	{
			
		if($('session[' + bonusSessionId + '][on_time_bonus]'))
		{
			
			var lastBonus = $F('session[' + bonusSessionId + '][on_time_bonus]');

			found = true;
		}
		else
			{
			bonusSessionId--;
		}
	}

	sessionId++;
	$('sessionId').value++;
	var pars = 'ajaxAction=addNewSession&sessionId=' + sessionId + '&sessionCount=' + sessionCount + '&lastBonus=' + lastBonus;
	showLoading('sessions');
	var myAjax = new Ajax.Request(
								  ajaxUrl, 
								  { method: 'get', 
								  parameters: pars, 
								  onComplete: showAddNewSession
								  });
}

function showAddNewSession(originalRequest)
{
	hideLoading('sessions');
	var newContainer    = document.createElement('div');
    newContainer.id = 'session' + Math.floor(Math.random()*1234);
	
	newContainer.innerHTML = originalRequest.responseText;
	$('sessions').appendChild(newContainer);
	
	

}

function cancelThisSession(sessionId)
{
	var sessionContainer = $('newSession' + sessionId);
	sessionContainer.parentNode.removeChild(sessionContainer);
	$('sessionCount').value--;

	// reorganize session numbers (only display purposes)
	var h3 = document.getElementsByTagName('h3');
	for(var i = 0, size = h3.length; i < size; i++)
	{
		if(h3[i].className == 'sessionCount')
		{
			h3[i].innerHTML = 'Session ' + (i+1);
		}
	}
}

function showAdditionalDayForm(sessionId)
{
	if($('additionalDayContainer-' + sessionId).style.display == 'none')
		$('additionalDayContainer-' + sessionId).style.display = 'block';
	else
		$('additionalDayContainer-' + sessionId).style.display = 'none';
}


/*
 * Criterias (recruitment)
 */
function changeCriteriaSchool(el)
{
	if($F(el) == 'null')
	{
		$('schoolsToSelect').innerHTML = '';
	}
	else if($('schoolsToSelect').innerHTML == '')
	{
		var pars = 'ajaxAction=loadSchoolsForRecruitment';
		showLoading('schoolsToSelect');
		new Ajax.Updater('schoolsToSelect', ajaxUrl, {parameters: pars, onComplete: function() { hideLoading('schoolsToSelect');}});
	}
}

function changeCriteriaMajor(el)
{
	if($F(el) == 'null')
	{
		$('majorsToSelect').innerHTML = '';
	}
	else if($('majorsToSelect').innerHTML == '')
	{
		var pars = 'ajaxAction=loadMajorsForRecruitment';
		showLoading('majorsToSelect');
		new Ajax.Updater('majorsToSelect', ajaxUrl, {parameters: pars, onComplete: function() { hideLoading('majorsToSelect');}});
	}
}


function changeCriteriaInstitution(el)
{
	if($F(el) == 'null')
	{
		$('institutionsToSelect').innerHTML = '';
		$('institutionMod').style.display    = 'none';
	}
	else 
	{
		if($F(el) == 'include')
			$('institutionMod').style.display     = 'inline';
		else
			$('institutionMod').style.display     = 'none';

		if($('institutionsToSelect').innerHTML == '')
		{
			var pars = 'ajaxAction=loadInstitutionsForRecruitment';
			showLoading('institutionsToSelect');
			new Ajax.Updater('institutionsToSelect', ajaxUrl, {parameters: pars, onComplete: function() { hideLoading('institutionsToSelect');}});
		}
	}
}

function selectInstitution(el, id)
{
	var containerName = 'groups-' + id;
	if(!el.checked)
		$(containerName).innerHTML = '';
	else
	{
		var pars = 'ajaxAction=loadGroupsForRecruitment&id=' + id;
		showLoading(containerName);
		new Ajax.Updater(containerName, ajaxUrl, {parameters: pars, onComplete: function() { hideLoading(containerName);}});
	}
}


function changeCriteriaExperiment(el)
{
	if($F(el) == 'null')
	{
		$('experimentsToSelect').innerHTML   = '';
		$('experimentAddMore').style.display = 'none';
		$('experimentMod').style.display     = 'none';
	}
	else 
	{
		if($F(el) == 'include')
			$('experimentMod').style.display     = 'inline';
		else
			$('experimentMod').style.display     = 'none';

		if($('experimentsToSelect') . innerHTML == '')
		{
			$('experimentAddMore').style.display = 'inline';
			var pars = 'ajaxAction=loadExperimentsForRecruitment';
			showLoading('experimentsToSelect');
			var newContainer = document.createElement('div');
			$('experimentsToSelect').appendChild(newContainer);
			new Ajax.Updater(newContainer, ajaxUrl, {parameters: pars, onComplete: function() { hideLoading('experimentsToSelect');}});
		}
	}
}

function experimentAddMore() { 
	var pars = 'ajaxAction=loadExperimentsForRecruitment';
	showLoading('experimentsToSelect');
	var newContainer = document.createElement('div');
	$('experimentsToSelect').appendChild(newContainer);
	new Ajax.Updater(newContainer, ajaxUrl, {parameters: pars, onComplete: function() { hideLoading('experimentsToSelect');}});
}



function changeCriteriaTreatment(el)
{
	if($F(el) == 'null')
	{
		$('treatmentsToSelect').innerHTML   = '';
		$('treatmentAddMore').style.display = 'none';
		$('treatmentMod').style.display     = 'none';
	}
	else
	{
		if($F(el) == 'include')
			$('treatmentMod').style.display = 'inline';
		else
			$('treatmentMod').style.display = 'none';

		if($('treatmentsToSelect') . innerHTML == '')
		{
			$('treatmentAddMore').style.display = 'inline';
			var pars = 'ajaxAction=loadTreatmentsForRecruitment';
			showLoading('treatmentsToSelect');
			var newContainer = document.createElement('div');
			$('treatmentsToSelect').appendChild(newContainer);
			new Ajax.Updater(newContainer, ajaxUrl, {parameters: pars, onComplete: function() { hideLoading('treatmentsToSelect');}});
		}
	}
}

function treatmentAddMore() { 
	var pars = 'ajaxAction=loadTreatmentsForRecruitment';
	showLoading('treatmentsToSelect');
	var newContainer = document.createElement('div');
	$('treatmentsToSelect').appendChild(newContainer);
	new Ajax.Updater(newContainer, ajaxUrl, {parameters: pars, onComplete: function() { hideLoading('treatmentsToSelect');}});
}


function selectAnyExperience()
{
	//alert($('extendedCriterias').style.display);
	if($('extendedCriterias').style.display == 'block' || $('extendedCriterias').style.display == '')
		$('extendedCriterias').style.display = 'none';
	else
		$('extendedCriterias').style.display = 'block';
}




function criteriaSelectChange(elNr)
{
	
	var elName = 'criteria' + elNr;
	globalElNr = elNr;
	
	if($('appendix' + elNr))
		$('appendix' + elNr).innerHTML = '';

	if($F(elName) == 8)
		loadSchoolsIntoSelect(elNr);
	else if($F(elName) == 9)
		loadMajorsIntoSelect(elNr);
}

function loadSchoolsIntoSelect(elNr)
{
	var selectName = 'criterias[' + elNr + '][appendix]';
	var pars = 'ajaxAction=loadSchoolsIntoSelect&selectName=' + selectName;
	var containerName = 'appendix' + elNr;
	showLoading('criterias');

	new Ajax.Updater(containerName, ajaxUrl, {parameters: pars, onComplete: function() { hideLoading('criterias');}});
}

function loadMajorsIntoSelect(elNr)
{
	var selectName = 'criterias[' + elNr + '][appendix]';
	var pars = 'ajaxAction=loadMajorsIntoSelect&selectName=' + selectName;
	showLoading('criterias');
	var containerName = 'appendix' + elNr;

	new Ajax.Updater(containerName, ajaxUrl, {parameters: pars, onComplete: function() { hideLoading('criterias');}});
}

function addNewCriteria()
{
	$('criteriaId').value++;
	var criteriaId = $('criteriaId').value;

	var pars = 'ajaxAction=addNewCriteria&criteriaId=' + criteriaId;
	showLoading('criterias');

	var myAjax = new Ajax.Request(
								  ajaxUrl, 
								  { method: 'get', 
								  parameters: pars, 
								  onComplete: showAddNewCriteria
								  });
}

function showAddNewCriteria(originalRequest)
{
	hideLoading('criterias');
	var newContainer       = document.createElement('div');
    newContainer.id        = 'session' + Math.floor(Math.random()*1234);

	newContainer.innerHTML = originalRequest.responseText;
	$('criterias').appendChild(newContainer);
}

function removeCriteria(elNr)
{
	var elName = 'criteria' + elNr;
	$(elName).parentNode.removeChild($(elName));
}

/* conduct session page */
function conductSessionSaveAndClose()
{
	var mod   = document.createElement('input');
	mod.type  = 'hidden';
	mod.value = '1';
	mod.name  = 'saveAndClose';

	$('conductSessionForm').appendChild(mod);
	$('conductSessionForm').submit();
}

/* conduct session page */
function conductFillWithDefaultBonus(defaultBonus)
{
	var inputs = document.getElementsByClassName('ontimeEarnings');
	inputs.each( function(i)
	{
		i.value = defaultBonus;
	});
}

function conductSetAllAttended()
{
	var selects = document.getElementsByClassName('statusDropdown');
	selects.each( function(s) 
	{
		s.selectedIndex = 1;
	});
}

/* conduct session page */
function conductAddStudent()
{
	var o = '<p>';
	o += '<a href="javascript:void(0)" onclick="conductAddStudentAlreadyIn()">The user is already in the database</a><br />';
	o += '<a href="javascript:void(0)" onclick="conductAddStudentNewAccount()">The student needs a new account</a>';
	o += '</p>';
	$('addStudent').innerHTML = '';
	$('addStudent').appendChild(Builder.build(o));
	$('addStudent').style.display = 'block';
}

function conductAddStudentAlreadyIn()
{
	o  = '<div><p> Search student by name: <br />';
	o += '<input type="text" id="search_student_name" class="text" /></p> ';
	o += '<p><input type="button" class="button" value="Search" onclick="conductSearchStudent()" /></p></div>';
	
	$('addStudent').innerHTML = '';
	$('addStudent').appendChild(Builder.build(o));
	$('search_student_name').focus();
}

function conductSearchStudent()
{
	var studentName = $F('search_student_name');
	var sessionId   = $F('session_id');
	var pars = 'ajaxAction=searchStudent&sessionId=' + sessionId + '&student=' + studentName;
	showLoading('addStudent');

	var myAjax = new Ajax.Request(
								  ajaxUrl, 
								  { method: 'get', 
								  parameters: pars, 
								  onComplete: showConductSearchStudent
								  });
}

function showConductSearchStudent(originalRequest)
{
	hideLoading('addStudent');
	$('addStudent').innerHTML = originalRequest.responseText;
}

function conductAddStudentAfterSearch(studentId)
{
	var sessionId   = $F('session_id');
	var pars = 'ajaxAction=addStudentAfterSearch&sessionId=' + sessionId + '&studentId=' + studentId;
	showLoading('addStudent');

	var myAjax = new Ajax.Request(
								  ajaxUrl, 
								  { method: 'get', 
								  parameters: pars, 
								  onComplete: conductAddStudentAfterSearch_callback
								  });
}

function conductAddStudentAfterSearch_callback(originalRequest)
{
	/*var arr         = originalRequest.responseText.split(',');
	var studentName = arr[0];
	var studentId   = arr[1];
	
	var tr  = document.createElement('tr');
	var td1 = document.createElement('td');
	var td2 = document.createElement('td');
	var td3 = document.createElement('td');
	var td4 = document.createElement('td');
	
	tr.className = 'newStudent';
	
	var lnk  = document.createElement('a');
	lnk.href = sysUrl + "students/view/" + studentId + '/';
	lnk.appendChild(document.createTextNode(studentName));
	td1.appendChild(lnk);
	
	var slect = document.createElement('select');
	slect.name = 'students[' + studentId + '][student_status]';
	var opt1 = document.createElement('option');
	var opt2 = document.createElement('option');
	var opt3 = document.createElement('option');
	opt1.value = '';
	opt2.value = 'attended';
	opt3.value = 'bumped';
	opt2.appendChild(document.createTextNode('Attended'));
	opt3.appendChild(document.createTextNode('Bumped'));
	opt2.selected = "selected";
	slect.appendChild(opt1);
	slect.appendChild(opt2);
	slect.appendChild(opt3);
	td2.appendChild(slect);

	var earn1 = document.createElement('input');
	earn1.type = 'text';
	earn1.name = 'students[' + studentId + '][ontime_earnings]';
	earn1.className = 'ontimeEarnings';
	earn1.value = '0.00';
	td3.appendChild(document.createTextNode('$ '));
	td3.appendChild(earn1);

	var earn2 = document.createElement('input');
	earn2.type = 'text';
	earn2.name = 'students[' + studentId + '][participation_earnings]';
	earn2.className = 'earnings';
	earn2.value = '0.00';
	td4.appendChild(document.createTextNode('$ '));
	td4.appendChild(earn2);

	tr.appendChild(td1);
	tr.appendChild(td2);
	tr.appendChild(td3);
	tr.appendChild(td4);*/
	$('conductTableBody').appendChild(Builder.build(originalRequest.responseText));

	hideLoading('addStudent');
	$('addStudent').innerHTML = 'Student added successfully';
}


function conductAddStudentNewAccount()
{
	var sessionId   = $F('session_id');
	var pars = 'ajaxAction=addStudentNewAccount&sessionId=' + sessionId;
	showLoading('addStudent');

	var myAjax = new Ajax.Request(
								  ajaxUrl, 
								  { method: 'get', 
								  parameters: pars, 
								  onComplete: showConductAddStudentNewAccount
								  });
}

function showConductAddStudentNewAccount(originalRequest)
{
	hideLoading('addStudent');
	$('addStudent').innerHTML = originalRequest.responseText;
}

function conductCancelNewAccount()
{
	$('addStudent').innerHTML = '';
	$('addStudent').style.display = 'none';
}

/* Pre submit */
function presubmitCreateAccount()
{
	var name   = $F('first_name');
	var email  = $F('email');
	var passwd = $F('passwd');
	var id_of_student = $F('id_of_student');
	
	
	if(name == '' || email == '' || passwd == '' || id_of_student == '') 
		showWarning('presubmitWarning', 'Please, fill all the required fields');
	else if(!$('ageVerification').checked)
		showWarning('presubmitWarning', 'Only students over 18 years old can be registered in the recruiter.');
	else
	{
		var pars = 'ajaxAction=presubmitCreateAccount&id_of_student=' + id_of_student;
		showLoading('loading');
		var myAjax = new Ajax.Request(ajaxUrl, { method: 'get', parameters: pars, onComplete: showPresubmitCreateAccount });
	}
}

function showPresubmitCreateAccount(originalRequest)
{
	hideLoading('loading');
	var r = originalRequest.responseText;

	if(r == 'false')
		showWarning('presubmitWarning','This id is already taken, please select another.');
	else
		$('formCreateAccount').submit();
}


function showWarning(id,message)
{
	$(id).style.display = 'block';
	$(id).innerHTML = message;
}

function presubmitCreateExperiment()
{
	if(!$('title').present() || !$('registration_cutoff').present() || !$('actual_participants').present() || !$('treatment').present() || !$('group_id').present() || !$('institution_id').present()) 
		showWarning('presubmitWarning', 'Please, fill all the required fields');
	else
	{
		$('formCreateExperiment').submit();
	}
}


function presubmitUserAccount()
{
	if($F('name') == '' || $F('email') == '')
		showWarning('presubmitWarning', 'Please, fill all the required fields');
	else
	{
		$('formUserAccount').submit();
	}
}

/*
 * Calendar view
 */
 
function resizeCalendar()
{
	var divs = document.getElementsByTagName('div');
	var largest  = new Array();
	var w = -1;
	for(i = 0, size = divs.length; i < size; i++)
		if(divs[i].id.indexOf('monthDay') != -1)
		{
			if( (divs[i].className.indexOf('calendarDayLeft') != -1) || (divs[i].className.indexOf('calendarDayAtTheEndAndLeft') != -1))
			{
				w++;
				largest[w] = new Array();
				largest[w]['height'] = 0;
				largest[w]['divId']  = divs[i].id;
			}
			sessionsOnDay = $$('#' + divs[i].id + ' .calendarSession').length;
			if(sessionsOnDay > largest[w]['height'])
				largest[w]['height'] = sessionsOnDay;
		}
		
	var week = -1;
	for(z = 0, zSize = divs.length; z < zSize; z++)
	{
		if(divs[z].id.indexOf('monthDay') != -1)
		{
			if( (divs[z].className.indexOf('calendarDayLeft') != -1) || (divs[z].className.indexOf('calendarDayAtTheEndAndLeft') != -1))
				week++;
						
			if(largest[week]['height'] > 1)
			divs[z].style.height = (largest[week]['height'] * 35) + 'px';
		}
	}
/*
	if(largest > 1)
	{
		var dayHeight = largest * 35;
	
		for(i = 0, size = divs.length; i < size; i++)
		{
			if(divs[i].className == 'calendarDayAtTheEnd' || divs[i].className == 'calendarDayLeft' || divs[i].className == 'calendarDay' || divs[i].className == 'calendarDayAtTheEndAndLeft')
			{
				divs[i].style.height = dayHeight + 'px';
			}
		}
	}*/
	
	/*
	var largest  = 0;
	for(i = 0, size = divs.length; i < size; i++)
		if(divs[i].id.indexOf('monthDay') != -1)
		{
			sessionsOnDay = $$('#' + divs[i].id + ' .calendarSession').length;
			if(sessionsOnDay > largest)
				largest = sessionsOnDay;
		}

	if(largest > 1)
	{
		var dayHeight = largest * 35;
	
		for(i = 0, size = divs.length; i < size; i++)
		{
			if(divs[i].className == 'calendarDayAtTheEnd' || divs[i].className == 'calendarDayLeft' || divs[i].className == 'calendarDay' || divs[i].className == 'calendarDayAtTheEndAndLeft')
			{
				divs[i].style.height = dayHeight + 'px';
			}
		}
	}*/
}

/* Navbar effects */
function navbarExperimentsToggle()
{
	$('navbarFacultyExperiments').style.display = 'block';
	experimentsSlider.toggle();
}

function navbarStudentsToggle()
{
	$('navbarFacultyStudents').style.display = 'block';
	studentsSlider.toggle();
}


/* Recruit page */
function selectAllStudents(el)
{
	var inputs = document.getElementsByTagName('input');
	for(var i = 0, size = inputs.length; i < size; i++)
		if(inputs[i].type == 'checkbox')
			inputs[i].checked = el.checked;
}

/* Randomly select students from the searched list */
function randomlySelectRecruits()
{
	var toSelect = $('randomSelect');
	if(toSelect.value < 1)
		return;
	
	var inputs = document.getElementsByClassName('studentRecruit');
	
	inputs.each(function(i) { i.checked = false;});
	$('selectAll').checked = false;
	
	if(inputs.length == toSelect.value || inputs.length < toSelect.value)
	{
		inputs.each(function(i) { i.checked = true;});
		$('selectAll').checked = true;
	}
	else
	{
		var selected = 0;
		var dateObj = new Date();
		while(selected < toSelect.value)
		{
			inputs.each(function(i) 
				{ 
					if(selected < toSelect.value)
					{
						if(i.checked != true)
						{
							if(((Math.round(Math.random()*7)) % 2) == 0)
							{
								i.checked = true;
								selected++;
							}
						}
					}
				});
		}
	}
}

/* 
 * Search for student
 */
function searchStudentBy(searchType)
{
	$('searchByNameContainer').style.display   = 'none';
	$('searchBySchoolContainer').style.display = 'none';
	$('searchByMajorContainer').style.display  = 'none';
	$('searchByGradeContainer').style.display  = 'none';
	$('searchByGenderContainer').style.display = 'none';
	if(searchType == 'name')
		$('searchByNameContainer').style.display   = 'block';
	if(searchType == 'school')
		$('searchBySchoolContainer').style.display = 'block';
	if(searchType == 'major')
		$('searchByMajorContainer').style.display  = 'block';
	if(searchType == 'grade')
		$('searchByGradeContainer').style.display  = 'block';
	if(searchType == 'gender')
		$('searchByGenderContainer').style.display  = 'block';
}


window.onload = function() {
	if($('navbarFacultyExperiments')) 
	{
		experimentsSlider = new fx.Height('navbarFacultyExperiments',{duration: 200});
		if(page != 'experiments' && page != 'sessions' && page != 'session')
		{	
			experimentsSlider.hide();
		}
	}
	
	if($('navbarFacultyStudents')) 
	{
		studentsSlider = new fx.Height('navbarFacultyStudents',{duration: 200});
		if(page != 'students')
			studentsSlider.hide();
	}
};


/* 
 * Login page
 */
function recoverPassword()
{
	if($('passwordRecovery').style.display == 'none')
	{
			var content = "<div><p>Type in your login and we'll send you a link with instructions on how to reset your password.</p>";
			content += '<form method="post" action="' + sysUrl + 'off/password/recover/"><p>Login: <br /><input type="text" name="login" /></p><p><input type="submit" value="Reset password" /></p></form></div>';
			$('passwordRecovery').appendChild(Builder.build(content));
			Effect.SlideDown('passwordRecovery', {duration:0.4});
	}
}

function showAnswer(nr)
{
	var el = $('answer' + nr);
	if(el.style.display == 'none')
		Effect.SlideDown(el, {duration:0.3});
	else
		Effect.SlideUp(el, {duration:0.3});
}


/*
 * Student details on new window
 */ 
function openStudentDetail(studentId)
{
	window.open(sysUrl + 'pop-up/student-details/' + studentId,'','scrollbars=yes,menubar=no,height=500,width=750,resizable=yes,toolbar=no,location=no,status=no');
}

/*
 * Boilerplates on new window
 */ 
function openBoilerplateDictionary(name)
{
	window.open(sysUrl + 'pop-up/boilerplates/' + name,'','scrollbars=yes,menubar=no,height=400,width=600,resizable=yes,toolbar=no,location=no,status=no');
}