﻿
function Querystring(qs) { // optionally pass a querystring to parse
    this.params = {};

    if (qs == null) qs = location.search.substring(1, location.search.length);
    if (qs.length == 0) return;

    qs = qs.replace(/\+/g, ' ');
    var args = qs.split('&'); // parse out name/value pairs separated via &

    // split out each name=value pair
    for (var i = 0; i < args.length; i++) {
        var pair = args[i].split('=');
        var name = decodeURIComponent(pair[0]);

        var value = (pair.length == 2)
		? decodeURIComponent(pair[1])
		: name;

        this.params[name] = value;
    }
}

Querystring.prototype.get = function(key, default_) {
    var value = this.params[key];
    default_ = default_ || "";
    return (value != null) ? value : default_;
}

Querystring.prototype.contains = function(key) {
    var value = this.params[key];
    return (value != null);
}

var _onLoginAction = null;
var _qs = new Querystring();

function saveSearch(flag) { 
    if (flag) { 
        $(document).ready(function() { 
        if (_isMemberLoggedIn) { 
                $(".save-search").attr("href", getSaveSearchUrl(0));
            } else { 
                $(".save-search").attr("href", getHref("login"));
            }
            $(".save-search").colorbox({ width: 400, height: 200, opacity: 0.7, close: "<span></span>", iframe: true, scrollbars: false, speed: 0, transition: "none" });
            $(".save-search").click();
        });
    } else {
        document.getElementById("ListingSearch/SaveSearch").value = 1; 
        document.forms['ListingSearch'].submit();
    }
}
 
function getHref(formtype) {
    var href = getAppRoot() + "/account/" + formtype + ".aspx?formtype=" + formtype +
                "&onregister=register" +
                "&onsignin=signin" +
                "&onresize=resizeoverlay" +
                "&onloginsuccess=showlogininfo" +
                "&onsuccess=" + escape(escape(window.location.href + getRedirectParams())); 
    return href;
}

function resizeoverlay(width, height) {
    $(".cboxIframe").contents().find("html").css("overflow", "hidden");

    $(".cboxIframe").css("width", width + "px");
    $(".cboxIframe").css("height", height + "px");

    $("#cboxLoadedContent").css("width", width + "px");
    $("#cboxLoadedContent").css("height", height + "px");

    $(".cboxIframe").colorbox.resize({innerWidth: width, innerHeight: height});

}

function getSaveSearchUrl(listingId) {
    try {
        var queryString = (_qs.contains("ListingSearch") ? "&ListingSearchID=" + _qs.get("ListingSearch") : "")
        if (listingId > 0) {
            queryString = "&ListingSearchID=" + listingId
        }
        return getAppRoot() + "/account/savesearch.aspx?overlay=1" + queryString +
            "&onresize=resizeoverlay";
    } catch (e) { }
}

function isAdminApp() {
    //return window.location.href.toString().toLowerCase().indexOf("brokeroffice.admin") >= 0;
    return window.location.href.toString().toLowerCase().indexOf("fnistools.com") >= 0;
}

function getAppRoot() {
    return isAdminApp() ? "/brokeroffice.admin/agent/public" : Utils.AppPath;
}

function isLoggedIn() {
    if (typeof (_customerInfo) != 'undefined') {
        if (typeof (_customerInfo.firstName) != 'undefined' && _customerInfo.firstName != "") {
            return true;
        }
    }
    return false;
}

function register() {
    $(".cboxIframe").attr("src", getHref("signup"));
}

function signin() {
    $(".cboxIframe").attr("src", getHref("login"));
    $(".save-search").colorbox({ width: 400, height: 200, opacity: 0.7, close: "<span></span>", iframe: true, scrollbars: false, speed: 0, transition: "none" });
    $(".save-search").click();
}

function showlogininfo(name) {
    $(".cboxIframe").attr("src", getSaveSearchUrl());
}

function isProxyLoggedIn() {
    if (isAdminApp() && readCookie("rBW-ListingSearch") != "") {
        return true;
    }
    return false;
}


function getRedirectParams() {
    var params = [];
    params.push(getSearchCookie());
    params.push(getNextAction());
    var s = (window.location.href.lastIndexOf("?") === -1) ? ['?'] : [''];

    if (window.location.href.lastIndexOf("/") == window.location.href.length - 1) {
        s = ['default.aspx?'];
    }

    $.each(params, function() {
        if (this != "") {
            if (s.length > 1) s.push(escape('%26'));
            s.push(this);
        }
    });
    return s.join('');
}


function getSearchCookie() {
    var search = readCookie("rBW-ListingSearch");
    return search ? "search=" + search : "";
}

function getNextAction() {
    return _onLoginAction == null ? "" : "nextaction=" + _onLoginAction;
}
