﻿// Tomado de http://www.quirksmode.org/blog/archives/2005/10/_and_the_winner_1.html
addEvent = function ( obj, type, fn ) {
	if (obj.addEventListener)
		obj.addEventListener( type, fn, false );
	else if (obj.attachEvent) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); };
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
}
bc_newElement = function (tag) {
   return document.createElement(tag);
}
bc_getElement = function (id) {


   return document.getElementById(id);
}

var field_count = 1;

bc_init = function(fileId, displayId) {
    try {
        field = bc_getElement(fileId);
        field.display=bc_getElement(displayId);

        if (!field || !field.type || field.type != 'file' || !field.display) return;

        addEvent(field, 'change', bc_addField);
    } catch ( ex ) { bc_handleError(ex); }
}

bc_load = function (fileId, displayId) {
    addEvent(window, 'load', new Function("bc_init('" + fileId + "', '" + displayId + "');"));
}
// Basado en http://the-stickman.com/web-development/javascript/updated-upload-multiple-files-with-a-single-file-element/
bc_addField = function() {
    try {
        posicion = field_count++;
      
        new_field = bc_newElement('INPUT');
        new_field.type = 'file';
        new_field.id = new_field.name = this.id.replace(/-@bc-.*$/g, "") + '-@bc-' + posicion;
        new_field.display = this.display;
        addEvent(new_field, 'change', bc_addField);


        this.parentNode.insertBefore(new_field, this);

        li = bc_newElement('LI');        

        a = bc_newElement('A');
        a.href="#";
        a.appendChild(document.createTextNode('Cancel Upload for: '));
        a.field_id = this.id;
        a.id = posicion
        addEvent(a, 'click', bc_removeField);

        li.appendChild(a);
        li.appendChild(document.createTextNode( this.value.substring( this.value.search(/[^\/\\]+$/) ) ));        
        this.display.appendChild(li);
        
        //voy a poner un input para cargar la coordenada X
        
        lbl = bc_newElement('LABEL');
        lbl.id = 'etiqueta_X_' +  posicion;
        lbl.appendChild(document.createTextNode('Posicion en X'));
        this.display.appendChild(lbl);
        
              
        campo = bc_newElement('INPUT');        
        campo.type = 'text';
        campo.id = 'Coordenada_X_' + posicion;
        campo.name = 'Coordenada_X_' + posicion;
         this.display.appendChild(campo);
         
          //voy a poner un input para cargar la coordenada Y
         lbr = bc_newElement('BR');
         lbr.id = 'salto_' +  posicion;
        this.display.appendChild(lbr);
        
        lbl = bc_newElement('LABEL');
         lbl.id = 'etiqueta_Y_' +  posicion;
        lbl.appendChild(document.createTextNode('Posicion en Y'));
        this.display.appendChild(lbl);

         lbr = bc_newElement('BR');
         lbr.id = 'salto_' +  posicion;
        this.display.appendChild(lbr);
        
        campo = bc_newElement('INPUT');        
        campo.type = 'text';
        campo.id = 'Coordenada_Y_' + posicion;
        campo.name = 'Coordenada_Y_' + posicion;
         this.display.appendChild(campo);
         
          lbr = bc_newElement('BR');
          lbr.id = 'salto_' +  posicion;
        this.display.appendChild(lbr);
         
          //voy a poner un input para cargar la coordenada Z
        
        lbl = bc_newElement('LABEL');
        lbl.id = 'etiqueta_Z_' +  posicion;
        lbl.appendChild(document.createTextNode('Posicion en Z'));
        this.display.appendChild(lbl);
        
        lbr = bc_newElement('BR');
        lbr.id = 'salto_' +  posicion;
        this.display.appendChild(lbr);
       
        campo = bc_newElement('INPUT');        
        campo.type = 'text';
        campo.id = 'Coordenada_Z_' + posicion;
        campo.name = 'Coordenada_Z_' + posicion;
         this.display.appendChild(campo);
 
        lbr = bc_newElement('BR');
        lbr.id = 'salto_' +  posicion;
        this.display.appendChild(lbr);
        
        //campo para la descripcion de la imagen
        
         lbl = bc_newElement('LABEL');
         lbl.id = 'etiqueta_descript_' +  posicion
        lbl.appendChild(document.createTextNode('Descripcion'));
        this.display.appendChild(lbl);
        
         lbr = bc_newElement('BR');
         lbr.id = 'salto_' +  posicion;
        this.display.appendChild(lbr);
        
         campo = bc_newElement('INPUT');        
        campo.type = 'text';
        campo.id = 'Descripcion_' + posicion;
        campo.name = 'Descripcion_' + posicion;
         this.display.appendChild(campo);
         
         //campo para la url del link
        
        
         lbr = bc_newElement('BR');
         lbr.id = 'salto_' +  posicion;
        this.display.appendChild(lbr);
        
         lbl = bc_newElement('LABEL');
         lbl.id = 'etiqueta_Link_' +  posicion
        lbl.appendChild(document.createTextNode('Url Hotpost'));
        this.display.appendChild(lbl);
        
         lbr = bc_newElement('BR');
         lbr.id = 'salto_' +  posicion;
        this.display.appendChild(lbr);
        
         campo = bc_newElement('INPUT');        
        campo.type = 'text';
        campo.id = 'Link_' + posicion;
        campo.name = 'Link_' + posicion;
         this.display.appendChild(campo);

        this.style.position = 'absolute';
	    this.style.left = '-1000px';
    } catch ( ex ) { bc_handleError(ex); }
}
bc_removeField = function (event) {
    try {
  
      //borro el input con el file
        (del = bc_getElement(this.field_id)).parentNode.removeChild(del);
        
        // borro los titulos
        (dell = bc_getElement('etiqueta_X_' +  this.id )).parentNode.removeChild(dell);
        (dell = bc_getElement('etiqueta_Y_' +  this.id )).parentNode.removeChild(dell);
        (dell = bc_getElement('etiqueta_Z_' +  this.id )).parentNode.removeChild(dell);
          
        //borro los input de las coordenadas
         (delc = bc_getElement('Coordenada_X_' + this.id )).parentNode.removeChild(delc);
         (delc = bc_getElement('Coordenada_Y_' + this.id )).parentNode.removeChild(delc);
         (delc = bc_getElement('Coordenada_Z_' + this.id)).parentNode.removeChild(delc);
         
         //borro el input de la descripcion
         (deld = bc_getElement('Descripcion_' + this.id)).parentNode.removeChild(deld);
         (deldes = bc_getElement('etiqueta_descript_' + this.id)).parentNode.removeChild(deldes);
         //borro el input del link
         (deld = bc_getElement('Link_' + this.id)).parentNode.removeChild(deld);
         (deldes = bc_getElement('etiqueta_Link_' + this.id)).parentNode.removeChild(deldes);
         
         
         
         (delb = bc_getElement('salto_' + this.id)).parentNode.removeChild(delb);
         
         
        this.parentNode.parentNode.removeChild(this.parentNode);
        if (event && event.preventDefault)
            event.preventDefault();
        
        return false;
    } catch ( ex ) { bc_handleError(ex); }
}

bc_handleError = function (ex) { //alert ( ex );
 }
