//array to hold the active subfilters
var aActiveSubFilters = new Array();
var loadedStatus = 0 ;
var cPage = 1;
var aExpanded = new Array();
var tempSuperTagID = '';
var nTotalPages;
var cSorting = '';
var filterEsc;
var aActiveTypes = new Array();
var flag = 0;

/* pass null values intially to checkInDate, checkOutDate dates: 01-06-2009 */
/* keep dates if set: 10-29-2009 */
if (typeof('checkInDate')!="string") {
    checkInDate = '';
}
if (typeof('checkOutDate')!="string") {
    var checkOutDate = '';
}

//escapes single quotes with backslash
function str_replace(sStr)
{
	sStr=sStr.replace(/\x27/g,"\\'");
	return sStr;
}

//escapes escaped strings

function str_repair(sStr)
{
	sStr=sStr.replace(/\\'/g,"'");
	return sStr;
}


function str_match(sStr)
{
	if(sStr.match(/\x27/g))
	{
		return 1;
	}
	else
	{
		return 0;
	}

}

function addUnderScore(sStr)
{
	sStr = sStr.replace(/ /g,"_");
	return sStr;
}


function waitToLoad()
{
	//scrollTo(0,0);
	//document.getElementById("listingLoadBox").style.backgroundColor = "#c1d6f6";
	document.getElementById("preloadingGraphic").style.display = "inline";
	document.getElementById("listingResults").style.display = "none";
	if(flag==1)
	{
		document.getElementById("subFilterGroups").style.display = "none";
		document.getElementById("activeSuperFilters").style.display = "none";
		document.getElementById("activeSubFilters").style.display = "none";
		document.getElementById("searchTables").style.display="none";
	}
	loadedStatus = 1;
}

function isLoaded()
{
	document.getElementById("preloadingGraphic").style.display = "none";
	//document.getElementById("listingResults").style.overflowY = "scroll";
	document.getElementById("listingResults").style.display = "block";
	if(flag==1)
	{
		document.getElementById("subFilterGroups").style.display = "block";
		document.getElementById("activeSuperFilters").style.display = "block";
		document.getElementById("searchTables").style.display="block";
		flag = 0;
		/*var e = document.createElement("script");
		e.setAttribute("type", "text/javascript");
		e.setAttribute("language", "JavaScript");
		e.setAttribute("src", "../listing_filters.js");
		document.getElementsByTagName("head")[0].appendChild(e);*/
		//document.body.appendChild(e);
	}
		document.getElementById("listingLoadBox").style.backgroundColor = "";
		loadedStatus = 0;
}


// the activeObj is printed on the Page from php
// check functions.php in the listings module

function removeFromSuperFilters(superFilterName)
{
	for(a in activeObj)
	{
		if(a == superFilterName)
		{
			activeObj = { superFilterName : idObj[superFilterName] };
		}
	}

	if(superFilterName=='hotels & places to stay')
	{
		document.getElementById("CitySearch").style.display="none";
	}

	//reset the inactive
	aInactiveSubFilters = new Array();
	//reset the subfilters as well
	aActiveSubFilters = new Array();
	activeSuperFilters[0] = "";
	//reset the page
	cPage = 0;
	//reset compare
	x_resetCompare(resetCompareReturn);

	// Commented this as we have removed my search area from the page-reena
	//clear the active filters
	document.getElementById("activeSuperFilters").innerHTML = "<div style='font-family: Tahoma,Arial,Verdana;font-size: 11px;margin-top: 10px;margin-bottom: 10px;'><i>No filter(s) selected</i></div>";
	//document.getElementById("activeSubFilters").innerHTML = "";
	document.getElementById("activeSubFilters").style.display = "none";

	// show all super filters for selection
	showSuperFilters();
	//alert(aInactiveSubFilters);
	/* Enable the super filters and disable subtags 27-oct-08*/
	document.getElementById("main_supertags").style.display = "block";
	document.getElementById("subFilterGroups").style.display = "none";


	reloadGrid(0);
}

//dummy call back
function resetCompareReturn()
{
}

function addToSuperFilters(superFilterID,superFilterName)
{
	activeObj[superFilterName] = superFilterID;
	activeSuperFilters[0] = superFilterName;

	//for comparing
	tempSuperTagID  = superFilterID;

	if(superFilterID==3)
	{
		document.getElementById("CitySearch").style.display="block";
	}

	document.getElementById("compare_btn").style.display = "";

	//document.getElementById("activeSuperFilters").innerHTML = "<ul class=\"listTypeSuperFilter\"><div style=\"cursor: pointer;\" onclick=\"removeFromSuperFilters('"+superFilterName+"')\"><li><a href='javascript:void(0)' class='listingsFilters'  onclick=\"removeFromSuperFilters('"+superFilterName+"')\">"+superFilterName+"</a></li></div></ul>";
	document.getElementById("activeSuperFilters").innerHTML = "<div style=\"cursor: pointer;padding-bottom: 7px;\"><a href='javascript:void(0)' class='listingsFilters' style='padding-right: 4px;' onclick=\"removeFromSuperFilters('"+superFilterName+"')\"><img src='/images/shell/listings_closebtn.gif' border='0' valign='absmiddle'></a><a href='javascript:void(0)' class='listingsFilters'  onclick=\"removeFromSuperFilters('"+superFilterName+"')\">"+superFilterName+"</a></div>";
	//preload the sub filter area with the children of the supertag
	document.getElementById("activeSubFilters").style.display = "none";
	document.getElementById("subFilterGroups").style.display = "block";
	showSubFiltersOf(superFilterName);

	reloadGrid(0);
}


function showSuperFilters()
{
	var sFilterHTML = '';

	if (superSubObj)
	{
		for(superFilter in superSubObj)
		{
			//sFilterHTML += "<ul class=\"listType\"><div style=\"cursor: pointer;\" onclick=\"addToSuperFilters('"+idObj[superFilter]+"','"+superFilter+"')\"><li><a href='javascript:void(0)'  class='listingsFilters' onclick=\"addToSuperFilters('"+idObj[superFilter]+"','"+superFilter+"')\">"+superFilter+"</a></li></div></ul>";
			sFilterHTML += "<div style=\"cursor: pointer;padding-bottom: 5px;\"><a href='javascript:void(0);' style='padding-right: 4px;' onclick=\"addToSuperFilters('"+idObj[superFilter]+"','"+superFilter+"')\"><img src='/images/shell/listings_closebtn.gif' border='0' style='padding-top: 2px;' /></a><a href='javascript:void(0);' class='listingsFilters' onclick=\"addToSuperFilters('"+idObj[superFilter]+"','"+superFilter+"')\">"+superFilter+"</a></div>";
		}

		// set the super filters into the sub filters area
		document.getElementById("subFilterGroups").innerHTML = sFilterHTML;
		document.getElementById("current_listings_label").innerHTML = tagGroup;
	}else{
		var superSubObj = '';
	}
}

/*
* This function is called from child_filter.tpl file.
* When user clicks the checkbox to filter records
* of the listing.
* Added On: 22-oct-08
*/
function checkFilterType(obj, subFilterName,sType){
	if(obj.checked == false){
		removeFromSubFilters(subFilterName,sType);
	}else{
		addToSubFilters(subFilterName,sType);
	}
}
/* Enable the super filters and disable subtags 27-oct-08*/
/*
* This function is called from functions.php file.
* When user clicks the checkbox to filter records
* of the listing on the basis of super tag group.
* Added On: 27-oct-08
*/
function setSuperGroup(obj,id,name){
	obj.checked=false;
	document.getElementById("main_supertags").style.display = "none";
	addToSuperFilters(id,name);
}

// in array - check tag_box.js
function addToSubFilters(subFilterName,sType,bNoReload)
{
	var subFiltersHTML = '';
	var cArr = new Array();
	var inactiveSubFiltersHTML = '';
	var tmpArray= new Array();

	//reset the page
	cPage = 0;
	var bHidden = '';
	var inactiveSubFiltersHiddenHTML = '';

	document.getElementById("activeSubFilters").style.display = "";
	var filterEsc = str_replace(subFilterName);

	aActiveSubFilters[filterEsc] = new Array();
	aActiveSubFilters[filterEsc] = sType;

	for(z in aActiveSubFilters)
	{
		subFiltersHTML += "<div style=\"cursor: pointer;padding-bottom: 7px;padding-left: 16px;\"><a href='javascript:void(0)' style='padding-right: 4px;' class='listingsFilters' onclick=\"removeFromSubFilters('"+z+"','"+aActiveSubFilters[z]+"')\"><img src='/images/shell/listings_closebtn.gif' border='0' /></a><a href='javascript:void(0)' class='listingsFilters' onclick=\"removeFromSubFilters('"+z+"','"+aActiveSubFilters[z]+"')\">"+str_repair(z)+"</a></div>";
	}
	document.getElementById("activeSubFilters").innerHTML = subFiltersHTML;

	for(z in superSubObj[activeSuperFilters[0]])
	{
		if(superSubObj[activeSuperFilters[0]][z].length == 0 )
		{
			inactiveSubFiltersHTML += "<div style=\"margin-left: 5px;margin-top: 5px;margin-bottom: 5px;display: block;\"><i>No filter(s) selected</i></div>";
		}
		else
		{
			superSubObj[activeSuperFilters[0]][z].sort();
			//means that the long list has been shown currently
			for(i=0;i<superSubObj[activeSuperFilters[0]][z].length;i++)
			{
				if(z == sType)
				{
					//make the type group inactive once it has an active filter
					if(sType == "Type" || sType == "City" || sType == "Average Low Rate")
					{
						if(superSubObj[activeSuperFilters[0]][z][i] == subFilterName){
							inactiveSubFiltersHTML += "<input type='CHECKBOX' checked onclick=\"removeFromSubFilters('"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"','"+z+"')\" id='"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"'> "+superSubObj[activeSuperFilters[0]][z][i]+"<br>";
						}else{
							inactiveSubFiltersHTML += "<input type='CHECKBOX' disabled onclick=\"checkFilterType(this, '"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"','"+z+"')\" id='"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"'><i> "+superSubObj[activeSuperFilters[0]][z][i]+"</i><br>";
						}
					}
					else
					{
						var checked = "";
						for(t in aActiveSubFilters)
						{
							if(t==superSubObj[activeSuperFilters[0]][z][i]){
								checked = "CHECKED";
							}else{
								continue;
							}
						}
						inactiveSubFiltersHTML += "<input type='CHECKBOX' "+checked+" onclick=\"checkFilterType(this, '"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"','"+z+"')\" id='"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"'><span class='listingsFilters'> "+superSubObj[activeSuperFilters[0]][z][i]+"</span><br>";
					}
				}
			}

			for(i=0;i<superSubObj[activeSuperFilters[0]][z].length;i++)
			{
				if(z == sType)
				{
					if(i < 5)
					{
						//make the type group inactive once it has an active filter
						if(sType == "Type" || sType == "City" || sType == "Average Low Rate")
						{
							if(superSubObj[activeSuperFilters[0]][z][i] == subFilterName){
								inactiveSubFiltersHiddenHTML += "<input type='checkbox' onclick=\"removeFromSubFilters('"+subFilterName+"','"+sType+"')\" checked ><span class='listingsFilters'> "+superSubObj[activeSuperFilters[0]][z][i]+"</span><br>";
							}else{
								inactiveSubFiltersHiddenHTML += "<input type='checkbox' disabled><i> "+superSubObj[activeSuperFilters[0]][z][i]+"</i><br>";
							}
						}
						else
						{
							var checked = "";
							for(t in aActiveSubFilters)
							{
								if(t==superSubObj[activeSuperFilters[0]][z][i]){
									checked = "CHECKED";
								}else{
									continue;
								}
							}
							if(superSubObj[activeSuperFilters[0]][z][i] == "Superior Small Lodging")
							{
								inactiveSubFiltersHiddenHTML += "<input "+checked+" type=\"CHECKBOX\" onclick=\"checkFilterType(this, '"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"','"+z+"')\" id='"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"'><span class='listingsFilters'> "+superSubObj[activeSuperFilters[0]][z][i]+"</span><img src='/images/shell/ssllogo_key.gif' border='0' /><br>";
							}
							else if(superSubObj[activeSuperFilters[0]][z][i] == "Gay Friendly")
							{
								inactiveSubFiltersHiddenHTML += "<input "+checked+" type=\"CHECKBOX\" onclick=\"checkFilterType(this, '"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"','"+z+"')\" id='"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"'><span class='listingsFilters'> "+superSubObj[activeSuperFilters[0]][z][i]+"</span><img src='/images/shell/gay_friendly.gif' border='0' /><br>";
							}
							else if(superSubObj[activeSuperFilters[0]][z][i] == "Florida Green Lodging")
							{
								inactiveSubFiltersHiddenHTML += "<input "+checked+" type=\"CHECKBOX\" onclick=\"checkFilterType(this, '"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"','"+z+"')\" id='"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"'><span class='listingsFilters'> "+superSubObj[activeSuperFilters[0]][z][i]+"</span><img src='/images/shell/green_lodging.gif' border='0' /><br>";
							}
							else if(superSubObj[activeSuperFilters[0]][z][i] == "Shop Florida")
							{
								inactiveSubFiltersHiddenHTML += "<input "+checked+" type=\"CHECKBOX\" onclick=\"checkFilterType(this, '"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"','"+z+"')\" id='"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"'><span class='listingsFilters'> "+superSubObj[activeSuperFilters[0]][z][i]+"</span><img src='/images/shell/shop_florida_sm.gif' border='0' title='Enjoy special savings at participating Florida retailers' alt='Enjoy special savings at participating Florida retailers' /><br>";
							}
							else
							{
								inactiveSubFiltersHiddenHTML += "<input "+checked+" type=\"CHECKBOX\" onclick=\"checkFilterType(this, '"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"','"+z+"')\" id='"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"'><span class='listingsFilters'> "+superSubObj[activeSuperFilters[0]][z][i]+"</span><br>";
							}
						}
					}
					else
					{
						inactiveSubFiltersHiddenHTML += "<a href='javascript:void(0);' class=\"showMoreLess\" onclick=\"showFullSubFilters('"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"','"+addUnderScore(z)+"');\">[+} show more</a><div style='height: 5px;'></div>";
						break;
					}
				}
			}
		}
	}

	inactiveSubFiltersHTML += "<a href='javascript:void(0);' class=\"showMoreLess\" onclick=\"showShortSubFilters('"+str_replace(subFilterName)+"','"+addUnderScore(sType)+"');\">[-} show less</a><div style='height: 5px;'></div>";

	document.getElementById(addUnderScore(sType)+"_hidden").innerHTML = inactiveSubFiltersHTML;
	document.getElementById(addUnderScore(sType)).innerHTML = inactiveSubFiltersHiddenHTML;
	//reload the grid, with conditions if footer scripts are running, part: luxury_hotels
            if ( typeof('bNoReload') == 'undefined' ) { var bNoReload = false; }

            if ( bNoReload != true ) {
                    reloadGrid(0);
            }
        }

function removeFromSubFilters(subFilterName,sType)
{
	var sActiveFiltersHTML = '';
	var sInactiveFiltersHTML = '';
	//reset the page
	cPage = 0;
	sInactiveFiltersHiddenHTML = '';

	var filterEsc = str_replace(subFilterName);
	aInactiveSubFilters.push(filterEsc);

	for(z in aActiveSubFilters)
	{
		if(z == filterEsc)
		{
			delete aActiveSubFilters[z];
		}
	}

	for(i in aActiveSubFilters)
	{
		sActiveFiltersHTML += "<div style=\"cursor: pointer;padding-bottom: 7px;padding-left : 16px;\"><a href='javascript:void(0)' style='padding-right: 4px;' class='listingsFilters' onclick=\"removeFromSubFilters('"+i+"','"+aActiveSubFilters[i]+"')\"><img src='/images/shell/listings_closebtn.gif' border='0' /><a href='javascript:void(0)' class='listingsFilters' onclick=\"removeFromSubFilters('"+i+"','"+aActiveSubFilters[i]+"')\">"+str_repair(i)+"</a></div>";
	}

	for(z in superSubObj[activeSuperFilters[0]])
	{
		if(superSubObj[activeSuperFilters[0]][z].length == 0 )
		{
			sInactiveFiltersHTML += "<div style=\"margin-left: 5px;margin-top: 5px;margin-bottom: 5px;display: block;\"><i>No filter(s) selected</i></div>";
		}
		else
		{
			//means that the long list has been shown currently
			for(i=0;i<superSubObj[activeSuperFilters[0]][z].length;i++)
			{
				if(z == sType)
				{
					var checked = "";
					for(j in aActiveSubFilters)
					{
						if(j==str_replace(superSubObj[activeSuperFilters[0]][z][i])){
							checked = "CHECKED";
						}else{
							continue;
						}
					}
					sInactiveFiltersHTML += "<input type='CHECKBOX' "+checked+" onclick=\"checkFilterType(this, '"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"','"+z+"')\" id='"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"'><span class='listingsFilters'> "+superSubObj[activeSuperFilters[0]][z][i]+"</span><br>";
				}
			}

			for(i=0;i<superSubObj[activeSuperFilters[0]][z].length;i++)
			{
				if(z == sType)
				{
					var checked = "";
					for(j in aActiveSubFilters)
					{
						if(j==str_replace(superSubObj[activeSuperFilters[0]][z][i])){
							checked = "CHECKED";
						}else{
							continue;
						}
					}

					if(i < 5)
					{
						if(superSubObj[activeSuperFilters[0]][z][i] == "Superior Small Lodging")
						{
							sInactiveFiltersHiddenHTML += "<input type=\"CHECKBOX\" "+checked+" onclick=\"checkFilterType(this, '"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"','"+z+"')\" id='"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"'><span class=\"listingsFilters\"> "+superSubObj[activeSuperFilters[0]][z][i]+"<img src='/images/shell/ssllogo_key.gif' border='0' /></span><br>";
						}
						else if(superSubObj[activeSuperFilters[0]][z][i] == "Gay Friendly")
						{
							sInactiveFiltersHiddenHTML += "<input type=\"CHECKBOX\" "+checked+" onclick=\"checkFilterType(this, '"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"','"+z+"')\" id='"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"'><span class=\"listingsFilters\"> "+superSubObj[activeSuperFilters[0]][z][i]+"<img src='/images/shell/gay_friendly.gif' border='0' /></span><br>";
						}
						else if(superSubObj[activeSuperFilters[0]][z][i] == "Florida Green Lodging")
						{
							sInactiveFiltersHiddenHTML += "<input type=\"CHECKBOX\" "+checked+" onclick=\"checkFilterType(this, '"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"','"+z+"')\" id='"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"'><span class=\"listingsFilters\"> "+superSubObj[activeSuperFilters[0]][z][i]+"<img src='/images/shell/green_lodging.gif' border='0' /></span><br>";
						}
						else if(superSubObj[activeSuperFilters[0]][z][i] == "Shop Florida")
						{
							sInactiveFiltersHiddenHTML += "<input type=\"CHECKBOX\" "+checked+" onclick=\"checkFilterType(this, '"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"','"+z+"')\" id='"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"'><span class=\"listingsFilters\"> "+superSubObj[activeSuperFilters[0]][z][i]+"<img src='/images/shell/shop_florida_sm.gif' border='0' title='Enjoy special savings at participating Florida retailers' alt='Enjoy special savings at participating Florida retailers'/></span><br>";
						}
						else
						{
							sInactiveFiltersHiddenHTML += "<input type=\"CHECKBOX\" "+checked+" onclick=\"checkFilterType(this, '"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"','"+z+"')\" id='"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"'><span class=\"listingsFilters\"> "+superSubObj[activeSuperFilters[0]][z][i]+"</span><br>";
						}
					}
					else
					{
						sInactiveFiltersHiddenHTML += "<a href='javascript:void(0);' class=\"showMoreLess\" onclick=\"showFullSubFilters('"+str_replace(superSubObj[activeSuperFilters[0]][z][i])+"','"+addUnderScore(z)+"');\">[+} show more</a><div style='height: 5px;'></div>";
						break;
					}
				}
			}

		}
	}

	sInactiveFiltersHTML += "<a href='javascript:void(0);' class=\"showMoreLess\" onclick=\"showShortSubFilters('"+str_replace(subFilterName)+"','"+addUnderScore(sType)+"');\">[-} show less</a><div style='height: 5px;'></div>";

	document.getElementById(addUnderScore(sType)+"_hidden").innerHTML = sInactiveFiltersHTML;
	document.getElementById(addUnderScore(sType)).innerHTML = sInactiveFiltersHiddenHTML;

	if(sActiveFiltersHTML == "")
	{
		document.getElementById("activeSubFilters").style.display = "none";
	}
	else
	{
		document.getElementById("activeSubFilters").innerHTML = sActiveFiltersHTML;
	}

	reloadGrid(0);
}


function showSubFiltersOf(filterName)
{
	var sSubFiltersHTML = '';
	//reset the inactive
	aInactiveSubFilters = new Array();
	//reset the subfilters as well
	aActiveSubFilters = new Array();
	sSubFiltersHiddenHTML = '';
	//reset current page
	cPage = 0;
	/* Replaced links with checkboxes for all supertags and subtags 27-oct-08*/
	//sSubFiltersHTML += "<ul class=\"listType\">";
	for(a in superSubObj)
	{
		if(a == filterName)
		{

			for(z in superSubObj[filterName])
			{
				sSubFiltersHTML += "<div class=\"listTypeHeadingGrey\" style=\"width:175px\">"+z+"</div>";

				sSubFiltersHTML += "<div id='"+addUnderScore(z)+"_hidden' style='display: none;'>";

				for(i=0;i<superSubObj[filterName][z].length;i++)
				{
					//sSubFiltersHTML += "<ul class='listType'><li><a href='javascript:void(0);' class='listingsFilters' onclick=\"addToSubFilters('"+str_replace(superSubObj[filterName][z][i])+"', '"+z+"');\">"+str_repair(superSubObj[filterName][z][i])+"</a></li></ul>";
					sSubFiltersHTML += "<input type='checkbox' class='listingsFilters' onclick=\"addToSubFilters('"+str_replace(superSubObj[filterName][z][i])+"', '"+z+"');\">"+str_repair(superSubObj[filterName][z][i])+"<br>";
				}

				sSubFiltersHTML += "<a href='javascript:void(0);' class=\"showMoreLess\" onclick=\"showShortSubFilters('"+filterName+"','"+addUnderScore(z)+"');\">[-} show less</a><div style='height: 5px;'></div>";
				sSubFiltersHTML += "</div>";
				sSubFiltersHTML += "<div id='"+addUnderScore(z)+"'>";

				//alert(z);
				for(i=0;i<superSubObj[filterName][z].length;i++)
				{

					if( i < 5)
					{
						aInactiveSubFilters.push(str_repair(superSubObj[filterName][z][i]));
						//sSubFiltersHTML += "<ul class='listType'><li><a href='javascript:void(0);' class='listingsFilters' onclick=\"addToSubFilters('"+str_replace(superSubObj[filterName][z][i])+"', '"+z+"');\">"+str_repair(superSubObj[filterName][z][i])+"</a></li></ul>";
						sSubFiltersHTML += "<input type='checkbox' class='listingsFilters' onclick=\"addToSubFilters('"+str_replace(superSubObj[filterName][z][i])+"', '"+z+"');\">"+str_repair(superSubObj[filterName][z][i])+"<br>";
					}
					else
					{
						sSubFiltersHTML += "<a href='javascript:void(0);' class=\"showMoreLess\" onclick=\"showFullSubFilters('"+filterName+"','"+addUnderScore(z)+"');\">[+} show more</a><div style='height: 5px;'></div><div style='height: 5px;'></div>";
						break;
					}
				}

				sSubFiltersHTML += "</div>";

			}
		}
	}

	//sSubFiltersHTML += "</ul>";
	document.getElementById("subFilterGroups").innerHTML = sSubFiltersHTML+sSubFiltersHiddenHTML;
}

function showFullSubFilters(filterName,filterLabel)
{
	document.getElementById(filterLabel).style.display = "none";
	document.getElementById(filterLabel+"_hidden").style.display = "";

}

function showShortSubFilters(filterName,filterLabel)
{
	document.getElementById(filterLabel).style.display = "";
	document.getElementById(filterLabel+"_hidden").style.display = "none";
}

function reloadGrid(nPage)
{
	var currentSuperTag = 0;
	var currentSuperTagID = '';
	var commaGroup = '';
	var comma = '';
	var tempSubFilter = new Array();

	//alert(aActiveSubFilters.toString());
	for(a in idObj)
	{
		for(b in activeObj)
		{
			if(a == b)
			{
				currentSuperTag = a;
				//get the super filter group ID from the object
				currentSuperTagID = activeObj[a];
			}
		}
	}

	for(z in aActiveSubFilters)
	{
		if(in_array(tempSubFilter,aSubFilterID[currentSuperTagID][aActiveSubFilters[z]][z]) == 0)
		{
			tempSubFilter.push(aSubFilterID[currentSuperTagID][aActiveSubFilters[z]][z]);
		}
	}

	var z=1;
	for(i=0;i<tempSubFilter.length;i++)
	{
		if(z<tempSubFilter.length)
		{
			comma = "|";
		}
		else
		{
			comma = "";
		}

		//commaGroup += "('"+tempSubFilter[i]+"')"+comma;
		commaGroup += tempSubFilter[i]+comma;
		z++;
	}

	//alert(commaGroup);

	if(currentSuperTagID == "")
	{
		currentSuperTagID = "NULL";
	}

	waitToLoad();
	//cPage = 0;
	//alert(sSearch);

	if(cSorting == "")
	{
	  cSorting = "NULL";
	}

	if(checkInDate == "")
	{
		checkInDate = "NULL";
	}

	if(checkOutDate == "")
	{
		checkOutDate = "NULL";
	}

	//alert(tagGroup+", "+currentSuperTagID+", "+commaGroup+", "+nPage+", "+flag+", "+checkInDate+", "+checkOutDate);//alert(flag);return false;
	x_reloadGrid(tagGroup,currentSuperTagID,commaGroup,nPage,cSorting,sSearch,flag,checkInDate,checkOutDate,showNewGrid);
}


function showNewGrid(results)
{
	spResults = results.split("//rows//");

	if(spResults[0] != "")
	{
		spResults = results.split("//rows//");
		//eval(spResults[4]);
	
		eval(spResults[5]);
		eval(spResults[6]);
		eval(spResults[7]);
		eval(spResults[8]);
		eval(spResults[9]);
		eval(spResults[10]);
		
		document.getElementById("listingResults").innerHTML = spResults[0];
		//document.getElementById("total").innerHTML = spResults[1];

		if(activeSuperFilters[0] == "")
		{
			document.getElementById("compare_btn").style.display = "none";
		}
		var str = window.location.href;
		var reg = new RegExp("/golfing/");
		if (reg.test(str))
		{
			nTotalPages = parseInt(spResults[1]);
			var nPages = Math.ceil(nTotalPages/40);
			var sLinks = '';

			if(nPages > 0 )
			{

				if( (cPage+1) < nPages && cPage > 0)
				{
					sLinks = "<a href='javascript:void(0);' onclick='gridPage("+(cPage-1)+");'><img src=\"/images/shell/cal_left.gif\" border='0' /></a>&nbsp;";
					sLinks += "Page "+(cPage+1)+" of "+nPages+"";
					sLinks += "&nbsp;<a href='javascript:void(0);' onclick='gridPage("+(cPage+1)+");'><img src=\"/images/shell/cal_right.gif\" border='0' /></a>";
				}

				else if((cPage+1) >= 1)
				{
					if((cPage+1) == nPages && cPage == 0)
					{
						sLinks += "Page "+(cPage+1)+" of "+nPages+"";
					}
					else if( (cPage+1) == nPages)
					{
						sLinks = "<a href='javascript:void(0);' onclick='gridPage("+(cPage-1)+");'><img src=\"/images/shell/cal_left.gif\" border='0' /></a>&nbsp;";
						sLinks += "Page "+(cPage+1)+" of "+nPages+"";
					}
					else
					{
						sLinks = "Page "+(cPage+1)+" of "+nPages+"";
						sLinks += "&nbsp;<a href='javascript:void(0);' onclick='gridPage("+(cPage+1)+");'><img src=\"/images/shell/cal_right.gif\" border='0' /></a>";
					}
				}
			}
			else
			{
				sLinks = "";
			}


			document.getElementById("total").innerHTML = sLinks;
			document.getElementById("total_bottom").innerHTML = sLinks;
		}
		else
		{
			nTotalPages = parseInt(spResults[2]);

			document.getElementById("total").innerHTML = spResults[1];
			document.getElementById("total_bottom").innerHTML = spResults[1];
			if(flag==1)
			{
				document.getElementById("activeSuperFilters").innerHTML = spResults[3];
				document.getElementById("subFilterGroups").innerHTML = spResults[4];
			}
		}
	}
	else
	{
		document.getElementById("listingResults").innerHTML = "<span class='regularNonBold' style='padding-top: 5px;'>No Results Found</span>";
	}


	if(activeSuperFilters[0] == "")
	{
		document.getElementById("current_listings_label").innerHTML = tagGroup.replace("_",' ')+" "+activeSuperFilters[0]+" listings("+nTotalPages+")";
	}
	else
	{
		document.getElementById("current_listings_label").innerHTML = tagGroup.replace("_",' ')+"+"+activeSuperFilters[0]+" listings("+nTotalPages+")";
	}

	isLoaded();
}

function reloadEmergencyGrid(nPage)
{

	waitToLoad();
	//cPage = 0;
	//alert(sSearch);

	///alert(tagGroup+", "+currentSuperTagID+", "+commaGroup+", "+nPage);
	x_reloadEmergencyGrid(nPage,showNewEmergencyGrid);
}


function showNewEmergencyGrid(results)
{
	//var superSubObj = '';

	spResults = results.split("//rows//");

	if(spResults[0] != "")
	{

		spResults = results.split("//rows//");
		document.getElementById("listingResults").innerHTML = spResults[0];
		//document.getElementById("total").innerHTML = spResults[1];


		nTotalPages = parseInt(spResults[1]);
		var nPages = Math.ceil(nTotalPages/40);
		var sLinks = '';

		if(nPages > 0 )
		{

			if( (cPage+1) < nPages && cPage > 0)
			{
				sLinks = "<a href='javascript:void(0);' onclick='gridEmergencyPage("+(cPage-1)+");'><img src=\"/images/shell/cal_left.gif\" border='0' /></a>&nbsp;";
				sLinks += "Page "+(cPage+1)+" of "+nPages+"";
				sLinks += "&nbsp;<a href='javascript:void(0);' onclick='gridEmergencyPage("+(cPage+1)+");'><img src=\"/images/shell/cal_right.gif\" border='0' /></a>";
			}

			else if((cPage+1) >= 1)
			{
				if((cPage+1) == nPages && cPage == 0)
				{
					sLinks += "Page "+(cPage+1)+" of "+nPages+"";
				}
				else if( (cPage+1) == nPages)
				{
					sLinks = "<a href='javascript:void(0);' onclick='gridEmergencyPage("+(cPage-1)+");'><img src=\"/images/shell/cal_left.gif\" border='0' /></a>&nbsp;";
					sLinks += "Page "+(cPage+1)+" of "+nPages+"";
				}
				else
				{
					sLinks = "Page "+(cPage+1)+" of "+nPages+"";
					sLinks += "&nbsp;<a href='javascript:void(0);' onclick='gridEmergencyPage("+(cPage+1)+");'><img src=\"/images/shell/cal_right.gif\" border='0' /></a>";
				}
			}
		}
		else
		{
			sLinks = "";
		}


		document.getElementById("total").innerHTML = sLinks;
		document.getElementById("total_bottom").innerHTML = sLinks;

	}
	else
	{
		document.getElementById("listingResults").innerHTML = "<span class='regularNonBold' style='padding-top: 5px;'>No Results Found</span>";
	}


	isLoaded();
}

function gridPage(nPageNum)
{
	cPage = nPageNum;
	scrollTo(0,0);
	reloadGrid(nPageNum);
}

function gridEmergencyPage(nPageNum)
{
	cPage = nPageNum;
	reloadEmergencyGrid(nPageNum);
}

function addToCompare(listingID,superTag)
{
	if(document.getElementById("compare_"+listingID).checked)
	{
		if(superTag == "")
		{
			superTag = tempSuperTagID;
		}
		x_addToCompare(listingID,superTag,compReturn);
	}
	else
	{
		if(superTag == "")
		{
			superTag = tempSuperTagID;
		}
		x_removeFromCompare(listingID,superTag,compReturn);
	}
}

function compReturn(result)
{

}

function orderByRate()
{
	cPage = 0;
        if (cSorting == "rate_asc") {
            cSorting = "rate_desc";
            document.getElementById("orderbyrate_link").innerHTML = 'Price <img src=\"/images/shell/desc.gif\" border=\"0\" />';
        } else {
            cSorting = "rate_asc";
            document.getElementById("orderbyrate_link").innerHTML = 'Price <img src=\"/images/shell/asc.gif\" border=\"0\" />';
        }
        
	document.getElementById("orderbyname_link").style.fontWeight = "normal";
	document.getElementById("orderbyname_link").style.color = "#7f7f7f";
	document.getElementById("orderbyrate_link").style.fontWeight = "bold";
	document.getElementById("orderbyrate_link").style.color = "#5f5c5c";

	reloadGrid(0);
}

function orderByName()
{
	//#5f5c5c
	cPage = 0;
	cSorting = "name_asc";
	document.getElementById("orderbyrate_link").style.fontWeight = "normal";
	document.getElementById("orderbyrate_link").style.color = "#7f7f7f";
	document.getElementById("orderbyname_link").style.fontWeight = "bold";
	document.getElementById("orderbyname_link").style.color = "#5f5c5c";

	reloadGrid(0);
}

/*This function is called from change my search form from listings page
* When user changes city tag name and check-in and check-out dates
* from the listing page.
* Added On: 26-May-09
*/
function changeTag()
{
	var selObj = document.getElementById('change_search_city');
	cityName = selObj.options[selObj.selectedIndex].value;

	checkInDate = document.getElementById('hotel_search_checkin').value; //check in
  checkOutDate = document.getElementById('hotel_search_checkout').value; //check out

	if(cityName.length <=0)
	{
		alert("Please Select City");
		return false;
	}

	var cur_date=new Date();
	day_val=cur_date.getDate();
	month=cur_date.getMonth()+1;
	
	//if(month<10)
	//{
		month_val=month;
	//}
	if(day_val<10)
	{
		day_val="0"+day_val;
	}

	year_val=cur_date.getFullYear();
	date_today=month_val+"/"+day_val+"/"+year_val;
	//alert("Current date "+date_today);
	/* Converting given date of format 'm/dd/yyyy' into seconds for comparing 2 dates: 01-June-2009 */
	date_today = Date.parse(date_today);
	checkInDateNew = Date.parse(checkInDate);
	checkOutDateNew = Date.parse(checkOutDate);

	if(checkInDate.length > 0)
	{
		if(compareDate(date_today,checkInDateNew)==1)
		{
			alert("Check In date should not be less than Current date");
			return false;
		}
		if(checkInDateNew!="" && checkOutDateNew=="")
		{
			alert("Check Out date cannot not be empty");
			return false;
		}
		if(compareDate(date_today,checkOutDateNew)==1)
		{
			alert("Check Out date should not be less than Current date");
			return false;
		}
		if(compareDate(checkInDateNew,checkOutDateNew)==1)
		{
			alert("Check-In date should not be greater than Check-Out date");
			return false;
		}
	}
	//alert(checkInDate); alert(checkOutDate);alert(checkInDateNew); alert(checkOutDateNew);
	tagName = selObj.options[selObj.selectedIndex].value;
	if(tagGroup!=tagName)
	{
		for(z in aActiveSubFilters)
		{
			delete aActiveSubFilters[z];
		}
		tagGroup=tagName;
		flag = 1;
	}
	reloadGrid(0);
}

/* function to do comaprision for any given 2 dates
*  date1, date2 string values
*	 returns either 1,-1,0
*	 Added On: 26-May-09
*/
function compareDate(date1,date2)
{
	var ret;
	var d1 = new Date();
	var d2 = new Date();
	d1=date1;
	d2=date2;

	if(d1>d2)
	{
		ret=1;
	}
	if(d1<d2)
	{
		ret=-1;
	}
	if(d1==d2)
	{
		ret=0;
	}
	return ret;
}
