window.hzmr = window.hzmr || [];
/************* Start NewGalleryRequest.php Ajax Connector for locale en-US**************/
try {
//<script>
        HZ.ajaz.Services.newGallery = function(newGalleryName, newGalleryDescription, allowDuplicate, privacy, onSuccess, extras) {
            var params = [
                {name:'newGalleryName',value:newGalleryName},
                {name:'newGalleryDescription',value:newGalleryDescription},
                {name:'allowDuplicate',value:allowDuplicate}
            ];

            if (privacy) {
                params.push(
                    {name:'privacy', value: privacy}
                );
            }

            var url = "\/newGallery";

            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
        

window.hzmr.push("NewGalleryRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End NewGallery Ajax Connector  **************/
/************* Start GlobalCommentsAjaxRequest.php Ajax Connector for locale en-US**************/
try {        //<script>

        HZ.ajaz.Services.getGlobalCommentsHtml = function (galleryId, languages, preferredLanguages, referer, onSuccess, extras) {
            var params = [
                {
                    name: 'op',
                    value: 'getGlobalCommentsHtml'
                },
                {
                    name: 'galleryId',
                    value: galleryId
                },
                {
                    name: 'languages',
                    value: languages
                },
                {
                    name: 'preferredLanguages',
                    value: preferredLanguages
                },
                {
                    name: 'referer',
                    value: referer
                }
            ];
            var url = "\/globalCommentsAjaxRequest";
            HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
        };

        HZ.ajaz.Services.getTranslatedComments = function (commentIds, onSuccess, extras) {
            var params = [
                {
                    name: 'op',
                    value: 'getTranslatedComments'
                },
                {
                    name: 'commentIds',
                    value: commentIds
                }
            ];
            var url = "\/globalCommentsAjaxRequest";
            HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
        };

        HZ.ajaz.Services.getTranslatedGeneric = function (message,  language, onSuccess, extras) {
            var params = [
                {
                    name: 'op',
                    value: 'getTranslatedGeneric'
                },
                {
                    name: 'message',
                    value: message
                },
                {
                    name: 'language',
                    value: language
                }
            ];
            var url = "\/globalCommentsAjaxRequest";
            HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
        };

        

window.hzmr.push("GlobalCommentsAjaxRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End GlobalCommentsAjax Ajax Connector  **************/
/************* Start CartActionsRequest.php Ajax Connector for locale en-US**************/
try {        // <script>
            // Defineing a new package name "Cart"
            HZ.ns('HZ.ajaz.Services.Cart');
            HZ.ajaz.Services.Cart.addItem = function (houseId, productId, quantity, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'add'},
                    {name: 'ac', value: '0'},
                    {name: 'hid', value: houseId},
                    {name: 'pId', value: productId},
                    {name: 'q', value: quantity}
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };

            // need to be deleted once UK launch new return policy
            // start here
            HZ.ajaz.Services.Cart.getReturnPolicy = function (houseId, vendorId, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'getPolicy'},
                    {name: 'hid', value: houseId},
                    {name: 'vId', value: vendorId},
                    {name: 'ac', value: '6'}
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            // end here

            HZ.ajaz.Services.Cart.getWarranty = function (houseId, vendorId, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'getPolicy'},
                    {name: 'hid', value: houseId},
                    {name: 'vId', value: vendorId},
                    {name: 'ac', value: '6'}
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.updateItem = function (cartItemId, quantity, productId, giftCardInfoId,
                                                         warrantyCartItemId, warrantyItemId, warrantyQuantity, onSuccess, extras) {
                var params = [
                    {name: 'ciId', value: cartItemId},
                    {name: 'q', value: quantity},
                    {name: 'pId', value: productId},
                    {name: 'gid', value: giftCardInfoId},
                    {name: 'wciId', value: warrantyCartItemId},
                    {name: 'wpId', value: warrantyItemId},
                    {name: 'wq', value: warrantyQuantity},
                ];
                if (quantity == 0) {
                    params.push({name: 'op', value: 'remove'},
                        {name: 'ac', value: '2'});
                }
                else {
                    params.push({name: 'op', value: 'update'},
                        {name: 'ac', value: '1'});
                }
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.removeItem = function (cartItemId, vendorListingId, giftCardInfoId,
                                                         warrantyCartItemId, warrantyItemId, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'remove'},
                    {name: 'ac', value: '2'},
                    {name: 'ciId', value: cartItemId},
                    {name: 'gid', value: giftCardInfoId},
                    {name: 'vid', value: vendorListingId},
                    {name: 'wciId', value: warrantyCartItemId},
                    {name: 'wpId', value: warrantyItemId},
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.updateShippingMethod = function (vendorId, shippingClass, shippingMethod, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'updateShipping'},
                    {name: 'ac', value: '4'},
                    {name: 'vId', value: vendorId},
                    {name: 'smId', value: shippingMethod},
                    {name: 'scls', value: shippingClass}
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.applyCoupon = function (couponCode, flow, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'applyCoupon'},
                    {name: 'ac', value: '7'},
                    {name: 'cpn', value: couponCode},
                    {name: 'cpnfl', value: flow}
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.removeCoupon = function (flow, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'removeCoupon'},
                    {name: 'ac', value: '12'},
                    {name: 'cpnfl', value: flow}
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.getCartDetails = function (onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'inquire'},
                    {name: 'ac', value: '5'}
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.addFromWishList = function (houseId, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'addFromWishList'},
                    {name: 'ac', value: '9'},
                    {name: 'hid', value: houseId}
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.moveToWishList = function (cartItemId, productId, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'moveToWishList'},
                    {name: 'ac', value: '8'},
                    {name: 'ciId', value: cartItemId},
                    {name: 'pId', value: productId}
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.removeFromWishList = function (houseId, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'removeFromWishList'},
                    {name: 'ac', value: '10'},
                    {name: 'hid', value: houseId}
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.addToWishList = function (houseId, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'addToWishList'},
                    {name: 'ac', value: '11'},
                    {name: 'hid', value: houseId}
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.updateGiftOption = function (isGift, giftMessage, receiptEmail, recipientName, senderName, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'updateGiftOption'},
                    {name: 'ac', value: '13'},
                    {name: 'g', value: isGift},
                    {name: 'gm', value: giftMessage},
                    {name: 'e', value: receiptEmail},
                    {name: 'r', value: recipientName},
                    {name: 's', value: senderName}
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.getWarrantyOffers = function (onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'getWarrantyOffers'},
                    {name: 'ac', value: '16'},
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.addWarrantyItem = function (listingId, offerId, cost, duration, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'addWarrantyItem'},
                    {name: 'ac', value: '14'},
                    {name: 'vid', value: listingId},
                    {name: 'woId', value: offerId},
                    {name: 'wc', value: cost},
                    {name: 'wd', value: duration},
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.Cart.updateWarrantyItem = function (existingWarrantyCartItemId, listingId, offerId, cost, duration, onSuccess, extras) {
                var params = [
                    {name: 'op', value: 'updateWarrantyItem'},
                    {name: 'ac', value: '15'},
                    {name: 'ciId', value: existingWarrantyCartItemId},
                    {name: 'vid', value: listingId},
                    {name: 'woId', value: offerId},
                    {name: 'wc', value: cost},
                    {name: 'wd', value: duration},
                ];
                var url = "\/editCart";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
        

window.hzmr.push("CartActionsRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End CartActions Ajax Connector  **************/
/************* Start SetVisitorPropertyRequest.php Ajax Connector for locale en-US**************/
try {//<script>
        HZ.ajaz.Services.VISITOR_PROPERTY_SHOW_SAVE_PHOTO_TIP="onboarding.showSavePhotoTip";
        HZ.ajaz.Services.VISITOR_PROPERTY_PRIMARY_ONBOARDING_TOOLTIP="onboarding.primaryTooltip";
        HZ.ajaz.Services.VISITOR_PROPERTY_SHOW_SAVE_PHOTO_TIP_ON="on";
        HZ.ajaz.Services.VISITOR_PROPERTY_SHOW_SAVE_PHOTO_TIP_OFF="off";
        HZ.ajaz.Services.VISITOR_PROPERTY_IDEABOOK_TIP_ALREADY_SHOWN = "onboarding.ideaBookTipAlreadyShown";
        HZ.ajaz.Services.VISITOR_PROPERTY_IDEABOOK_TIP_PHOTO_SAVED = "onboarding.ideaBookTipPhotoSaved";
        HZ.ajaz.Services.VISITOR_PROPERTY_IDEABOOK_NAVIGATION_SHOWN = "ideaBookNavigationShown";
        HZ.ajaz.Services.VISITOR_PROPERTY_SIGNED_OUT_NOTIFICATION = "push_signed_out";
        HZ.ajaz.Services.VISITOR_PROPERTY_PRO_DIRECTORY_WIZARD_SHOWN = "proDirectoryWizardShown";
        HZ.ajaz.Services.VISITOR_PROPERTY_ODS_PROMO_DISMISSED = "odsPromoDismiss";
        HZ.ajaz.Services.VISITOR_PROPERTY_TRADE_PROGRAM_NOTICE_DISMISS = "tpMemberNoticeDismiss";
        HZ.ajaz.Services.VISITOR_PROPERTY_TRADE_PROMO = "tradePromoBanner";
        HZ.ajaz.Services.VISITOR_PROPERTY_TRADE_PROMO_DIALOG = "tradePromoDialog";
        HZ.ajaz.Services.setVisitorProperty = function(propertyName, value, onSuccess, extras) {
            var params = [
                {name:'prop', value:propertyName},
                {name:'v', value:value}
            ];
            var url = "\/setVisitorProperty";
            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };

        HZ.ajaz.Services.COOKIE_BANNER = "cookieBanner";
        

window.hzmr.push("SetVisitorPropertyRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End SetVisitorProperty Ajax Connector  **************/
/************* Start AuthorizeRequest.php Ajax Connector for locale en-US**************/
try {        //<script type="text/javascript">
HZ.ns("HZ.ajaz.Authorize");

HZ.ajaz.Services.fbSignUp = function(onSuccess, redirectUrl, defaultEmail, extras, reAuth) {
    var reAuthValue = reAuth ? "1" : "0";
    var defaultEmailValue = defaultEmail ? defaultEmail : "";
    var params = [
        {name:'op',value:'f'},
        {name:'a',value:HZ.sns.JsSdk.fb.getFbAppId()},
        {name:'fbtoken',value:HZ.sns.JsSdk.fb.getFbAccessToken()},
        {name:'ss',value:HZ.auth.Manager.getSignupSource()},
        {name:'sp',value:HZ.auth.Manager.getSourcePage()},
        {name:'fbra',value:reAuthValue},
        {name:'e',value:defaultEmailValue},
        {name:'rdr',value:HZ.utils.Links.base64Encode(redirectUrl)},
        {name:'jt',value:encodeURIComponent(HZ.data.CSRFToken)}
    ];

    var url = "https:\/\/www.houzz.com\/authorize";

    var wrapperCallbackFn = function(response) {
        if (response && response.success && response.success == "true") {
            if (response[HZ.ajaz.Authorize.JSON_KEY_CV])
                HZ.data.CSRFToken = response[HZ.ajaz.Authorize.JSON_KEY_CV];
        }

        onSuccess(response);
    };

    extras = extras || {};
    extras.dataType = "jsonp";
    extras.type = "GET";

    HZ.ajaz.AjaxReq.send(url,params,wrapperCallbackFn,extras);
};

HZ.ajaz.Services.googleSignUp = function(onSuccess, googleOneTimeAuthCode, redirectUrl, extras) {
    var params = [
        {name: 'op', value: 'g'},
        {name: 'ss', value: HZ.auth.Manager.getSignupSource()},
        {name: 'sp', value: HZ.auth.Manager.getSourcePage()},
        {name: 'gCode', value: encodeURIComponent(googleOneTimeAuthCode)},
        {name: 'rdr', value: HZ.utils.Links.urlSafeBase64Encode(redirectUrl)},
        {name:'jt',value:encodeURIComponent(HZ.data.CSRFToken)}
    ];

    var url = "https:\/\/www.houzz.com\/authorize";

    var wrapperCallbackFn = function(response) {
        if (response && response.success && response.success == "true") {
            if (response[HZ.ajaz.Authorize.JSON_KEY_CV])
                HZ.data.CSRFToken = response[HZ.ajaz.Authorize.JSON_KEY_CV];
        }

        onSuccess(response);
    };

    extras = extras || {};
    extras.dataType = "jsonp";
    extras.type = "GET";

    HZ.ajaz.AjaxReq.send(url, params, wrapperCallbackFn, extras);
};

HZ.ajaz.Services.removeFbLogin = function(onSuccess, extras) {
    var params = [
        {name:'op',value:'fbr'},
        {name:'a',value:HZ.sns.JsSdk.fb.getFbAppId()},
        {name:'jt',value:encodeURIComponent(HZ.data.CSRFToken)}
    ];

    var url = "https:\/\/www.houzz.com\/authorize";

    HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
};

HZ.ajaz.Services.enableFbLogin = function(fbAccessToken, onSuccess, extras) {
    var params = [
        {name:'op',value:'fbl'},
        {name:'a',value:HZ.sns.JsSdk.fb.getFbAppId()},
        {name:'fbtoken',value:fbAccessToken},
        {name:'jt',value:encodeURIComponent(HZ.data.CSRFToken)}
    ];

    var url = "https:\/\/www.houzz.com\/authorize";

    HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
};

HZ.ajaz.Services.enableGoogleLogin = function(onSuccess, authCode, extras) {
    var params = [
        {name:'op',value:'gl'},
        {name: 'gCode', value: authCode},
        {name:'jt',value:encodeURIComponent(HZ.data.CSRFToken)}
    ];

    var url = "https:\/\/www.houzz.com\/authorize";

    HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
};

HZ.ajaz.Services.updateAutoRegisterPassword = function(duck, onSuccess, extras) {
    var params = [
        {name:'op',value:'duck'},
        {name:'pwd',value:duck},
        {name:'jt',value:encodeURIComponent(HZ.data.CSRFToken)}
    ];

    var url = "https:\/\/www.houzz.com\/authorize";
    extras = extras || {};


    if (HZ.utils.Config.ajazEndpointPrefix) {
        var url_parts = document.createElement('a');
        url_parts.href = url;
        extras.url = HZ.utils.Config.ajazEndpointPrefix + url_parts.pathname + url_parts.search + url_parts.hash;
        HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
    } else {
      var wrapperCallbackFn = function(response) {
        if (response && response.success && response.success == "true") {
          if (response[HZ.ajaz.Authorize.JSON_KEY_CV])
            HZ.data.CSRFToken = response[HZ.ajaz.Authorize.JSON_KEY_CV];
        }

        onSuccess(response);
      };
      HZ.ajaz.AjaxReq.send(url,params,wrapperCallbackFn,extras);
    }

};


HZ.ajaz.Services.inlineSignup = function(email, setSession, firstName, sourceLink, redirectUrl, onSuccess, extras) {
    //check the null case of redirectUrl
    if (!redirectUrl){
        redirectUrl = "";
    }
    var params = [
        {name:'op',value:'nls'},
        {name:'e',value:email},
        {name:'sess',value:setSession},
        {name:'f',value:firstName},
        {name:'ss',value:sourceLink},
        {name:'sp',value:HZ.auth.Manager.getSourcePage()},
        {name:'rdr',value:HZ.utils.Links.base64Encode(redirectUrl)},
        {name:'jt',value:encodeURIComponent(HZ.data.CSRFToken)},
        {name:'timeoutInMs', value: 30000}
    ];

    var url = "https:\/\/www.houzz.com\/authorize";

    extras = extras || {};
    extras.type = "GET";
  // hack to ensure c2 lightbox inline signup call from within jukwaa page works
    if (HZ.utils.Config.ajazEndpointPrefix) {
      var url_parts = document.createElement('a');
      url_parts.href = url;
      extras.url = HZ.utils.Config.ajazEndpointPrefix + url_parts.pathname + url_parts.search + url_parts.hash;
      return HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);

    } else {
      extras.dataType = "jsonp";
      var wrapperCallbackFn = function(response) {
        if (response && response.success && response.success == "true") {
          if (response[HZ.ajaz.Authorize.JSON_KEY_CV])
            HZ.data.CSRFToken = response[HZ.ajaz.Authorize.JSON_KEY_CV];
        }
        onSuccess(response);
      };
      return HZ.ajaz.AjaxReq.send(url,params,wrapperCallbackFn,extras);
    }

};

HZ.ajaz.Services.signup = function(username, duck, email, sourceLink, rcCha, rcResp, redirect, onSuccess, extras) {
    var opValue = 's';

    if (sourceLink === "1500") { // typeof(sourceLink) is a string
        opValue = 'xes';
    }

    var params = [
        {name:'op',value:opValue},
        {name:'un',value:username},
        {name:'pwd',value:duck},
        {name:'e',value:email},
        {name:'ss',value:sourceLink},
        {name:'sp',value:HZ.auth.Manager.getSourcePage()},
        {name:'recaptcha_challenge_field',value:rcCha},
        {name:'recaptcha_response_field',value:rcResp},
        {name:'rdr',value:redirect},
        {name:'jt',value:encodeURIComponent(HZ.data.CSRFToken)}
    ];



    var wrapperCallbackFn = function(response) {
        if (response && response.success && response.success == "true") {
            if (response[HZ.ajaz.Authorize.JSON_KEY_CV])
                HZ.data.CSRFToken = response[HZ.ajaz.Authorize.JSON_KEY_CV];
        }
        onSuccess(response);
    };

    var url = "https:\/\/www.houzz.com\/authorize";
    HZ.ajaz.AjaxReq.send(url,params,wrapperCallbackFn,extras);
};

HZ.ajaz.Services.signIn = function(username, duck, keep, redirectUrl, onSuccess, extras, rcResp) {
    var params = [
        {name:'op',value:'l'},
        {name:'un',value:username},
        {name:'pwd',value:duck},
        {name:'rdr',value:redirectUrl},
        {name:'k',value:keep},
        {name:'jt',value:encodeURIComponent(HZ.data.CSRFToken)},
        {name:'recaptcha_response_field',value:rcResp}
    ];

    var wrapperCallbackFn = function(response) {
        if (response && response.success && response.success == "true") {
            if (response[HZ.ajaz.Authorize.JSON_KEY_CV])
                HZ.data.CSRFToken = response[HZ.ajaz.Authorize.JSON_KEY_CV];
        }

        onSuccess(response);
    };

    var url = "https:\/\/www.houzz.com\/authorize";

    HZ.ajaz.AjaxReq.send(url,params,wrapperCallbackFn,extras);
};

HZ.ajaz.Services.magicLinkSignIn = function(username, keep, redirectUrl, onSuccess, extras) {
    var params = [
        {name:'op',value:'mls'},
        {name:'un',value:username},
        {name:'rdr',value:redirectUrl},
        {name:'k',value:keep},
        {name:'jt',value:encodeURIComponent(HZ.data.CSRFToken)}
    ];

    var wrapperCallbackFn = function(response) {
        if (response && response.success && response.success == "true") {
            if (response[HZ.ajaz.Authorize.JSON_KEY_CV])
                HZ.data.CSRFToken = response[HZ.ajaz.Authorize.JSON_KEY_CV];
        }

        onSuccess(response);
    };

    var url = "https:\/\/www.houzz.com\/authorize";

    HZ.ajaz.AjaxReq.send(url,params,wrapperCallbackFn,extras);
};

HZ.ajaz.Services.proSignup = function(onSuccess, extras) {
    var params = [
        {name:'op',value:'ps'},
        {name:'jt',value:encodeURIComponent(HZ.data.CSRFToken)}
    ];

    var url = "https:\/\/www.houzz.com\/authorize";

    extras = extras || {};
    extras.dataType = "jsonp";
    extras.type = "GET";

    HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
};

HZ.ajaz.Services.homeownerSignup = function(onSuccess, extras) {
    var params = [
        {name:'op',value:'hs'},
        {name:'jt',value:encodeURIComponent(HZ.data.CSRFToken)}
    ];

    var url = "https:\/\/www.houzz.com\/authorize";

    extras = extras || {};
    extras.dataType = "jsonp";
    extras.type = "GET";

    HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
};

HZ.ajaz.Services.authCheckName = function(username, onSuccess, extras) {
    var params = [
        {name:'op',value:'u'},
        {name:'un',value:username}
    ];

    var url = "\/authsvc";

    HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
};

HZ.ajaz.Authorize.emailCheckCache = {};

HZ.ajaz.Authorize.authCheckEmail = function(email, onSuccess, extras) {
    if (HZ.ajaz.Authorize.emailCheckCache[email]) {
        // check has already been run, return cached value
        onSuccess(HZ.ajaz.Authorize.emailCheckCache[email]);
        return;
    }
    var params = [
        {name:'op',value:'e'},
        {name:'e',value:email}
    ];

    var url = "\/authsvc";

    HZ.ajaz.AjaxReq.send(url,params,
        function(resp) {
            if (resp && resp.success && resp.success == "true") {
                // cache this result for future queries
                HZ.ajaz.Authorize.emailCheckCache[email] = resp;
            }

            onSuccess(resp);
        },
    extras);
};

HZ.ajaz.Authorize.JSON_KEY_REDIRECT_URL = "redirectUrl";
HZ.ajaz.Authorize.JSON_KEY_EMAIL = "email";
HZ.ajaz.Authorize.JSON_KEY_IS_VALID = "valid";
HZ.ajaz.Authorize.JSON_KEY_CREATE_PRO_PROFILE_URL = "createProProfileUrl";
HZ.ajaz.Authorize.JSON_KEY_SURL = "sUrl";
HZ.ajaz.Authorize.JSON_VALUE_OK = "ok";
HZ.ajaz.Authorize.JSON_VALUE_MALFORMED = "m";
HZ.ajaz.Authorize.JSON_VALUE_INVALID = "i";
HZ.ajaz.Authorize.USER_TYPE_PRO_SIGNUP = "4";
HZ.ajaz.Authorize.USER_TYPE_HOMEOWNER = "1";
HZ.ajaz.Authorize.JSON_KEY_CV = "cv";
HZ.ajaz.Authorize.JSON_KEY_ERROR = "error";
HZ.ajaz.Authorize.JSON_KEY_UNIFIED_ONBOARDING = "unifiedOnboarding";
HZ.ajaz.Authorize.JSON_KEY_HO_MARKETING_TEST_BUCKET = "hoMarketingTestBucket";
HZ.ajaz.Authorize.EMAIL_MINOR_ERROR = [
    7,
    4];
HZ.ajaz.Authorize.PASSWORD_ERROR = [
    2,
    16];
HZ.ajaz.Authorize.CREDENTIAL_INVALID_ERROR = 50;
HZ.ajaz.Authorize.EMAIL_EXISTS_ERROR = 7;

HZ.ajaz.Services.sendInvitations = function(emailList, onSuccess, extras) {
    var params = [
        {name:'op',value:'i'},
        {name:'ie',value:emailList}
    ];

    var url = "https:\/\/www.houzz.com\/authorize";

    HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
};
//</script>
    

window.hzmr.push("AuthorizeRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End Authorize Ajax Connector  **************/
/************* Start NoOpRequest.php Ajax Connector for locale en-US**************/
try {        //<script type="text/javascript">
HZ.ns("HZ.ajaz.NoOP");

HZ.ajaz.Services.setSession = function(url, onSuccess, extras) {

    extras = extras || {};
    extras.dataType = "jsonp";
    extras.crossDomain = true;
    extras.type = "GET";

    HZ.ajaz.AjaxReq.send(url,[],onSuccess,extras);
};

//</script>
    

window.hzmr.push("NoOpRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End NoOp Ajax Connector  **************/
/************* Start LightboxGetNextSpacesRequest.php Ajax Connector for locale en-US**************/
try {        //<script>
            HZ.ajaz.Services.getNextSpaces = function (contextType, descriptor, nextPosition, onSuccess, extras) {
            var params = [
                {name: 'type', value: contextType},
                {name: 'nextpos', value: nextPosition},
        {name:'version',value:101},
{name:"requestId", value: HZ.utils.Logger.pageRequestId}            ];
            for (var property in descriptor) {
                params.push({name: property, value: descriptor[property]});
            }
            var url = '/lightBoxGetNextSpaces';

            HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.ERROR_VERSION_MISMATCH = 1001        

window.hzmr.push("LightboxGetNextSpacesRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End LightboxGetNextSpaces Ajax Connector  **************/
/************* Start LightboxGetSpaceDataRequest.php Ajax Connector for locale en-US**************/
try {//<script>
        HZ.ajaz.Services.getRecognitionData = function(spaceId, tagIds, onSuccess, extras) {
            if(Array.isArray(tagIds)){
                tagIds = JSON.stringify(tagIds);
            }
            var params = [
                {name:'sid',value: spaceId},
                {name:'itIds',value: tagIds},
                {name:'getItRd',value:true},
                {name:'version',value:101},
{name:"requestId", value: HZ.utils.Logger.pageRequestId}            ];
            var url = '/lightBoxGetSpaceData';

            return HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };

        HZ.ajaz.Services.getQuestionsData = function(spaceId, onSuccess, extras) {
            var params = [
                {name:'sid',value:spaceId},
                {name:'getQuestions',value:true},
                {name:'version',value:101},
{name:"requestId", value: HZ.utils.Logger.pageRequestId}            ];
            var url = '/lightBoxGetSpaceData';

            return HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };

        HZ.ajaz.Services.getSpaceData = function (spaceId, vendorListingId, detailLevel, onSuccess, extras) {
            var params = [
                {name:'sid',value:spaceId},
                {name:'lid',value:vendorListingId},
                {name:'detailLevel',value:detailLevel},
                {name:'extras',value:extras},
                {name:'version',value:101},
{name:"requestId", value: HZ.utils.Logger.pageRequestId}            ];
            var url = '/lightBoxGetSpaceData';
            return HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };

        HZ.ajaz.Services.getSpaceBuzz = function (spaceId, onSuccess, extras) {
            var params = [
                {name:'sid',value:spaceId},
                {name:'detailLevel',value:4},
                {name:'version',value:101},
{name:"requestId", value: HZ.utils.Logger.pageRequestId}            ];
            var url = '/lightBoxGetSpaceData';
            return HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };

        HZ.ajaz.Services.getSpaceByVariations = function (spaceId, vendorListingId, variations, detailLevel, onSuccess, extras) {
            var variationOptionParamValue = "";
            for (var i = 0; i < variations.length; i++) {
                var option = variations[i];
                var optionId = option.id;
                var optionValue = option.value;
                variationOptionParamValue += optionId + '::' + encodeURIComponent(optionValue);
                variationOptionParamValue += '__';
            }
            var params = [
                {name:'sid',value:spaceId},
                {name:'lid',value:vendorListingId},
                {name:'vo',value:variationOptionParamValue},
                {name:'detailLevel',value:detailLevel},
                {name:'version',value:101},
{name:"requestId", value: HZ.utils.Logger.pageRequestId}            ];
            var url = '/lightBoxGetSpaceData';
            return HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };

        HZ.ajaz.Services.DETAIL_LEVEL_EXTENDED_WITH_AD_SPACE_INFO = 3;
        HZ.ajaz.Services.DETAIL_LEVEL_ALL_WITH_AD_SPACE_INFO = 6;
        HZ.ajaz.Services.DETAIL_LEVEL_PRODUCTS_BY_TAG = 8;
        HZ.ajaz.Services.DETAIL_LEVEL_BASE_SPACE_INFO = 1;
        HZ.ajaz.Services.DETAIL_LEVEL_EXTENDED_SPACE_INFO = 2;
        HZ.ajaz.Services.DETAIL_LEVEL_EDIT_SPACE = 7;
        HZ.ajaz.Services.PACIFIC_TIME_ZONE_OFFSET = -28800;
        HZ.ajaz.Services.LONDON_TIME_ZONE_OFFSET = 0;
        

window.hzmr.push("LightboxGetSpaceDataRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End LightboxGetSpaceData Ajax Connector  **************/
/************* Start AddImageTagRequest.php Ajax Connector for locale en-US**************/
try {//<script>
HZ.ns('HZ.ajaz.Services.ImageTags');
HZ.ajaz.Services.ImageTags = {
	getImageTagParams: function (imageTag) {
		var params = [
			{name:'type', value:imageTag.type},
			{name:'id', value:imageTag.spaceId},
			{name:'ven', value:encodeURIComponent(imageTag.vendorName)},
			{name:'com', value:(encodeURIComponent(imageTag.comments))},
			{name:'targetId', value:imageTag.targetSpaceId},
			{name:'link', value:encodeURIComponent(imageTag.link)},
			{name:'x', value:imageTag.x},
			{name:'y', value:imageTag.y}			
		];
		return params;
	},
	addImageTag: function(imageTag, callback) {
		var params = this.getImageTagParams(imageTag);		
		params.push({name:'op', value:'a'});
		var url = "\/addImageTag";
		return HZ.ajaz.AjaxReq.send(url, params, callback);
	},
	addImageTagAndTagBound: function(imageTag, tagBound, callback) {
		var params = this.getImageTagParams(imageTag);
		params.push({name:'boxX', value:tagBound.boxX});
		params.push({name:'boxY', value:tagBound.boxY});
		params.push({name:'boxWidth', value:tagBound.boxWidth});
		params.push({name:'boxHeight', value:tagBound.boxHeight});
		params.push({name:'op', value:'awb'});
		var url = "\/addImageTag";
		return HZ.ajaz.AjaxReq.send(url, params, callback);
	},
	updateImageTag: function(imageTag, callback) {
		var params = this.getImageTagParams(imageTag);
		params.push({name:'op', value:'u'});
		params.push({name:'tagId', value:imageTag.imageTagId});
		var url = "\/addImageTag";
		return HZ.ajaz.AjaxReq.send(url, params, callback);
	},
	updateImageTagAndTagBound: function(imageTag, tagBound, newType, callback) {
		var params = this.getImageTagParams(imageTag);
		params.push({name:'boxX', value:tagBound.boxX});
		params.push({name:'boxY', value:tagBound.boxY});
		params.push({name:'boxWidth', value:tagBound.boxWidth});
		params.push({name:'boxHeight', value:tagBound.boxHeight});
		params.push({name:'op', value:'utb'});
		params.push({name:'tagId', value:(imageTag.imageTagId)?imageTag.imageTagId:imageTag.tid});
		params.push({name:'newType', value:newType});
		var url = "\/addImageTag";
		return HZ.ajaz.AjaxReq.send(url, params, callback);
	},
	updateCheckedImageTag: function(imageTag, callback) {
		var params = this.getImageTagParams(imageTag);
		params.push({name:'op', value:'uct'});
		params.push({name:'tagId', value:(imageTag.imageTagId)?imageTag.imageTagId:imageTag.tid});
		var url = "\/addImageTag";
		return HZ.ajaz.AjaxReq.send(url, params, callback);
	},
	deleteImageTag: function(imageTag, callback) {
		var params = this.getImageTagParams(imageTag);
		params.push({name:'op', value:'d'});
		params.push({name:'tagId', value:(imageTag.imageTagId)?imageTag.imageTagId:imageTag.tid});
		var url = "\/addImageTag";
		return HZ.ajaz.AjaxReq.send(url, params, callback);
	}
};
	

window.hzmr.push("AddImageTagRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End AddImageTag Ajax Connector  **************/
/************* Start ProductLookupRequest.php Ajax Connector for locale en-US**************/
try {        HZ.ns('HZ.ajaz.Services.ProductLookup');
        HZ.ajaz.Services.ProductLookup.lookupProduct = function(query, buyFilter, vendorFilter, countryFilter, houseId, onSuccess, extras) {
            var params = [
                {name:'value', value: query},
                {name:'buyFilter', value: buyFilter},
                {name:'vendorFilter', value: vendorFilter},
                {name:'countryFilter', value: countryFilter},
                {name:'houseId', value: houseId},
                {name:'op', value: 'query'}
            ];
            var url = "\/productLookup";
            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        }

        HZ.ajaz.Services.ProductLookup.productRecognition = function(houseId, boxWidth, boxHeight, boxX, boxY, onSuccess, extras) {
            var params = [
                {name:'houseId', value: houseId},
                {name:'boxWidth', value: boxWidth},
                {name:'boxHeight', value: boxHeight},
                {name:'boxX', value: boxX},
                {name:'boxY', value: boxY},
                {name:'op', value: 'recognition'}
            ];
            var url = "\/productLookup";
            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        }

        HZ.ajaz.Services.ProductLookup.productTagRecognition = function(tagId, onSuccess, extras) {
            var params = [
                {name:'tagId', value: tagId},
                {name:'op', value: 'tag_recognition'}
            ];
            var url = "\/productLookup";
            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        }

        

window.hzmr.push("ProductLookupRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End ProductLookup Ajax Connector  **************/
/************* Start CacheColorPickerColorsRequest.php Ajax Connector for locale en-US**************/
try {		// <script>
			HZ.ns("HZ.ajaz.Services");
			HZ.ajaz.Services.cacheColorPickerColors = function (spaceId, colors, locations, imgWidth, imgHeight, onSuccess, extras) {
				var params = [
					{name: "spaceId", value: spaceId},
					{name: "colors", value: JSON.stringify(colors)},
					{name: "locations", value: JSON.stringify(locations)},
					{name: "imgWidth", value: imgWidth},
					{name: "imgHeight", value: imgHeight},
				];
				var url = "\/cacheColorPickerColors";
				return HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
			};
		

window.hzmr.push("CacheColorPickerColorsRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End CacheColorPickerColors Ajax Connector  **************/
/************* Start GetManufacturerColorsRequest.php Ajax Connector for locale en-US**************/
try {//<script>
        HZ.ajaz.Services.getManufacturerColors = function(colors, mft, onSuccess, extras) {
            var params = [
                {name:'colors', value:JSON.stringify(colors)},
                {name:'mft', value:mft}
            ];
            var url = "\/getManufacturerColors";
            return HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
        };
        

window.hzmr.push("GetManufacturerColorsRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End GetManufacturerColors Ajax Connector  **************/
/************* Start SaveColorPaletteRequest.php Ajax Connector for locale en-US**************/
try {//<script>
		HZ.ajaz.Services.saveColorPaletteMulti = function (spaceId, palette, mftOrCampId, galleryIds, comment, isPrivate, onSuccess, extras) {
			var params = [
				{ name: 'spaceId', value: spaceId },
				{ name: 'palette', value: JSON.stringify(palette) },
				{ name: 'galleryIds', value: galleryIds },
				{ name: 'comment', value: JSON.stringify(comment) },
				{ name: 'isPrivate', value: isPrivate },
			];
			var mftOrCampIdParam;
			if($.isNumeric(mftOrCampId)){
				mftOrCampIdParam = { name: 'campaignId', value: mftOrCampId }
			} else {
				mftOrCampIdParam = { name: 'mft', value: mftOrCampId }
			}
			params.push(mftOrCampIdParam);

			var url = "\/saveColorPalette";
			HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
		};

		HZ.ajaz.Services.saveColorPalette = function(spaceId, palette, mftOrCampId, galleryId, comment, isPrivate, newGalleryName, onSuccess, extras) {
			var params = [				
				{name:'spaceId', value:spaceId},
				{name:'palette', value:JSON.stringify(palette)},
				{name:'galleryId', value:galleryId},
				{name:'comment', value:JSON.stringify(comment)},
				{name:'isPrivate', value:isPrivate},
				{name:'newGalleryName', value:JSON.stringify(newGalleryName)}
			];
			var mftOrCampIdParam;
			if($.isNumeric(mftOrCampId)){
				mftOrCampIdParam = { name: 'campaignId', value: mftOrCampId }
			} else {
				mftOrCampIdParam = { name: 'mft', value: mftOrCampId }
			}
			params.push(mftOrCampIdParam);

			var url = "\/saveColorPalette";
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};
	    

window.hzmr.push("SaveColorPaletteRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End SaveColorPalette Ajax Connector  **************/
/************* Start GetSpaceAjaxRequest.php Ajax Connector for locale en-US**************/
try {        //<script>
            HZ.ajaz.Services.getDownloadUrl = function (houseId, onSuccess, extras) {
                var params = [
                    {name:'houseId',value:houseId}
                ];

                var url = '/getSpaceAjax';

                HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
            };
        

window.hzmr.push("GetSpaceAjaxRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End GetSpaceAjax Ajax Connector  **************/
/************* Start TileAjaxRequest.php Ajax Connector for locale en-US**************/
try {        //<script>
            HZ.ns("HZ.ajaz.Tile");
            HZ.ajaz.Tile.calculate = function(quantity, spaceId, listingId, onSuccess, extras) {
                var url = "\/tileAjax";
                var params = [
                    {name: 'op', value: 'calc'},
                    {name: 'sid', value: spaceId},
                    {name: 'lid', value: listingId},
                    {name: 'q', value: quantity}
                ];
                return HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };

            HZ.ajaz.Tile.getOptions = function(spaceId, listingId, from, to, onSuccess, extras) {
                var url = "\/tileAjax";
                var params = [
                    {name: 'op', value: 'opts'},
                    {name: 'sid', value: spaceId},
                    {name: 'lid', value: listingId},
                    {name: 'from', value: from},
                    {name: 'to', value: to}
                ];
                return HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
        

window.hzmr.push("TileAjaxRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End TileAjax Ajax Connector  **************/
/************* Start ReportProductAjaxRequest.php Ajax Connector for locale en-US**************/
try {        //<script>
            // Defineing a new package name "ReportProduct"
            HZ.ns('HZ.ajaz.Services.ReportProduct');
            HZ.ajaz.Services.ReportProduct.getFlagReasons = function (houseId, onSuccess, extras) {
                var params = [
                    {name: 'hid', value: houseId},
                    {name: 'ac', value: 'g'}
                ];
                var url = "\/reportProduct";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.Services.ReportProduct.flagProduct = function (houseId, reasonIds, newReasonIds, comments, onSuccess, extras) {
                var params = [
                    {name: 'hid', value: houseId},
                    {name: 'fids', value: reasonIds},
                    {name: 'nfids', value: newReasonIds},
                    {name: 'cm', value: comments},
                    {name: 'ac', value: 'f'}
                ];
                var url = "\/reportProduct";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            }
        

window.hzmr.push("ReportProductAjaxRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End ReportProductAjax Ajax Connector  **************/
/************* Start LocationAutoCompleteRequest.php Ajax Connector for locale en-US**************/
try {        HZ.ajaz.Services.autoCompleteLocation = function(textFragment, onSuccess, countryToSearchIn, format, extras) {
        var params = [
        {name:'query',value:textFragment}
        ];
        if(countryToSearchIn) {
            params.push({name:'country', value:countryToSearchIn});
        }
        var resultFormat = 'full';
        if (format) {
            resultFormat = format;
        }
        params.push({name:'resultFormat', value:resultFormat});

        var url = "\/locationComplete";
        HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };

        HZ.ajaz.Services.getLocationStrByZipcode = function(operation, zipcode, countryToSearchIn, onSuccess, extras) {
        var params = [
                        {name:'zipcode',value:zipcode},
                        {name:'op',value:operation},
                        {name:'country', value:countryToSearchIn}
        ];
        var url = "\/locationComplete";
        HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };

        HZ.ajaz.Services.getJapaneseAreasByPostalCode = function(postalCode, onSuccess, extras) {
            var params = [
                {name:'zipcode',value:postalCode},
                {name:'op',value:'getAreasByJpZip'}
            ];
            var url = "\/locationComplete";
            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
    

window.hzmr.push("LocationAutoCompleteRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End LocationAutoComplete Ajax Connector  **************/
/************* Start ChangeShipToLocationAjaxRequest.php Ajax Connector for locale en-US**************/
try {        //<script>
            HZ.ns('HZ.ajaz.Services.ChangeShipToLocation');
            HZ.ajaz.Services.ChangeShipToLocation.getShipTransitTime = function (listingId, locationValue, onSuccess, extras) {
                var params = [
                    {name: 'lid', value: listingId},
                    {name: 'lv', value: locationValue},
                    {name: 'ac', value: 'agst'}
                ];
                var url = "\/changeShipToLocation";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
        

window.hzmr.push("ChangeShipToLocationAjaxRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End ChangeShipToLocationAjax Ajax Connector  **************/
/************* Start SendEmailRequest.php Ajax Connector for locale en-US**************/
try {//<script>

HZ.ajaz.Services.sendEmail = function (messageOptions, sendForm, onSuccess, extras) {
    var url = '/sendEmail';

    var params = [];
    for (var option in messageOptions)
    {
        if (messageOptions[option] != null) {
            params.push({name: option, value:messageOptions[option]});

        }
    }
    params.push({name: 'referrerPath', value: window.location.pathname});
    if (sendForm) {
        params.push({name:'__ct', value: HZ.data.CSRFToken});
        var formOptions = {
            data: params,
            dataType: 'json',
            success: onSuccess,
            type: 'POST',
            url: url
        };
        sendForm.ajaxSubmit(formOptions);
    }
    else {
        HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
    }
};

HZ.ajaz.Services.sendShareEmail = function (messageOptions, onSuccess, extras) {
    var url = '/sendEmail';
    var params = [];
    for (var option in messageOptions)
    {
        if (messageOptions[option] != null)
            params.push({name: option, value:messageOptions[option]});
    }
    params.push({name: 'referrerPath', value: window.location.pathname});
    HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
};

HZ.ajaz.Services.sendGuestEmail = function (messageOptions, onSuccess, extras) {
    var params = [];
    for (var option in messageOptions)
    {
        if (messageOptions[option] != null)
            params.push({name: option, value:messageOptions[option]});
    }
    params.push({name: 'referrerPath', value: window.location.pathname});
    var url = '/sendEmail';
    HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
};

HZ.ns("HZ.sendEmail.types");
HZ.sendEmail.types = {
    SPACE: 3,
    GALLERY: 1,
    QUESTION: 5,
    PRO: 10,
    PRO_REPLY: 23,
    MP: 16,
    MP_SELLER: 17,
    MP_BUYER: 39,
    SURVEY: 28,
    SHARE_COLOR_PALETTE: 43,
    USER: 2,
    USER_REPLY: 48,
    TRADE_EMAIL: 66};
HZ.ns("HZ.sendEmail.events");
HZ.sendEmail.events = {
    BTN: "en_send_btn_photo",
    ADDTOIBK: "en_send_addtoibk_photo",
    SHARECP: "scp",
    ADDTOIBK_SHARE_EMAIL: "addibk_share_email",
    SEND_BTN_ADDTOIBK_SHARE_EMAIL: "send_btn_addibk_share_email",
    ADDTOIBK_SHARE_EMAIL_SEND: "addibk_share_email_send"
};
HZ.ns("HZ.sendEmail.texts");
HZ.sendEmail.texts = {
    DEFAULT_MESSAGE_SPACE: "Take a look at this great space that I found on Houzz, and let me know what you think.",
    DEFAULT_MESSAGE_PRODUCT: "Take a look at this great product that I found on Houzz, and let me know what you think.",
    DEFAULT_MESSAGE_GALLERY: "Take a look at these great spaces that I found on Houzz, and let me know what you think.",
    DEFAULT_MESSAGE_QUESTION: "Take a look at this interesting discussion I found on Houzz, and let me know what you think.",
    DEFAULT_MESSAGE_COLOR_PALETTE: "Take a look at this color palette I created on Houzz.",
    CONFIRM_MESSAGE_SENT: "Message sent successfully.",
    CONFIRM_EMAIL_SENT: "Email sent successfully.",
    ERROR_TO_EMPTY: "Please write an email subject.",
    ERROR_SUBJECT_EMPTY: "Please write an email subject.",
    ERROR_MESSAGE_EMPTY: "Please write an email message.",
    ERROR_TEXT_LOCATION_EMPTY: "Please enter a location.",
    ERROR_PHONE_NOT_TEN_DIGIT: "Please enter a ten-digit phone number.",
    ERROR_INVALID_PHONE: "Please enter a valid phone number. If you are entering an international phone number, please insert + before the country code.",
    ERROR_EMAIL_ADDRESSES_EMPTY: "Please specify recipient email addresses, separated by commas.",
    ERROR_PRO_CONFIRM_INQUIRY_NOT_AGREE: "Please confirm this is a personal project inquiry.",
    ERROR_INVALID_TO_EMAIL_ADDRESSES: "Please specify recipient email addresses, separated by commas.",
    ERROR_INVALID_FROM_EMAIL_ADDRESS: "Please enter a valid email address.",
    ERROR_NO_PHONE: "Please enter your phone.",
    ERROR_NO_ZIP: "Please enter zip code.",
    ERROR_UNKNOWN: "An unknown error occurred. Please retry sending the email a few minutes later.",
    ERROR_NO_CONTACT_NAME: "Please enter your name."};
HZ.ajaz.Services.sendEmail.ERROR_RECOVERABLE = 1;
HZ.ajaz.Services.sendEmail.PHONE_VALIDATION_FAILURE = "Please enter a valid phone number. If you are entering an international phone number, please insert + before the country code.";
HZ.ajaz.Services.sendEmail.ERROR_FATAL = 2;

HZ.sendEmail.params = {
    to: "emailTo",
    from: "emailFrom",
    message: 'emailMessage',
    isVisitor: 'isVisitor',
    subject: 'emailSubject',
    phone: 'phone',
    zipCode: 'zipCode',
    event: 'event',
    type: 'type',
    referenceId: 'refId',
    replyToId: 'replyId',
    captchaResponse: 'cr',
    isDealerLocation: 'isdealloc',
    shareImageUrl: 'simgurl',
    signupSourceLink: 'sourceLink',
    shareLink: 'slink',
    entryType: 'entryType'
};


window.hzmr.push("SendEmailRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End SendEmail Ajax Connector  **************/
/************* Start CurrentSessionUserInfoRequest.php Ajax Connector for locale en-US**************/
try {//<script>
        HZ.ns('HZ.ajaz.Services.User');
        HZ.ajaz.Services.User.getCurrentSessionUserExtraData = function (onSuccess, extras) {
            var params = [
                {name:'ac', value:'getExtraData'}
            ];
            var url = "\/currentSessionUserInfo";
            return HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
        };

        HZ.ajaz.Services.User.getCurrentSessionUserContactData = function(onSuccess, extras) {
            var url = "\/currentSessionUserInfo";
            var params = [{
                name: 'ac',
                value: 'getContactData'
            }];
            return HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
        };
        

window.hzmr.push("CurrentSessionUserInfoRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End CurrentSessionUserInfo Ajax Connector  **************/
/************* Start PhoneValidationAjaxRequest.php Ajax Connector for locale en-US**************/
try {        HZ.ajaz.Services.validatePhoneNumber = function(phoneNumber) {
            var params = [
                {name:'api', value: 'validatePhoneNumber'},
                {name:'phoneNumber', value: phoneNumber},
                {name:'timeoutInMs', value: 30000}
            ];
            var url = "\/phoneValidationAjax";
            return HZ.ajaz.AjaxReq.send(url, params);
        };

        HZ.ajaz.Services.validateInternationalPhoneNumber = function(phoneNumber, country) {
            var params = [
                {name:'api', value: 'validateInternationalPhoneNumber'},
                {name:'phoneNumber', value: phoneNumber},
                {name:'country', value: country},
                {name:'timeoutInMs', value: 30000}
            ];
            var url = "\/phoneValidationAjax";
            return HZ.ajaz.AjaxReq.send(url, params);
        };

        HZ.ajaz.Services.validateMobileExperian = function(phoneNumber) {
        var params = [
        {name:'api', value: 'validateMobileExperian'},
        {name:'phoneNumber', value: phoneNumber},
        {name:'timeoutInMs', value: 30000}
        ];
        var url = "\/phoneValidationAjax";
        return HZ.ajaz.AjaxReq.send(url, params);
        };

        HZ.ajaz.Services.updateSmsPhone = function(userId, phoneNumber) {
        var params = [
        {name:'api', value: 'updateSmsPhone'},
        {name:'phoneNumber', value: phoneNumber},
        {name:'userId', value: userId},
        {name:'timeoutInMs', value: 30000}
        ];
        var url = "\/phoneValidationAjax";
        return HZ.ajaz.AjaxReq.send(url, params);
        };

        HZ.ajaz.Services.updateCancelSmsPopupRedis = function(userId) {
        var params = [
        {name:'api', value: 'updateCancelSmsPopupRedis'},
        {name:'userId', value: userId},
        {name:'timeoutInMs', value: 30000}
        ];
        var url = "\/phoneValidationAjax";
        return HZ.ajaz.AjaxReq.send(url, params);
        };

        

window.hzmr.push("PhoneValidationAjaxRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End PhoneValidationAjax Ajax Connector  **************/
/************* Start GetProfessionalProjectsRequest.php Ajax Connector for locale en-US**************/
try {//<script>
		HZ.ajaz.Services.getProfessionalProjects = function (proUserId, onSuccess, extras) {
		var url = '/getProfessionalProjects';
			var params = [
				{name:'proUserId', value: proUserId}
			];

			// kinda hacky, but what to do?
			if (HZ.prosite && HZ.prosite.Designer && HZ.prosite.Designer.demoId) {
				params.push({name:'demoid',value:HZ.prosite.Designer.demoId});
			}
			
			// Populate some of the extra parameters
			if (extras) {
				params.push({name:'extraProjIds', value:extras.projIds});
				params.push({name:'extraProjOnly', value:extras.requiredProj});
			}
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};
		
		

window.hzmr.push("GetProfessionalProjectsRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End GetProfessionalProjects Ajax Connector  **************/
/************* Start GetProfessionalProjectPhotosRequest.php Ajax Connector for locale en-US**************/
try {//<script>

        HZ.ajaz.Services.getProfessionalProjectPhotosPaginated = function (projectId, proUserId, fromItem, itemsPerPage, onSuccess, extras) {
            var params = [
                    {name:'projectId', value: projectId},
                    {name:'proUserId', value: proUserId},
                    {name:'fromItem', value: fromItem},
                    {name:'itemsPerPage', value: itemsPerPage},
                ],
                url = '/getProfessionalProjectPhotos';
            HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
        };

        HZ.ajaz.Services.getProfessionalProjectPhotos = function (projectId, proUserId, onSuccess, extras) {
            var params = [
                {name:'projectId',value:projectId},
                {name:'proUserId',value:proUserId}
            ];

            var url = '/getProfessionalProjectPhotos';

            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };

        HZ.ajaz.Services.getProfessionalProjectPhotosByIds = function (houseIds, onSuccess, extras) {
            var params = [
                {name:'idList',value:houseIds}
            ];

            var url = '/getProfessionalProjectPhotos';

            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
        

window.hzmr.push("GetProfessionalProjectPhotosRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End GetProfessionalProjectPhotos Ajax Connector  **************/
/************* Start GetHousesByGalleryRequest.php Ajax Connector for locale en-US**************/
try {//<script>
        HZ.ajaz.Services.getHousesByGallery = function (galleryId, fromItem, itemsPerPage, onSuccess, extras) {
            var params = [
                {name:'galleryId',value:galleryId}
            ];
            var url = "\/getHousesByGallery";
            if (typeof fromItem !== "undefined" && fromItem !== null) {
                params.push({name:'fromItem',value:fromItem});
            }
            if (typeof itemsPerPage !== "undefined" && itemsPerPage !== null) {
                params.push({name:'itemsPerPage',value:itemsPerPage});
            }
            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };

        

window.hzmr.push("GetHousesByGalleryRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End GetHousesByGallery Ajax Connector  **************/
/************* Start BuzzAjaxRequest.php Ajax Connector for locale en-US**************/
try {//<script>
        HZ.ajaz.Services.movePhotos = function(houseIds, fromGalleryId, toGalleryId, isNewGallery, newGalleryTitle, onSuccess, extras) {
            var params = [
                {name:'houseIds',value:houseIds},
                {name:'fromGalleryId',value:fromGalleryId},
                {name:'toGalleryId',value:toGalleryId},
                {name:'newIdeabook',value:isNewGallery},
                {name:'newGalleryTitle',value:newGalleryTitle},
                {name:'moveAction',value:'move'}
            ];

            var url = "\/buzzAjaxRequest";

            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };

        HZ.ajaz.Services.copyPhotos = function(houseIds, fromGalleryId, toGalleryId, isNewGallery, newGalleryTitle, onSuccess, extras) {
            var params = [
                {name:'houseIds',value:houseIds},
                {name:'fromGalleryId',value:fromGalleryId},
                {name:'toGalleryId',value:toGalleryId},
                {name:'newIdeabook',value:isNewGallery},
                {name:'newGalleryTitle',value:newGalleryTitle},
                {name:'moveAction',value:'copy'}
            ];

            var url = "\/buzzAjaxRequest";

            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
                HZ.ajaz.Services.removePhotos = function(fromGalleryId,houseIds,onSuccess,extras) {

            var params = [
                {name:'houseIds',value:houseIds},
                {name:'fromGalleryId',value:fromGalleryId},
                {name:'moveAction',value:'remove'}
            ];
            var url = "\/buzzAjaxRequest";

            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
                HZ.ajaz.Services.fetchSpaces = function(fromGalleryId,startFrom,pageSize,thumbWidth,thumbHeight,onSuccess,extras) {

            var params = [
                {name:'fromGalleryId',value:fromGalleryId},
                {name:'startFrom',value:startFrom},
                {name:'itemsPerPage',value:pageSize},
                {name:'thumbWidth',value:thumbWidth},
                {name:'thumbHeight',value:thumbHeight},
                {name:'moveAction',value:'fetchSpaces'}
            ];
            var url = "\/buzzAjaxRequest";

            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
                HZ.ajaz.Services.deleteIdeabook = function(galleryId,onSuccess,extras) {
            var params = [
                {name:'fromGalleryId',value:galleryId},
                {name:'moveAction',value:'delete'}
            ];

            var url = "\/buzzAjaxRequest";

            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
                HZ.ajaz.Services.saveOrder = function(galleryId,houseIds,onSuccess,extras) {
            var params = [
                {name:'fromGalleryId',value:galleryId},
                {name:'houseIds',value:houseIds},
                {name:'moveAction',value:'order'}
            ];

            var url = "\/buzzAjaxRequest";

            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
                HZ.ajaz.Services.saveComment = function(galleryId,houseIds,buzzComment,buzzPrivacy,onSuccess,extras) {
            var params = [
                {name:'fromGalleryId',value:galleryId},
                {name:'houseIds',value:houseIds},
                {name:'buzzComment',value:buzzComment},
                {name:'buzzPrivacy',value:buzzPrivacy},
                {name:'moveAction',value:'comment'}
            ];

            var url = "\/buzzAjaxRequest";

            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
                HZ.ajaz.Services.updateBuzzComment = function(galleryId,houseId,buzzComment, onSuccess,extras) {
            var params = [
                {name:'fromGalleryId',value:galleryId},
                {name:'houseId',value:houseId},
                {name:'buzzComment',value:buzzComment},
                {name:'moveAction',value:'updateBuzzComment'}
            ];

            var url = "\/buzzAjaxRequest";

            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
                HZ.ajaz.Services.updateBuzzPrivacy = function(galleryId,houseId,buzzComment,buzzPrivacy,onSuccess,extras) {
            var params = [
                {name:'fromGalleryId',value:galleryId},
                {name:'houseId',value:houseId},
                {name:'buzzPrivacy',value:buzzPrivacy},
                {name:'moveAction',value:'updateBuzzPrivacy'}
            ];

            var url = "\/buzzAjaxRequest";

            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
                HZ.ajaz.Services.addBuzz = function(galleryId,houseId,buzzComment,buzzIsPrivate,houseIds,startFrom,onSuccess,extras) {
            startFrom = startFrom || 1;
            var params = [
                {name:'fromGalleryId',value:galleryId},
                {name:'houseId',value:houseId},
                {name:'houseIds',value:houseIds},
                {name:'startFrom',value:startFrom},
                {name:'buzzComment',value:buzzComment},
                {name:'buzzPrivacy',value:buzzIsPrivate},
                {name:'moveAction',value:'addBuzz'}
            ];

            var url = "\/buzzAjaxRequest";

            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
                HZ.ajaz.Services.changeTitle = function(galleryId,title,onSuccess,extras) {
            var params = [
                {name:'fromGalleryId',value:galleryId},
                {name:'galleryTitle',value:title},
                {name:'moveAction',value:'changeTitle'}
            ];

            var url = "\/buzzAjaxRequest";

            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
                HZ.ajaz.Services.changeSubtitle = function(galleryId,subtitle,onSuccess,extras) {
            var params = [
                {name:'fromGalleryId',value:galleryId},
                {name:'gallerySubtitle',value:subtitle},
                {name:'moveAction',value:'changeSubtitle'}
            ];

            var url = "\/buzzAjaxRequest";

            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
                HZ.ajaz.Services.changeDescription = function(galleryId,description,onSuccess,extras) {
            var params = [
                {name:'fromGalleryId',value:galleryId},
                {name:'galleryDescription',value:description},
                {name:'moveAction',value:'changeDescription'}
            ];

            var url = "\/buzzAjaxRequest";

            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
                HZ.ajaz.Services.changeGalleryMeta = function(galleryId, title, subtitle, description, galleryCategory, coverSpaceId, onSuccess, extras) {
            var params = [
                {name:'fromGalleryId',value:galleryId},
                {name:'moveAction',value:'changeMeta'}
            ];

            //////// Short Title Header AB Test ////////
            var shortTitle = extras.shortTitle;
            var shortSubtitle = extras.shortSubtitle;
            var shortDesc = extras.shortDesc;
            if (shortTitle) {
                params.push({ name: 'galleryShortTitle', value: shortTitle });
            }
            if (shortSubtitle) {
                params.push({ name: 'galleryShortSubtitle', value: shortSubtitle });
            }
            if (shortDesc) {
                params.push({ name: 'galleryShortDesc', value: shortDesc });
            }
            ////////////////////////////////////////////

            if (title != null) {
                params.push({name:'galleryTitle',value:title});
            }
            if (subtitle != null) {
                params.push({name:'gallerySubtitle',value:subtitle});
            }
            if (description != null) {
                params.push({name:'galleryDescription',value:description});
            }
            if (galleryCategory != null) {
                params.push({name:'galleryCategory',value:galleryCategory});
            }
            if (coverSpaceId != null) {
                params.push({name:'coverSpaceId',value:coverSpaceId});
            }

            var url = "\/buzzAjaxRequest";

            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
                HZ.ajaz.Services.changeGallerySeoMeta = function(galleryId, metaTitle, metaDescription, urlSlug, shareUrlSlug, redirectUrl, canonicalUrl, allowShareUrlChange, onSuccess, extras) {
            var params = [
                {name:'fromGalleryId',value:galleryId},
                {name:'moveAction',value:'changeSeoMeta'}
            ];

            if (metaTitle != null) {
                params.push({name:'galleryMetaTitle',value:metaTitle});
            }
            if (metaDescription != null) {
                params.push({name:'galleryMetaDescription',value:metaDescription});
            }
            if (urlSlug != null) {
                params.push({name:'galleryUrlSlug',value:urlSlug});
            }
            if (shareUrlSlug != null) {
                params.push({name:'galleryShareUrlSlug',value:shareUrlSlug});
            }
            if (redirectUrl != null) {
                params.push({name:'galleryRedirectUrl',value:redirectUrl});
            }

            if (canonicalUrl) {
                params.push({name:'galleryCanonicalUrl', value:canonicalUrl});
            }

            if (allowShareUrlChange != null) {
                params.push({name:'allowShareUrlSlugChange', value:allowShareUrlChange});
            }

            var url = "\/buzzAjaxRequest";

            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
                HZ.ajaz.Services.getMyGalleries = function(withPrivateText, onSuccess,extras) {
            var params = [
                {name:'moveAction',value:'getMyGalleries'}
            ];

            if (typeof withPrivateText == "boolean") {
                params.push(
                    {name: 'withPrivateText', value: withPrivateText}
                );
            } else {
                params.push(
                    {name: 'withPrivateText', value: true}
                );
                extras = onSuccess;
                onSuccess = withPrivateText;
            }

            var url = "\/buzzAjaxRequest";

            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
        

window.hzmr.push("BuzzAjaxRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End BuzzAjax Ajax Connector  **************/
/************* Start GetMinimalSpaceDataRequest.php Ajax Connector for locale en-US**************/
try {//<script>
		HZ.ajaz.Services.getMinimalSpaceData = function (matchedUrlString, onSuccess) {
			var params = [
				{name:'urls',value: matchedUrlString}
			];
			var url = '/getMinimalSpaceData';
			
			HZ.ajaz.AjaxReq.send(url,params,onSuccess);
		};
		

window.hzmr.push("GetMinimalSpaceDataRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End GetMinimalSpaceData Ajax Connector  **************/
/************* Start HoverCardRequest.php Ajax Connector for locale en-US**************/
try {//<script>
		HZ.ajaz.Services.getHoverCardData = function (dataType, dataId, onSuccess) {
			var params = [
				{name:'type', value: dataType},
				{name:'id', value: dataId}
			];
			var url = '/hoverCard';
			
			HZ.ajaz.AjaxReq.send(url,params,onSuccess);
		};
	    

window.hzmr.push("HoverCardRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End HoverCard Ajax Connector  **************/
/************* Start FollowRequest.php Ajax Connector for locale en-US**************/
try {//<script>
		HZ.ajaz.Services.updateFavorite = function(action,objectId,objectType,onSuccess,extras) {
			var params = [
				{name:'op',value:action},
				{name:'i',value:objectId},
				{name:'t',value:objectType}
			];
			
			var url = "\/follow";
			
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		}
		
		HZ.ajaz.Services.updateFollow = function(operation,username,onSuccess,extras) {
			if (operation != "f" && operation != "u") {
				return false; // invalid operation
			}
			
			var params = [
				{name:'op',value:operation},
				{name:'u',value:username}
			];
			
			var url = "\/follow";
			
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		}

	

window.hzmr.push("FollowRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End Follow Ajax Connector  **************/
/************* Start CommentManagerAjaxRequest.php Ajax Connector for locale en-US**************/
try {		//<script>

				HZ.ajaz.Services.getComments = function(objectType, objectId, numItems, endId, startId, source, languages, isReferrerGalleryFeed, onSuccess, extras) {
			var params = [
				{name:'op',value:'getComments'}
			];

			if (typeof objectType != 'undefined' && objectType != null)
				params.push({name:'objectType',value:objectType});
			if (typeof objectId != 'undefined' && objectId != null)
				params.push({name:'objectId',value:objectId});
			if (typeof numItems != 'undefined' && numItems != null)
				params.push({name:'itemsPerPage',value:numItems});
			if (typeof endId != 'undefined' && endId != null)
				params.push({name:'fromId',value:endId});
			if (typeof startId != 'undefined' && startId != null)
				params.push({name:'startId',value:startId});
			if (typeof source != 'undefined' && source != null)
				params.push({name:'source',value:source});
			if (typeof languages != 'undefined' && languages != null)
				params.push({
					name: 'preferredLanguages',
					value: languages
				});
			if (typeof isReferrerGalleryFeed != 'undefined' && isReferrerGalleryFeed != null) {
				params.push({
					name: 'isReferrerGalleryFeed',
					value: isReferrerGalleryFeed
				})
			}

			var url = "\/commentManagerAjaxRequest";
						HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};


				HZ.ajaz.Services.deleteComment = function(objectType, objectId, commentId, onSuccess, extras) {
			var params = [
				{name:'op',value:'deleteComment'}
			];

			if (typeof objectType != 'undefined' && objectType != null)
				params.push({name:'objectType',value:objectType});
			if (typeof objectId != 'undefined' && objectId != null)
				params.push({name:'objectId',value:objectId});
			if (typeof commentId != 'undefined' && commentId != null)
				params.push({name:'commentId',value:commentId});

			var url = "\/commentManagerAjaxRequest";
						HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};

				HZ.ajaz.Services.updateComment = function(objectType, objectId, commentId, body, privacy, source, isHtml, onSuccess, extras) {
			var params = [
				{name:'op',value:'updateComment'}
			];
			if (typeof objectType != 'undefined' && objectType != null)
				params.push({name:'objectType',value:objectType});
			if (typeof objectId != 'undefined' && objectId != null)
				params.push({name:'objectId',value:objectId});
			if (typeof commentId != 'undefined' && commentId != null)
				params.push({name:'commentId',value:commentId});
			if (typeof body != 'undefined' && body != null)
				params.push({name:'body',value:body});
			if (typeof privacy != 'undefined' && privacy != null)
				params.push({name:'privacy',value:privacy});
			if (typeof source != 'undefined' && source != null)
				params.push({name:'source',value:source});
			if (typeof isHtml != 'undefined' && isHtml != null)
				params.push({name:'isHtml',value:isHtml});

			var url = "\/commentManagerAjaxRequest";
						HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};


		

window.hzmr.push("CommentManagerAjaxRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End CommentManagerAjax Ajax Connector  **************/
/************* Start FeedAjaxRequest.php Ajax Connector for locale en-US**************/
try {		//<script>

				HZ.ajaz.Services.getOutgoingFeedStories = function(user, fromTimes, renderMode, onSuccess, extras) {
			params = new Array();
			params.push({name:'op',value:'getOutgoing'});
			params.push({name:'user',value:user});
			params.push({name:'fromTimes',value:JSON.stringify(fromTimes)});
			params.push({name:'renderMode',value:renderMode});
			var url = "\/feedAjaxRequest";
			HZ.ajaz.AjaxReq.send(url,params,HZ.activityFeed.NewDataHandler(onSuccess),extras);
		};

				HZ.ajaz.Services.getIncomingFeedStories = function(user, fromTimes, renderMode, onSuccess, extras) {
			params = new Array();
			params.push({name:'op',value:'getIncoming'});
			params.push({name:'user',value:user});
			params.push({name:'fromTimes',value:JSON.stringify(fromTimes)});
			params.push({name:'renderMode',value:renderMode});
			var url = "\/feedAjaxRequest";
			HZ.ajaz.AjaxReq.send(url,params,HZ.activityFeed.NewDataHandler(onSuccess),extras);
		};

		

window.hzmr.push("FeedAjaxRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End FeedAjax Ajax Connector  **************/
/************* Start ContentFlagAjaxRequest.php Ajax Connector for locale en-US**************/
try {        //<script>
            HZ.ns("HZ.ajaz.ContentFlag");
            HZ.ajaz.ContentFlag.addFlag = function(objectType, objectId, type, comment, onSuccess, extras) {
                var params = [
                    {name: 'action', value: "add"},
                    {name: 'objectType', value: objectType},
                    {name: 'objectId', value: objectId},
                    {name: 'type', value: type},
                    {name: 'comment', value: comment}
                ];
                var url = "\/contentFlagAjax";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.ContentFlag.updateFlag = function(objectType, objectId, type, comment, status, onSuccess, extras) {
                var params = [
                    {name: 'action', value: "update"},
                    {name: 'objectType', value: objectType},
                    {name: 'objectId', value: objectId},
                    {name: 'type', value: type},
                    {name: 'comment', value: comment},
                    {name: 'status', value: status}
                ];
                var url = "\/contentFlagAjax";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.ContentFlag.removeFlag = function(objectType, objectId, onSuccess, extras) {
                var params = [
                    {name: 'action', value: "remove"},
                    {name: 'objectType', value: objectType},
                    {name: 'objectId', value: objectId}
                ];
                var url = "\/contentFlagAjax";
                HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
            };
            HZ.ajaz.ContentFlag.COMMENTABLE_FORUM = 4;
            HZ.ajaz.ContentFlag.COMMENTABLE_GALLERY = 2;
            HZ.ajaz.ContentFlag.COMMENT = 9;
            HZ.ajaz.ContentFlag.ANSWER = 6;
            

window.hzmr.push("ContentFlagAjaxRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End ContentFlagAjax Ajax Connector  **************/
/************* Start LikeRequest.php Ajax Connector for locale en-US**************/
try {//<script>
        HZ.ns("HZ.ajaz.Like");
        HZ.ajaz.Like.like = function(action,objectId,objectType,onSuccess,extras) {
            var params = [
                {name:'action',value:action},
                {name:'objectId',value:objectId},
                {name:'objectType',value:objectType}
            ];

            var url = "\/like";
            return HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
        HZ.ajaz.Like.SOURCE_LINK_LIKE = 8;
    

window.hzmr.push("LikeRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End Like Ajax Connector  **************/
/************* Start ClippingRequest.php Ajax Connector for locale en-US**************/
try {		//<script>
			HZ.ns("HZ.ajaz.Clipping");
			HZ.ajaz.Clipping.clip = function(action,objectId,objectType,onSuccess,extras) {
				var params = [
					{name:'action',value:action},
					{name:'objectId',value:objectId},
					{name:'objectType',value:objectType}
				];

				var url = "\/clipping";

				return HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
			};
			HZ.ajaz.Clipping.SOURCE_LINK_CLIPPING = 300;
	

window.hzmr.push("ClippingRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End Clipping Ajax Connector  **************/
/************* Start TopicAjaxRequest.php Ajax Connector for locale en-US**************/
try {		HZ.ns('HZ.ajaz.Services.Topics');
		HZ.ajaz.Services.Topics.TOPIC_RELATION_CHILD_IDEABOOK = 2;
		HZ.ajaz.Services.Topics.RET_PARAM_ADDED_TOPIC = "addedTopic";
		HZ.ajaz.Services.Topics.RET_PARAM_SEARCH_LIST = "autocomplete";
		HZ.ajaz.Services.Topics.RET_PARAM_ADDED_TOPIC_ID = "id";
				HZ.ajaz.Services.Topics.removeTopic = function(topicId,objectId,objectType,onSuccess,extras) {
			var params = [
				{name:'action',value:7},
				{name:'topicId',value:topicId},
				{name:'objId',value:objectId},
				{name:'objType',value:objectType}
			];
			var url = "\/topicAjaxRequest";
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};		HZ.ajaz.Services.Topics.addTopic = function(topicName,objectId,objectType,onSuccess,extras) {
			var params = [
				{name:'action',value:6},
				{name:'topicName',value:topicName},
				{name:'objId',value:objectId},
				{name:'objType',value:objectType}
			];
			var url = "\/topicAjaxRequest";
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};		HZ.ajaz.Services.Topics.autoComplete = function(topicName,onSuccess,extras) {
			return HZ.ajaz.Services.Topics.lookupTopic(topicName, "galleries", onSuccess, extras);
		};
		HZ.ajaz.Services.Topics.lookupTopic = function(topicName, topicNamespace, onSuccess, extras) {
			var params = [
				{name:'action',value:8},
				{name:'topicName',value:topicName},
				{name:'topicNamespace',value:topicNamespace}
			];
			var url = "\/topicAjaxRequest";
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};		HZ.ajaz.Services.Topics.getTop = function(topicId,objectType,onSuccess,extras) {
			var params = [
				{name:'action',value:4},
				{name:'topicId',value:topicId},
				{name:'objType',value:objectType}
			];
			var url = "\/topicAjaxRequest";
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};		HZ.ajaz.Services.Topics.saveTop = function(topicId,objectType,list,onSuccess,extras) {
			var params = [
				{name:'action',value:5},
				{name:'topicId',value:topicId},
				{name:'objType',value:objectType},
				{name:'list',value:list}
				];
			var url = "\/topicAjaxRequest";
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};		HZ.ajaz.Services.Topics.updateName = function(topicId,topicName,onSuccess,extras) {
			var params = [
				{name:'action',value:2},
				{name:'topicId',value:topicId},
				{name:'topicName',value:topicName}
				];
			var url = "\/topicAjaxRequest";
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};		HZ.ajaz.Services.Topics.updateDesc = function(topicId,topicDesc,onSuccess,extras) {
			var params = [
				{name:'action',value:3},
				{name:'topicId',value:topicId},
				{name:'topicDescription',value:topicDesc}
				];
			var url = "\/topicAjaxRequest";
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};		HZ.ajaz.Services.Topics.updateParentOrder = function(objectId,objectType,parentIdOrder,onSuccess,extras) {
			var params = [
				{name:'action',value:9},
				{name:'objId',value:objectId},
				{name:'objType',value:objectType},
				{name:'topParentList',value:parentIdOrder}
				];
			var url = "\/topicAjaxRequest";
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};		HZ.ajaz.Services.Topics.getTopicByName = function(topicName,onSuccess,extras) {
			var params = [
				{name:'action',value:10},
				{name:'topicName',value:topicName}
			];
			var url = "\/topicAjaxRequest";
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};

window.hzmr.push("TopicAjaxRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End TopicAjax Ajax Connector  **************/
/************* Start TipBoxRequest.php Ajax Connector for locale en-US**************/
try {
//<script>
		HZ.ajaz.Services.tipBox = function(tipId,onSuccess,extras) {
			var params = [
				{name:'tipId',value:tipId}
			];
			
			var url = "\/tipBox";
			
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		}
	

window.hzmr.push("TipBoxRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End TipBox Ajax Connector  **************/
/************* Start GetMoreSimilarGalleriesAjaxRequest.php Ajax Connector for locale en-US**************/
try {        //<script>
                HZ.ajaz.Services.getMoreSimilarGalleries = function(galleryId, fromItem, onSuccess, extras) {
            var params = [
                {name:'op',value:'getSimilarGalleries'},
                {name:'galleryId',value:galleryId},
                {name:'fromItem',value:fromItem}
            ];

            var url = "\/getMoreSimilarGalleriesAjax";
            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
        

window.hzmr.push("GetMoreSimilarGalleriesAjaxRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End GetMoreSimilarGalleriesAjax Ajax Connector  **************/
/************* Start SearchSuggestionRequest.php Ajax Connector for locale en-US**************/
try {        HZ.ajaz.Services.searchTypeAhead = function(textFragment, searchType, source, onSuccess, extras, bd) {
            source = source || c;
            var params = [
                {name:'query',value:textFragment},
                {name:'type',value:searchType},
                {name:'bd', value:bd},
                {name:'source',value:source}
            ];
            var url = "\/searchSuggestion";
            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        }
        

window.hzmr.push("SearchSuggestionRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End SearchSuggestion Ajax Connector  **************/
/************* Start VerificationEmailRequest.php Ajax Connector for locale en-US**************/
try {        //<script>
            HZ.ajaz.Services.sendVerificationEmail = function(operation, isNewUser, onSuccess, extras) {
                var params = [
                    {name:'op', value: operation},
                    {name:'isNewUser', value: isNewUser}
                ];
                var url = "\/verificationEmail";
                HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
            };
	    

window.hzmr.push("VerificationEmailRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End VerificationEmail Ajax Connector  **************/
/************* Start BuzzRequest.php Ajax Connector for locale en-US**************/
try {//<script>
        HZ.ns("HZ.ajaz.Services");
        /*
         * Add photo to multiple galleries
         */
        HZ.ajaz.Services.addToGalleries = function(spaceId, galleryIds, privacy, comment, onSuccess, extras) {
            var params = [
                {name: 'op', value: "m"},
                {name: 'gids', value: galleryIds},
                {name: 'id', value: spaceId},
                {name:'privacy',value:privacy},
                {name:'comments',value:comment},
            ];

            var url = "\/addToGallery";
            return HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
        };

        HZ.ajaz.Services.addToGallery = function(spaceId, newGalleryName, existingGalleryId, privacy, comment, onSuccess, extras) {
            var params = [
                {name:'op',value:"a"},
                {name:'id',value:spaceId},
                {name:'gtitle',value:newGalleryName},
                {name:'gid',value:existingGalleryId},
                {name:'privacy',value:privacy},
                {name:'comments',value:comment},
            ];
            var url = "\/addToGallery";
            return HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
        /*
         * Submis a photo-question to the Discussions section
         */
        HZ.ajaz.Services.postToForum = function(spaceId, title, comments, topic, onSuccess, extras) {
            var params = [
                {name:'op',value:"f"},
                {name:'id',value:spaceId},
                {name:'title',value:title},
                {name:'comments',value:comments},
                {name:'topic',value:topic},
            ];
            var url = "\/addToGallery";
            return HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
        

window.hzmr.push("BuzzRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End Buzz Ajax Connector  **************/
/************* Start GetEmbedSpaceCodeRequest.php Ajax Connector for locale en-US**************/
try {        //<script>
        HZ.ajaz.Services.getEmbedSpaceCode = function(spaceId, onSuccess) {
            var params = [
                {name:'spaceId',value:spaceId}
            ];
            var extras = {
                type: 'POST'
            };
            var url = "\/getEmbedSpaceCode";

            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        }
    

window.hzmr.push("GetEmbedSpaceCodeRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End GetEmbedSpaceCode Ajax Connector  **************/
/************* Start GetQuestionsForSpaceRequest.php Ajax Connector for locale en-US**************/
try {//<script>
	HZ.ns("HZ.spaceActions");
	HZ.spaceActions.getExistingQuestions = function(spaceId, onSuccess, extras) {
		var params = [
			{name:'id', value: spaceId}
		];
		var url = "\/getQuestionsForSpace";
		HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
	}

	

window.hzmr.push("GetQuestionsForSpaceRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End GetQuestionsForSpace Ajax Connector  **************/
/************* Start UserPreferencesRequest.php Ajax Connector for locale en-US**************/
try {//<script>
		HZ.ajaz.Services.updateUserPreferences = function(preferenceType, preferenceData, onSuccess, extras) {
			var params = [
				{name:'preferenceType', value:preferenceType},
				{name:'preferenceData', value:preferenceData}
			];
			var url = "\/userPreferencesUpdate";
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};
	

window.hzmr.push("UserPreferencesRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End UserPreferences Ajax Connector  **************/
/************* Start TrustPilotAjaxRequest.php Ajax Connector for locale en-US**************/
try {        //<script>
        HZ.ns("HZ.TrustPilot");
        HZ.TrustPilot.Settings = {
            getTrustPilotUrl: "getTrustPilotUrl",
            setTrustPilotUserPreference: "setTrustPilotUserPreference"
        };

        HZ.ajaz.Services.getTrustPilotUrl = function(op, onSuccess, extras) {
            var params = [{name:'op', value: op}];
            var url = "\/trustPilotAjax";
            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
        HZ.ajaz.Services.setTrustPilotUserPreference = function(op, onSuccess, extras) {
            var params = [{name:'op', value: op}];
            var url = "\/trustPilotAjax";
            HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
        };
    

window.hzmr.push("TrustPilotAjaxRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End TrustPilotAjax Ajax Connector  **************/
/************* Start WelcomeToHouzzAjaxRequest.php Ajax Connector for locale en-US**************/
try {		//<script>
		HZ.ns("HZ.ajaz.WelcomeToHouzz");
		/*
		 * Save basic profile (first name, last name and zip code)
		 */
		HZ.ajaz.Services.saveBasicProfile = function(firstName, lastName, zipCode, onSuccess, extras) {
			var params = [
				{name: 'op', value: "saveBasicProfile"},
				{name: 'firstName', value: firstName},
				{name: 'lastName', value: lastName},
				{name: 'zipCode', value: zipCode}
			];

			var url = "\/welcomeToHouzzAjax";
			return HZ.ajaz.AjaxReq.send(url, params, onSuccess, extras);
		};
		

window.hzmr.push("WelcomeToHouzzAjaxRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End WelcomeToHouzzAjax Ajax Connector  **************/
/************* Start UILoggerAjaxRequest.php Ajax Connector for locale en-US**************/
try {        //<script>
        HZ.ajaz.Services.logCountInTSDB = function(metricTrackingPrefix, metricTrackingName, count/*optional, default is 1*/, metricPrefix/*optional, default is "perf"*/, tags/*Will be used to filter result*/) {
            if (!metricTrackingPrefix || !metricTrackingName) {
                return (new $.Deferred()).reject().promise();
            }

            var params = [
                {name:'api', value: 'logCount'},
                {name:'metricPrefix', value: metricPrefix || ""},
                {name:'metricTrackingPrefix', value: metricTrackingPrefix},
                {name:'metricTrackingName', value: metricTrackingName},
                {name:'metricCount', value: $.isNumeric(count) && count > 0 ? count : 1},
                {name:'metricTags', value: tags ? JSON.stringify(tags) : null}
            ];
            var url = "\/uiLoggerAjax";
            return HZ.ajaz.AjaxReq.send(url, params, null, {error: function(){}});
        };

        HZ.ajaz.Services.logHistogramInTSDB = function(metricTrackingPrefix, metricTrackingName, time, metricPrefix/*optional, default is "perf"*/, tags/*Will be used to filter result*/) {
            if (!metricTrackingPrefix || !metricTrackingName) {
                return (new $.Deferred()).reject().promise();
            }

            var params = [
                {name:'api', value: 'logHistogram'},
                {name:'metricPrefix', value: metricPrefix || ""},
                {name:'metricTrackingPrefix', value: metricTrackingPrefix},
                {name:'metricTrackingName', value: metricTrackingName},
                {name:'metricTime', value: time},
                {name:'metricTags', value: tags ? JSON.stringify(tags) : null}
            ];
            var url = "\/uiLoggerAjax";
            return HZ.ajaz.AjaxReq.send(url, params, null, {error: function(){}});
        };

        

window.hzmr.push("UILoggerAjaxRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End UILoggerAjax Ajax Connector  **************/
/************* Start JsErrorLoggerAjaxRequest.php Ajax Connector for locale en-US**************/
try {//<script>
        HZ.ajaz.Services.logJsErr = function(errLog) {
            var rrid = errLog['rrid'],
                m = errLog['m'],
                f = errLog['f'],
                l = errLog['l'],
                url = errLog['url'],
                cws = errLog['cws'],
                b = navigator.appName,
                v = navigator.appVersion,
                ce = navigator.cookieEnabled,
                p = navigator.platform,
                j = errLog['j'],
                st = errLog['st'],
                pc = errLog['pc'],
                r = (document.referrer ? encodeURIComponent(document.referrer) : ""),
                rv = "",
                env = errLog.env ? errLog.env : 'c';    //default env to c (c2), j if it's from jukwaa
            if (window.hzmr && window.hzmr.version) {
                rv= window.hzmr.version;
            }
        var params = [
            {name:'rrid',value:rrid},
            {name:'m',value:m},
            {name:'f',value:f},
            {name:'l',value:l},
            {name:'url',value:url},
            {name:'cws',value:cws},
            {name:'b',value:b},
            {name:'v',value:v},
            {name:'ce',value:ce},
            {name:'p',value:p},
            {name:'j',value:j},
            {name:'st',value:st},
            {name:'pc',value:pc},
            {name:'r',value:r},
            {name:'rv',value:rv},
            {name:'env',value:env}
        ];

        var url = "\/jsErrAjax";

        HZ.ajaz.AjaxReq.send(url,params);
    };
    

window.hzmr.push("JsErrorLoggerAjaxRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End JsErrorLoggerAjax Ajax Connector  **************/
/************* Start SearchKeywordRequest.php Ajax Connector for locale en-US**************/
try {		//<script>

		HZ.ajaz.Services.autoCompleteKeyword = function(textFragment, type, onSuccess, extras) {
			var params = [
				{name:'query',value:textFragment},
				{name:'type',value:type}
			];
			var url = "\/searchKeyword";
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};

		HZ.ajaz.Services.autoCompleteTags = function(textFragment, onSuccess, extras) {
			var params = [
				{name:'action',value:'searchTags'},
				{name:'query',value:textFragment}
			];
			var url = "\/searchKeyword";
			HZ.ajaz.AjaxReq.send(url,params,onSuccess,extras);
		};
		

window.hzmr.push("SearchKeywordRequest:29383330");
} catch (err) {HZ.utils.Logger.sendJsExceptionStackTrace(err)}

/*************  End SearchKeyword Ajax Connector  **************/
