/**
 * Fichero para la inclusión de todo el motor JS de la confirmacion de TBudgetV2
 * 
 * @author Arturo Diaz
 * @copyright RuralGest S.L.
 * @since 09/02/2016
 */

// ---- Variables globales
//alert('local');
//var host_raiz='http://192.168.1.35/';
var host_raiz='https://www.mrplan.es/';
var Budget=null;
var iCl=(typeof iCl=='undefined' ? null : iCl);
//var iCl=null;
var id_idioma=0;
var bv2_es_local=false;
var activehead='1';
var iDB_MrPlan=null;

host_raiz='https://www.mrplan.es/';
var sufijo_min='.min';
var param_ts='&ts=1784366341';

if(bv2_es_local) {
	alert('Conexion Local');
}

// ----- Main de la confirmacion
BDG2_startBudget();




/* ======= FUNCIONES BASICAS PARA JS ======== */
/**
 * Metodo para incluir librerias en tiempo de ejecucion
 * 
 * @param string ruta
 * @param string tipo => js, css
 */
function BDG2_includeLibreriaJS(ruta,tipo,callbackFunc)
{
	// ---- Buscamos el Head del dcoument para añadir librerias
	var head = document.getElementsByTagName('head')[0];  
	
	// ---- Si es JS creamos el script y le añadimos el callback si esta definido
	if(tipo=='js')
	{
		var se1 = document.createElement('script');
		se1.src = ruta;
		if(callbackFunc!=null)
			se1.onload=callbackFunc;
		head.appendChild(se1);
	}
	
	// ----- Creamos el Link para el CSS
	if(tipo=='css')
	{
		var cssNode_jquery = document.createElement('link');
		cssNode_jquery.type = 'text/css';
		cssNode_jquery.rel = 'stylesheet';
		cssNode_jquery.href = ruta;
		cssNode_jquery.media = 'screen';
		head.appendChild(cssNode_jquery);
	}
}

/**
 * Inicia la confirmacion
 * 
 * @returns
 */
function BDG2_startBudget()
{
    console.log('TBudgetInc::BDG2_startBudget'); 
    BDG2_includeLibreriaJS(host_raiz+'experiencias/modulos/TExpCalendario/lib/jquery-ui-1.11.4.custom/jquery-ui.css?&ts=1784366341','css',null);
    if((iCl!=null) && (typeof iCl!='undefined')) 
    { 
	    	console.log('Inicio con iCl ya instanciado'); 
	    	BDG2_start_jQuery(); 
    }else 
    { 
	    	console.log('Inicio creando iCl **');
	    	BDG2_includeLibreriaJS(host_raiz+'experiencias/lib/jquery/lib/jquery-1.10.2.min.js?&ts=1784366341','js',BDG2_prestart_jQuery);
    }
}

function BDG2_prestart_jQuery()
{
    console.log('TBudgetInc::BDG2_prestart_jQuery'); 
    if((iCl==null) || (typeof iCl=='undefined')) {
        console.log('Sin jQuery');
        BDG2_includeLibreriaJS(host_raiz+'experiencias/lib/jquery/ui/jquery-ui-1.11.0.js?&ts=1784366341','js',BDG2_start_jQuery);
    } else {
        console.log('Con jQuery');
    	BDG2_startBudgetV2();
    }
}

function BDG2_start_jQuery(){
    console.log('TBudgetInc::BDG2_startBudgetV2');
    // ---- Controlador de conexion a indexDB
    BDG2_includeLibreriaJS(host_raiz+'experiencias/modulos/TindexDB/lib/class.TindexDB.min.js?&ts=1784366341','js',BDG_startTindexDB);
}

function BDG_startTindexDB(){
    try{
        var lanzarCarga=false;
        var preLoad={
            "Budget"    : 1,
            "Asientos"  : 1
        };
        iDB_MrPlan=new TindexDB(preLoad);
        if(iDB_MrPlan.error_code==0){
            iDB_MrPlan.onLoadBudget=BDG2_start_jQuery_B;
        }else{
            iDB_MrPlan=null;
            lanzarCarga=true;
        }
    } catch(err) {
        console.error('Error al istanciar TindexDB');
        lanzarCarga=true;
    }

    if(lanzarCarga){
        BDG2_start_jQuery_B();
    }
}

/**
* Prepara el noConflict de jQuery e inicia ExpReverse
*
*/
function BDG2_start_jQuery_B()
{
    console.log('TBudgetInc::BDG2_start_jQuery'); 
    if((iCl==null) || (typeof iCl=='undefined')) {
        iCl=jQuery.noConflict(); 
    }
    
    if(iDB_MrPlan==null){
        var parametros = localStorage.getItem("TBudget_saved");        
    }else{
        var parametros = iDB_MrPlan.getBudget(true);
    }
    if(typeof parametros=='undefined' || parametros==null){
        parametros='';
    }
    var params= parametros.split("[%]");
    var id_destino=0;
    var id_elemento=0;
    var id_punto_venta=0;
    id_idioma=0;
    var tipo_elemento=3;
    
    for(x in params)
    {
        var parts=params[x].split("=");
        switch(parts[0])
        {
            case "id_elemento":
                id_elemento=parts[1];
                break;
            case "id_destino":
                id_destino=parts[1];
                break;
            case "id_punto_venta":
                id_punto_venta=parts[1];
                break;
            case "id_idioma":
                id_idioma=parts[1];
                break;
            case "tipo_elemento":
                tipo_elemento=parts[1];
                break;
        }
    }    
    
    //console.log("id_elemento: "+id_elemento+" id_destino: "+id_destino+" id_punto_venta: "+id_punto_venta+" id_idioma:"+id_idioma+" tipo_elemento: "+tipo_elemento);    
    
    // ----- Quitamos la inclusion de TExpProductos interferia con CSS de Casino. NO se usa en TBudget
    BDG2_includeLibreriaJS(host_raiz+'experiencias/modulos/TExpProductos/css/TExpProductos.php?id_destino='+id_destino+'&id_punto_venta='+id_punto_venta+'&ts=1784366341','css',null);

    //BDG2_includeLibreriaJS(host_raiz+'scr/modulos/budget/Model1/css/bootstrap.min.css?&ts=1784366341','css',null);
    BDG2_includeLibreriaJS(host_raiz+'scr/modulos/budget/Model1/css/bootstrap_enc/bootstrap.min.css?&ts=1784366341','css',null);
    BDG2_includeLibreriaJS(host_raiz+'experiencias/modulos/TExpBuscador/css/TExpBuscador.php?ruta_raiz=http://'+host_raiz+'scr/&ews_ruta_raiz=http://'+host_raiz+'scr/../experiencias/&id_destino='+id_destino+'&id_punto_venta='+id_punto_venta+'&ts=1784366341','css',null);
    BDG2_includeLibreriaJS(host_raiz+'experiencias/modulos/TWidget/lib/mr-analytics.min.js?&ts=1784366341','js',null);
    BDG2_includeLibreriaJS(host_raiz+'scr/modulos/budget/lib/class.TBudget.min.js?&ts=1784366341','js',BDG2_startBudgetV2);
}
	
/**
 * Obtiene los parametros pasados por la URL
 * 
 * @return object
 */
function BDG2_getVarsUrl()
{
    var url= location.search.replace("?", "");
    var arrUrl = url.split("&");
    var urlObj={};   
    for(var i=0; i<arrUrl.length; i++){
        var x= arrUrl[i].split("=");
        urlObj[x[0]]=x[1]
    }
    return urlObj;
}

/**
* Instancia la clase Budget
*
*/
function BDG2_startBudgetV2()
{
    console.log('TBudgetInc::BDG2_startBudgetV2_B'); 

	if(Budget!=null) {
        return Budget;
    }
	
	if(typeof id_idioma=="undefined") {
		id_idioma=0;
	}

    // ---- Controlador del BDG2_startBudget
    Budget=new TBudget(host_raiz+'scr/',id_idioma,'','','TBudgetV2_Confirmacion');
    Budget.setFuncV2(true,'');

    // ---- Comprobamos si es la vuelta del TPV
    var esTPVVuelta=false;
    var URLVars=BDG2_getVarsUrl();
    if((typeof URLVars!='undefined') && (URLVars!=null) && (iCl.trim(URLVars.tpv_hash)!='') && (iCl.trim(URLVars.ts)!='')) {
        //console.log(URLVars);
        esTPVVuelta=Budget.setVueltaTPV(URLVars.tpv_hash,URLVars.ts);
    }

    // ---- Confirmacion completa - La de toda la vida
    if(!esTPVVuelta) {
        Budget.getConfirmacionCompleta(activehead);
    }
    
    return Budget;
}