

var CSiteTracker=function(YWATrackerId)
{
    /* CONSTANTS */
    this.DBL_BY_EMAIL='by_email';
    this.DBL_BY_IP='by_ip';
    this.DBL_BY_PHONE='by_phone';
    this.DBL_BY_EMAIL_AND_IP='by_email_and_ip';
    this.LT_SHORT=12;
    this.LT_LONG=13;
        
    
    this.isDef=function(o)
    {
        return (typeof o !== "undefined");
    };
    
    
    /* MEMBERS */                         
    this.YWATrackerId=YWATrackerId;
    
    this.defaults={
        'page_group':'',
        'page_name':'',
        'step_name':'',
        'landing_name':''
    };
        
    this.cleanText=function(txt) {
        try {
            txt=txt+'';
            txt=txt.replace(/[^\w\s\#\?-]/ig,"");
            txt=txt.replace(/\s{2,}|\t/ig,' ');
        } catch (e) {
            txt='Unknown';
        }
        return txt;
    };
    /* METHODS */
    this.trackQuestions=function(questions){
        try {
            var txt_action='';
            var txt_questions='';
            var txt_values='';        
            var txt_sections='';
            for (qkey in questions) {
                var q=questions[qkey];                
                txt_action+='14;';
                txt_questions+=this.cleanText(q['q'])+';';         
                txt_values+=this.cleanText(q['a'])+';';
                txt_sections+=this.cleanText(q['s'])+';';
            }
            var YWATracker = YWA.getTracker(this.YWATrackerId);
            YWATracker.setAction(txt_action);
            YWATracker.setCF(19,txt_questions);
            YWATracker.setCF(20,txt_values);
            YWATracker.setCF(23,txt_sections);
            YWATracker.submit_action();                 
        } catch (e) {            
        }
    };
    
    this.trackStepQ=function(step_name,questions){
        try {
            var txt_action='';
            var txt_questions='';
            var txt_values='';        
            var txt_sections='';
            for (qkey in questions) {
                var q=questions[qkey];
                txt_action+='14;';
                txt_questions+=this.cleanText(q['q'])+';';         
                txt_values+=this.cleanText(q['a'])+';';
                txt_sections+=this.cleanText(q['s'])+';';                
            }
            var YWATracker = YWA.getTracker(this.YWATrackerId);
            page_name=this.defaults.page_name;
            this.defaults.step_name=step_name;
            if (this.isDef(this.defaults.step_name) && this.defaults.step_name!='') page_name=page_name+' - '+this.defaults.step_name;                
            YWATracker.setDocumentGroup(this.cleanText(this.defaults.page_group));
            YWATracker.setDocumentName(this.cleanText(page_name));
            YWATracker.setCF(4,this.cleanText(this.defaults.landing_name));
            if (this.url_params['tref1']) YWATracker.setCF(2,this.url_params['tref1']);
            if (this.url_params['tref2']) YWATracker.setCF(1,this.url_params['tref2']);
            if (this.url_params['tref3']) YWATracker.setCF(3,this.url_params['tref3']);                
            YWATracker.setAction(txt_action);
            YWATracker.setCF(19,txt_questions);
            YWATracker.setCF(20,txt_values);
            YWATracker.setCF(23,txt_sections);
            YWATracker.submit();
        } catch (e) {            
        }
    };
    
    this.trackAction=function(action_id)
    {
        var YWATracker = YWA.getTracker(this.YWATrackerId);
        //YWATracker.setDocumentGroup(this.defaults.page_group);
        //YWATracker.setDocumentName(page_name);
        YWATracker.setAction(action_id);
        YWATracker.submit_action();                 
    };
    this.trackLead=function(type)
    {
        if (!this.isDef(type)) type=this.LT_SHORT;
        this.trackAction(type);
    };
    this.trackClick=function(target,section)
    {
        if (!this.isDef(section)) section='';
        this.trackQuestions([{
            'q':'click_'+target,
            'a':'1',
            's':section
        }]);        
    };
     this.getUrlParams = function()
    {        
        var vars = [], hash;
        var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
        for(var i = 0; i < hashes.length; i++)
        {
            hash = hashes[i].split('=');
            vars.push(hash[0]);
            vars[hash[0]] = hash[1];
        }
        return vars;
    };
    this.trackPage=function(page_name)
    {

        if (!this.isDef(page_name)) {
            page_name=this.defaults.page_name;
        } else {
            this.defaults.page_name=page_name;
        }
        if (this.isDef(this.defaults.step_name) && this.defaults.step_name!='') page_name=page_name+' - '+this.defaults.step_name;
        
        var YWATracker = YWA.getTracker(this.YWATrackerId);
        YWATracker.setDocumentGroup(this.cleanText(this.defaults.page_group));
        YWATracker.setDocumentName(this.cleanText(page_name));
        YWATracker.setCF(4,this.cleanText(this.defaults.landing_name));
        if (this.url_params['tref1']) YWATracker.setCF(2,this.url_params['tref1']);
        if (this.url_params['tref2']) YWATracker.setCF(1,this.url_params['tref2']);
        if (this.url_params['tref3']) YWATracker.setCF(3,this.url_params['tref3']);                
        //YWATracker.setCF(21,txt_param);
        //YWATracker.setCF(22,txt_values);        
        
        YWATracker.submit();
        
    };
    this.trackStep=function(step_name)
    {
        if (!this.isDef(step_name)) {
            step_name=this.defaults.step_name;
        } else {
            this.defaults.step_name=step_name;
        }
        //this.defaults.step_name=step_name;
        this.trackPage();
    };
    this.setLeadParams=function(params){
        try {
            var txt_action='';
            var txt_param='';
            var txt_values='';        
            for (qkey in params) {
                var q=params[qkey];
                txt_action+='15;';
                txt_param+=q['key']+';';         
                txt_values+=q['val']+';';
            }
            var YWATracker = YWA.getTracker(this.YWATrackerId);
            YWATracker.setAction(txt_action);
            YWATracker.setCF(21,txt_param);
            YWATracker.setCF(22,txt_values);
            YWATracker.submit_action();      
        } catch (e) {            
        }
    };
    
    this.checkAsGood=function(to){
        if (!this.isDef(to)) to='';
        var YWATracker = YWA.getTracker(this.YWATrackerId);
        YWATracker.setAction('17;15;');
        YWATracker.setCF(21,';good;');
        var t1=';'+to+";";
        YWATracker.setCF(22,t1);
        YWATracker.submit_action(); 
    };
    this.checkAsDouble=function(by){
        if (!this.isDef(by)) by='';
        var YWATracker = YWA.getTracker(this.YWATrackerId);
        YWATracker.setAction('16;15;');
        YWATracker.setCF(21,';double_status;');
        YWATracker.setCF(22,';'+by+';');
        YWATracker.submit_action(); 
    };
    
    
    this.url_params = this.getUrlParams();
}



/* CONFIGURATION */

// in main template


//var STracker=new CSiteTracker("");


/*

// on the entry page

STracker.defaults.landing_name="[LANDING NAME]";

// at start of page
STracker.defaults.page_name="[PAGE NAME HERE]";
STracker.defaults.page_group="[PAGE GROUP HERE]";

// at step
STracker.defaults.step="[STEP NAME]";


// at and of page
STracker.trackPage();


*/



