﻿
App.Buying = function() {

    /* Private */

    /* Properties */

    var cmp = {};





    /* Methods */

    var init = function() {

        /* Constructor */

        initButtons();

        //set active menu
        App.menu('findACar');

    };





    var initButtons = function() {

        /* initialises button clicks */

        TVI.event('.btnSaveSearch', 'click', saveSearch);

    };





    var saveSearch = function(template, loaded) {

        //show login/register popup if not logged in
        if (App.loggedIn !== true) {

            //add one-time only listener to accountChanged event
            TVI.addListener('accountChanged', function() {

                saveSearch();

            }, cmp, true);

            //show login popup
            App.loginRegister();

            return;

        }


        //load enquiry template if necessary
        if (loaded !== true) {

            //load template from handler
            TVI.ajax({

                url: '/Handlers/App.Popups.aspx/template',
                data: {
                    name: 'saveSearch'
                },
                responseType: 'text',
                success: function(d) {

                    saveSearch(d, true);

                }

            });

            return;

        }

        //show popup
        TVI.Popup.show({

            title: 'Save Search',
            template: template,
            buttons: [{

                text: 'Cancel',
                handler: TVI.Popup.close

            },{

                text: 'Save Search',
                handler: saveSearchSubmit

            }],
            success: function() {

                setSaveSearch();

            }

        });

    };





    var saveSearchSubmit = function(valid) {

        if (valid !== true) {

            cmp.saveSearchForm.validate({

                success: function() {

                    saveSearchSubmit(true);

                }

            });

            return;

        }


        //save search
        TVI.ajax({

            url: '/Handlers/App.Buying.aspx/saveSearch',
            data: cmp.saveSearchForm.val(),
            success: function(d) {

                TVI.Popup.show({

                    title: 'Search Saved',
                    template: '<div class="inner content">Thank you, your search has been saved.</div>',
                    buttons: [{

                        text: 'Close',
                        handler: TVI.Popup.close

                    }, {

                        text: 'View Your Searches',
                        handler: function() {

                            window.location.href = '/saved-searches';

                        }

                    }]

                });

            }

        });

    };





    var setSaveSearch = function() {

        cmp.saveSearchForm = new TVI.Form({

            ID: 'saveSearchForm',
            handler: saveSearchSubmit

        });

    };





    /* Public */

    TVI.apply(cmp, {

        /* Properties */

        /* Methods */

    });


    TVI.ready(init);


    return cmp;


} ();
