var tabsMap = [null,'articles','publications','users','teams','groups','objects','blogs'];
var defaultDefaults = [null,'Szukaj','Szukaj','Szukaj','Szukaj', 'Szukaj', 'Szukaj', 'Szukaj'];
var urlSearch = {
	artykuly:'1|articles',
	pliki:'2|publications',
	uzytkownicy:'3|users',
	zespoly:'4|teams',
	grupy:'5|groups',
	podmioty:'6|objects',
	blog:'7|blogs'
};
var miniSearchAdequateFields = {
	articles:'title',
	publications:'work_name',
	users:'',
	teams:'team_name',
	groups:'group_name',
	objects:'providers_object_name',
	blogs:'blog_title'
};
var search = {};

var view = 'list';
var order = 'young';
var category = 'user';
var limit = 1;
var users_extra_params = {};
var joiner = location.search=='' ? '?' : '&';

var url_search = '';
var errors = {};
var specs ={};
var teams ={};
var defaultCompleated=false;

var resUsers = '';
var resObjects = '';
var resGroups = '';
var resTeams = '';
var resPublications = '';
var resArticles = '';
var resBlogs = '';
var defaultValue = false;
var current_tab;

var sDefaultCurrentTab = 'blogs';



function sendSearchForm(additional){
	switch(current_tab){
		default:
		case 'articles':
			url_search = resArticles;
		break;
		case 'users':
			url_search = resUsers;
		break;
		case 'objects':
			url_search = resObjects;
		break;
		case 'groups':
			url_search = resGroups;
		break;
		case 'teams':
			url_search = resTeams;
		break;
		case 'publications':
			url_search = resPublications;
		break;
		case 'blogs':
			url_search = resBlogs;
		break;
	}
	$.search.send(current_tab,usersContainer,additional);
}

function compleateFields(){
	
	$.each(search,function(i,item){
		if(new RegExp(/default_/).test(i)){
			var adequateTab = i.split('_');
			var adequateObj = miniSearchAdequateFields[adequateTab];
			adequateTab = adequateTab[1];
			if(adequateObj!=''){
				$('#'+adequateObj).defaultvalue(decodeURI(item));
			}
			defaultCompleated=true;
		}
		else if(i!=adequateObj){
			
			defaultCompleated=false;
			
			var fieldType = $('#'+i).attr('type');
					
			switch(fieldType){
				case undefined:
				case 'select-one':
					
					switch (i){
						case 'person_field':
							customSelectPopulate(specs,item,{
								firstLevelPopulate:'person_specialization',
								firstLevelPopulateDef:'SPECJALIZACJA'
							});
						break;
						case 'team_field':
							customSelectPopulate(specs,item,{
								firstLevelPopulate:'team_specialization',
								firstLevelPopulateDef:'SPECJALIZACJA'
							});
						break;
						case 'work_field':
							customSelectPopulate(multilist,item,{
								hiddenPopulate:'work_search_cats',

								firstLevelPopulate:'work_specialization',
								firstLevelPopulateDef:'SPECJALIZACJA',

								secondLevelPopulate:'work_category',
								secondLevelPopulateDef:'TALENT'
							});
						case 'work_specialization':
							customSelectPopulate(cats,item,{
								hiddenPopulate:'work_search_cats',

								firstLevelPopulate:'work_category',
								firstLevelPopulateDef:'TALENT'
							});
						break;

						case 'blog_service':
							customSelectPopulate(multilist,item,{
								firstLevelPopulate:'blog_channel',
								firstLevelPopulateDef:'DZIAŁ'
							});
						break;

					}
					$('select[name="'+i+'"] option[value="'+decodeURI(item)+'"]').attr({
						selected:true
					});
				break;
				case 'text':
					$('#'+i).defaultvalue(decodeURI(item));
				break;
			}
		}
		if(defaultCompleated===false){
			//$('#default_search_field').defaultvalue(defaultDefaults[$('#search_type li.selected').attr('data-value')]);
		}
	});
}

function changeSearchField(obj){
	
	var value = obj.attr('data-value');
	
	current_tab = tabsMap[value];
	
	if(defaultValue===true){
		$('#default_search_field').defaultvalue(defaultDefaults[value]);
		$('#default_search_field').attr({
			name:'default_'+current_tab
		});
	}
	else{
		var tVal = $('#default_search_field').val();
		$('#default_search_field').attr({
			name:'default_'+current_tab
		});
		$('#default_search_field').val(tVal);
	}
	advSearchAvailable=false;
}


$(document).ready(function(){
	if(location.search!=''){
		search = $.searchQuery2array(location.search);
	}
	else{
		search = {};
	}
	
	
	var iSelectedType = $('#search_type li.selected').attr('data-value');
	
	
	if(defaultValue===true){
		//$('#default_search_field').defaultvalue(defaultDefaults[iSelectedType]);
		defaultValue = true;
		
		//$('#search_type li').removeClass('selected');
		//$(this).addClass('selected');
		
	}
	
	$('#default_search_field').attr({
		name:'default_'+tabsMap[iSelectedType]
	});
	

	$("#olbs").mouseenter(function(){
		$('#search_type').show();
	}).mouseleave(function(){
		$('#search_type').hide();
	})
	
	$("#btn_search").click(function(){
		$('#default_search_field').attr({
			id : 'default_'+current_tab
		});
		usersContainer="olbs";
		sendSearchForm();
	});
	
	$('#search_type li').click(function(){
		$('#search_type li').removeClass('selected');
		$(this).addClass('selected');
		changeSearchField($(this));
                $('#default_search_field').focus();
	});		
	

	$("#btn_adv_search").click(function(){
		usersContainer='advForm';
		sendSearchForm();
	});

	$('#default_search_field').keyup(function(){
		var tVal = $(this).val();
		if(tVal!='' && tVal!=null && tVal!=defaultDefaults[$('#search_type').val()]){
			defaultValue=false;
		}
	});

	
	$('#view').change(function(){
		view = $(this).val();
		location.href = $.modifySearchQuery(search,'view',view);
	});

	$('#order').change(function(){
		order = $(this).val();
		location.href = $.modifySearchQuery(search,'order',order);
	});

	$('div#adv_option_content :input').change(function (){
		switch(this.name){
			default :
				errors[this.name] = false;
			break;
			case 'work_age_from':
			case 'person_age_from':
				if(this.name=='work_age_from'){
					var check = 'work_age_to';
				}
				else if(this.name=='person_age_from'){
					var check = 'person_age_to';
				}
				if(($('#'+check).val()-this.value)<0 && $('#'+check).val()!=0){
					jAlert('pole "wiek od" nie może mieć większej wartości od pola "wiek do"');
					errors[this.name] = true;
					$(this).val('');
				}
				else{
					errors[this.name] = false;
				}
				if(new RegExp(/[^\d]/).test($(this).val())){
					jAlert('pole "wiek od" może zawierać tylko cyfry');
					errors[this.name] = true;
					$(this).val('');
				}
				else{
					errors[this.name] = false;
				}
			break;
			case 'work_age_to':
			case 'person_age_to':
				if(this.name=='work_age_to'){
					var check = 'work_age_from';
				}
				else if(this.name=='person_age_to'){
					var check = 'person_age_from';
				}
				if((this.value-$('#'+check).val())<0 && $('#'+check).val()!=0){
					jAlert('pole "wiek do" nie może mieć mniejszej wartości od pola "wiek od"');
					errors[this.name] = true;
					$(this).val('');
				}
				else{
					errors[this.name] = false;
				}
				if(new RegExp(/[^\d]/).test($(this).val())){
					jAlert('pole "wiek do" może zawierać tylko cyfry');
					errors[this.name] = true;
					$(this).val('');
				}
				else{
					errors[this.name] = false;
				}
			break;
	//            case 'person_language_level':
	//              if($('#person_language').val()==0){
	//                jAlert('Aby wybrać poziom zaawansowania języka, musisz wybrać język');
	//                errors[this.name] = true;
	//              }
	//              else{
	//                errors[this.name] = false;
	//              }
	//            break;
		}

	});
	
	if(typeof search['search_type']=='undefined'){
		var type = urlSearch[searchType];
		if(typeof type!='undefined'){
			type = type.split('|');
			var index = type[0];
			type = type[1];
			search['search_type'] = index;
			current_tab = type;
		}else{
			current_tab = sDefaultCurrentTab;
		}
	}
	
	if(typeof search['view']!='undefined'){
		$('#view option[value="'+search['view']+'"]').attr('selected',true);
	}
	if(typeof search['order']!='undefined'){
		$('#order option[value="'+search['order']+'"]').attr('selected',true);
	}
	
	
	if(typeof search['letter']!='undefined'){
		var selectedLetter = '';
		if(search['letter']!=''){
			selectedLetter = search['letter'].toUpperCase();
		}
		$('span.search_letter a').css({
			'color' : '#000000'
		});
		$('span.search_letter a[href="#fc/'+selectedLetter+'"]').css({
			'color' : '#FF9966'
		})
	}

	if(location.hash.indexOf('sadvs')>-1){
		showAdvOptions($('#btn_adv_option'));
		advSearchExpanded=true;
	}

	
	if(defaultCompleated===false){
		//$('#default_search_field').defaultvalue(defaultDefaults[$('#search_type').attr('data-value')]);
	}
		
//	compleateFields();
	
	if(typeof current_tab == 'undefined'){
		current_tab = tabsMap[$('#search_type li:first').attr('data-value')];
	}
	
	if(current_tab){
		$('#search_type li').removeClass('selected');
		$('#search_type li.'+current_tab).addClass('selected');
	}
	

});

