﻿/// <reference path="DESNEA.Util.js" />
/// <reference path="date-es.js" />

$(document).ready(function () {

    virazonInicializar();

});


var ARTICULO_TEMPLATE_DEFAULT = "[IMAGEN][TITULO][FECHA][BAJADA][MASINFO][SEPARADOR]";
var ARTICULO_TEMPLATE_INICIO = "<div id=\"{0}\" class=\"{1}\">";
var ARTICULO_TEMPLATE_FIN = "</div>";
var ARTICULO_TEMPLATE_TITULO = "<div class=\"t\"><a href=\"{0}\">{1}</a></div>";
var ARTICULO_TEMPLATE_IMAGEN = "<div class=\"i\"><a href=\"{0}\"><img src=\"{1}\" alt=\"\" /></a></div>";
var ARTICULO_TEMPLATE_FECHA = "<div class=\"f\">{0}</div>";
var ARTICULO_TEMPLATE_VOLANTA = "<div class=\"v\">{0}</div>";
var ARTICULO_TEMPLATE_BAJADA = "<div class=\"b\"><p>{0}</p><div class=\"relleno\">&nbsp;</div></div>";
var ARTICULO_TEMPLATE_TEXTO = "<div class=\"c\">{0}</div>";
var ARTICULO_TEMPLATE_MASINFO = "<div class=\"mi\"><a href=\"{0}\">+ info</a></div>";
var ARTICULO_TEMPLATE_SEPARADOR = "<div class=\"s\">&nbsp;</div>" + "<div class=\"clear\">&nbsp;</div>";

var ARTICULO = function () {
    var idioma_var;

    function private_method() {
        // do stuff here
    }

    return {
        TemplateDefault: function () {
            return ARTICULO_TEMPLATE_DEFAULT;
        },
        Inicio: function () {
            return ARTICULO_TEMPLATE_INICIO;
        },
        Fin: function () {
            return ARTICULO_TEMPLATE_FIN;
        },
        Titulo: function () {
            return ARTICULO_TEMPLATE_TITULO;
        },
        Idioma: function () {
            return idioma_var;
        },
        SetIdioma: function (idioma) {
            idioma_var = idioma;
        }
    };
} ();





registerNS("DESNEA.Virazon.Util");





//    private string _templateFecha = ;
//    private string _templateBajada = "";
//    private string _templateTexto = ;
//    private string _templateMasInfo = ;
//    private string _templateSeparador = "<div class='clear'>&nbsp;</div>" +
//                                    "<div class='separador'>&nbsp;</div>";

function ArticuloFactory(articulo, idioma, template) {

    
    //Setear variables
    ARTICULO.SetIdioma(idioma);



    //Factory de Articulo
    return ArticuloFactoryArmar(articulo, template);
}


function ArticuloFactoryArmar(articulo, template) {
    var cadena = '';

    cadena += String.format(ARTICULO_TEMPLATE_INICIO, articulo.id, "articuloItem");

    cadena += template;
  
    cadena = cadena.replace("[IMAGEN]", ArticuloFactoryImagen(articulo));
    cadena = cadena.replace("[FECHA]", ArticuloFactoryFecha(articulo));
    cadena = cadena.replace("[TITULO]", ArticuloFactoryTitulo(articulo));
    cadena = cadena.replace("[BAJADA]", ArticuloFactoryBajada(articulo));
    cadena = cadena.replace("[MASINFO]", ArticuloFactoryMasInfo(articulo));
    cadena = cadena.replace("[SEPARADOR]", ArticuloFactorySeparador(articulo));


//    cadena += String.format(ARTICULO.Titulo, '', '#', articulo.titulo);

    cadena += "</div>";

    return cadena;
}


function ArticuloFactoryImagen(articulo) {
    if (articulo.imagenId != 0) {
        return String.format(ARTICULO_TEMPLATE_IMAGEN,
                                    articulo.enlace,
                                    articulo.imagenEnlace);
    } else {
        return "";
    }    

}
function ArticuloFactoryFecha(articulo) {
    var fecha = Date.parse(articulo.fecha);
    return String.format(ARTICULO_TEMPLATE_FECHA, fecha.toString('dd/MMM/yyyy'));
}

function ArticuloFactoryTitulo(articulo) {
    return String.format(ARTICULO_TEMPLATE_TITULO, articulo.enlace, articulo.titulo);
}

function ArticuloFactoryBajada(articulo) {
    return String.format(ARTICULO_TEMPLATE_BAJADA, articulo.bajada);
}

function ArticuloFactoryMasInfo(articulo) {
    return String.format(ARTICULO_TEMPLATE_MASINFO, articulo.enlace);
}

function ArticuloFactorySeparador(articulo) {
    return String.format(ARTICULO_TEMPLATE_SEPARADOR, "");
}




function ObtenerIdiomaURL() {

    var idioma = $(document).url().segment(0);

    if (idioma == null) {
        idioma = VIRAZON_IDIOMA_DEFAULT;
    }

    return idioma;

}



function virazonInicializar() {

    $(".virazonImagenCargar").each(function () {

        var id = $(this).data("id");
        var imagenEnlace = $(this).data("imagenEnlace");
        var contenedor = String.format("#{0} .i", id);


        //var ancho = $(this).css("width").toString().replace('px', '');
        //var alto = $(this).css("height").toString().replace('px', '');

        //var imagenEnlaceNuevoTamano = virazonImagenCambiarTamano(imagenEnlace, ancho, alto);

        virazonImagenCargar(contenedor, imagenEnlace);

    });
}


//---------------------------------------------------------------------------------------------
//Cambiar tamaño de imagen
//---------------------------------------------------------------------------------------------
function virazonImagenCambiarTamano(imagenEnlace, ajustarAncho, ajustarAlto) {

    var imagen = new Image();
    imagen.src = imagenEnlace;

    var height = imagen.height;
    var width = imagen.width;



    $(imagen).load(function () {

        width = imagen.width;
        height = imagen.height;

        //var articulovirazonObtenerIdDesdeEnlaceImagen(imagenEnlace);

        //Proporciones
        var proporcion = width / height;

        var anchoImagen = ajustarAncho;
        var altoImagen = ajustarAlto / proporcion;

        if (altoImagen < ajustarAlto) {
            proporcion = height / width;
            altoImagen = ajustarAlto;
            anchoImagen = ajustarAncho / proporcion;
        }

        //Reemplazar tamaño
        var desde = imagenEnlace.lastIndexOf('_');
        var hasta = imagenEnlace.lastIndexOf('.');
        var tamanioAnterior = imagenEnlace.substring(desde + 1, hasta);
        var tamanioNuevo = String.format("{0}x{1}", Math.round(anchoImagen), Math.round(altoImagen));

        var nuevoEnlace = imagenEnlace.replace(tamanioAnterior, tamanioNuevo);
        var nuevoEnlaceCss = String.format("url('{0}')", nuevoEnlace);

        return nuevoEnlaceCss;
    });

}

//---------------------------------------------------------------------------------------------
//Carga una imagen
//---------------------------------------------------------------------------------------------
function virazonImagenCargar(contenedor, imagenEnlace) {

    $(contenedor).css("background-image", String.format("url('{0}')", imagenEnlace));
}


//---------------------------------------------------------------------------------------------
//Obtener ID desde el enlace de una imagen
//---------------------------------------------------------------------------------------------
function virazonObtenerIdDesdeEnlaceImagen(imagenEnlace) {

    var desde = imagenEnlace.indexOf('_');
    var hasta = imagenEnlace.lastIndexOf('_');

    if (desde != null) {
        var id = imagenEnlace.substring(desde + 1, hasta);
        return id;
    }

    return;
}

function getImgSize(imgSrc) {
    var newImg = new Image();

    newImg.src = imgSrc;

    var height = newImg.height;

    var width = newImg.width;

    p = $(newImg).ready(function () {

        return { width: newImg.width, height: newImg.height };
    });

    //alert(p[0]['width'] + " " + p[0]['height']);
    return newImg;
}
