/*
	tracking.js
*/
var Tracker = Obj.extend({
	// private
	_options: null,
	_parent: null,
    
    _sessionId: "",

    TRACK_URL: function(){
            return  (this._sessionId != "")?
                    ("/service/selfSupport/track/"+encodeURIComponent(this._sessionId)+".xml"):
                    ("/service/selfSupport/track.xml");
        },

    SUBMIT_URL: function(){
            return  (this._sessionId != "")?
                    ("/service/selfSupport/submit/"+encodeURIComponent(this._sessionId)+".xml"):
                    ("/service/selfSupport/submit.xml");
        },

	// public
	init: function(parent, options){ 
            this._parent = parent;
            this._options = options;
        },
        
    problemClickHandler: function(text, problem){
            this._options.logHandler("|Tracker.problemClickHandler|");
            this._options.logHandler("  text: "+text);
            this._options.logHandler("  problemId: "+problem.id);
            
            var self = this;
            
            var trackData = (   "<tracking_data>"+
                                "   <text>"+text+"</text>"+
                                "   <problem_id>"+problem.id+"</problem_id>"+
                                "</tracking_data>");
            
            // send request
            this._options.ajax.post({  
                    path: self.TRACK_URL(),
                    data: trackData,
                    success: function(trackingXML){
                            // set session id
                            self._sessionId =  (jQuery(trackingXML).find("tracking_id").length != 0)?
                                                jQuery(trackingXML).text():
                                                ""; 
                        }
                });
        },        
        
    formSendHandler: function(text){
            this._options.logHandler("|Tracker.formSendHandler|");
            this._options.logHandler("  text: "+text);

            var self = this;
            
            var submitData = (text);
            
            // send ajax request
            this._options.ajax.post({  
                    path: self.SUBMIT_URL(),
                    data: submitData,
                    success: function(trackingXML){
                            // set session id
                            self._sessionId =  (jQuery(trackingXML).find("tracking_id").length != 0)?
                                                jQuery(trackingXML).text():
                                                ""; 
                        }
                });
        }
});
