campobusca = 'Digite aqui o produto';
erroBusca = "Por Favor digite o nome do produto que procura.";

verificabusca();
validabusca();

var doAutoComplete = true;
function setAutoComplete(field_id, results_id, get_url) {
	acListTotal = 0;
	acListCurrent = -1;
	acDelay = 250;
	acURL = null;
	acSearchId = null;
	acResultsId = null;
	acSearchField = null;
	acResultsDiv = null;
	acSearchId = "#" + field_id;
	acResultsId = "#" + results_id;
	acURL = get_url;
	acSearchField = $(acSearchId);
	acResultsDiv = $(acResultsId);
	acSearchField.blur(function () {
		setTimeout("clearAutoComplete()", 200)
	});
	acSearchField.keyup(function (e) {
		var keyCode = e.keyCode || window.event.keyCode;
		var lastVal = acSearchField.val();
		if (updownArrow(keyCode)) {
			return;
		}
		if (keyCode == 13 || keyCode == 27) {
			clearAutoComplete();
			return;
		}
		setTimeout(function () {
			autoComplete(lastVal)
		},
		acDelay);
	});
}

function autoComplete(lastValue) {
	var part = acSearchField.val();
	if (part.length < 2) {
		return;
	}
	if (part == '') {
		clearAutoComplete();
		return;
	}
	if (lastValue != part) {
		return;
	}
	if (doAutoComplete == true) {
		$.getJSON(acURL + '?q=' + part, function (json) {
			var ansLength = acListTotal = json.length;
			if (ansLength > 0) {
				var newData = '';
				for (i = 0; i < ansLength; i++) {
					newData += '<div class="unselected">' + json[i] + '</div>';
				}
				acResultsDiv.html(newData);
				acResultsDiv.css("display", "block");
				var divs = $(acResultsId + " > div");
				divs.mouseover(function () {
					divs.each(function () {
						this.className = "unselected";
					});
					this.className = "selected";
				})
				divs.click(function () {
					acSearchField.val(this.childNodes[0].nodeValue);
					clearAutoComplete();
				});
			} else {
				clearAutoComplete();
			}
		});
	}
}

function clearAutoComplete() {
	acResultsDiv.html('');
	acResultsDiv.css("display", "none");
}

function updownArrow(keyCode) {
	if (keyCode == 40 || keyCode == 38) {
		if (keyCode == 38) {
			if (acListCurrent == 0 || acListCurrent == -1) {
				acListCurrent = acListTotal - 1;
			} else {
				acListCurrent--;
			}
		} else {
			if (acListCurrent == acListTotal - 1) {
				acListCurrent = 0;
			} else {
				acListCurrent++;
			}
		}
		acResultsDiv.children().each(function (i) {
			if (i == acListCurrent) {
				acSearchField.val(this.childNodes[0].nodeValue);
				this.className = "selected";
			} else {
				this.className = "unselected";
			}
		});
		return true;
	} else {
		acListCurrent = -1;
		return false;
	}
}


function verificabusca() {
	restauraCampo();
	$('#q').focus(function () {
		if ($('#q').val().indexOf('Digite aqui o nome') == -1) {
			ativabusca();
		}
	});
	$('#q').click(function () {
		limpaCampo();
	});
	$('#q').keydown(function () {
		limpaCampo();
	});
	$('#q').blur(function () {
		restauraCampo();
	});
	if ($('#q').val().indexOf('Digite aqui o nome') == -1) {
		ativabusca();
	}
}
function limpaCampo() {
	if ($('#q').val().indexOf('Digite aqui o nome') != -1) {
		ativabusca();
		$('#q').val('');
		$('#q').removeClass('input-busca-digiteaqui');
	}
}
var focoNaBusca = false;
function restauraCampo() {
	if ($('#q').val() == '' || $('#q').val().indexOf('Digite aqui o nome') != -1) {
		$('#q').removeClass('buscaon');
		$('#q').addClass('input-busca-digiteaqui');
		$('#q').val(campobusca);
		if (focoNaBusca == true) {
			setCaretPosition();
		}
	}
}
function buscar() {
	if ($('#q').val().indexOf('Digite aqui o nome') == -1) {
		document.form_busca.submit();
	}
}
function ativabusca() {
	$('#q').addClass('buscaon');
}

function validabusca() {
	$("form#form_busca").submit(function () {
		if ($("input#q").val() == "correct" || $("input#q").val().indexOf('Digite aqui o nome') != -1) {
			return false;
		} else {
			doAutoComplete = false;
			setTimeout('doAutoComplete = true;', 5000);
			return true;
		}
	});
}

