﻿function DoSearchByUrl(url) {
    OnBeginSearch();
    Maklarhuset.Web.ObjektSearchCommand.GetSearchResultByUrl(url, DoSearch_Callback);
}

function OnBeginSearch() {
    document.getElementById("listing").style.display = "none";

    var divSearchTips = document.getElementById("divSearchTips");
    if (divSearchTips) {
        divSearchTips.style.display = "none";
        ClearChildNodes(divSearchTips);
    }


    var showAllResults = document.getElementById("showAllResults");
    if (showAllResults) {
        showAllResults.style.display = "none";
    }

    var showingAllResults = document.getElementById("showingAllResults");
    if (showingAllResults) {
        showingAllResults.style.display = "none";
    }

    var showingPartialResults = document.getElementById("showingPartialResults");
    if (showingPartialResults) {
        showingPartialResults.style.display = "none";
    }

    var divHitCount = document.getElementById("divHitCount");
    if (divHitCount) {
        divHitCount.style.display = "none";
    }

    ShowLoading(true);
}


function DoSearch_Callback(result) {
    ShowLoading(false);

    if (result.value) {
        var searchResults = result.value;
        if (result.value.IsNewSearch == 1) {
            var txt = document.getElementsByName("blabla");
            var str = txt[0].innerHTML;
            str = str.replace(/Sökningar/, "");
            str = str.replace(/\(/, "");
            str = str.replace(/\)/, "");
            var newstr = "Sökningar (" + (parseInt(str) + 1).toString() + ")";
            txt[0].innerHTML = newstr;
        }

        if (window.location.toString().indexOf("Search.aspx") != -1) {
            var txtSearchString = document.getElementById("txtSearchString");
            txtSearchString.value = decodeURI(searchResults.Details.SearchString);
            eraseCookie('searchstring');
            createCookie('searchstring', txtSearchString.value);
        }

        var startklarTopBarFull = document.getElementById("startklarTopBarFull");
        if (startklarTopBarFull) {
            startklarTopBarFull.onclick = function() {
                StartklarPopupSearch(searchResults)
            }
        }

        if (result.value.ObjektList.length > 0) {
            var theTable = document.getElementById("searchResultTable");
            clearSearchResultTable(theTable);
            showingCampaign = false;

            for (var i = 0; i < result.value.ObjektList.length; i++) {
                var objektList = result.value.ObjektList[i];
                var tableRow = document.createElement("tr");
                tableRow.objektId = objektList.ID;
                tableRow.id = "objektRow" + objektList.ID;
                tableRow.onclick = function() { ExpandObjektDetails(this, this.objektId); /* this.objektIdTick(1); */ };
                tableRow.onmouseover = function() { this.className += " over" };
                tableRow.onmouseout = function() { this.className = this.className.replace(/over/, "") };

                var cellTyp = document.createElement("td");
                cellTyp.className = "typ" + objektList.BostadsTyp;
                var strSpan;
                switch (objektList.BostadsTyp) {
                    case 1:
                        strSpan = "Villa";
                        break;
                    case 2:
                        strSpan = "Fritidshus";
                        break;
                    case 3:
                        strSpan = "Bostadsrätt";
                        break;
                    case 4:
                        strSpan = "Hyresrätt";
                        break;
                    case 5:
                        strSpan = "Tomt";
                        break;
                    case 6:
                        strSpan = "Lantbruk eller gård";
                        break;
                    case 7:
                        strSpan = "Kommersiell fastighet";
                        break;
                    case 8:
                        strSpan = "Andel i bostadsf&ouml;rening";
                        break;
                    case 9:
                        strSpan = "Nybyggnation";
                        break;
                }
                var elmImg = document.createElement("img");
                elmImg.src = MH_rootPath + "images/listingIconTyp" + objektList.BostadsTyp + ".gif";
                elmImg.alt = strSpan;
                elmImg.title = strSpan;

                cellTyp.appendChild(elmImg);
                tableRow.appendChild(cellTyp);


                var cellOmrade = document.createElement("td");
                cellOmrade.innerHTML = objektList.Omrade;
                tableRow.appendChild(cellOmrade);

                var cellAdress = document.createElement("td");
                cellAdress.innerHTML = objektList.Adress;
                tableRow.appendChild(cellAdress);

                var cellRum = document.createElement("td");
                cellRum.innerHTML = objektList.AntalRum;
                tableRow.appendChild(cellRum);

                var cellBoYta = document.createElement("td");
                cellBoYta.innerHTML = objektList.BoYta;
                tableRow.appendChild(cellBoYta);

                var cellTomtYta = document.createElement("td");
                cellTomtYta.innerHTML = objektList.TomtYta.replace(/ /g, "&nbsp;");
                tableRow.appendChild(cellTomtYta);

                var cellPris = document.createElement("td");
                cellPris.innerHTML = objektList.Pris.replace(/ /g, "&nbsp;");
                tableRow.appendChild(cellPris);

                var cellVisning = document.createElement("td");
                if (objektList.NastaVisning.length > 0) {
                    cellVisning.innerHTML = objektList.NastaVisning;
                }
                else {
                    cellVisning.innerHTML = "-";
                }
                tableRow.appendChild(cellVisning);

                /*var dateVisning = objektList.NastaVisning;
                dateVisning.setUTCDate(dateVisning.getUTCDate() + 1);
                var cellVisning = document.createElement("td");
                var dateNow = new Date();
                var bShowVisning = false;
					
					if(dateVisning.getUTCFullYear() >= dateNow.getUTCFullYear())
                {
                if (dateVisning.getUTCMonth() > dateNow.getUTCMonth())
                {
                bShowVisning = true;
                }
                else if (dateVisning.getUTCMonth() == dateNow.getUTCMonth())
                {
                if (dateVisning.getUTCDate() >= dateNow.getUTCDate())
                {
                bShowVisning = true;
                }
                }
                }
					
					if (bShowVisning)
                {
                cellVisning.innerHTML = "" + padout(dateVisning.getUTCFullYear()-2000) + padout(dateVisning.getMonth() + 1) + padout(dateVisning.getDate());
                }
                else
                {
                cellVisning.innerHTML = "-"
                }
                tableRow.appendChild(cellVisning);
                */

                var dateAndrad = objektList.SenastAndrad;
                var cellAndrad = document.createElement("td");
                if (dateAndrad.getFullYear() > 2000) {
                    cellAndrad.innerHTML = "" + padout(dateAndrad.getUTCFullYear() - 2000) + padout(dateAndrad.getMonth() + 1) + padout(dateAndrad.getDate());
                }
                else {
                    cellAndrad.innerHTML = "-";
                }
                tableRow.appendChild(cellAndrad);

                var cellFavorit = document.createElement("td");

                elmImg = document.createElement("img");

                //if (!MH_profileIsAnonymous) { ////////////////////////////////#####
                if (objektList.IsFavorite) {
                    elmImg.src = MH_rootPath + "images/listingIconFavorite.gif";
                    elmImg.alt = "favorit";
                    elmImg.title = "Ta bort från favoriter"
                }
                else {
                    elmImg.src = MH_rootPath + "images/listingIconNoFavorite.gif";
                    elmImg.alt = "";
                    elmImg.title = "Lägg till bland favoriter"
                }

                elmImg.onclick = toggleFavorite;
                //}
                //else {
                //    elmImg.src = MH_rootPath + "images/listingIconNoFavorite.gif";
                //    elmImg.alt = "";
                //    elmImg.title = "Du m\u00E5ste vara inloggad medlem f\u00F6r att spara favoriter"
                //    elmImg.onclick = function() { alert("Du m\u00E5ste vara inloggad medlem f\u00F6r att spara favoriter"); }
                // }

                cellFavorit.appendChild(elmImg);

                //cellFavorit.innerHTML = objektList.IsFavorite;
                tableRow.appendChild(cellFavorit);

                //if (objektList.IsFavorite) {
                //    tableRow.className = "favorite";
                //}

                theTable.appendChild(tableRow);
                theTable.parentNode.style.display = "block";
            }

            var showingAllResults = document.getElementById("showingAllResults");
            var showAllResults = document.getElementById("showAllResults");
            var showingPartialResults = document.getElementById("showingPartialResults");
            var HitCount = document.getElementById("HitCount");
            var divHitCount = document.getElementById("divHitCount");

            if (divHitCount != null) {
                divHitCount.style.display = "block";
                HitCount.innerHTML = result.value.Details.HitCount;
                divHitCount.firstChild.style.visibility = "visible";
            }

            if (result.value.Details.HitCount > 300 && result.value.Details.SearchCommand.ResultCount != 0) {
                showingPartialResults.style.display = "block";
                var showingPartialResultsHitCount = document.getElementById("showingPartialResultsHitCount");
                showingPartialResultsHitCount.innerHTML = result.value.Details.HitCount;
            }
            else if (result.value.Details.HitCount > result.value.ObjektList.length && result.value.Details.SearchString.length > 0) {
                // More results are available
                showAllResults.style.display = "block";
                var showAllResultsHitCount = document.getElementById("showAllResultsHitCount");
                showAllResultsHitCount.innerHTML = result.value.Details.HitCount;

                var showAllResultsText = document.getElementById("showAllResultsText");
                showAllResultsText.style.display = (result.value.Details.HitCount > 100 ? "block" : "none");
            }
            else if (result.value.Details.HitCount > 0) {
                showingAllResults.style.display = "block";
                var showingAllResultsHitCount = document.getElementById("showingAllResultsHitCount");
                showingAllResultsHitCount.innerHTML = result.value.Details.HitCount;
            }
            else {
                showAllResults.style.display = "none";
            }
        }

      // PopulateSearchTips(result.value.Details.SearchTips);
        AdvancedSearchToggled(); /// ###
        refreshRoundCorners();
        
        var divNoResults = document.getElementById("divNoResults");
        //			divNoResults.parentNode.parentNode.parentNode.parentNode.style.display = (result.value.ObjektList.length > 0 ? "none" : "block");  // Wrapperdivs
        if( divNoResults )
            divNoResults.style.display = (result.value.ObjektList.length > 0 ? "none" : "block");
        
        document.body.style.display = "block"; // IE bug fix

        //if(typeof Instadia_sendEvent == "function") {Instadia_sendEvent("011FI", "Search # " + txtSearchString.value);}
        // if (window.location.toString().indexOf("Search.aspx") != -1 && getUrlParameter("from") != "sokningar" ) {
        if( searchResults.IsNewSearch == 1 ) {
            fade('activityAlert', 'msgAlert', '<h4>Sökningen finns nu under fliken "<a href=\"/MinSida/Sokningar.aspx\">Sökningar</a>"</h4>Där kan du spara sökningen som favorit.');
        }
    }
    else if (result.error) {
        logError(result);
    }
    updateSortHeaders();

    tickerSearch();
}

function getFlashMovie(movieName) {

    var isIE = navigator.appName.indexOf("Microsoft") != -1;
    return (isIE) ? window[movieName] : document[movieName];

    return document.getElementById(movieName);
}

function tickerSearch() {
 //  alert("update 1: " + urlpath);
   // getFlashMovie("tickerflash").updateTicker("default");

    //
    var urlpath;

    if (window.location.toString().indexOf("Search.aspx") != -1)
        urlpath = "search";
    else if (window.location.toString().indexOf("Sokningar.aspx") != -1)
        urlpath = "sokningar";
    else if (window.location.toString().indexOf("Visningar.aspx") != -1)
        urlpath = "visningar";
    else if (window.location.toString().indexOf("Bostader.aspx") != -1)
        urlpath = "bostader";
    else
        urlpath = "default";

/*
    if( getFlashMovie("tickerflash") ) {
        getFlashMovie("tickerflash").updateTicker(urlpath, Math.round(1000 * Math.random()).toString());
    }
    */
 //   alert("update 2");
}

function ShowLoading(loading) {
    var ele = document.getElementById("divLoading");
    ele.style.display = (loading ? "block" : "none");
}

function showAllResults() {
    if (window.location.href.indexOf("resultCount") > -1) {
        window.location.href = window.location.href.replace(/&?resultCount=[^&]*/, "&resultCount=0");
    }
    else {
        window.location.href += "&resultCount=0";
    }
}

function clearSortHighlight() {
    var arrA = document.getElementById("listing").getElementsByTagName("thead")[0].getElementsByTagName("a");
    for (var i = 0; i < arrA.length; i++) {
        arrA[i].className = "";
    }
}

function SortResults(columnName) {
    if (window.location.href.indexOf("sortColumn") > -1) {
        obj = document.getElementById("colHeader" + columnName);

        clearSortHighlight();
        var currentColumn;
        var columnExp = /&?sortColumn=([^&]*)/;
        var match = columnExp.exec(window.location.href);
        if (match != null && match.length > 1) {
            currentColumn = match[1];
            obj = document.getElementById("colHeader" + currentColumn);
        } else {
            currentColumn = "";
        }


        if (currentColumn == columnName) {
            var sortDescending;
            var columnExp = /&?sortDescending=([^&]*)/;
            var match = columnExp.exec(window.location.href);
            if (match != null && match.length > 1) {
                sortDescending = match[1];
                sortDescending = (sortDescending == "true" ? "false" : "true");
            } else {
                sortDescending = "true";
            }

            window.location = window.location.href.replace(/&?sortColumn([^&]*)(&?sortDescending([^&]*))?/, "&sortColumn=" + columnName + "&sortDescending=" + sortDescending);
        }
        else {
            window.location = window.location.href.replace(/&?sortColumn([^&]*)(&?sortDescending([^&]*))?/, "&sortColumn=" + columnName);
        }
    }
    else {
        window.location += "&sortColumn=" + columnName;
    }
}

function updateSortHeaders() {
    var columnExp = /&?sortColumn=([^&]*)/;
    var match = columnExp.exec(window.location.href);
    if (match != null && match.length > 1) {
        currentColumn = match[1];

        if (currentColumn) {
            obj = document.getElementById("colHeader" + currentColumn);

            var sortDescending = true;
            var columnExp = /&?sortDescending=([^&]*)/;
            var match = columnExp.exec(window.location.href);
            if (match != null && match.length > 1) {
                sortDescending = match[1];
                sortDescending = (sortDescending == "true" ? false : true);
            }
            if (sortDescending) {
                obj.className = "sortDesc";
            }
            else {
                obj.className = "sortAsc";
            }
        }
    } else {

        var arrLinks = document.getElementById("listing").getElementsByTagName("thead")[0].getElementsByTagName("a");
        for (var i = 0; i < arrLinks.length; i++) {
            arrLinks[i].className = "";
        }

    }

}

function toggleFavorite(e) {

    if (!e) var e = window.event
    // handle event
    e.cancelBubble = true;
    if (e.stopPropagation) e.stopPropagation();

    var objektRow = this.parentNode.parentNode;
    //var favoriteResult = Maklarhuset.Web.ObjektSearchCommand.ToggleObjektFavorite(objektRow.objektId);
    //var isFavorite = favoriteResult.value;

    // if (isFavorite) {
    //     this.src = MH_rootPath + "images/listingIconFavorite.gif";
    //     this.alt = "favorit";
    //     this.title = "Ta bort från favoriter"
    //     objektRow.className += " favorite";
    // }
    // else {
    //     this.src = MH_rootPath + "images/listingIconNoFavorite.gif";
    //     this.alt = "";
    //     this.title = "Lägg till bland favoriter"
    //
    //      objektRow.className = objektRow.className.replace("favorite", "");
    // }



    if (this.src.indexOf("listingIconFavorite.gif") > 0) //är favorit
    {

        Maklarhuset.Web.MHProfileManager.ObjectInsertFavourite(objektRow.objektId, '0');
        this.src = MH_rootPath + "images/listingIconNoFavorite.gif";
        this.alt = "";
        this.title = "Lägg till bland favoriter"
        fade('activityAlert', 'msgAlert', '<h4>Favorit borttagen</h4><p>Kommer inte vara kvar vid nästa besök.</p>');

        //objektRow.className = objektRow.className.replace("favorite", "");
    }
    else {

        Maklarhuset.Web.MHProfileManager.ObjectInsertFavourite(objektRow.objektId, '1');
        this.src = MH_rootPath + "images/listingIconFavorite.gif";
        this.alt = "favorit";
        this.title = "Ta bort från favoriter"

        fade('activityAlert', 'msgAlert', '<h4>Favorit sparad</h4><p>Kommer att vara kvar vid nästa besök.</p>');
        //objektRow.className += " favorite";

    }



}

function clearSearchResultTable(theTable) {
    while (theTable.childNodes.length > 0) {
        theTable.removeChild(theTable.firstChild);
    }
}

function ExpandObjektDetails(sender, id) {
    Maklarhuset.Web.ObjektSearchCommand.GetObjektDetails(id, ExpandObjektDetails_Callback)
}


var showingCampaign = false;
function ExpandObjektDetails_Callback(result) {
    if (result.value) {
        var objektDetails = result.value;

        var objektRow = document.getElementById("objektRow" + objektDetails.ID);

        if (objektRow && objektRow.className.indexOf("expanded") == -1) {
            objektRow.className += " expanded";

            var expandedRow = document.createElement("tr");
            expandedRow.className = " objektDetails";

            var newCell = document.createElement("td");
            newCell.setAttribute("colspan", 10);
            newCell.colSpan = 10;
            newCell.innerHTML = '<div class="imageBox">' +
										'<img src="' + MH_rootPath + 'Images/objekt/250/' + objektDetails.BildGUID + '.jpg" alt="" />' +
										'<div class="bCornerTL"></div>' +
										'<div class="bCornerTR"></div>' +
										'<div class="bCornerBL"></div>' +
										'<div class="bCornerBR"></div>' +
									'</div>' +
									'<div class="objektText typ' + objektDetails.BostadsTyp + '">' +
										'<h2>' + objektDetails.Adress + ', ' + objektDetails.Ort + '</h2>' +
										'<p>' + objektDetails.Beskrivning.replace(/\n/g, "<br />") + '</p>' +
										(objektDetails.iBudgivningTypID == "3" || objektDetails.iBudgivningTypID == "1" || objektDetails.iBudgivningTypID == "2" ? '<p class="visning"><strong>Budgivning pågår!</strong></p>' : '') +
										(objektDetails.NastaVisning.length > 0 ? '<p class="visning"><strong>N&auml;sta visning: </strong>' + objektDetails.NastaVisning + '</p>' : '') +
										(objektDetails.GUID != objektDetails.BelongsToProjectGUID ? '<p class="showDescription"><a href="' + MH_rootPath + 'ViewObjekt.aspx?objektid=' + objektDetails.ID + '">Visa beskrivning</a></p>' : '') +
									    (!IsEmpty(objektDetails.BelongsToProjectGUID) ? '<p class="showProject"><a href="' + MH_rootPath + 'Viewproject.aspx?sourceid=' + objektDetails.BelongsToProjectGUID + '">Se projektet</a></p>' : '') +
									    '<p class="showOffice"><a href="' + objektDetails.OfficeURL + '">' + objektDetails.OfficeTitle + '</a></p>' +
									 '</div>';

            expandedRow.appendChild(newCell);
            insertAfter(objektRow.parentNode, expandedRow, objektRow);
            refreshRoundCorners();
            objektRow.onclick = function() {
                var objNextSibling = objektRow.nextSibling
                if (objNextSibling) {
                    objektRow.parentNode.removeChild(objNextSibling);
                    if (objNextSibling.className.indexOf("campaign") > -1) {
                        objektRow.parentNode.removeChild(objNextSibling);
                        showingCampaign = false;
                    }
                }
                this.className = this.className.replace("expanded", "");
                this.onclick = function() { ExpandObjektDetails(this, this.objektId); };
                refreshRoundCorners();
            };


            if (ShowCampaign && !showingCampaign) {
                var newRow = document.createElement("tr");
                newRow.className = " campaign";
                var newCell = document.createElement("td");
                newCell.colSpan = 10;
                newCell.onclick = function() {
                    location.href = MH_rootPath + 'Salja/DubbelBoendekostnadsForsakring.aspx'
                }

                // Build tablecell
                newCell.innerHTML = '<h4>Nu har du som säljer din bostad genom Mäklarhuset möjlighet att skydda dig mot dubbla boendekostnader.</h4>';

                newRow.appendChild(newCell);
                insertAfter(objektRow.parentNode, newRow, expandedRow);
                showingCampaign = true;
            }


            //if(typeof Instadia_sendInfo == "function") {
            //	Instadia_sendEvent("011FI", "Objekt expanderat # " + objektDetails.Adress + ", " + objektDetails.Ort, "Kontor: " + objektDetails.OfficeTitle);
            //}

        }
    }
    else {
    }
}
function openStartklar() {
    Shadowbox.open({
        player: 'inline',
        content: '#startklarPopup',
        height: 500,
        width: 650
    })
}

function StartklarPopupSearch(result) {
    if (result.ObjektList.length > 0) {
        var objekt = new Array(result.ObjektList.length);
        for (var i = 0; i < result.ObjektList.length; i++) {
            objekt[i] = result.ObjektList[i].ID;
        }

        var objektOffices = Maklarhuset.Web.ObjektSearchCommand.GetOfficesByObjekt(objekt).value;

        StartklarPopulateOffices(objektOffices);
        openStartklar(); return false;
    }
    else {
        openStartklar(); return false;
    }
}

function IsEmpty(sToCheck) {
    var sToCheck
    if (sToCheck == null || sToCheck == "") {
        return true
    }
    else
        return false
}
