/**
 * @author dortega
 */
rmb.seo.namespaces.createNamespace("rmb.seo.testAB");

(function(){


    /**
     *
     * @param {Object} c_name
     */
    function getCookie(c_name){
        if (document.cookie.length > 0) {
            c_start = document.cookie.indexOf(c_name + "=");
            if (c_start != -1) {
                c_start = c_start + c_name.length + 1;
                c_end = document.cookie.indexOf(";", c_start);
                if (c_end == -1) {
                    c_end = document.cookie.length;
                }
                return unescape(document.cookie.substring(c_start, c_end));
            }
        }
        return null;
    }
    
    /**
     *
     * @param {Object} nombreCookie
     * @param {Object} tipoTest
     */
    function setCookie(nombreCookie, tipoTest){
        var name = "TESTAB";
        
        if (nombreCookie != undefined) {
            name = nombreCookie;
        }
        
        var days = 365;
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
        document.cookie = name + "=" + tipoTest + expires + "; path=/";
    }
    
    /**
     *
     * @param {Object} percentage
     */
    function obtenerAlatorio(percentage){
        var tipoTest = 'A';
        var aleatorio = Math.ceil(Math.random() * 100);
        if (aleatorio < percentage) {
            tipoTest = 'B';
        }
        else {
            tipoTest = 'A';
        }
        return tipoTest;
    }
    
    /**
     *
     * @param {Object} percentage
     */
    function obtenerAlatorio(percentage){
        var tipoTest = 'A';
        var aleatorio = Math.ceil(Math.random() * 100);
        if (aleatorio < percentage) {
            tipoTest = 'B';
        }
        else {
            tipoTest = 'A';
        }
        return tipoTest;
    }
    
    
    /**
     *
     * @param {Object} testABConfig
     */
    function parte1(testABConfig){
        var cookieName = 'testAB.' + testABConfig.testName;
        //Accedemos a las cookies del cliente y buscamos TESTAB
        var result = getCookie(cookieName);
        
        //Si la cookie ya existia comprobamos si es de tipo A o de tipo B
        if (result == null) {
            //La cookie no existia previamente y la creamos y la guardamos
            
            //Obtener tipo de test  
            result = obtenerAlatorio(testABConfig.percentage);
            
            //Guardamos la cookie
            setCookie(cookieName, result);
            
        }
        
        return result;
    }
    
    
    /**
     *
     * @param {Object} testABConfig
     * @param {Object} result
     */
    function parte2(testABConfig, result){
        //Log para SEO   
        
        //trackeo del testAB a traves del pageView (plan B)
        try {
            pageTracker._trackPageview('/testAB/' + testABConfig.testName + "." +
            testABConfig.subTestName +
            "/testValue=" +
            result);
        } 
        catch (e) {
        
        }
    }
    
    
    /**
     *
     * @param {Object} fcn
     * @param {Object} percentage
     */
    function init(testABConfig){
        var result = parte1(testABConfig);
        parte2(testABConfig, result);
        return result;
    }
    
    
	
	//Metodos publicos
    
    /*
     *
     */
    rmb.seo.testAB.TestABClass = function(testABConfig){ 
        //Inicio Funcionalidades		        
        var result = init(testABConfig);
        return result;
        
    };
    
    
	/**
	 * 
	 * @param {Object} testABConfig
	 */
    rmb.seo.testAB.TestABClass.parte1 = function(testABConfig){
		var result = parte1(testABConfig);
		return result;
    }
    
	/**
	 * 
	 * @param {Object} testABConfig
	 * @param {Object} testABResult
	 */
    rmb.seo.testAB.TestABClass.parte2 = function(testABConfig,testABResult){     
		parte2(testABConfig,testABResult);
    }
    
    
})();








