// Decompiled by DJ v3.12.12.96 Copyright 2011 Atanas Neshkov  Date: 08/10/2012 8:47:40
// Home Page: http://members.fortunecity.com/neshkov/dj.html http://www.neshkov.com/dj.html - Check often for new version!
// Decompiler options: packimports(3) 
// Source File Name:   ConvertirXML.java

package project;

import java.util.Vector;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.*;

// Referenced classes of package project:
//            AccederADatos

public class ConvertirXML
{

    public ConvertirXML()
    {
    }

    public static Document aFormatoAntiguo(Document doc, String idioma, String modulo, String tema)
    {
        try
        {
            olddbf1 = DocumentBuilderFactory.newInstance();
            olddb1 = olddbf1.newDocumentBuilder();
            oldDoc = olddb1.newDocument();
            oldRoot = oldDoc.createElement("root");
        }
        catch(Exception ex)
        {
            ex.printStackTrace();
        }
        newIdiomaListList = doc.getElementsByTagName("idioma");
        for(int a = 0; a < newIdiomaListList.getLength(); a++)
        {
            newFormatElement = (Element)newIdiomaListList.item(a);
            if(newFormatElement.getAttribute("id").compareToIgnoreCase(AccederADatos.idioma) != 0)
                continue;
            newModuloList = newFormatElement.getElementsByTagName("modulo");
            for(int b = 0; b < newModuloList.getLength(); b++)
            {
                newFormatElement = (Element)newModuloList.item(b);
                newModulo = newFormatElement.getAttribute("id");
                if(newFormatElement.getAttribute("id").compareToIgnoreCase(modulo) != 0)
                    continue;
                newTemaList = newFormatElement.getElementsByTagName("tema");
label0:
                for(int c = 0; c < newTemaList.getLength(); c++)
                {
                    newFormatElement = (Element)newTemaList.item(c);
                    newTema = newFormatElement.getAttribute("id");
                    if(newFormatElement.getAttribute("id").compareToIgnoreCase(tema) != 0)
                        continue;
                    newGradoList = newFormatElement.getElementsByTagName("grado");
                    int d = 0;
                    do
                    {
                        if(d >= newGradoList.getLength())
                            continue label0;
                        newFormatElement = (Element)newGradoList.item(d);
                        newGrado = newFormatElement.getAttribute("id");
                        newTipoList = newFormatElement.getElementsByTagName("tipo");
                        for(int e = 0; e < newTipoList.getLength(); e++)
                        {
                            newFormatElement = (Element)newTipoList.item(e);
                            newTipo = newFormatElement.getAttribute("id");
                            newPreguntaList = newFormatElement.getElementsByTagName("pregunta");
                            for(int f = 0; f < newPreguntaList.getLength(); f++)
                            {
                                newFormatElement = (Element)newPreguntaList.item(f);
                                oldformatElement = cambiarPregunta(newFormatElement, newModulo, newTema, newGrado, newTipo);
                                oldRoot.appendChild(oldformatElement);
                            }

                        }

                        d++;
                    } while(true);
                }

            }

        }

        oldDoc.appendChild(oldRoot);
        return oldDoc;
    }

    public static Element cambiarPregunta(Element elementoNuevo, String mod, String tem, String gra, String tip)
    {
        newEnunciadoElement = (Element)elementoNuevo.getElementsByTagName("enunciado").item(0);
        oldformatElement = oldDoc.createElement("question");
        oldformatElement.setAttribute("id", elementoNuevo.getAttribute("id"));
        oldformatElement.setAttribute("nivel", "0");
        oldformatElement.setAttribute("Text", newEnunciadoElement.getAttribute("texto"));
        oldformatElement.setAttribute("type", tip);
        oldformatElement.setAttribute("Grado", gra);
        oldformatElement.setAttribute("Area", "tema" + tem);
        if(newEnunciadoElement.getAttribute("imagen").length() > 0)
            if(elementoNuevo.getAttribute("updated").compareToIgnoreCase("true") == 0)
                oldformatElement.setAttribute("Image1", newEnunciadoElement.getAttribute("imagen"));
            else
            if(elementoNuevo.getAttribute("updated").compareToIgnoreCase("false") == 0 || elementoNuevo.getAttribute("updated").compareToIgnoreCase("") == 0)
                oldformatElement.setAttribute("Image1", "Imagenes/" + AccederADatos.idioma + "-" + mod + "-" + tem + "/" + newEnunciadoElement.getAttribute("imagen"));
        if(elementoNuevo.getAttribute("updated").compareToIgnoreCase("true") == 0)
        {
            oldformatElement.setAttribute("updated", elementoNuevo.getAttribute("updated"));
            oldformatElement.setAttribute("Zip", elementoNuevo.getAttribute("Zip"));
        } else
        {
            oldformatElement.setAttribute("updated", "false");
        }
        Vector vectorElementos = nuevosCaminos(elementoNuevo, new Vector(), elementoNuevo.getAttribute("id"), 1, "Imagenes/" + AccederADatos.idioma + "-" + mod + "-" + tem + "/" + newEnunciadoElement.getAttribute("imagen"));
        for(int g = 0; g < vectorElementos.size(); g++)
            oldformatElement.appendChild((Element)vectorElementos.elementAt(g));

        return oldformatElement;
    }

    public static void main(String args[])
    {
        ConvertirXML convertirXML1 = new ConvertirXML();
    }

    private static Vector nuevosCaminos(Element newPadre, Vector oldPadre, String idPregunta, int niv, String imagenPadre)
    {
        int nivel = niv;
        NodeList newElementos = newPadre.getChildNodes();
        Element newElemento = null;
        Element oldElemento = null;
        Vector resultado = oldPadre;
        Vector papas = new Vector();
        String correcta = "";
        Vector vrespuestas = new Vector();
        for(int a = 0; a < newElementos.getLength(); a++)
        {
            if(!(newElementos.item(a) instanceof Element))
                continue;
            newElemento = (Element)newElementos.item(a);
            if((newTipo.compareToIgnoreCase("B") == 0 || newTipo.compareToIgnoreCase("BT") == 0) && newElemento.getTagName().compareToIgnoreCase("enunciado") != 0 && newElemento.getParentNode() == newPadre)
            {
                oldElemento = oldDoc.createElement("camino");
                oldElemento.setAttribute("id", idPregunta);
                oldElemento.setAttribute("nivel", String.valueOf(nivel));
                if(newElemento.getAttribute("combinacion").length() > 0)
                {
                    oldElemento.setAttribute("cxp", "0");
                    oldElemento.setAttribute("cyp", "0");
                    oldElemento.setAttribute("cxg", "0");
                    oldElemento.setAttribute("cyg", "0");
                    oldElemento.setAttribute("nTeclas", String.valueOf(newElemento.getAttribute("combinacion").split("-").length));
                    oldElemento.setAttribute("Teclas", "(" + newElemento.getAttribute("combinacion").replaceAll("-", ",") + ")");
                } else
                {
                    oldElemento.setAttribute("cxp", newElemento.getAttribute("cxp"));
                    oldElemento.setAttribute("cyp", newElemento.getAttribute("cyp"));
                    oldElemento.setAttribute("cxg", newElemento.getAttribute("cxg"));
                    oldElemento.setAttribute("cyg", newElemento.getAttribute("cyg"));
                }
                oldElemento.setAttribute("Ultimo", "si");
                oldElemento.setAttribute("Imagen", "Imagenes/" + AccederADatos.idioma + "-" + newModulo + "-" + newTema + "/" + newElemento.getAttribute("imagen"));
                oldElemento.setAttribute("Image1", imagenPadre);
                if(newElemento.getElementsByTagName("click").getLength() > 0 || newElemento.getElementsByTagName("camino").getLength() > 0)
                {
                    oldElemento.setAttribute("Ultimo", "no");
                    papas.add(papas.size(), new Integer(a));
                }
                resultado.add(resultado.size(), oldElemento);
            }
            if(newTipo.compareToIgnoreCase("C") != 0 && newTipo.compareToIgnoreCase("I") != 0 || newElemento.getTagName().compareToIgnoreCase("enunciado") == 0)
                continue;
            vrespuestas.add(vrespuestas.size(), newElemento.getAttribute("enunciado"));
            if(newElemento.getAttribute("correcta").compareToIgnoreCase("true") == 0)
                correcta = correcta + vrespuestas.size() + "-";
        }

        if(newTipo.compareToIgnoreCase("B") == 0 || newTipo.compareToIgnoreCase("BT") == 0)
        {
            for(int a = 0; a < papas.size(); a++)
            {
                Integer integer = (Integer)papas.elementAt(a);
                newElemento = (Element)newElementos.item(integer.intValue());
                resultado = nuevosCaminos(newElemento, resultado, idPregunta, nivel + 1, "Imagenes/" + AccederADatos.idioma + "-" + newModulo + "-" + newTema + "/" + newElemento.getAttribute("imagen"));
            }

        } else
        if(newTipo.compareToIgnoreCase("C") == 0 || newTipo.compareToIgnoreCase("I") == 0)
        {
            oldElemento = oldDoc.createElement("camino");
            oldElemento.setAttribute("id", idPregunta);
            oldElemento.setAttribute("correctas", correcta.substring(0, correcta.length() - 1));
            for(int a = 0; a < vrespuestas.size(); a++)
                oldElemento.setAttribute("resp" + (a + 1), String.valueOf(vrespuestas.elementAt(a)));

            resultado.add(resultado.size(), oldElemento);
        }
        return resultado;
    }

    private static Document oldDoc;
    private static Document newDoc;
    private static Element oldRoot;
    private static DocumentBuilderFactory olddbf1;
    private static DocumentBuilderFactory newdbf1;
    private static DocumentBuilder olddb1;
    private static NodeList newFormatList;
    private static NodeList newIdiomaListList;
    private static NodeList newModuloList;
    private static NodeList newTemaList;
    private static NodeList newGradoList;
    private static NodeList newTipoList;
    private static NodeList newPreguntaList;
    private static NodeList newCaminosBList;
    private static NodeList oldFormatList;
    private static Element newFormatElement;
    private static Element newEnunciadoElement;
    private static Element newRespuestaElement;
    private static Element oldformatElement;
    private static String newGrado;
    private static String newTipo;
    private static String newModulo;
    private static String newTema;

}