/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
    var mondoInApi = {
    
            host : "http://localhost:9180/CogniTellUI",
            status : { user : null, locale: null, isManaged: null, basket: null, baskets: null },


            getUser : function () { if (mondoInApi.status==null) { return null; } else return mondoInApi.status.user },
            getLocale : function () { if (mondoInApi.status==null) { return null; } else return mondoInApi.status.locale },
            getIsManaged : function () { if (mondoInApi.status==null) { return null; } else return mondoInApi.status.isManaged },
            getBaskets : function () { if (mondoInApi.status==null) { return null; } else return mondoInApi.status.baskets },
            getBasket  : function () { if (mondoInApi.status==null) { return null; } else return mondoInApi.status.basket },


            callMondoIn : function ( request, callback ) {

                jQuery.getJSON(mondoInApi.host +"/faces/JSONP-Service.xhtml?callback=?",
                   request,function(data){
                       if ( callback != null ) 
                       {
                           callback( data );
                       }
               });

            },
            setHost : function ( host ) {
               mondoInApi.host = host;
            },
            setLocale : function ( locale , callback ) {
                var action = "setLocaleFr";
                if ( locale == "en")
                {
                    action = "setLocaleEn";
                }
                mondoInApi.callMondoIn( { action: action }, callback );
            },


            acceptStatus: function ( status ) {
                if ( status == null ) return ;
                if(console !== "undefined") console.log( "status", status );
                mondoInApi.status = status;
            },

            setBasket : function ( basket, callback ) {
                mondoInApi.callMondoIn( { action : "setBasket", basket: basket }, function (data) {
                     mondoInApi.basket = data.status;
                     callback( data.status );
                });
            },

            suggest : function( query, index, callback  ) {
                if ( index == null) index="text_ac";
                mondoInApi.callMondoIn( { action : "suggest", q: query, index : index  }, function (data) {
                     if ( callback != null ) callback( data );
                });
            }, 						

            login : function ( user, password, callback ) {
                mondoInApi.callMondoIn( { action: "login", "user" : user, "password" : password}, function ( data ) {
                if ( data.status == "OK")
                {
                    mondoInApi.user = user;
                    if ( callback != null )
                    {
                        callback( mondoInApi.status );
                    }
                }
                });
            },

            endSession : function ( callback ) {
                mondoInApi.callMondoIn( { action: "logoff"}, function ( data ) {
                if ( data.status == "OK")
                {
                    mondoInApi.status.user = null;
                    if ( callback != null )
                    {
                        callback( mondoInApi.status );
                    }
                }
                });
            },
            
            updateStatus : function ( callback ) {
                mondoInApi.callMondoIn( {action: "status" } , function (status) {
                    mondoInApi.acceptStatus( status );
                    if ( callback != null) callback(status);
                });
                
            }

    };
    

