/*--------------------------------------------------------*
* Copyright (C) 2006 Verthink S.r.l. - Italy
* 
* File: main.js
* Author: Aldo Armiento
* Version: 20060605.1
*---------------------------------------------------------*/

var gvaOptList = new Array();
var gvnACActive = 0;
var gvnACTimeOut = null;
var gvaCheckItem = new Array();
var gvaScrollInt = new Array();
var gvaScrollTID = new Array();
var gvsOldFonteHTMLValue = "";
var gvnCheckRequests = 0;

var MAX_CHECK_REQUEST = 15;

var gvaMiniMaps = new Array();
var gvaMiniMapsTI = new Array();
var gvaMiniMapsLL = new Array();

/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function mapSearch()
{
	var oEl = vslGetHTMLElement("casa_map");
	var oForm = vslGetHTMLElement("frm_casa");
	var oGeo = vslGetHTMLElement("field_casa_dove");
	if (!oEl || !oForm || !oGeo)
		return;
	
	oEl.value = "1";
	oForm.submit();
}

/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function showTimeCheck(sType, sUniqID)
{
	var oXMLReq = vslGetXMLReq();
	if (!oXMLReq) return(false);
	
	var sURL = '/remote/timeCheck/' + sType.vslURLEncodeR() + '/' + sUniqID + '?r=' + vslGetRand(100000);

	oXMLReq.open('GET', sURL, true);
	oXMLReq.onreadystatechange = function ()
	{	var sRet = '';
		
		if (oXMLReq.readyState != 4) return(false);

		try
		{	if (oXMLReq.status != 200) return(false);
			sRet = oXMLReq.responseText;
		}
		catch (e)
		{	return(false);
		}

		sRet = sRet.vslTrim();
		
		if (sRet != "")
			alert(sRet);
		
		return(true);
	}

	oXMLReq.send(null);
}

/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function miniMapCtrl(sCmd, nPos)
{
	var oGMap = gvaMiniMaps[nPos];
	
	if (!oGMap)
		return(false);

	try
	{	clearInterval(gvaMiniMapsTI[nPos]);
	}
	catch(e) {}

	switch (sCmd)
	{
		case "zoomin":
			oGMap.zoomIn();
			break;
			
		case "zoomout":
			oGMap.zoomOut();
			break;
			
		case "size":
		
			var nNewHeight = vslGetElementWidth("item_map_" + nPos);
			nNewHeight -= parseInt((nNewHeight / 100) * 40);

			if (nNewHeight <= 0)
				nNewHeight = 300;
		
			var oEl = vslGetHTMLElement("item_gmap_" + nPos);
			if (!oEl.style)
				return(false);

			var oElToolbarIcon = vslGetHTMLElement("mini_map_size_icon_" + nPos);
			var oElToolbarLabel = vslGetHTMLElement("mini_map_size_label_" + nPos);
			
			if (!oElToolbarIcon || !oElToolbarLabel)
				return(false);

			if (parseInt(oEl.style.height) < (nNewHeight - 1))
			{
				oEl.style.height = nNewHeight + "px";
				oElToolbarIcon.onload = function() { return; }
				oElToolbarIcon.src = "/vimages/map/Riduci.png";
				oElToolbarLabel.innerHTML = "Reduce";
				
				vslCollapseEL("item_map_" + nPos, 249, nNewHeight + 50, 20, 25, function ()
				{	oGMap.checkResize();
					oGMap.setCenter(gvaMiniMapsLL[nPos]);
				});
			}
			else
			{
				oElToolbarIcon.onload = function() { return; }
				oElToolbarIcon.src = "/vimages/map/Allarga.png";
				oElToolbarLabel.innerHTML = "Expand";
				
				vslCollapseEL("item_map_" + nPos, nNewHeight + 50, 249, -20, 25, function ()
				{	oEl.style.height = "200px";
					oGMap.checkResize();
					oGMap.setCenter(gvaMiniMapsLL[nPos]);
				});
			}
			
			break;
			
		case "center":
			oGMap.returnToSavedPosition();
			break;
			
		case "satellite":
			oGMap.setMapType(G_SATELLITE_MAP);
			break;

		case "mappa":
			oGMap.setMapType(G_NORMAL_MAP);
			break;

		case "ibrida":
			oGMap.setMapType(G_HYBRID_MAP);
			break;
			
		case "panoramica":
			oGMap.returnToSavedPosition();

			oGMap.zoomOut();

			gvaMiniMapsTI[nPos] = setInterval(function()
			{
				if (oGMap.getZoom() > 11)
				{	oGMap.zoomOut();
				}
				else
				{	try
					{	clearInterval(gvaMiniMapsTO[nPos]);
					}
					catch(e) {}
				}
			}, 2500);

			break;
	}
}

/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function miniMap3D(sUrl)
{
	vslNewWindow(sUrl, "_blank");
}

/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function miniMap(nPos, nLat, nLon, nAcc)
{
	if (vslElIsVisible("item_map_" + nPos))
	{	
		vslCollapseEL("item_map_" + nPos, vslGetElementHeight("item_map_" + nPos), 1, -35, 25, function () {
			
			oEl = vslGetHTMLElement("item_map_" + nPos);
			if (oEl.style)
				oEl.style.height = "1px";
			
			oEl = vslGetHTMLElement("item_gmap_" + nPos);
			if (oEl.style)
				oEl.style.height = "200px";
			
			var oElToolbarIcon = vslGetHTMLElement("mini_map_size_icon_" + nPos);
			var oElToolbarLabel = vslGetHTMLElement("mini_map_size_label_" + nPos);

			oElToolbarIcon.onload = function() { return; }
			oElToolbarIcon.src = "/vimages/map/Allarga.png";
			oElToolbarLabel.innerHTML = "Allarga mappa";

			vslHEL("item_map_" + nPos);
		});
	}
	else
	{
		vslSEL("item_map_" + nPos);
		vslCollapseEL("item_map_" + nPos, 1, 250, 20, 25, null);

		var oGMap = new GMap2(document.getElementById("item_gmap_" + nPos));
		if (!oGMap)
			return(false);

		gvaMiniMaps[nPos] = oGMap;
		gvaMiniMapsLL[nPos] = new Array(nLat, nLon);

		oGMap.addControl(new GScaleControl());

		var oLatLng = new GLatLng(nLat, nLon);
		gvaMiniMapsLL[nPos] = oLatLng;

		var nZoom = 15;

		var oIcon = new GIcon();

		if (nAcc <= 5)
		{	oIcon.image = "/vimages/map/cityMarker2.png";
			oIcon.iconSize = new GSize(16, 16);
			oIcon.iconAnchor = new GPoint(16, 16);
			oIcon.infoWindowAnchor = new GPoint(5, 1);
			
			nZoom = 14;
		}
		else if (nAcc <= 6)
		{	oIcon.image = "/vimages/map/streetMarker2.png";
			oIcon.iconSize = new GSize(20, 20);
			oIcon.iconAnchor = new GPoint(20, 20);
			oIcon.infoWindowAnchor = new GPoint(5, 1);
			
			nZoom = 15;
		}
		else
		{	oIcon.image = "/vimages/map/addressMarker.png";
			oIcon.iconSize = new GSize(13, 22);
			oIcon.iconAnchor = new GPoint(7, 22);
			oIcon.infoWindowAnchor = new GPoint(5, 1);
			
			nZoom = 16;
		}

		oGMap.setCenter(oLatLng, nZoom);
		oGMap.savePosition();

		oGMap.addOverlay(new GMarker(oLatLng, oIcon));
	}
}

/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function personalFilterOKP(sFieldID, sBaseURL, eClick)
{
	var nKey;

	try
	{	if(window.event)
			nKey = eClick.keyCode;
		else if(eClick.which)
			nKey = eClick.which;
	
		if (nKey == 13)
			return(personalFilterClick(sFieldID, sBaseURL));
	}
	catch(e)
	{	return;
	}
}


/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function personalFilterClick(sFieldID, sBaseURL)
{
	var oField = vslGetHTMLElement(sFieldID);
	if (!oField)
		return(false);
	
	var sFieldValue = oField.value;

	if (sFieldValue != "")
	{	
		if (sBaseURL == "_MAP_")
		{	if (!oGMap)
				return(false);

			bigMapFilter(oGMap, "pers", sFieldValue);
		}
		else
		{	
			try
			{	sFieldValue.vslURLEncodeR2();
			}
			catch(e)
			{	return(false);
			}
			
			if (sBaseURL.charAt(sBaseURL.length - 1) != "/")
				sBaseURL += "/";
		
			location.href = sBaseURL + "pers-" + sFieldValue;			
		}
	}
	else	alert("Specify at least one word to search");
		
	return(true);
}

/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function optListHS(sOptionsID, sSection)
{
	var sOptList = 'optList_' + sOptionsID;

	if (vslElIsVisible(sOptList))
		optListH(sOptionsID, sSection);
	else 
	{	optListHA(sSection);
		optListS(sOptionsID, sSection);
	}
}

/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function fltListHS(sOptionsID, sBaseURL)
{
	var sOptList = 'fltList_' + sOptionsID;

	if (vslElIsVisible(sOptList))
		fltListH(sOptionsID);
	else 
	{	getFilter("filter_" + sOptionsID, sOptionsID, sBaseURL);
		fltListS(sOptionsID);
	}
}


/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function optListS(sOptionsID, sSection)
{
	var sOptList = 'optList_' + sOptionsID;
	var sOptListImg = 'optListImg_' + sOptionsID;
	var sOptListLabel = 'optListLabel_' + sOptionsID;

	var oImg = vslGetHTMLElement(sOptListImg);
	var oLabel = vslGetHTMLElement(sOptListLabel);

	if (!oImg || !oLabel) 
		return(false);

	vslSEL(sOptList);
	oLabel.className = 'optList_TxtLabel_Active';
	if (oImg) 
	{	oImg.onload = function() { return; }
		oImg.src = '/vimages/optListUp_' + sSection + '.gif';
	}	

	gvaOptList[sOptionsID] = true;

	return(true);
}

/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function optListH(sOptionsID, sSection)
{
	var sOptList = 'optList_' + sOptionsID;
	var sOptListImg = 'optListImg_' + sOptionsID;
	var sOptListLabel = 'optListLabel_' + sOptionsID;

	var oImg = vslGetHTMLElement(sOptListImg);
	var oLabel = vslGetHTMLElement(sOptListLabel);

	if (!oImg || !oLabel) 
		return(false);

	vslHEL(sOptList);
	oLabel.className = 'optList_TxtLabel';
	if (oImg)
	{	oImg.onload = function() { return; }
		oImg.src = '/vimages/optListDown_' + sSection + '.gif';
	}

	gvaOptList[sOptionsID] = false;

	return(true);
}

/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function fltListS(sOptionsID)
{
	var sOptList = 'fltList_' + sOptionsID;
	var sOptListImg = 'fltListImg_' + sOptionsID;
	var sOptListLabel = 'fltListLabel_' + sOptionsID;

	var oImg = vslGetHTMLElement(sOptListImg);
	var oLabel = vslGetHTMLElement(sOptListLabel);

	if (!oImg || !oLabel) 
		return(false);

	vslSEL(sOptList);
	oLabel.className = 'fltList_TxtLabel_Active';
	if (oImg)
	{	oImg.onload = function() { return; }
		oImg.src = '/vimages/fltListUp.gif';
	}

	return(true);
}

/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function fltListH(sOptionsID)
{
	var sOptList = 'fltList_' + sOptionsID;
	var sOptListImg = 'fltListImg_' + sOptionsID;
	var sOptListLabel = 'fltListLabel_' + sOptionsID;

	var oImg = vslGetHTMLElement(sOptListImg);
	var oLabel = vslGetHTMLElement(sOptListLabel);

	if (!oImg || !oLabel) 
		return(false);

	vslHEL(sOptList);
	oLabel.className = 'fltList_TxtLabel';
	if (oImg)
	{	oImg.onload = function() { return; }
		oImg.src = '/vimages/fltListDown.gif';
	}

	return(true);
}

/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function optListHA(sSection)
{
	for (var sOptionID in gvaOptList)
	{	if (gvaOptList[sOptionID])
			optListH(sOptionID, sSection);
	}
}


/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function _acClearTimeout()
{
	if (gvnACTimeOut)
	{	try
		{	clearTimeout(gvnACTimeOut);
		}
		catch(e)
		{	return(false);
		}
	}	
}

/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function acUpdateObjContent(oEvent, oInput, sIDObj, sRemotePage)
{
	var nKeyCode = vslGetKeyCode(oEvent);
	if (nKeyCode == 40 || nKeyCode == 38 || nKeyCode == 13 || nKeyCode == 39 || nKeyCode == 37 || nKeyCode == 35 || nKeyCode == 36) 
		return(false);

	gvnACActive = 0;

	_acClearTimeout();

	var sTextValue = oInput.value;
	if (sTextValue.vslTrim() == '')
	{	vslHEL(sIDObj + '_Box');
		return(false);
	}

	var sOldTextValue = oInput.value;
	sOldTextValue.vslTrim();

	gvnACTimeOut = setTimeout(function()
	{
		var oXMLReq = vslGetXMLReq();

		if (!oXMLReq) 
			return(false);

		var oInputUpd = vslGetHTMLElement(oInput.id);
		var sTextValue = oInputUpd.value;
		sTextValue = sTextValue.vslTrim();

		if (sTextValue != '')
			sTextValue = sTextValue.vslURLEncode();
		else 
		{	vslHEL(sIDObj + '_Box');
			return(true);
		}

		oXMLReq.open('GET', sRemotePage + oInput.value.vslURLEncodeR(), true);
		oXMLReq.onreadystatechange = function ()
		{
			var sRet = '';

			var oInputUpd = vslGetHTMLElement(oInput.id);
			var sTextValue = oInputUpd.value;
			sTextValue = sTextValue.vslTrim();

			if (sTextValue == '')
				return(false);

			//if (sTextValue != sOldTextValue)
			//	return(false);

			if (oXMLReq.readyState != 4)
				return(false);

			try
			{	if (oXMLReq.status != 200)
					return(false);

				sRet = oXMLReq.responseText;
			}
			catch (e)
			{	return(false);
			}

			var oEl = vslGetHTMLElement(sIDObj + '_Box');

			if (!oEl) 
				return(false);

			oElContent = vslGetHTMLElement(sIDObj + '_ContentBox');
			if (!oElContent) 
				return(false);

			oElContent.innerHTML = sRet.vslTrim();

			if (oElContent.innerHTML != '') 
				vslSEL(sIDObj + '_Box');
			else 	vslHEL(sIDObj + '_Box');

			return(true);
		}

		oXMLReq.send(null);

	}, 100);

	return(true);
}


/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function acCtrlKP(oEvent, oInput, sIDObj)
{
	if (!vslElIsVisible(sIDObj + '_Box'))
		return(true);

	var nKeyCode = vslGetKeyCode(oEvent);

	for (var i = 1; i < 100; i++)
	{	var oOpt = vslGetHTMLElement(sIDObj + '_' + i);
		if (!oOpt) 
			break;

		acHLOption(oOpt, false);
	}
	
	i--;
	var bUpDown = false;

	if (nKeyCode == 40) // DOWN
	{	gvnACActive++;
		if (gvnACActive >= i)
			gvnACActive = i;

		bUpDown = true;
	}
	else if (nKeyCode == 38) // UP
	{	gvnACActive--;
		if (gvnACActive <= 1) 
			gvnACActive = 1;

		bUpDown = true;
	}
	else if (nKeyCode == 13) // ENTER
	{	
		oDiv = vslGetHTMLElement(sIDObj + '_' + gvnACActive);
		if (!oDiv) 
			return(true);

		var sInputValue = oDiv.innerHTML;

		sInputValue = sInputValue.replace(/<span[^>]*>.*<\/span>/ig, "");
		sInputValue = sInputValue.vslTrim();

		acUpdateField(sIDObj, sInputValue);

		return(false);
	}

	if (bUpDown) 
	{	var oOpt = vslGetHTMLElement(sIDObj + '_' + gvnACActive);
		if (oOpt) 
			acHLOption(oOpt, true);

		oDiv = vslGetHTMLElement(sIDObj + '_' + gvnACActive);
		if (!oDiv) 
			return(false);

		var sInputValue = oDiv.innerHTML;

		sInputValue = sInputValue.replace(/<span[^>]*>.*<\/span>/ig, "");
		sInputValue = sInputValue.vslTrim();

		var oInput = vslGetHTMLElement(sIDObj);

		if (!oInput) 
			return(false);

		oInput.value = sInputValue;		

		return(false);
	}
	
	return(true);
}

/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function acUpdateField(sIDObj, sInputValue)
{
	var oInput = vslGetHTMLElement(sIDObj);

	if (!oInput) 
		return(false);

	oInput.value = sInputValue;

	vslHEL(sIDObj + '_Box');

	return(true);
}


/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function acHLOption(oOpt, bHL)
{
	if (!oOpt) 
		return(true);

	if (bHL) 
		oOpt.className = 'autoComplete_OptionOver';
	else	oOpt.className = 'autoComplete_Option';

	return(true);
}


/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function acHide(sIDObj)
{
	setTimeout(function()
	{
		vslHEL(sIDObj + '_Box');
	}, 300);
}


/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function itemExpand(nItemPos)
{
	var oItem = vslGetHTMLElement('citem_' + nItemPos);
	if (!oItem) 
		return(false);

	var oItemExp = vslGetHTMLElement('eitem_' + nItemPos);
	if (!oItemExp) 
		return(false);

	oItem.className = 'item_expanded';
	vslHEL('eitem_' + nItemPos);
}


/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function checkAddItem(sType, nItemPos, sUniqID)
{	gvaCheckItem[nItemPos] = new Array(sType, sUniqID);
}

/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function checkStart(sType)
{
	var oXMLReq = vslGetXMLReq();
	if (!oXMLReq) 
		return(false);
	
	var sItemsID = "";
	for (var i = 1; i < gvaCheckItem.length; i++)
	{	var aItem = gvaCheckItem[i];
		
		if (!aItem || aItem[0] != sType)
			continue;
	
		if (sItemsID != '')
			sItemsID += '/';

		sItemsID += "p" + i + "-" + aItem[1].vslURLEncodeR();
	}
	
	var sURL = '/remote/checkItem/' + sType.vslURLEncodeR() + '/' + sItemsID + '?r=' + vslGetRand(100000);

	oXMLReq.open('GET', sURL, true);
	oXMLReq.onreadystatechange = function ()
	{
		var sRet = '';
		var bRecall = false;
		
		if (oXMLReq.readyState != 4)
			return(false);

		try
		{	if (oXMLReq.status != 200)
				return(false);

			sRet = oXMLReq.responseText;
		}
		catch (e)
		{	return(false);
		}

		try 
		{	sRet = sRet.vslTrim();
		}
		catch (e)
		{
		}

		var aLines = sRet.split("\n");
		
		for (var i = 0; i < aLines.length; i++)
		{	try
			{
				var aPosStatus = aLines[i].split("|");
			
				if (!aPosStatus || parseInt(aPosStatus[0]) <= 0)
					continue;
			
				var nPosition = parseInt(aPosStatus[0]);
				var nStatus = parseInt(aPosStatus[1]);
					
				if (nStatus == 0)
				{	if (!gvaCheckItem[nPosition][2] || gvaCheckItem[nPosition][2] != "KO")
					{	gvaCheckItem[nPosition][2] = "KO";
						checkWrongItem(nPosition);
						checkItemUpdateLoadingImage(nPosition, 0);
					}
				}
				else if (nStatus == 1)
				{	if (!gvaCheckItem[nPosition][2] || gvaCheckItem[nPosition][2] != "OK")
					{	gvaCheckItem[nPosition][2] = "OK";
						checkItemUpdateLoadingImage(nPosition, 1);
					}
				}
				else if (nStatus == -1)
				{	if (gvnCheckRequests < MAX_CHECK_REQUEST)
						bRecall = true;
					else if (!gvaCheckItem[nPosition][2] || gvaCheckItem[nPosition][2] != "ND")
					{	gvaCheckItem[nPosition][2] = "ND";
						checkItemUpdateLoadingImage(nPosition, -1);
					}
				}
			}
			catch (e)
			{	return(false);
			}
		}
		
		if (bRecall)
			setTimeout("checkStart('"+ sType +"')", (gvnCheckRequests+1) * 600);
		
		return(true);
	}

	oXMLReq.send(null);
	
	gvnCheckRequests++;
}

/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function checkItemUpdateLoadingImage(nItemPos, nStatus)
{
	var oEl = vslGetHTMLElement('check_item_' + nItemPos);
	if (!oEl)
		return(false);
		
	if (nStatus == 0)
		oEl.innerHTML = '<img src="/vimages/icoNotActive.gif" border="0" width="16" height="16" title="Non active ads" />'
	else if (nStatus == 1)
		oEl.innerHTML = '<img src="/vimages/icoActive.gif" border="0" width="16" height="16" title="Active ads" />'
	else	oEl.innerHTML = '<span class="info_status_nd">n.a.</span>';

	return(true);
}

/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function checkWrongItem(nItemPos)
{
	var oItem = vslGetHTMLElement('citem_' + nItemPos);
	if (!oItem) 
		return(false);

	if (oItem.className == 'item_collapsed') 
	{	var oItemExp = vslGetHTMLElement('eitem_' + nItemPos);
		if (oItemExp) 
			vslDissolveEL('eitem_' + nItemPos, 100, 20, -10, 50, null);
	}

	if (window.navigator.userAgent.indexOf("MSIE") > 0) 
	{	vslDissolveEL('citem_left_' + nItemPos, 100, 20, -10, 50, null);
		vslDissolveEL('citem_center_' + nItemPos, 100, 20, -10, 50, null);
		vslDissolveEL('citem_right_' + nItemPos, 100, 20, -10, 50, null);		
	}
	else	vslDissolveEL('citem_' + nItemPos, 100, 20, -10, 50, null);

}


/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function onItemOver(nItemPos, bOver)
{	checkUpdate(nItemPos, bOver);
}

/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function checkUpdate(nItemPos, bOver)
{
	if (!gvaCheckItem || !gvaCheckItem[nItemPos] || !gvaCheckItem[nItemPos][2]) 
		return(false);

	if (gvaCheckItem[nItemPos][2] != "KO")
		return(false);

	if (bOver)
	{	
		if (window.navigator.userAgent.indexOf("MSIE") > 0) 
		{	vslDissolveEL('citem_left_' + nItemPos, -1, 100, 10, 50, null);
			vslDissolveEL('citem_center_' + nItemPos, -1, 100, 10, 50, null);
			vslDissolveEL('citem_right_' + nItemPos, -1, 100, 10, 50, null);
		}
		else	vslDissolveEL('citem_' + nItemPos, -1, 100, 10, 50, null);
		errorTip("The ad may no longer be available on the original site.", "Attention.");
	}
	else 
	{	nd();
		if (window.navigator.userAgent.indexOf("MSIE") > 0) 
		{	vslDissolveEL('citem_left_' + nItemPos, -1, 20, -10, 50, null);
			vslDissolveEL('citem_center_' + nItemPos, -1, 20, -10, 50, null);
			vslDissolveEL('citem_right_' + nItemPos, -1, 20, -10, 50, null);
		}
		else	vslDissolveEL('citem_' + nItemPos, -1, 20, -10, 50, null);
	}

	return(true);
}


/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function errorTip(sTitle, sText)
{
	overlib("<b>"+ sTitle +"</b>", HAUTO, VAUTO, FGCOLOR, '#FFFFFF', CAPTION, sText, CAPCOLOR, '#FFFFFF', BGCOLOR, '#A00000', CELLPAD, 4, TEXTCOLOR,'#000000', DELAY, 500);	
}

/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function prefSetUID(sUID)
{
	if (vslGetCookie('savePrefs') != sUID)
		vslSetCookie('savePrefs', sUID, 3650);
}

/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function exChangeValue(sFormField, bOnClick)
{
	var oFormField = null;
	var oFormFieldEx = null;
	var bFocus = true;

	if (arguments.length > 2) 
		bFocus = arguments[3];

	if (!(oFormField = vslGetHTMLElement(sFormField)))
		return(false);

	if (!(oFormFieldEx = vslGetHTMLElement('ex_' + sFormField)))
		return(false);

	if (bOnClick)
	{	vslHEL('ex_' + sFormField);
		if (bFocus) 
			oFormField.focus();
	}
	else 
	{	if (!oFormField.value || (oFormField.value && oFormField.value.vslTrim() == ''))
			vslSEL('ex_' + sFormField);
	}
}


/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function exSuggValue(oLabel, sFormField)
{
	if (!oLabel || sFormField == '') 
		return(false);

	var sValue = oLabel.innerHTML;
	
	if (sValue == '') 
		return(false);

	var oFormField = null;
	if (!(oFormField = vslGetHTMLElement(sFormField)))
		return(false);

	oFormField.value = sValue;
	exChangeValue(sFormField, true, false);

	return(true);
}

/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function scrBox(oScroll, sID, sDir)
{
	var oEl = vslGetHTMLElement(sID);
	if (!oEl || !oEl.style) 
		return(false);

	if (sDir != '')
	{	if (sDir == 'click') 
			gvaScrollInt[sID] += 50;
		else 
		{	gvaScrollInt[sID] = 0;
			gvaScrollTID[sID] = setInterval("scrBoxCB('" + sID + "', '" + sDir + "')", 25);
		}

		oScroll.className = 'boxScrollHover';
	}
	else 
	{	if (gvaScrollTID[sID])
		{	gvaScrollInt[sID] = 0;
			setTimeout("clearInterval(" + gvaScrollTID[sID] + ")", 200);
		}

		oScroll.className = 'boxScroll';
	}
}


/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function scrBoxCB(sID, sDir)
{
	var oEl = vslGetHTMLElement(sID);
	if (!oEl || !oEl.style) 
		return(false);

	if (!gvaScrollInt[sID]) 
		gvaScrollInt[sID] = 0;

	switch (sDir) 
	{
		case 'down':
		case 'up':
			var nElCntHeight = vslGetElementHeight(sID);
			var nElHeight = parseInt(oEl.style.height);
			var nOffset = Math.round(gvaScrollInt[sID] / 5);
			break;
		case 'right':
		case 'left':
			var nElCntWidth = vslGetElementWidth(sID);
			var nElWidth = parseInt(oEl.style.width);
			var nOffset = Math.round(gvaScrollInt[sID] / 10);
			break
	}

	if (nOffset <= 0) 
		nOffset = 1;
	else if (nOffset > 50) 
		nOffset = 50;

	switch (sDir) 
	{
		case 'down':
			if (nElCntHeight - oEl.scrollTop <= nElHeight + 100) 
				nOffset = 3;
			oEl.scrollTop += nOffset;
			break;
		case 'up':
			if (nElCntHeight - oEl.scrollTop >= nElCntHeight - 100)
				nOffset = 3;
			oEl.scrollTop -= nOffset;
			break;
		case 'right':
			if (nElCntWidth - oEl.scrollLeft <= nElWidth + 100) 
				nOffset = 3;
			oEl.scrollLeft += nOffset;
			break;
		case 'left':
			if (nElCntWidth - oEl.scrollLeft >= nElCntWidth - 100)
				nOffset = 3;
			oEl.scrollLeft -= nOffset;
			break;
	}

	gvaScrollInt[sID]++;
}


/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function czBookmark()
{
	var sURL = window.location;
	var sText = "CityList - The search engine for the classified ads";

	try
	{	if (window.sidebar)
			window.sidebar.addPanel(sText, sURL, "");
		else if (window.external)
			window.external.AddFavorite(sURL, sText);
		else if (window.opera && window.print)
		{	var oA = document.createElement('a');
			oA.setAttribute('rel','sidebar');
			oA.setAttribute('href', sURL);
			oA.setAttribute('title', sText);
			oA.click();
		}
	}
	catch (e)
	{	
	}
}


/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function getFilter(sContentID, sFilter, sBaseURL, nAccFrom, nAccTo)
{
	var oEl = vslGetHTMLElement(sContentID);
	if (!oEl) 
		return(false);
	
	if (sFilter == '' || sBaseURL == '') 
		return(false);

	oEl.innerHTML = '<img src="/vimages/icoLoading.gif" style="vertical-align:middle; margin-right:10px" width="16" height="16">Loading in progress...';

	var sRemoteURL = "";
	
	if (sBaseURL == "_MAP_")
	{	if (!oGMap)
			return(false);
		var oBounds = oGMap.getBounds();

		var nAcc1 = 0; var nAcc2 = 0;
		if (gvnAccFrom && gvnAccTo)
		{	nAcc1 = gvnAccFrom;
			nAcc2 = gvnAccTo;
		}

		sRemoteURL = '/remote/getFilter/' + sFilter + vslGetLocationPathName() + "lat1-" + String(oBounds.getSouthWest().lat()).vslURLEncodeR() + "/lon1-" + String(oBounds.getSouthWest().lng()).vslURLEncodeR() + "/lat2-" + String(oBounds.getNorthEast().lat()).vslURLEncodeR() + "/lon2-" + String(oBounds.getNorthEast().lng()).vslURLEncodeR();
		sRemoteURL += "/acc1-" + nAcc1 + "/acc2-" + nAcc2;
		sRemoteURL += "/zoom-" + oGMap.getZoom();

		if (gvaFiltersArgs)
		{	sRemoteURL += vslGetChangedParms(gvaFiltersArgs);
			sRemoteURL  = vslGetChangedVirt(sRemoteURL, gvaFiltersArgs, 4);
		}
	}
	else	sRemoteURL = '/remote/getFilter/' + sFilter + sBaseURL;
/*
	if (sRemoteURL != "")
	{	if (sRemoteURL.indexOf("?") >= 0)
			sRemoteURL += '&r=' + vslGetRand(100000);
		else	sRemoteURL += '?r=' + vslGetRand(100000);
	}
*/
	var oXMLReq = vslGetXMLReq();
	if (!oXMLReq) 
		return(false);

	oXMLReq.open('GET', sRemoteURL, true);
	oXMLReq.onreadystatechange = function ()
	{
		var sRet = '';
		if (oXMLReq.readyState != 4)
			return(false);

		try
		{	if (oXMLReq.status != 200)
				return(false);

			oEl.innerHTML = oXMLReq.responseText;
		
			oElFilterTextDetails = vslGetHTMLElement('filterTextDetails_' + sContentID);
			if (oElFilterTextDetails)
			{	var reActiveFilter = /<span[ ]+class="optList_TxtOption_Selected">([^<]+)<\/span>/i;
				var aMatch = oXMLReq.responseText.match(reActiveFilter);
				if (aMatch)
				{	oElFilterTextDetailsValue = vslGetHTMLElement('filterTextDetails_' + sContentID + '_value');
					if (oElFilterTextDetailsValue)
					{	oElFilterTextDetailsValue.innerHTML = aMatch[1];
						vslSEL('filterTextDetails_' + sContentID);
					}
				}
			}

		}
		catch (e)
		{	return(false);
		}

		return(true);
	}

	oXMLReq.send(null);
}

/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function unloadQueue(sQueueID)
{

	var oXMLReq = vslGetXMLReq();
	if (!oXMLReq) 
		return(false);

	var sRemoteURL = '/remote/unloadQueue/' + sQueueID + '?r=' + vslGetRand(100000);

	oXMLReq.open('GET', sRemoteURL, false);
	oXMLReq.send(null);
	
	return(true);
}

/*---------------------------------------------------------*
*
*----------------------------------------------------------*/

function createLinkTwitter (description,path) {
	
	var description = description.vslTrim();
	var path = path.vslTrim();

	path = path.substr(7);
	path = escape(path);

	/* Calcola la lunghezza del testo e se è massima (140) taglia quella in eccesso dalla descrizione */
	var lengthDesc = description.length;
	var lengthPath = path.length + 7; // la lunghezza di http://
	var diff = 140 - (lengthDesc + lengthPath + 1); // il +1 e' lo spazio che mette tra i due

	if (diff < 0) {
		var truncate = lengthDesc - Math.abs(diff) - 3; // tolgo anche i puntini di sospensione che aggiungo dopo
		description = description.substr(0,truncate);
		description = description + "...";
	}
	
	path = escape(path);
	path = 'http://' + path;
	
	window.open("http://twitter.com/home?status=" + description + " " + path);
}

function createLinkFacebook (path){
	window.open("http://www.facebook.com/share.php?u=" +path);
}

/*---------------------------------------------------------*
*	Funzione che espande o riduce il box dei comuni e delle province nelle pagine di ricerca
*----------------------------------------------------------*/

function toggleBoxCitiesList (sID, type){
	var IdElToogle = sID + '_' + type;
	if (!vslElToggle(IdElToogle))
		return false
	var oEl = vslGetHTMLElement(IdElToogle);
	if (oEl.style.display == 'none') {
		var oImg = document.getElementById('imageBoxCities_' + type).src = '/images/default/itemExpand.gif';
		var oText = document.getElementById('textBoxCities_' + type).innerHTML = 'espandi';
	} else {
		var oImg = document.getElementById('imageBoxCities_' + type).src = '/images/default/itemCollapse.gif';
		var oText = document.getElementById('textBoxCities_' + type).innerHTML = 'riduci';
	}
}




