
var emptyResults = true;
function getSnapshotPage(symbolValue){
	if(symbolValue.indexOf(";") > -1){
		$.swim.uris.go('lelanResults', 'filterValue='+$('input#lelanVal').val().trim());
		return false;
	}
	if (symbolValue.length==0) return false;
	if (symbolValue.trim() == "Enter Symbol or Company") return false;	
	var symbols = symbolValue.split(',');
	if (symbols[0].trim().length==0) return false;
	var query = "?symbol=" + xmlEncode(symbols[0]) + "&";
	var relSymbolId = 1;
	for (var i=1; i<symbols.length; i++){
		var symbol = symbols[i].trim();
		if (symbol.length>0) query += "c"+(relSymbolId++)+"Symbol=" + symbol + "&";
	}
	var newPageLocation = (symbols.length==1)? 'snapShotPage' : 'snapShotComparisonPage';
	$.swim.uris.go(newPageLocation, query);
	return false;
}
function throttle(e){
	$.swim.throttle.throttle(runlelan);
}
var lastRun = "";
var disablehide = false;
nofocus = true;
function runlelan(){
	var filterValue = $('input#lelanVal').val();
	if(filterValue == null || filterValue.replace(/^\s+|\s+$/g,"").length == 0 || lastRun == filterValue)
		return;
	lastRun = filterValue;
	 var xmlDocument = "xml=<request name='lelan'><![CDATA["+xmlEncode(filterValue)+"]]></request>";
	 $.ajax({
	   url: $.swim.uris.getUrl('lelanBridge'),
	   processData: false,
	   data: xmlDocument,
	   success: testResults
	 });
}
	var lelanHistory = new Array();
	var selectedHistory = -1;
	var hideTimeout = null;
	var selectedlelanElID = -1;
	function testResults(doc){
		selectedlelanElID = -1;
		$('div#lelanResults').html(doc);
		var cval = $.trim($("input#lelanVal").val());
		if(cval != "" && cval != "Enter Symbol or Company"){
			$('div#lelanResults').fadeIn("fast");
			$('div.lelanResultsContent')
				.bind('mouseover', function(){
					disablehide = true;
				}).bind('mouseout', function(){
					disablehide = false;
				}).bgIframe();
		}else{
			$('div#lelanResults').hide();
		}
		resetHideResults();
	}
	function hideResults(){
		if(disablehide){
			resetHideResults();
			return;
		}
		selectedlelanElID = -1;
		$('div#lelanResults').fadeOut("fast");
	}
	function resetHideResults(){
		if(hideTimeout != null)
			clearTimeout(hideTimeout);
		hideTimeout = setTimeout(hideResults, 15000);
	}
	function denote(){
		savePreference('lelan.focused', 'true');
		$('input#lelanVal')
			.val("")
			.css('color', '#000000')
			.unbind('focus')
			.bind('focus', saveFocused);
	}
	function saveFocused(){
		savePreference('lelan.focused', 'true');
	}
	function rememberFocus(){
		if(userPrefs['lelan.focused'] != null &&
				userPrefs['lelan.focused'] == 'true')
			$('input#lelanVal').focus();
	}
	function rotateHistory(dirdown){
		var count = lelanHistory.length;
		if(count == 0) return;
		if(dirdown){
			selectedHistory ++;
			if(selectedHistory == count) selectedHistory = 0;
		}else{
			selectedHistory --;
			if(selectedHistory < 0) selectedHistory = (count - 1);
		}
		hideResults();
		$('input#lelanVal').val(lelanHistory[selectedHistory]);
		throttle();
	}
	function rotatelelanSelect(dirdown){
		var count = $('div.lelanlineItem').size();
		if(dirdown){
			selectedlelanElID ++;
			if(selectedlelanElID == count) selectedlelanElID = 0;
		}else{
			selectedlelanElID --;
			if(selectedlelanElID < 0) selectedlelanElID = (count - 1);
		}
		$('.lelan_selected').removeClass('lelan_selected');
		$('#lelan_'+selectedlelanElID).addClass('lelan_selected');
	}
	function keyDownEvent(event){
		resetHideResults();
		if(event.keyCode == $.swim.keyHandler.keys.ESC){// escape key
			hideResults();
		}else if(event.keyCode == $.swim.keyHandler.keys.ENTER){// enter key
			addHistory();
			if(selectedlelanElID > -1){
				$('div#lelan_'+selectedlelanElID).trigger('click');
				if($('#lelan_'+selectedlelanElID).find('a').size() > 0){
					var href = $('#lelan_'+selectedlelanElID).find('a').attr('href');
					if(href != null && href.trim().length > 0)
						window.location = href;
					return;
				}
			}else{
				var symbolValue = $('input#lelanVal').val().trim().toUpperCase();
				getSnapshotPage(symbolValue);
			}
		}else if(event.keyCode == $.swim.keyHandler.keys.UP){// up arrow
			if($.swim.keyHandler.shiftDown) rotateHistory(false);
			else rotatelelanSelect(false);
		}else if(event.keyCode == $.swim.keyHandler.keys.DOWN){// down arrow
			if($.swim.keyHandler.shiftDown) rotateHistory(true);
			else rotatelelanSelect(true);
		}else{
			$('input#lelanVal').css('color', '#000000')
			lastRun = "";
		}
	}
	function setHistory(){
		var list = userPrefs['lelan.history'];
		if(list != null){
			lelanHistory = new Array();
			var tList = list.split("^");
			for(var i = 0; i < tList.length; i++){
				if(tList[i] != null && tList[i].trim() != ""){
					lelanHistory.push(tList[i]); 
				}
			}
		}
	}
	function addHistory(){
		var val = $('input#lelanVal').val();
		if(val == null || val.trim() == "Enter Symbol or Company" || val.trim() == "") return;
		var newHistory = val;
		var count = 0;
		for(var i = 0; (i < lelanHistory.length && count < 10); i++){
			if(lelanHistory[i] == val) continue;
			count++;
			newHistory += "^"+lelanHistory[i];
		}
		userPrefs['lelan.history'] = newHistory;
		savePreference("lelan.history", newHistory);
	}
	$(document).ready(function(){
		getPreference("lelan.history", setHistory);
		// adding after page load may help with zindex issue.
		$('div#snapCenter').after("<div id='lelanResults'></div>");
		$('img#getSnapButton')
			.bind('mouseover', function(){
				$(this).attr('src', $.swim.uris.getImg('snapHover').src);
			}).bind('mouseout', function(){
				$(this).attr('src', $.swim.uris.getImg('snapActive').src);
			}).bind('mousedown', function(){
				$(this).attr('src', $.swim.uris.getImg('snapPress').src);
			}).bind('mouseup', function(){
				$(this).attr('src', $.swim.uris.getImg('snapHover').src);
			});
		$('input#lelanVal')
			.bind('keyup', throttle)
			.bind('keydown', keyDownEvent)
			.bind('blur', function(){
				savePreference('lelan.focused', 'false');
				var tval = $(this).val();
				if(tval == null || tval.trim() == "Enter Symbol or Company" || tval.trim() == ""){
					$(this).val("Enter Symbol or Company")
						.bind('focus', denote)
						.css('color', 'rgb(153,153,153)');
				}
			});
		var tval = $('input#lelanVal').val();
		if(tval == null || tval.trim() == "Enter Symbol or Company" || tval.trim() == ""){
			$('input#lelanVal').val("Enter Symbol or Company")
				.bind('focus', denote)
				.css('color', 'rgb(153,153,153)');
		}else{
			$('input#lelanVal')
				.css('color', '#000000')
		}
		getPreference('lelan.focused', rememberFocus);
		$('input#lelanVal').select();
	});
	

		