// EUREMUETTER.DE TERMINE JS
// CREATED 2009/NOV/02
// TGXMEDIA.COM

// *******************************
// *** CONSTANTS
// *******************************
var SLIDE_DURATION      = 0.25;
var SEARCH_DEFAULT_TEXT = 'PLZ, Ort oder Land';
var NO_HITS_TEXT        = 'Keine Termine gefunden.';

// *******************************
// *** PROPS
// *******************************
var itemsFound = 0;

function initPage(){
	sfBlurred();
	showSearchResults(gigData.length);
}

function filterGigs(input){
	
	var searchTerm  = trim(input.value);
	var filterByZIP = (searchTerm.match(/^\d+$/) != null);
	
	var tmpGig;
	var tmpDomNode;
	var tmpSearchStrings;
	
	itemsFound = 0;
	
	for(var i = 0; i< gigData.length; i++){
		
		tmpGig     = gigData[i];
		tmpDomNode = $(tmpGig.domID); 
		
		if(filterByZIP){
			tmpSearchStrings = [tmpGig.zip];
		}else{
			tmpSearchStrings = [tmpGig.city, tmpGig.country];
		}
		
		var matched = false;
		for (var j= 0; j<tmpSearchStrings.length; j++){
			if(tmpSearchStrings[j].length > 0){
				matched = (tmpSearchStrings[j].slice(0,searchTerm.length).toLowerCase() == searchTerm.toLowerCase());
				if(matched){
					break;
				}
			}
		}
		
		if(matched){
			tmpDomNode.style.display = 'block';
			itemsFound++;
		}else{
			tmpDomNode.style.display = 'none';
		}
		
		
	}
	
	showSearchResults();
	
}

function showSearchResults(){
	
	var domNode = $('searchInfo');

	if(itemsFound > 0){
		var gigString = "Termine";
		if(itemsFound == 1){
			gigString = "Termin";
		}
		domNode.innerHTML = itemsFound + ' ' + gigString;
		
	}else{
		domNode.innerHTML = NO_HITS_TEXT;
	}
	
}

function sfFocussed(){
	var searchField = $('searchField');
	if(trim(searchField.value).length > 0){
		$('searchField').value = '';
		filterGigs(searchField);
	}
	
	Effect.BlindDown('searchInfo', { duration: SLIDE_DURATION });
}

function sfBlurred(){
	var searchField = $('searchField');
	
	if(itemsFound == 0 || trim(searchField.value).length == 0){ // SHOW ALL
		var oldVal = searchField.value;
		searchField.value = '';
		filterGigs(searchField);
		searchField.value = SEARCH_DEFAULT_TEXT;
	}
	
	Effect.BlindUp('searchInfo', { duration: SLIDE_DURATION });
}

function trim(str){
	return str.replace (/^\s+/, '').replace (/\s+$/, '');
}
    
 
