/***	SEARCH FUNCTIONS				********************************************/

var _onSearch = false;

var _current_row_school = 0;
var _index_start_school = 0;

var _current_row_teacher = 0;
var _index_start_teacher = 0;

var _current_list_content = 'Loading';

function clearClassInput( toclean ) {
	if(toclean == '') {
		_onSearch = false;
		$('match_link_box').style.display = 'none';
		clearListHighlights();
		$('srch_school').value = '';
	}
	setTimeout(function(){$('school_suggest_list').style.display = 'none';},200);
	//$('school_suggest_list').style.display = 'none';
}

function clearTeacherInput( toclean ) {
	if(toclean == '') {
		_onSearch = false;
		$('match_link_box').style.display = 'none';
		clearListHighlights();
		$('srch_teacher').value = '';
	}
	setTimeout(function(){$('teacher_suggest_list').style.display = 'none';},200);
	//$('teacher_suggest_list').style.display = 'none';
}

function searchWord() {
	var word = '';
	var ind = 0;
	var found = false;
	
	if(_onSearch) { return false; }
	
	
	if( $('srch_teacher').value != '' ) {
		word = $('srch_teacher').value;
		while( (ind < $$('td.list_teacher_name').length) && (!found) ) {
			var row = $$('td.list_teacher_name')[ind];
			var content = row.innerHTML.toLowerCase();
			
			var existWord = content.indexOf( word.toLowerCase() );
			if( existWord != -1 ) {	found = true; }
			if( !found ) { ind++; }		
		}	
		
		if(ind == $$('td.list_teacher_name').length) { 
			if($('next_pagination').innerHTML != '') {
				nextPageList();
				$('srch_teacher').value = word;
				searchWord();
			} else {
				alert(' No matching teachers found ');
				if( $('nr_page').value != 0 ) {
					$('nr_page').value = 0;
					loadContent();
				}
				return false;
			}
		} else {
			_onSearch = true;
			$('match_link_box').style.display = 'block';
			startSearch('next');
		}
			
	}
	
	if( $('srch_school').value != '') {	
		word = $('srch_school').value;
		while( (ind < $$('td.list_class_name').length) && (!found) ) {
			var row = $$('td.list_class_name')[ind]
			var content = row.innerHTML.toLowerCase();
			
			var existWord = content.indexOf( word.toLowerCase() );
			if( existWord != -1 ) {	found = true; }
			if( !found ) { ind++; }		
		}	
		
		if(ind == $$('td.list_class_name').length) { 
			if($('next_pagination').innerHTML != '') {
				nextPageList();
				$('srch_school').value = word;
				searchWord();
			} else {
				alert(' No matching schools found ');
				if( $('nr_page').value != 0 ) {
					$('nr_page').value = 0;
					loadContent();
				}
				return false;
			}
		} else {
			_onSearch = true;
			$('match_link_box').style.display = 'block';
			startSearch('next');
		}
	}	
}

function startSearch( direction ) {	
	$('teacher_suggest_list').style.display = 'none';
	$('school_suggest_list').style.display = 'none';
	
	if(_onSearch) { 
		if( $('srch_teacher').value != '' ) {	
			searchOnTeacher( direction );		
		} 
	
		if( $('srch_school').value != '') {	
			searchOnSchool( direction );		
		}
	 } else {
	 	alert('Error in word');
	 }
}

// Search On Standings list class column a word
function searchOnTeacher( direction	 ) {
	var search_word = $('srch_teacher').value;
	
	if(direction == 'next') {
		searchNextTeacher( search_word );
	} else {
		searchPreviousTeacher( search_word );
	}
}

// Search On Standings list school column a word
function searchOnSchool( direction ) {
	
	var search_word = $('srch_school').value;
	
	if(direction == 'next') {
		searchNextSchool( search_word );
	} else {
		searchPreviousSchool( search_word );
	}
}
// ---------------------------------------------------------------------------
glob_search_nextteacher="";
glob_search_prevteacher="";
glob_search_prevschool="";
glob_search_nextschool="";

// Search next result on the Teacher Name Column
function searchNextTeacher( search_word ) {
	var found = false;
	var content = new String();
	var teacherRows = $$('td.list_teacher_name').length;

	if( _current_row_teacher > 0 ) _current_row_teacher++; // if resuming search, increment _current_row_teacher

	clearListHighlights();
	
	if( !found && _current_row_teacher < teacherRows ) {
		for( var i = _current_row_teacher; i < teacherRows; i++ ) {
			var row = $$('td.list_teacher_name')[i];
			var curr_content = row.innerHTML;
			var content = row.innerHTML.toLowerCase();
			var word_start = content.indexOf( search_word.toLowerCase() , 0 );
			
			if( word_start != -1 ) {
				_current_row_teacher = i;
				_index_start_teacher = word_start + search_word.length; 
				found = true;
				break;
			}		
		}
	}
	
	if( !found ) {
		if($('next_pagination').innerHTML != '') {
			nextPageList();
			_current_row_teacher = 0;
			searchNextTeacher( search_word );
			return false;
		} else {
			alert('No more teachers were found');
			_current_row_teacher = 0;
			search_word = '';
			word_start = 0;
		}
	}
	
	$$('td.list_teacher_name')[_current_row_teacher].innerHTML = HighlightText( search_word , curr_content , 'highlightTeacherWord' , word_start );
	$('main_container').scrollTop = $('highlightTeacherWord').offsetParent.offsetTop - 50;
}
// ---------------------------------------------------------------------------

// Search previous result on the Teacher Name Column
function searchPreviousTeacher( search_word ) {
	var found = false;
	var content = new String();
	var teacherRows = $$('td.list_teacher_name').length;

	if( _current_row_teacher >= 0 && _current_row_teacher <= teacherRows ) _current_row_teacher--; // if within currently displayed rows, decrement _current_row_teacher
	
	clearListHighlights();

	if( !found && _current_row_teacher >= 0 && _current_row_teacher < teacherRows ) {
		for( var i = _current_row_teacher; i >= 0; i-- ) {
			var row = $$('td.list_teacher_name')[i];
			var curr_content = row.innerHTML;
			var content = row.innerHTML.toLowerCase();
			var word_start = content.indexOf( search_word.toLowerCase() , 0 );				

			if( word_start != -1 ) {
				_current_row_teacher = i;
				_index_start_teacher = word_start - 1; 
				found = true;
				break;
			}
		}		
	}	
		
	if( !found ) {
		if($('previous_pagination').innerHTML != '') {
			previousPageList();
			_current_row_teacher = teacherRows;
			searchPreviousTeacher( search_word );
			return false;
		} else {
			alert('No more teachers were found');
			_current_row_teacher = 0;
			search_word = '';
			word_start = 0;
		}
	}
	
	$$('td.list_teacher_name')[_current_row_teacher].innerHTML = HighlightText( search_word , curr_content , 'highlightTeacherWord' , word_start );
	$('main_container').scrollTop = $('highlightTeacherWord').offsetParent.offsetTop - 50;
}
// ---------------------------------------------------------------------------

// Search next result on the Class Name Column
function searchNextSchool( search_word ) {
	var found = false;
	var content = new String();
	var schoolRow = $$('td.list_class_name').length;
		
	if( _current_row_school > 0 ) _current_row_school++; // if resuming search, increment _current_row_school

	clearListHighlights();

	if( !found && _current_row_school < schoolRow ) {
		for( var i = _current_row_school; i < schoolRow; i++ ) {
			var row = $$('td.list_class_name')[i];
			var curr_content = row.innerHTML;
			var content = row.innerHTML.toLowerCase();
			var word_start = content.indexOf( search_word.toLowerCase() , 0 );
					
			if( word_start != -1 ) {
				_current_row_school = i;
				_index_start_school = word_start + search_word.length; 
				found = true;
				break;
			}
		}		
	}
		
	if( !found ) {
		if($('next_pagination').innerHTML != '') {
			nextPageList();
			_current_row_school = 0;
			searchNextSchool( search_word );
			return false;
		} else {
			alert('No more schools were found');
			_current_row_school = 0;
			search_word = '';
			word_start = 0;
		}
	}

	$$('td.list_class_name')[_current_row_school].innerHTML = HighlightText( search_word , curr_content , 'highlightSchoolWord' , word_start );
	$('main_container').scrollTop = $('highlightSchoolWord').offsetParent.offsetTop - 50;	
}
// ---------------------------------------------------------------------------

// Search previous result on the Class Name Column
function searchPreviousSchool( search_word ) {
	var found = false;
	var content = new String();
	var schoolRow = $$('td.list_class_name').length;

	if( _current_row_school >= 0 && _current_row_school <= schoolRow ) _current_row_school--; // if within currently displayed rows, decrement _current_row_school
	
	clearListHighlights();

	if( !found && _current_row_school >= 0 && _current_row_school < schoolRow ) {
		for( var i = _current_row_school; i >= 0; i-- ) {
			var row = $$('td.list_class_name')[i];
			var curr_content = row.innerHTML;
			var content = row.innerHTML.toLowerCase();
			var word_start = content.indexOf( search_word.toLowerCase() , 0 );
	
			if( word_start != -1 ) {
				_current_row_school = i;
				_index_start_school = word_start - 1; 
				found = true;
				break;
			}
		}
	}

	if( !found ) {
		if($('previous_pagination').innerHTML != '') {
			previousPageList();
			_current_row_school = schoolRow;
			searchPreviousSchool( search_word )
			return false;
		} else {
			alert('No more schools were found');
			_current_row_school = 0;
			search_word = '';
			word_start = 0;
		}
	}
	
	$$('td.list_class_name')[_current_row_school].innerHTML = HighlightText( search_word , curr_content , 'highlightSchoolWord' , word_start );
	$('main_container').scrollTop = $('highlightSchoolWord').offsetParent.offsetTop - 50;	
}
// ---------------------------------------------------------------------------

// Hightlight the token word in the current text adding to it the asked HightlightCSS.
// The string will be checked from the start_index to the end
function HighlightText( token , text , HightlightCSS, start_index ) {
		
	var found_word = text.substring(start_index,(start_index + token.length));
	var before_text = text.substring(0,start_index);
	var after_text = text.substring((start_index + token.length),text.length);
	
	var returned_text = before_text + "<span id='"+HightlightCSS+"'>" + found_word + "</span>" + after_text;
	return returned_text;
}
// ---------------------------------------------------------------------------

function assignTeacherRowCount() {
	if(parseInt($('nr_page').value) < 0) {
		$('nr_page').value = 0;
		return false;
	}
	
	var length = $$('td.list_teacher_name').length;
	var found = false;
	var content = new String();
	var search_word = $('srch_teacher').value;
	
	while ( !found && length > 0 ) {
		length--;
		var row = $$('td.list_teacher_name')[length];
		content = row.innerHTML.toLowerCase();
		var word_start = content.lastIndexOf( search_word.toLowerCase() );
				
		if( word_start != -1 ) {
			_index_start_teacher = word_start - 1; 
			_current_row_teacher = length;
			
			found = true;
		}		
	}
	
	if( (length == 0) && ($('previous_pagination').innerHTML != '') ) {
		$('nr_page').value = parseInt($('nr_page').value) - 1;
		loadContent();
		assignTeacherRowCount();
	}
	
	return false;
}

function assignSchoolRowCount() {
	if(parseInt($('nr_page').value) < 0) {
		$('nr_page').value = 0;
		return false;
	}
	
	var length = $$('td.list_class_name').length;
	var found = false;
	var content = new String();
	var search_word = $('srch_school').value;
	
	while ( !found && length > 0 ) {
		length--;
		var row = $$('td.list_class_name')[length];
		content = row.innerHTML.toLowerCase();
		var word_start = content.lastIndexOf( search_word.toLowerCase() );
				
		if( word_start != -1 ) {
			_index_start_school = word_start - 1; 
			_current_row_school = length;
			
			found = true;
		}		
	}
	
	if( (length == 0) && ($('previous_pagination').innerHTML != '') ) {
		$('nr_page').value = parseInt($('nr_page').value) - 1;
		loadContent();
		assignSchoolRowCount();
		//setTimeout("assignSchoolRowCount()",2000);
	}
	
	return false;
}

// Clear Class Highlight words
function clearListHighlights() {
	$('main_container').innerHTML = _current_list_content;
	
	return true;
}
// ---------------------------------------------------------------------------