var tabsMap = [null,'articles','publications','users','teams','groups','objects','blogs'];
var defaultDefaults = [null,'TYTUŁ ARTYKUŁU','TYTUŁ PUBLIKACJI','IMIĘ, NAZWISKO LUB LOGIN','NAZWA ZESPOŁU', 'NAZWA GRUPY', 'NAZWA OBIEKTU', 'TYTUŁ BLOGOWPISU'];
var urlSearch = {
	artykuly:'1|articles',
	publikacje:'2|publications',
	uzytkownicy:'3|users',
	zespoly:'4|teams',
	grupy:'5|groups',
	obiekty:'6|objects',
	blogi:'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 = '';

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 expandAdvList(){
	$('#advForm').slideToggle('slow',function(){
		if($('#open').attr('src').indexOf('minus')>-1){
			$('#open').attr({
				src:'img/plus.gif'
			});
		}
		else{
			$('#open').attr({
				src:'img/minus.gif'
			});
		}
		resizeShadow();
	});
}

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:'KATEGORIA'
							});
						case 'work_specialization':
							customSelectPopulate(cats,item,{
								hiddenPopulate:'work_search_cats',

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

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

						case 'search_type':
							$('#search_type option[value="'+decodeURI(item)+'"]').attr({
								selected:true
							});
							changeSearchField($('#search_type'));
						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').val()]);
		}
	});
}

function changeSearchField(obj){
	var value = obj.val();

	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 = {};
	}

	$('#default_search_field').attr({
		name:'default_'+tabsMap[$('#search_type').val()]
	});
		
	if(defaultValue===true){
		$('#default_search_field').defaultvalue(defaultDefaults[$('#search_type').val()]);
		defaultValue=true;
	}				

	$("#btn_search").click(function(){
		$('#default_search_field').attr({
			id:'default_'+current_tab
		});
		usersContainer="olbs";
		sendSearchForm();
	});

	$("#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;
		}
	});

	$('#search_type').change(function(){
		changeSearchField($(this));
	});		

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

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

	$('#expandAdv').click(function(){
		expandAdvList();
	});

	$('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;
		}
	}

	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').val()]);
	}

	compleateFields();
	current_tab = tabsMap[$('#search_type').val()];

});
