var arrivalRequest;
var arrivalResult = null;
var dstArrivalObj = null;
var arrivalIndex = -1;
var arrivalSelectedValue = null;
var arrivalOk = false;
var arrivalInput = null;
var arrivalSrollVisible = false;
var finalDeparture = null;
var finalArrival = null;
var finalRequest;
function arrivalIn() {
dstArrivalObj = document.getElementById('plecari');
clearTimeout(thread);
hideDepartures();
// daca e scris ceva in inputul de sosiri in momentul in care ia focusul lansam thread-ul
arrivalInput = document.getElementById('la');
if (arrivalInput.value != '') {
if (thread != null)
clearTimeout(thread);
thread = setTimeout('doArrivalRequest()', 300);
}
}
function arrivalOut() {
clearTimeout(thread);
hideArrivals();
}
function arivalKeyUp(key) {
hideDepartures();
arrivalInput = document.getElementById('la');
if (arrivalInput.value == '') {// daca e vid anulam call-ul si ascundem meniul
clearTimeout(thread);
hideArrivals();
return;
}
if ((key == 9) || (key == 13) || (key == 38) || (key == 40) || (key == 16))
// tab, enter, sageata sus, sageata jos, shift
return true;
if (thread != null)
clearTimeout(thread);
thread = setTimeout('doArrivalRequest()', 300);
}
function arrivalKeyDown(key) {
hideDepartures();
arrivalInput = document.getElementById('la');
dstArrivalObj = document.getElementById('sosiri');
if (arrivalInput.value == '') {// daca e vid anulam call-ul si ascundem meniul
clearTimeout(thread);
hideArrivals();
}
if ((key == 9) && (arrivalSelectedValue != null) && (arrivalOk)) {
arrivalInput.value = arrivalSelectedValue;
hideArrivals();
finish();
}
if ((key == 13) && (arrivalSelectedValue != null) && (arrivalOk)) {
arrivalInput.value = arrivalSelectedValue;
hideArrivals();
finish();
}
// daca meniul nu este vizibil nu tinem cont de sageata sus si sageata jos
if (! arrivalSrollVisible)
return true;
if (key == 38) {
if (arrivalIndex > 0) {
arrivalIndex--;
showArrivals();
buildArrivalTable();
}
return true;
}
if (key == 40) {
if (arrivalIndex < arrivalResult.arrivals.length - 1) {
arrivalIndex++;
showArrivals();
buildArrivalTable();
}
return true;
}
}
function doArrivalRequest() {
if (arrivalInput.value == '') // daca e vid nu face call-ul
return;
departureInput = document.getElementById('dela');
try {
if (window.XMLHttpRequest)
arrivalRequest = new XMLHttpRequest();
else
if (window.ActiveXObject)
arrivalRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
return false;
}
arrivalRequest.onreadystatechange = waitArrivalResponse;
arrivalRequest.open('GET', 'getsosiri.php?' + departureInput.name + '=' + replaceDiacritics(townMatch(departureInput.value)) + '&' + arrivalInput.name + '=' + replaceDiacritics(townMatch(arrivalInput.value)), true);
arrivalRequest.send('');
return true;
}
function waitArrivalResponse() {
if (arrivalRequest.readyState == 4) {
if (arrivalRequest.status == 200) {
arrivalResult = eval('(' + arrivalRequest.responseText + ')');
if (arrivalResult.arrivals.length == 0) {
arrivalResult.arrivals[0] = 'Nici o cursÄ gÄsitÄ!'
arrivalOk = false;
}
else {
arrivalOk = true;
}
arrivalIndex = 0;
if (!((arrivalInput.value == '') || ((replaceDiacritics(townMatch(arrivalInput.value.toLowerCase())) == replaceDiacritics(arrivalResult.arrivals[0].toLowerCase())) && (arrivalResult.arrivals.length == 1)))) {
showArrivals();
buildArrivalTable();
}
// un singur raspuns, match perfect pe user input
if ((replaceDiacritics(townMatch(arrivalInput.value.toLowerCase())) == replaceDiacritics(arrivalResult.arrivals[0].toLowerCase())) && (arrivalResult.arrivals.length == 1)) {
hideArrivals();
finish();
}
}
}
}
function showArrivals() {
if (dstArrivalObj == null)
return;
dstArrivalObj.style.top = '81px';
dstArrivalObj.style.left = $('#la').offset().left + 'px';
dstArrivalObj.style.visibility = 'visible';
dstArrivalObj.style.display = 'inline';
arrivalSrollVisible = true;
}
function hideArrivals() {
if (dstArrivalObj == null)
return;
while (dstArrivalObj.rows.length > 0)
dstArrivalObj.deleteRow(0);
dstArrivalObj.style.visibility = 'hidden';
dstArrivalObj.style.display = 'none';
arrivalSrollVisible = false;
arrivalSelectedValue = null;
}
function selectArrivalTableItem() {
var color;
if (arrivalOk)
color = '#14a143';
else
color = 'red';
for (var i = 0; i < dstArrivalObj.rows.length; i++) {
var row = dstArrivalObj.rows[i];
var cell = row.cells[0];
if (i == arrivalIndex) {
cell.style.color = 'white';
cell.style.backgroundColor = color;
arrivalSelectedValue = arrivalResult.arrivals[i];
}
else {
cell.style.color = '#666666';
cell.style.backgroundColor = 'white';
}
}
}
function getArrivalTableItemIndex(cell) {
for (var i = 0; i < dstArrivalObj.rows.length; i++) {
var row = dstArrivalObj.rows[i];
if (row.cells[0] == cell)
return i;
}
}
function buildArrivalTable() {
while (dstArrivalObj.rows.length > 0)
dstArrivalObj.deleteRow(0);
if (arrivalResult == null)
return;
for (var i = 0; i < arrivalResult.arrivals.length; i++) {
var row = dstArrivalObj.insertRow(i);
var cell = row.insertCell(0);
cell.innerHTML = arrivalResult.arrivals[i];
cell.onmousemove = function() {
arrivalIndex = getArrivalTableItemIndex(this);
selectArrivalTableItem();
}
cell.onmousedown = function() {
arrivalIndex = getArrivalTableItemIndex(this);
selectArrivalTableItem();
if (arrivalOk) {
arrivalInput.value = arrivalSelectedValue;
finish();
}
hideArrivals();
}
}
selectArrivalTableItem();
}
function finish() {
try {
if (window.XMLHttpRequest)
finalRequest = new XMLHttpRequest();
else
if (window.ActiveXObject)
finalRequest = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
return false;
}
finalDeparture = townNameFormat(townMatch(replaceDiacritics(departureInput.value)));
finalArrival = townNameFormat(townMatch(replaceDiacritics(arrivalInput.value)));
finalRequest.onreadystatechange = doFinalRequest;
finalRequest.open('GET', 'autocare.php?nmp=1&dela=' + finalDeparture + '&la=' + finalArrival, true);
finalRequest.send('');
return true;
}
function doFinalRequest() {
if (finalRequest.readyState == 4) {
if (finalRequest.status == 200) {
var content = document.getElementById('content');
content.innerHTML = finalRequest.responseText;
document.title = 'Orarul curselor FANY de la ' + finalDeparture + ' la ' + finalArrival;
var urlDeparture = finalDeparture.replace(/-/g, ' ');
var urlArrival = finalArrival.replace(/-/g, ' ');
var ajax_url = '/autocare-' + urlDeparture + '-' + urlArrival;
var pageTracker = _gat._getTracker('UA-9627298-1');
pageTracker._trackPageview(ajax_url);
// +1 code
var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
po.src = 'https://apis.google.com/js/plusone.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
}
}
}