	function ListingInfo(sListingId, sOrgId, sPrice, sAddr1, sAddr2, 
						sDetail1, sDetail2, sLink, sHeadline, sListingIdDisplay){
		this.ListingId = sListingId
		this.OrgId = sOrgId
		this.Price = sPrice
		this.Addr1 = sAddr1
		this.Addr2 = sAddr2
		this.Detail1 = sDetail1
		this.Detail2 = sDetail2
		this.Link = sLink
		this.Headline = sHeadline
		this.ListingIdDisplay = sListingIdDisplay
	}	
	var arrListingInfo = new Array()
	var iCurrIdx = 0
	
	function ShiftFListRight(){
		if (iCurrIdx + iShiftQty < arrListingInfo.length) {
			iCurrIdx += iShiftQty
		}
		else 
			iCurrIdx = 0
	}
	
	function ShiftFListLeft(){
		if (iCurrIdx > 0) {
			iCurrIdx -= iShiftQty
		}
		else {
		    iCurrIdx = arrListingInfo.length - iShiftQty;
		}
		if (iCurrIdx < 0)
			iCurrIdx = 0
	}
	
	function ShowFListingMain(bNext){
		if (bNext)
			ShiftFListRight()
		else
			ShiftFListLeft()
		ShowFListingData()
		ShowFListingImage(iCurrIdx,"dynListingImage1")
		SetListingLink()
		if (iShiftQty == 2) {
			if (iCurrIdx + 1 >= arrListingInfo.length)
				ShowHide("dynListing2", false)
			else {
				ShowFListingData2()
				ShowFListingImage(iCurrIdx + 1,"dynListingImage2")
				SetListingLink2()
				ShowHide("dynListing2", true)
			}
		}
		ShowPrevNext()
		ShowPrevNextCounts()
		return false
	}
	
	var iRotateMilliSec = 0
	var iScrollTimerId = 0
	
	function ShowFListing(bNext){	// User clicked
		if (iScrollTimerId != 0){
			// Cancel current timer; restart after additional delay (5 secs)
			window.clearTimeout(iScrollTimerId)
			iScrollTimerId = window.setTimeout("ScrollListings();", iRotateMilliSec + 5000)
		}	
		return ShowFListingMain(bNext)
	}
	
	function ScrollListings(){	// Timer clicked
		ScrollTransitionBegin()
		ShowFListingMain(true)
		ScrollTransitionEnd()
		iScrollTimerId = window.setTimeout("ScrollListings();", iRotateMilliSec)
	}
	
	function InitScrolling(iMilliSecInterval){
		iRotateMilliSec = iMilliSecInterval
		iScrollTimerId = window.setTimeout("ScrollListings();", iRotateMilliSec)
	}
	
	var oTransform1, oTransform2
	var oFilter1, oFilter2
	function ScrollTransitionBegin(){
		oFilter1 = null
		oFilter2 = null
		oTransform1 = GetFld("divListing1")
		if (oTransform1){
			if (oTransform1.filters){
				oFilter1 = oTransform1.filters[0]
				if (oFilter1)
					oFilter1.Apply()
			}
		}
		oTransform2 = GetFld("dynListing2")
		if (oTransform2){
			if (oTransform2.filters){
				oFilter2 = oTransform2.filters[0]
				if (oFilter2)
					oFilter2.Apply()
			}
		}
	}
	function ScrollTransitionEnd(){
		if (oFilter1){
			oFilter1.Play()
		}
		if (oFilter2){
			oFilter2.Play()
		}
	}
	
	
	var sAddrSeparator = "<br />"
	
	function ShowFListingData(){
		var oListing = arrListingInfo[iCurrIdx]
		PutFieldHtml("dynListingLink1b", ConcatWith(oListing.Addr1, oListing.Addr2, sAddrSeparator))
		PutFieldHtml("dynDetail1",oListing.Detail1)
		PutFieldHtml("dynDetail2",oListing.Detail2)
		PutFieldHtml("dynPrice1",oListing.Price)
		PutFieldHtml("dynHeadline1",oListing.Headline)
	}
	
	function ShowFListingData2(){
		var oListing = arrListingInfo[iCurrIdx + 1]
		PutFieldHtml("dynListingLink2b",ConcatWith(oListing.Addr1, oListing.Addr2, sAddrSeparator))
		PutFieldHtml("dynDetail1b",oListing.Detail1)
		PutFieldHtml("dynDetail2b",oListing.Detail2)
		PutFieldHtml("dynPrice2",oListing.Price)
		PutFieldHtml("dynHeadline2",oListing.Headline)
	}	
	
	function ShowFListingImage(iListIdx,sId){
		var sUrl = "/SearchPoint/defaultimage.asp?org_id=" + arrListingInfo[iListIdx].OrgId +
						"&mls_property_id=" + arrListingInfo[iListIdx].ListingId
						
//sUrl = "http://www.rdesk.com" + sUrl

		PutImageSrc(sId, sUrl)
		PutImageAlt(sId, GetImageAlt(iListIdx))
	}
	
	function GetListingTip(iIdx){
		var sTip = "View Listing"
		var sId = arrListingInfo[iIdx].ListingIdDisplay
		
		if (sId == "")
			sId = arrListingInfo[iIdx].ListingId
		if (sId != "")
			sTip += " #" + sId
		return sTip
	}

	function GetImageAlt(iIdx){
		var sOut = "Featured Listing"
		var oListing = arrListingInfo[iIdx]
		var sId = oListing.ListingIdDisplay
		var sAddr1 = oListing.Addr1
		var sAddr2 = oListing.Addr2
		
		if (sId == "")
			sId = oListing.ListingId
		if (sAddr1 != "" && sAddr2 != ""){
			sOut = sAddr1 + ", " + sAddr2
		} else if (sAddr1 != "" || sAddr2 != ""){
			sOut = sAddr1 + sAddr2
		} else {
			if (sId != "")
				sOut += " #" + sId
		}
		return sOut
	}
	
	function SetListingLink(){
		var sLink, sTip 
		sLink = arrListingInfo[iCurrIdx].Link
		sTip = GetListingTip(iCurrIdx)
		PutLinkHref("dynListingLink1a",sLink)
		PutLinkHref("dynListingLink1b",sLink)
		PutLinkHref("dynHeadline1",sLink)
		PutLinkTitle("dynListingLink1a",sTip)
		PutLinkTitle("dynListingLink1b",sTip)
		PutLinkTitle("dynHeadline1",sTip)
	}
	
	function SetListingLink2(){
		var sLink, sTip
		if (iCurrIdx + 1 < arrListingInfo.length) {
			sLink = arrListingInfo[iCurrIdx+1].Link
			sTip = GetListingTip(iCurrIdx+1)
			PutLinkHref("dynListingLink2a",sLink)
			PutLinkHref("dynListingLink2b",sLink)
			PutLinkHref("dynHeadline2",sLink)
			PutLinkTitle("dynListingLink2a",sTip)
			PutLinkTitle("dynListingLink2b",sTip)
			PutLinkTitle("dynHeadline2",sTip)
		}
	}
	
	function ShowPrevNext(){
		var fld
		if (GetFld("dynNext1")) {
			fld = GetFld("dynNext1")
			fld.className = (iCurrIdx < arrListingInfo.length - iShiftQty) ? "bodyTextAction" : "bodyTextActionDisabled"
			fld = GetFld("dynPrev1")
			fld.className = (iCurrIdx > 0) ? "bodyTextAction" : "bodyTextActionDisabled"
		}
	}
	
	function ShowPrevNextCounts(){
		var sCaption
		if (GetFld("dynPrevNextCounts")) {
			if (iShiftQty == 1)
				sCaption = "#" + (iCurrIdx + 1)
			else if (iCurrIdx + 1 == arrListingInfo.length)
				sCaption = "Listing " + (iCurrIdx + 1)
			else
				sCaption = "Listings " + (iCurrIdx + 1) + " and " + (iCurrIdx + 2)
			sCaption += " of " + arrListingInfo.length
			PutFieldHtml("dynPrevNextCounts",sCaption)
		}
	}
	
	function ShowHide(sFldId, bShow){
		var fld = GetFld(sFldId)
		if (fld) {
			if (bShow)
				fld.style.display = "inline" //fld.style.visibility = "visible" //
			else
				fld.style.display = "none" //fld.style.visibility = "hidden" //
		}
	}
	
	function PutFieldHtml(sFldId,sHtml){
		var fld = GetFld(sFldId)
		if (fld)
			fld.innerHTML = sHtml
	}
	
	function PutLinkHref(sFldId,sLink){
		var fld = GetFld(sFldId)
		if (fld)
			fld.href = sLink
	}
	
	function PutLinkTitle(sFldId,sTitle){
		var fld = GetFld(sFldId)
		if (fld)
			fld.title = sTitle
	}
	
	function PutImageSrc(sFldId,sSrc){
		var fld = GetFld(sFldId)
		if (fld)
			fld.src = sSrc
	}
	
	function PutImageAlt(sFldId,sAlt){
		var fld = GetFld(sFldId)
		if (fld)
			fld.alt = sAlt
	}
	
	function EstabPrevNext(sHtml){
		PutFieldHtml("dynPrevNext", sHtml)
	}
	
	function GetFld(sFldId){
	    if (document.getElementById) {
	        return document.getElementById(sFldId)
	    }
	    else if (document.all){
			return document.all(sFldId)
		}
		return null
	}
	
	function ConcatWith(s1,s2,sConnector){
		if (s1 == "")
			return s2
		else if (s2 == "")
			return s1
		else
			return s1 + sConnector + s2
	}
