function setFinder(){
	var icons = $('sections').select('.section');
	
	for(i=0; i < icons.length; i++){
    	
            var eventIcon = icons[i];
            Event.observe(eventIcon, 'click', function(event){
                    var elt = Event.element(event);
                    selectSection(elt);
            });
            
    }
    

    icons = $('attributes').select('.attribute');
    for(i=0; i < icons.length; i++){
    	var eventIcon = icons[i];
        Event.observe(eventIcon, 'click', function(event){
                var elt = Event.element(event);
                checkMarkActivity(elt);
        });
    }                         
}
function selectSection(element){
    var icons = $('sections').select('.section');
    var curClass = element.className;
    for(i=0; i < icons.length; i++){
            var section = icons[i];
            section.className = 'section';
    }
    if(curClass == 'section on'){
    	showSelected();
    	return false;
    }
	element.addClassName('on');
	showSelected();
}
function getTip(element){
    var tip = element.previous();
    new Tip(element, tip.innerHTML,{
                    hook: {'target':'bottomLeft'},
                    offset: {x:0, y:2}
            });
}

function highlightMarkedIcon(element){
    var boxElement = element.next().next();
    var placement = element.id.split('_');
    placement = placement.pop();
    if(boxElement.checked == true){
            element.style.backgroundPosition = (placement * -30)+'px -30px'; 
    }else{
            element.style.backgroundPosition = (placement * -30)+'px 0px';
    }
}
function checkMarkActivity(element){
    var boxElement = element;
    switch(element.nodeName){
    case 'SPAN':
        boxElement = element.previous();
        break;
    case 'INPUT':
		showSelected();
		return true;
        break;
    }
    if(boxElement.checked == true){
            boxElement.checked = false;
    }else{
            boxElement.checked = true;
    }
    showSelected();
}

function showSelected(){
	 var selected = $('attributes').select('.attribute');	
	 var selArray = new Array();
     for(i=0; i < selected.length; i++){
         var selItem = selected[i];
         selItem = selItem.down();
         selected[i].className = 'attribute';
         if(selItem.checked){
             var attId = selItem.id.split('_');
			selArray.push(attId[1]);
			selected[i].addClassName('on');
         }
     }
     showAllParks();
     filterParks(selArray)
     return false;
}
function showAllParks(){
	var park = $('parks').down();
	while(park != undefined){
		park.show();
		
		park = park.next();
	}
}
function filterParks(selArray){
	var park = $('parks').down();
	var curSection = getCurrentSection();

	while(park != undefined){
		if(shouldParkBeShown(park, curSection, selArray)==true){
			park.show();
		}else{
			park.hide();
		}
		
		park = park.next();
	}
}
function getCurrentSection(){
	var icons = $('sections').select('.section');
    for(i=0; i < icons.length; i++){
        var section = icons[i];
        if(section.className == 'section on'){
			var sectionId = section.id.split('-');
            return sectionId[1];
        }
    }
}
function shouldParkBeShown(park, curSection, selArray){
	var parkAtts = park.down().next();
	var parkSection = '';
	if(parkAtts != undefined && parkAtts.className == 'att-ids'){
		parkSection = parkAtts.next();
		parkAtts = parkAtts.innerHTML.split(':');
		if(checkIdMatch(selArray, parkAtts)== false){
			return false;
		}
		if(parkSection == undefined || parkSection.className != 'att-section'){
			return false;
		}else{
			parkSection = parkSection.innerHTML;
		}
	}else if(parkAtts != undefined && parkAtts.className == 'att-section' && selArray.length == 0){
		parkSection = parkAtts.innerHTML;
	}else{
		return false;
	}

	if(parkSection == curSection || curSection == undefined){
		return true;
	}
	return false;
}
function checkIdMatch(selArray, attIdArray){
	if(selArray.length == 0){
		return true;
	}
    for(p=0; p < selArray.length; p++){
            var found = false;
            for(j=0; j < attIdArray.length; j++){
                    if(attIdArray[j] == selArray[p]){
                        j = attIdArray.length;
                        found = true;
                    }
            }
            if(found == false){
                    return false;
            }
    }
    return true;
}