function reSet ()
{
if (timeFilter == 0) {
arrTimeF1 = 0;
arrTimeF2 = 1440;
depTimeF1 = 0;
depTimeF2 = 1440;
}
//filter = 0;
//providers = new Array();
}

function tail ()
{
filter = 1;
}

function trim (str) 
{
return str.replace(/^\s+|\s+$/g,"");
}

function filterOut (str)
{
providers[str] = (providers[str] + 1) % 2;
sortRes = 0;
sortResults(sortBy, 1);
}

function showFilterProviders ()
{
var i;
var out = "";
var str1 = 'checked="checked" type="checkbox" />';
var str2 = 'type="checkbox" />';

out = '<div class="provider_header">Provider Filter</div>'
out = out + '<table class="provider_table"><tbody>';
for (i in providers) {
out = out + '<tr class="result_row">';
out = out +'<td NOWRAP align = "center">' + '<div class="result_row" >'+ '<input id="' + i + '" ';

if (providers[i] == null || providers[i] == 1) {
out = out + 'onClick = filterOut("' + i + '") '  + str1 + '</div></td>';
} else {
out = out + 'onClick = filterOut("' + i + '") '  + str2 + '</div></td>';
}
out = out + '<td NOWRAP align = "left" >' + '<div class = "edoLabel">' + unescape(i) + '</div> </td>';
out = out + "</tr>";
}
out = out + "</tbody></table>";
document.getElementById("filters").innerHTML=out;
}

function filterViaPoint (str)
{
viaPoints[str] = (viaPoints[str] + 1) % 2;
sortRes = 0;
sortResults(sortBy, 1);
}

function showFilterViaPoints ()
{
var i;
var out = "";
var str1 = 'checked="checked"; type="checkbox" />';
var str2 = 'type="checkbox"; />';

out = '<div class="via_header">Via Filter</div>'
out = out + '<table class="via_table"><tbody>';
for (i in viaPoints) {
out = out + '<tr class="result_row">';
out = out +'<td NOWRAP align = "center">' + '<div class="result_row" >'+ '<input id="' + i + '" ';

if (viaPoints[i] == null || viaPoints[i] == 1) {
out = out + 'onClick = filterViaPoint("' + i + '"); '  + str1 + '</div></td>';
} else {
out = out + 'onClick = filterViaPoint("' + i + '"); '  + str2 + '</div></td>';
}
out = out + '<td NOWRAP align = "left" >' + '<div class = "edoLabel">' + unescape(i) + '</div> </td>';
out = out + "</tr>";
}
out = out + "</tbody></table>";
document.getElementById("viaFilter").innerHTML=out;
}

function applyTimeFilter ()
{
var h1, h2, m1, m2;
var obj;
var ampm;

obj = document.getElementById("arrTimeFilter11");
h1 = obj.options[obj.selectedIndex].value;
obj = document.getElementById("arrTimeFilter12");
m1 = obj.options[obj.selectedIndex].value;
obj = document.getElementById("arrTimeFilter21");
h2 = obj.options[obj.selectedIndex].value;
obj = document.getElementById("arrTimeFilter22");
m2 = obj.options[obj.selectedIndex].value;

arrTimeF1 = h1 * 60;
arrTimeF1 = +m1 + arrTimeF1;
obj = document.getElementById("ampm1");
ampm = obj.options[obj.selectedIndex].value;
arrTimeF1 = arrTimeF1 + 720 * ampm;

arrTimeF2 = h2 * 60;
arrTimeF2 = +m2 + arrTimeF2;
obj = document.getElementById("ampm2");
ampm = obj.options[obj.selectedIndex].value;
arrTimeF2 = arrTimeF2 + 720 * ampm;

obj = document.getElementById("depTimeFilter11");
h1 = obj.options[obj.selectedIndex].value;
obj = document.getElementById("depTimeFilter12");
m1 = obj.options[obj.selectedIndex].value;
obj = document.getElementById("depTimeFilter21");
h2 = obj.options[obj.selectedIndex].value;
obj = document.getElementById("depTimeFilter22");
m2 = obj.options[obj.selectedIndex].value;

depTimeF1 = h1 * 60;
depTimeF1 = +m1 + depTimeF1;
obj = document.getElementById("ampm3");
ampm = obj.options[obj.selectedIndex].value;
depTimeF1 = depTimeF1 + 720 * ampm;

depTimeF2 = h2 * 60;
depTimeF2 = +m2 + depTimeF2;
obj = document.getElementById("ampm4");
ampm = obj.options[obj.selectedIndex].value;
depTimeF2 = depTimeF2 + 720 * ampm;
reSet();
sortRes = 0;
sortResults(sortBy, 1);
tail();
}

function isValidTime (time)
{
var h, m;
var ind;

ind = time.indexOf(":");
if (ind == -1) {
return(-1);
}
if (ind != 1 && ind != 2) {
return(-1);
}
if (time.length - ind != 3) {
return(-1);
}
h = time.substring(0, ind);
m = time.substring(ind+1);
if (h < 0 || m < 0 || h > 12 || m > 59) {
return(-1);
}
return(0);
}

function isWithInRange(time, arrDep)
{
if (time == "-") {
return(0);
}
if (arrDep == 0) {

if (time == "source" || time == "Source") {
return(0);
}
if (arrTimeF1 >= arrTimeF2) {
if (time > arrTimeF1 || time < arrTimeF2) {
return(0);
}
return(-1);
} else {
if (time > arrTimeF1 && time < arrTimeF2) {
return(0);
}
return(-1);
}
} else if (arrDep == 1) {
if (time == "destination" || time == "Destination") {
return(0);
}
if (depTimeF1 >= depTimeF2) {
if (time > depTimeF1 || time < depTimeF2) {
return(0);
}
return(-1);
} else {
if (time > depTimeF1 && time < depTimeF2) {
return(0);
}
return(-1);
}
}
return(-1);
}

function clearTimerFilter (f)
{
f.value="";
}

function getAmPm (id, opt)
{
var out = "";
out = out + '<select id="ampm' + id + '" onChange="applyTimeFilter()">';

if (opt == 0) {	
out = out + '<option selected value = 0> AM </option>';
out = out + '<option value = 1> PM </option>';
} else {
out = out + '<option value = 0> AM </option>';
out = out + '<option selected value = 1> PM </option>';
}
out = out + '</select>';
return(out);
}

function getHourOptions (val)
{
var i = 0;
var out = "";
var t;

for (i = 0; i < 12; i++) {
if (i < 10) {
t = "0" + i;
} else {
t = i;
}
if (i == val) {
out = out + '<option selected value = ' + t + '>' + t + '</option>';
} else {
out = out + '<option value = '+ t + '>' + t + '</option>';
}
}
return(out);
}

function getMinOptions (val)
{
var i = 0;
var t;
var out = "";

for (i = 0; i < 60; i = i + 15) {
if (i < 10) {
t = "0" + i;
} else {
t = i;
}
if (i == val) {
out = out + '<option selected value = ' + t + '>' + t + '</option>';
} else {
out = out + '<option value = '+ t + '>' + t + '</option>';
}
}
return(out);
}

function showFilterTime ()
{
var out = "";

if (timeFilter == 1) {
return;
}
out = '<div class="arr_header"> ArrTime Filter</div>'
out = out + '<table class="arr_table"><tbody>';
out = out + '<tr> <td> <div class="edoLabel" >From (hh:mm)</div></td> </tr>';
out = out + '<tr>';
out = out + '<td>';
out = out + '<table><tbody><tr> <td><select  id="arrTimeFilter11" onChange="applyTimeFilter()">' + getHourOptions(0)+ '</select></td>' +  '<td><select  id="arrTimeFilter12" onChange="applyTimeFilter()">' + getMinOptions(0)+ '</select></td>' + '<td>' + getAmPm(1, 0) + '</td></tr></tbody></table>';
out = out + '</td>';
out = out + '</tr>';

out = out + '<tr><td><div class="edoLabel" >To (hh:mm)</div></td> </tr>';
//out = out + '<table class="filterTable"><tbody>';
out = out + '<tr><td>';
out = out + '<table><tbody><tr> <td><select  id="arrTimeFilter21" onChange="applyTimeFilter()">' + getHourOptions(0)+ '</select></td>' +  '<td><select  id="arrTimeFilter22" onChange="applyTimeFilter()">' + getMinOptions(0)+ '</select></td>' + '<td>' + getAmPm(2, 0) + '</td></tr></tbody></table>';
out = out + '</td></tr>';

out = out + '</tbody></table>';

out = out + '<div class="via_header"> DepTime Filter</div>'
out = out + '<table class="via_table"><tbody>';
out = out + '<tr> <td> <div class="edoLabel" >From (hh:mm)</div></td> </tr>';
out = out + '<tr><td>';
out = out + '<table><tbody><tr> <td><select  id="depTimeFilter11" onChange="applyTimeFilter()">' + getHourOptions(0)+ '</select></td>' +  '<td><select  id="depTimeFilter12" onChange="applyTimeFilter()">' + getMinOptions(0)+ '</select></td>' + '<td>' + getAmPm(3, 0) + '</td></tr></tbody></table>';
out = out + '</td></tr>';

out = out + '<tr><td> <div class="edoLabel" >To (hh:mm)</div></td> </tr>';
out = out + '<tr><td>';
out = out + '<table><tbody><tr> <td><select  id="depTimeFilter21" onChange="applyTimeFilter()">' + getHourOptions(0)+ '</select></td>' +  '<td><select  id="depTimeFilter22" onChange="applyTimeFilter()">' + getMinOptions(0)+ '</select></td>' + '<td>' + getAmPm(4, 0) + '</td></tr></tbody></table>';
out = out + '</td></tr>';

out = out + '</tbody></table>';
document.getElementById("timeRange").innerHTML = out;
}

function filterHops (i, j)
{
hopsArray[i] = (hopsArray[i] + 1) % 2;
hopNums[j] = (hopNums[j] + 1) % 2;
reSet();
sortRes = 0;
sortResults(sortBy, 1);
tail();

}

function showFilterHops ()
{
var i;
var j;
var out = "";
var str1 = 'checked="checked" type="checkbox" />';
var str2 = 'type="checkbox" />';

out = '<div class="provider_header">Hops Filter</div>'
out = out + '<table class="provider_table"><tbody>';
j = 1;
for (i in hopsArray) {
out = out + '<tr class="result_row">';
out = out +'<td NOWRAP align = "center">' + '<div class="result_row">'+ '<input id="' + i + '" ';

if (hopsArray[i] == 1) {
out = out + 'onClick = filterHops("'+i +'",'+ j+') '  + str1 + '</div></td>';
} else {
out = out + 'onClick = filterHops("'+i + '",' + j+ ') '  + str2 + '</div></td>';
}
out = out + '<td NOWRAP align = "center" >' + '<div class = "edoLabel">' + (i) + '</div> </td>';
out = out + "</tr>";
j++;

}
out = out + "</tbody></table>";
document.getElementById("hopsFilter").innerHTML=out;
}

function showFilterSources ()
{
var i;
var out = "";
var str1 = 'checked="checked" type="checkbox" />';
var str2 = 'type="checkbox" />';
filterSize = 0;

out = '<div class="result_header">Sources Filter</div>'
out = out + '<table class="filterTable"><tbody>';
for (i in sources) {
out = out + '<tr class="result_row">';
out = out +'<td NOWRAP align = "center";>' + '<div class="result_row"; >'+ '<input id="' + i + '" ';

if (sources[i] == null || sources[i] == 1) {
out = out + 'onClick = filterSource("' + i + '") '  + str1 + '</div></td>';
} else {
out = out + 'onClick = filterSource("' + i + '") '  + str2 + '</div></td>';
}
out = out + '<td NOWRAP align = "center"; >' + '<div class = "edoLabel";>' + unescape(i) + '</div> </td>';
out = out + "</tr>";
filterSize++;
}
out = out + "</tbody></table>";
document.getElementById("srcFilter").innerHTML=out;
}

function filterSource (str)
{
sources[str] = (sources[str] + 1) % 2;
sortRes = 0;
sortResults(sortBy, 1);
}

function filterDestination (str)
{
destinations[str] = (destinations[str] + 1) % 2;
sortRes = 0;
sortResults(sortBy, 1);
}

function showFilterDestinations ()
{
var i;
var out = "";
var str1 = 'checked="checked" type="checkbox" />';
var str2 = 'type="checkbox" />';

out = '<div class="result_header">Destinations Filter</div>'
out = out + '<table class="filterTable"><tbody>';
for (i in destinations) {
out = out + '<tr class="result_row">';
out = out +'<td NOWRAP align = "center";>' + '<div class="result_row"; >'+ '<input id="' + i + '" ';

if (destinations[i] == null || destinations[i] == 1) {
out = out + 'onClick = filterDestination("' + i + '") '  + str1 + '</div></td>';
} else {
out = out + 'onClick = filterDestination("' + i + '") '  + str2 + '</div></td>';
}
out = out + '<td NOWRAP align = "center"; >' + '<div class = "edoLabel";>' + unescape(i) + '</div> </td>';
out = out + "</tr>";
filterSize++;
}
out = out + "</tbody></table>";
document.getElementById("destFilter").innerHTML=out;
}

