//search dropdowns and advanced search behavior

function getGet(str) {
	var get = {};
	document.location.search.replace(/\??(?:([^=]+)=([^&]*)&?)/g, function () {
		function decode(s) {
			return decodeURIComponent(s.split("+").join(" "));
		}
		get[decode(arguments[1])] = decode(arguments[2]);
	});
	try {
		return get[str];
	} catch(err) {
		return null;
	}
}

function setZindexes() {
	$('#selectTopicField-menu').css('zIndex', 100);
	$('#selectSubTopicField-button').css('zIndex', 11);
	$('#selectSubTopicField-menu').css('zIndex', 10);
}

function toggleAdvanced(show) {
	if (show) {
		$("#resource-adv")
			.fadeIn()
			.show()
			.find('.selectField')
				.removeClass('ui-selectmenu-disabled')
				.removeClass('ui-state-disabled')
				.attr('disabled', false);
		$('#adv-resource a').html('Start New Search');
		$('#advanced').attr('disabled', false).val(1);
		
		$('#resource-adv select').selectmenu({style:'dropdown'});
		setZindexes();
		
	} else {
		$("#resource-adv")
			.hide()
			.find('.selectField')
				.addClass('ui-selectmenu-disabled')
				.addClass('ui-state-disabled')
				.attr('disabled', true);
		$('#resource-adv select').each(function() {
			$('#' + $(this).attr('id') + '-menu li').removeClass('ui-selectmenu-item-selected');
			$(this).next().find('.ui-selectmenu-status').html($(this).find('option:eq(0)').html());
		});
		$('#adv-resource a').html('Advanced Search');
		$('#advanced').attr('disabled', true).val(0);
		
		$('#resource-adv select').selectmenu('destroy');
		setZindexes();
		
	}
}

function setupSubtopic() {
	if ($('#selectSubTopicField').children().length > 1) {
		// enable it
		$('#selectSubTopicField')
			.attr('disabled', false)
			.removeClass('ui-selectmenu-disabled')
			.removeClass('ui-state-disabled');
		$('#selectSubTopicField-button').css('opacity', 1);
	} else {
		// disable it
		$('#selectSubTopicField')
			.attr('disabled', true)
			.addClass('ui-selectmenu-disabled')
			.addClass('ui-state-disabled');
		$('#selectSubTopicField-button').css('opacity', 0.5);	
	}
}

function topicChange() {
	$('#selectSubTopicField').html('<option value="0">All Subtopics</option>');
	if ($('#selectTopicField').val()) {
		// get the subtopics
		var p = $('#selectTopicField').val();
		var st = getGet('subtopic');
		$.getJSON('/resources/sub-topics/'+p+'/1?subtopic='+st, function(r) {
			$('#selectSubTopicField').html('<option value="0">All Subtopics</option>');
			
			$('select#selectSubTopicField').selectmenu('destroy');
			
			if (r.length) {
				rl = r.length;
				for (var i=0; i<rl; i++) {
					var obj = r[i];
					var selected = obj.selected ? ' selected="selected"' : '';
					$('#selectSubTopicField').append('<option value="'+obj.tid+'"'+selected+'>'+obj.name+'</option>');
				}
			}
			
			$('select#selectSubTopicField').selectmenu({style:'dropdown'});
			
			setupSubtopic();
		});
	} else {
		// disable the subtopic
		setupSubtopic();
	}
}


$(document).ready(function() {
		
	if (window.location.href.indexOf('advanced=1') == -1) {
		toggleAdvanced(false);
	}
	
	setupSubtopic();
	topicChange();
	
	$("#adv-resource a").click( function() {
		if ($("#resource-adv").is(":hidden")) {
			// show it
			toggleAdvanced(true);
			setupSubtopic();
		} else {
			// hide it
			toggleAdvanced(false);
		}
	});
		
	$('#selectTopicField').change(function() {
		topicChange();
	});
	
	$('select.selectField').selectmenu({style:'dropdown'});
	
	setZindexes();
	
});
