/*--------------------------------------------------------*
* 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();

var aStreetViews = 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();

		alert(sRet);

		return(true);
	}

	oXMLReq.send(null);
}

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

var streetviewClient;

function miniMapCtrl(sCmd, nPos, lat, lng)
{
	var oGMap = gvaMiniMaps[nPos];

	//if (!oGMap)
	//	return(false);
	if (sCmd != 'streetView' && sCmd != 'size' && sCmd != 'goToPoint' && sCmd != 'goToAddress') {
		map = document.getElementById("item_gmap_" + nPos);
		map.style.display = 'block';
		oGMap.checkResize();
		streetView = document.getElementById("item_streetView_" + nPos);
		if (streetView) {
			streetView.style.display = 'none';
		}
	}

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

	switch (sCmd)
	{
		case "zoomin":
			oGMap.zoomIn();
			if(dojo.byId("hiddenZoom")) {
				dojo.byId("hiddenZoom"). value = oGMap.getZoom();
			}
			lat = oGMap.getCenter().lat();
			lng = oGMap.getCenter().lng();
//			miniMapCtrl("center", 1, lat, lng);
			break;

		case "zoomout":
			oGMap.zoomOut();
			if(dojo.byId("hiddenZoom")) {
				dojo.byId("hiddenZoom"). value = oGMap.getZoom();
			}
			lat = oGMap.getCenter().lat();
			lng = oGMap.getCenter().lng();
//			miniMapCtrl("center", 1, lat, lng);
			break;
			
		case "move":
			oGMap.panDirection(lat,lng);
			lat = oGMap.getCenter().lat();
			lng = oGMap.getCenter().lng();
//			miniMapCtrl("setMarker", 1, lat, lng);
		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.src = "/vimages/map/ico-mappa-riduci.gif";
				oElToolbarLabel.innerHTML = ekLang._("Riduci");

				var item_map = vslGetHTMLElement("item_map_" + nPos);
				if (item_map) {
					item_map.style.height = "397px";
				}
				
				var item_gmap = vslGetHTMLElement("item_gmap_" + nPos);
				if (item_gmap) {
					item_gmap.style.height = "367px";
				}

				var oEl = vslGetHTMLElement("item_streetView_" + nPos);
				oEl.style.height = "367px";
				if (aStreetViews['' + nPos]) {
					aStreetViews['' + nPos].checkResize();
				}

				oGMap.checkResize();
				miniMapCtrl("center", nPos, lat, lng);
			}
			else
			{
				oElToolbarIcon.src = "/vimages/map/ico-mappa-allarga.gif";
				oElToolbarLabel.innerHTML = ekLang._("Allarga");

				var item_map = vslGetHTMLElement("item_map_" + nPos);
				if (item_map) {
					item_map.style.height = "230px";
					
				}

				var item_gmap = vslGetHTMLElement("item_gmap_" + nPos);
				if (item_gmap) {
					item_gmap.style.height = "200px";
				}

				var oEl = vslGetHTMLElement("item_streetView_" + nPos);
				oEl.style.height = "200px";
				if (aStreetViews['' + nPos]) {
					aStreetViews['' + nPos].checkResize();
				}

				oGMap.checkResize();
				miniMapCtrl("center", nPos, lat, lng);
			}

			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;

		case "streetView":
			var streetView = document.getElementById("item_streetView_" + nPos);
			streetView.style.display = 'block';
			var map = document.getElementById("item_gmap_" + nPos);
			map.style.display = 'none';
			var point = new GLatLng(lat,lng);
			panoramaOptions = { latlng:point };
			var mySW;
			if (!aStreetViews['' + nPos]) {
				mySW = new GStreetviewPanorama(streetView, panoramaOptions);
				aStreetViews['' + nPos] = mySW;
				streetView = 0;
				function handleNoSW(errorCode) {
					/*
					if (errorCode == 600){
						var _array = document.getElementsByClass("SWViewer");
						for (i=0;i<_array.length;i++)
							_array[i].style.visibility = "hidden";
						if (document.getElementById("mapSep"))
							document.getElementById("mapSep").style.visibility = "hidden";
						}
					*/
					alert("Street View non disponibile per questa locazione");
				}
				GEvent.addListener(mySW, "error", handleNoSW);
			}
		break;
			
		case "goToPoint":
			var point = new GLatLng(lat,lng);
			if(oGMap) {
				oGMap.setCenter(point, 17);
			}
			dojo.byId('hiddenLatitude').value = lat;
			dojo.byId('hiddenLongitude').value = lng;
			dojo.byId('hiddenZoom').value = 17;
			return miniMapCtrl('setMarker', 1, lat, lng);
			
		break;
		
		case "goToAddress": 
			var cityName = dojo.byId("locality").value.trim();
			var cap = dojo.byId("cap").value.trim();
			var address = dojo.byId("address").value.trim();
			var number = dojo.byId("number").value.trim();
			var fullAddress = address + " " + number + ", " + cityName + " " + cap + " italy";

			var geocoder = new GClientGeocoder();
			geocoder.getLocations(fullAddress, function(response) {
			if (!response || response.Status.code != 200) {
				return miniMapCtrl('goToPoint', 1, dojo.byId('hiddenLatitude').value, dojo.byId('hiddenLongitude').value);
			} else {
					if (response.Placemark.length==1) {
						point =  new GLatLng(response.Placemark[0].Point.coordinates[1], response.Placemark[0].Point.coordinates[0]);
						dojo.byId("mapAddress").innerHTML = response.Placemark[0].address;
						return miniMapCtrl('goToPoint', 1, point.lat(), point.lng());
						} else {
							var ul = document.createElement("UL");
							ul.setAttribute("style", "padding: 0px;");
							for (i=0; i<response.Placemark.length && i < 5; i++) {
								var li = document.createElement("LI");
								var address = response.Placemark[i].address;
								if(address.length > 60) {
									address = address.substring(0,55).trim() + " ...";
								}
								li.innerHTML = "<a class='forceLink' onclick='miniMapCtrl(\"goToPoint\", 1, " + response.Placemark[i].Point.coordinates[1] + ", " + response.Placemark[i].Point.coordinates[0] + ")'>" + address + "</a>";
								ul.appendChild(li);
							}
							dojo.byId("mapAddress").innerHTML = '';
							dojo.byId("mapAddress").appendChild(ul);
						}
					}
				}
			);
			
		break;
		
		case "setMarker": 
			if (oGMap && oGMap.marker) {
				oGMap.removeOverlay(oGMap.marker);
			}
			
			var oIcon = new GIcon();
			oIcon.image = "/vimages/map/streetMarker2.png";
			oIcon.iconSize = new GSize(15, 31);
			oIcon.iconAnchor = new GPoint(7, 31);
			oIcon.infoWindowAnchor = new GPoint(7, 7);
			mOptions = {"clickable":false, "title":"clicca e trascina il puntatore nel punto desiderato", "draggable":true,"icon":oIcon};
			oGMap.marker = new GMarker(new GLatLng(lat, lng, true), mOptions);
			GEvent.addListener(oGMap.marker,"dragend", function() {
								point = oGMap.marker.getPoint();
								dojo.byId('hiddenLatitude').value  = point.lat();
								dojo.byId('hiddenLongitude').value = point.lng();
								dojo.byId('hiddenZoom').value = oGMap.getZoom();
								oGMap.setCenter(point, oGMap.getZoom());
								var geocoder = new GClientGeocoder();
								var sAddress  = geocoder.getLocations(new GLatLng(point.lat(), point.lng(), true), showAddress);
								}
							);
			oGMap.addOverlay(oGMap.marker);
		break;
	}
}

function showAddress(response) {
	if (!response || response.Status.code != 200) {
	return null;
	} else {
	place = response.Placemark[0];
	dojo.byId("mapAddress").innerHTML = place.address;
  }
}

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

function miniMap(nPos, nLat, nLon, nAcc, bShowMarker)
{
	if(bShowMarker == undefined) bShowMarker = true;
	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.src = "/vimages/map/ico-mappa-allarga.gif";
			oElToolbarLabel.innerHTML = ekLang._("Allarga");

			vslHEL("item_map_" + nPos);
		});
	}
	else
	{
		vslSEL("item_map_" + nPos);
		vslCollapseEL("item_map_" + nPos, 1, 230, 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 <= 3)
		{//	oIcon.image = "/vimages/map/cityMarker2.png";
			oIcon.iconSize = new GSize(15, 31);
			oIcon.iconAnchor = new GPoint(7, 31);
			oIcon.infoWindowAnchor = new GPoint(7, 7);
			nZoom = 5;
		} else if (nAcc <= 5)
		{	oIcon.image = "/vimages/map/cityMarker2.png";
			oIcon.iconSize = new GSize(15, 31);
			oIcon.iconAnchor = new GPoint(7, 31);
			oIcon.infoWindowAnchor = new GPoint(7, 7);

			nZoom = 14;
		}
		else if (nAcc <= 6)
		{	oIcon.image = "/vimages/map/streetMarker2.png";
			oIcon.iconSize = new GSize(15, 31);
			oIcon.iconAnchor = new GPoint(7, 31);
			oIcon.infoWindowAnchor = new GPoint(7, 7);

			nZoom = 15;
		}
		else
		{	oIcon.image = "/vimages/map/addressMarker.png";
			oIcon.iconSize = new GSize(15, 31);
			oIcon.iconAnchor = new GPoint(7, 31);
			oIcon.infoWindowAnchor = new GPoint(7, 7);

			nZoom = 16;
		}

		oGMap.setCenter(oLatLng, nZoom);
		oGMap.savePosition();
		if(bShowMarker == true) {
			oGMap.marker = new GMarker(oLatLng, oIcon);
			oGMap.addOverlay(oGMap.marker);
		}
	}
}

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

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(ekLang._("Specificare almeno una parola da ricercare."));

	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.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.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.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.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="' + ekLang._("Annuncio non attivo") + '" />'
	else if (nStatus == 1)
		oEl.innerHTML = '<img src="/vimages/icoActive.gif" border="0" width="16" height="16" title="' + ekLang._("Annuncio attivo") + '" />'
	else	oEl.innerHTML = '<span class="info_status_nd">' + ekLang._("n.d.") + '</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(ekLang._("L'annuncio potrebbe non essere più disponibile sul sito originario."), ekLang._("Attenzione."));
	}
	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 = ekLang._("Eurekasa - Il motore di ricerca degli annunci");

	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">' + ekLang._("Caricamento in corso...");

	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);
		}

		sRemoteURL += '?r=' + vslGetRand(100000);
	}
	else	sRemoteURL = '/remote/getFilter/' + sFilter + sBaseURL + '?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);
}
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
}
function sendEmail(nPos){
	if (vslElIsVisible("item_email_" + nPos)){
		vslCollapseEL("item_email_" + nPos, vslGetElementHeight("item_email_" + nPos), 1, -35, 25, function () {

			oEl = vslGetHTMLElement("item_email_" + nPos);
			if (oEl.style)
				oEl.style.height = "1px";

			vslHEL("item_email_" + nPos);
		});
	}else{
		vslSEL('item_email_' + nPos);
		vslCollapseEL('item_email_' + nPos, 1, 150, 20, 25, null);
	}
}

function toggleVisibleEKBL(tagId){
	visibilityStatus = document.getElementById(tagId).style.display;
	if (visibilityStatus=='none')
		document.getElementById(tagId).style.display='block';
	else
		document.getElementById(tagId).style.display='none';
}

function switchTextEKBL(node, tagId, showText, hideText){
	visibilityStatus = document.getElementById(tagId).style.display;
	if (visibilityStatus=='none')
		node.innerHTML = showText;
	else
		node.innerHTML = hideText;

}

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

var aTxtName = new Array();
aTxtName['email'] = 'Email';
aTxtName['chiudi'] = 'chiudi';
aTxtName['mappa'] = 'mappa';
aTxtName['amappa'] = 'Allarga';
aTxtName['nome'] = 'Nome';
aTxtName['privacy'] = 'Confermo di aver letto l&#39;informativa sulla <a href="/casa/informazioni/politica-di-privacy.php" rel="nofollow">privacy</a> e <input type="checkbox" name="privacy" value="S" checked="checked" />Acconsento al trattamento dei dati personali da parte di Eurekasa.';
aTxtName['privacySmall'] = 'Acconsento <input type="checkbox" name="privacy" value="S" checked="checked" /> al trattamento dei dati personali (<a href="/casa/informazioni/politica-di-privacy.php" rel="nofollow">leggi l\'informativa</a>)';
aTxtName['invia'] = 'Invia un\'email all\'agenzia immobiliare';
aTxtName['messaggio'] = 'Messaggio';
aTxtName['telefono'] = 'Telefono';
aTxtName['indicazione'] = 'L\'indicazione si riferisce alla strada o piazza ove &egrave; ubicata l\'agenzia immobiliare.';
aTxtName['indicazione2'] = 'L\'indicazione si riferisce alla strada o piazza ove &egrave; ubicato l\'annuncio immobiliare.';
aTxtName['ingrandimento'] = 'ingrandimento';
aTxtName['centra'] = 'centra';
aTxtName['satellite'] = 'satellite';
aTxtName['ibrida'] = 'ibrida';

function DynInnerHTML()
{
	oSpan = document.getElementsByTagName("span");

	for (i = 0; i < oSpan.length; i++)
	{
		if (oSpan[i].id.substring(0, 3) == "sw_")
		{
			var sFieldName = oSpan[i].id.substring(3, oSpan[i].id.length);

			for (x in aTxtName)
			{
				if (x == sFieldName.substring(0, sFieldName.indexOf("_"))) {
					document.getElementById(oSpan[i].id).innerHTML = aTxtName[x];
					break;
				}
			}

		}
	}
}




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

function setInputValue(InputId, InputValue)
{
	//document.getElementById(InputId).value = InputValue;
	var oEl = vslGetHTMLElement(InputId);
	if (oEl && oEl.value)
		oEl.value = InputValue;
	else	return false;

	return true;
}


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

function validateFormTrasloco() {

	document.trasloco.fromday_id.value = document.trasloco.Eurekasa_campo_data_da_non_parsare_id_1.value.substring(0, 2);
	document.trasloco.frommonth_id.value = document.trasloco.Eurekasa_campo_data_da_non_parsare_id_1.value.substring(3, 5);
	document.trasloco.fromyear_id.value = document.trasloco.Eurekasa_campo_data_da_non_parsare_id_1.value.substring(6, 10);
	document.trasloco.today_id.value = document.trasloco.Eurekasa_campo_data_da_non_parsare_id_2.value.substring(0, 2);
	document.trasloco.tomonth_id.value = document.trasloco.Eurekasa_campo_data_da_non_parsare_id_2.value.substring(3, 5);
	document.trasloco.toyear_id.value = document.trasloco.Eurekasa_campo_data_da_non_parsare_id_2.value.substring(6, 10);

//alert("campo da: " + document.trasloco.fromday_id.value + document.trasloco.frommonth_id.value + document.trasloco.fromyear_id.value + " --- campo a: " + document.trasloco.today_id.value + document.trasloco.tomonth_id.value + document.trasloco.toyear_id.value);

	var posta = document.trasloco.email.value;

	if (document.trasloco.tipoRichiesta.value == "") {
		alert("Specificare il tipo di trasloco che si vuole effettuare!");
		document.trasloco["tipoRichiesta"].focus();
		return;
	}
	else if ((((posta.match(/@/)) && (posta.match(/\./))) == null)) {
		alert("Controllare di aver riempito e scritto correttamente il campo email!");
		document.trasloco.email.focus();
		return;
	} else {
		document.trasloco.submit();
	}

}

function centrareImmagine(img)
{

	oImg = document.getElementById(img);
	nImgHeight= oImg.height;
	margin=(320 - nImgHeight)/2;
	oImg.style.marginTop=margin;
// 	alert(oImg.style.marginTop);
}

function flipBanner(id, show) {
	var banner = document.getElementById(id);
	if (banner) {
		banner.style.visibility=(show) ? 'visible' : 'hidden';
	}
}

function hideBanners() {
	showHideBanners(false);
}

function showBanners() {
	showHideBanners(true);
}

function showHideBanners(show) {
	flipBanner('bannerHP', show);
	flipBanner('bannerLeaderboard', show);
}

function slideRight(){

	for (i=1;i<4;i++){
 		cont=document.getElementById("img"+i);
		nI = numImage + i - 1;
		if(nI > numTotalImage)
			nI = nI-numTotalImage;
		cont.style.backgroundImage="url('/thumbs/100x75/"+sIdAnnuncio+"/"+nI+"/"+sAnnuncioName+"')";
		cont.alt="";
 	}
	numImage = numImage+1;
	if(numImage > numTotalImage)
		numImage = 1;

	loadBackgroundImage(1,"imgBigLeft");
 	loadBackgroundImage(3,"imgBigRight");
	loadBackgroundImage(2,"imgBig");
	dojo.byId('numeroImg').innerHTML=" "+numImage+" ";
	
}

function slideLeft(){

	for (i=1;i<4;i++){
 		cont=document.getElementById("img"+i);
		nI = numImage + i - 3;
		if(nI<1)
			nI = numTotalImage + nI;
		cont.style.backgroundImage="url('/thumbs/100x75/"+sIdAnnuncio+"/"+nI+"/"+sAnnuncioName+"')";
		cont.alt="";
 	}
	numImage = numImage - 1;
	if(numImage < 1)
		numImage = numTotalImage;
 	loadBackgroundImage(1,"imgBigLeft");
 	loadBackgroundImage(3,"imgBigRight");
	loadBackgroundImage(2,"imgBig");
// // // 	dojo.byId('numeroImg').innerHTML=" "+numImage+" ";
}

nContToShow = 1;

function loadBackgroundImage(posSmallImage,content)
{
	//Contedor de la imagen pequena
	var contImgSmall=document.getElementById("img"+posSmallImage);
	
	var nI;
	var aSplitBackground;	
	
//	if(posSmallImage == 1){
//		numImage--;
//	}
//	if(posSmallImage == 3){
//		numImage++;
//	}
//	
	if(numImage < 1)
		numImage = numTotalImage;

	if(posSmallImage != 2 && content == "imgBig"){
		stop();
	}


		if(content == "imgBig"){
			if(nContToHide == 1){
				nContToShow = 2;
			}
			else{
				nContToShow = 1;
			}
			
			contImgBigToHide = document.getElementById(content+nContToHide);
			contImgBigToShow = document.getElementById(content+nContToShow);
	
	
			var aux= nContToShow;
			nContToShow = nContToHide;
			nContToHide = aux;
			
			contImgBigToShow.style.backgroundImage = contImgSmall.style.backgroundImage.replace("100x75", "400x300");
		
			var outFade = dojo.animateProperty(
			{
				node: contImgBigToHide,
				duration: 800,
				properties: {
						opacity:{start: 1, end:0}
				}
			});
		
			outFade.play();
		
			var inFade = dojo.animateProperty(
			{
				node: contImgBigToShow,
				duration: 800,
				properties: {
						opacity:{start: 0, end:1}
				}
			});
		
			inFade.play();
			aSplitBackground = (contImgBigToShow.style.backgroundImage).split("/");
			dojo.byId('numeroImg').innerHTML=" "+numImage+" ";	
		}
		else{
			contImgBig = document.getElementById(content);
			contImgBig.style.backgroundImage = contImgSmall.style.backgroundImage.replace("100x75", "400x300");
		}	
}

function loadStartImage()
{
	dojo.byId('imgBigRight').style.backgroundImage = "url('/thumbs/400x300/"+sIdAnnuncio+"/2/"+sAnnuncioName+"')";
	dojo.byId('imgBigLeft').style.backgroundImage = "url('/thumbs/400x300/"+sIdAnnuncio+"/"+numTotalImage+"/"+sAnnuncioName+"')";	
}

var intval=""
function play(){
        if(intval==""){

		dojo.byId('play').innerHTML="<a onclick='stop();'><span class='dashed'>stop</span><img src='/vimages/default/IT/ico-stop.png' width='15' height='15' style='margin-left:4px;' alt=''></a>";
		slideRight();
		intval=window.setInterval(slideRight, 3000);
      }else{
          stop()
      }
 }

function stop(){
        if(intval!=""){
		window.clearInterval(intval);
		dojo.byId('play').innerHTML="<a onclick='play();'><span class='dashed'>play</span><img src='/vimages/default/IT/ico-play.png' width='15' height='15' style='margin-left:4px;' alt=''></a>";
		intval=""
      }
    }

function divChangeClass(id,className) {
	if(dojo.byId(id)) {
		dojo.byId(id).className=className;
	}
}



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

function changeBackgroundPosition(element,x,y) {
	element.style.backgroundPosition = x+" "+y;
	
}

/*
 *  resizeDialogContents()
 *  
 *  Changes dimensions of the dojo-boxes *after* the iframe has been created.
 *  
 */
function resizeDialogContents() {
	
	var oIframe = document.getElementById("dialogContents");
	// Catch the error when the iFrame src is not in our domain (since it won't be allowed to access it).
	try {
		var oDoc = oIframe.contentWindow || oIframe.contentDocument;
		if (oDoc){
			if (oDoc.document){
				oDoc = oDoc.document;
			}
			var myFrame = oDoc.getElementById("staticText");
			
			if (myFrame) {
				myFrame.style.height = dojo.byId("lightBoxDialog").offsetHeight - 36 + "px";
			}
		}
	} catch (error) {}
}

/* 
 * getPageSize()
 * 
 * Returns array with page width, height and window width, height
 *
 */
function getPageSize(){
 
 var xScroll, yScroll;
 
 if (window.innerHeight && window.scrollMaxY) {    
     xScroll = document.body.scrollWidth;
     yScroll = window.innerHeight + window.scrollMaxY;
 } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
     xScroll = document.body.scrollWidth;
     yScroll = document.body.scrollHeight;
 } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
     xScroll = document.body.offsetWidth;
     yScroll = document.body.offsetHeight;
 }
 
 var windowWidth, windowHeight;
 if (self.innerHeight) {    // all except Explorer
     windowWidth = self.innerWidth;
     windowHeight = self.innerHeight;
 } else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
     windowWidth = document.documentElement.clientWidth;
     windowHeight = document.documentElement.clientHeight;
 } else if (document.body) { // other Explorers
     windowWidth = document.body.clientWidth;
     windowHeight = document.body.clientHeight;
 }    
 
 // for small pages with total height less then height of the viewport
 if(yScroll < windowHeight){
     pageHeight = windowHeight;
 } else {
     pageHeight = yScroll;
 }

 // for small pages with total width less then width of the viewport
 if(xScroll < windowWidth){    
     pageWidth = windowWidth;
 } else {
     pageWidth = xScroll;
 }

 return [ pageWidth,pageHeight,windowWidth,windowHeight ];
}

/*
 * getScrollXY()
 * 
 * Finds current window scroll position.
 */

function getScrollXY() {
	  var scrOfX = 0, scrOfY = 0;
	  if( typeof( window.pageYOffset ) == 'number' ) {
	    //Netscape compliant
	    scrOfY = window.pageYOffset;
	    scrOfX = window.pageXOffset;
	  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
	    //DOM compliant
	    scrOfY = document.body.scrollTop;
	    scrOfX = document.body.scrollLeft;
	  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
	    //IE6 standards compliant mode
	    scrOfY = document.documentElement.scrollTop;
	    scrOfX = document.documentElement.scrollLeft;
	  }
	  return [ scrOfX, scrOfY ];
	}

/*
 * ScrollTo(id,stps) (see below)
 * 
 * Scrolls display window up to object (id) position.
 * The scroll lasts "stps" µ-secs.
 */

// Auxiliary function for scrollTo(id)
var steps;
var scrollTimeOut = 0;

var date,startTime;

function myScrollBy(idToActivate,sx,sy,ex,ey){
	var scroll,nx,ny;
	scroll = getScrollXY();
	nx = scroll[0]; ny = scroll[1];

	sx += 30.7*(ex-nx)/(steps*Math.log(Math.abs(ex-nx+1)));
	sy += 30.7*(ey-ny)/(steps*Math.log(Math.abs(ey-ny+1)));

	// This works even when the user plays with the scroll wheel...
	if (sx-nx != 0 || sy-ny != 0){
		window.scrollBy(sx-nx,sy-ny);
	}

	if (scrollTimeOut){
		clearTimeout(scrollTimeOut);
	}
	
	var date2 = new Date();
	// Stop anyway if too much time has passed (twice as requested).
	if ( (date2.getTime()-startTime) < (steps*40) && (Math.abs(sx - ex)>1 || Math.abs(sy - ey)>1) ){
		scrollTimeOut = setTimeout(function(){myScrollBy(idToActivate,sx,sy,ex,ey)},20);
	} else {
		dojo.byId(idToActivate).focus();
	}
}

function scrollTo(id,idToActivate,stps)
{
	var obj = dojo.byId(id);
	var objleft = objtop = 0;

	// find this object position.
	while (obj.offsetParent){
		objleft += obj.offsetLeft;
		objtop += obj.offsetTop;
		obj = obj.offsetParent;
	}

	steps = stps/20;
	var dims = getPageSize();
	
	if (dims[1] - objtop < dims[3])
		objtop = dims[1]-dims[3];

	if (dims[0] - objleft < dims[2])
		objleft = dims[0]-dims[2];
	
	var scr = getScrollXY();

	date = new Date();
	startTime = date.getTime();
	myScrollBy(idToActivate,scr[0],scr[1],objleft,objtop,0);
}
