function concatObject(obj) {
  str='';
  for(prop in obj)
  {
    str+=prop + " value :"+ obj[prop]+"\n";
  }
  return(str);
}


var GStreetMapMultimediaWindow = function (){
    
}
GStreetMapMultimediaWindow.win = null;
GStreetMapMultimediaWindow.prototype = {
    OPEN_IMAGE_WINDOW : 1,
    OPEN_PANORAMIC_WINDOW : 2,
    prepareArgs : function (args){
        if (args){
            this.title = args.title ? args.title : null;
            this.item = args.item ? args.item : null;
            if (!this.item) throw "'item' no puede ser null";
            if (args.panoramic){
                this.panoramic = args.panoramic;
                return this.OPEN_PANORAMIC_WINDOW;
            }else if (args.photo){
                this.photo = args.photo;
                this.photoCaption = args.photoCaption ? args.photoCaption : null;
                return this.OPEN_IMAGE_WINDOW;
            }else{
                throw "No se ha podido determinar el tipo de ventana a partir de los parametros";
            }
        }else{
            throw "No se han encontrado los parametros";
        }
    },
    openwindow : function (args){
        var res = this.prepareArgs(args);
        switch (res){
            case this.OPEN_IMAGE_WINDOW :
                this.openwindowImage(this.photo,this.photoCaption);
            break;
            case this.OPEN_PANORAMIC_WINDOW :
                this.openwindowPanoramic(this.panoramic);
            break;
            default :
                throw "No se ha podido abrir la ventana";
        }
    },
    showBackground : function (){
       if (GStreetMapMultimediaWindow.background){
           GStreetMapMultimediaWindow.background.setStyle({display:'block'});
       }else{
           var back = new Element('div');
           var dimensions = $(document.body).getDimensions();
           back.setStyle({
               position:'absolute',
               width : dimensions.width+'px',
               height: dimensions.height+'px',
               backgroundColor: '#000',
               top: 0,
               left:0,
               opacity : 0.8
           });
           document.body.appendChild(back);
           Event.observe(back,"click",this.closewindow.bind(this));
           Event.observe(document,"keypress",function (event){
               if(event.keyCode == Event.KEY_ESC) this.closewindow();
           }.bind(this));
           GStreetMapMultimediaWindow.background = back;
       }
    },
    hideBackground : function (){
        if (GStreetMapMultimediaWindow.background){
            GStreetMapMultimediaWindow.background.setStyle({display:'none'});
        }
    },
    closewindow : function (){
        if (GStreetMapMultimediaWindow.win){
            GStreetMapMultimediaWindow.win.close();
            GStreetMapMultimediaWindow.win=null;
        }
        this.hideBackground();
    },
    onClose : function (){
        GStreetMapMultimediaWindow.win=null;
        this.hideBackground();
    },
    openwindowImage : function (){
        this.closewindow();
        this.showBackground();
        var img = new Image();
        img.onload = function () {
            //Se crea el contenido html
            var div = new Element('div');
            div.appendChild(this.thiz);
            //Si hay pie se muestra y se suma el alto
            var hPhotoCaption=0;
            if (this.delegate.photoCaption){
                var p = new Element('p');
                p.innerHTML = this.delegate.photoCaption;
                div.appendChild(p);
                hPhotoCaption = 30;
            }
            //
            GStreetMapMultimediaWindow.win = new Window({
                title: this.delegate.title,
                className:"alphacube",
                width: this.thiz.width+5,
                height: this.thiz.height+8+hPhotoCaption,
                draggable: false,
                minimizable: false,
                maximizable: false,
                resizable: false,
                onClose : this.delegate.onClose.bind(this.delegate)
            });
            GStreetMapMultimediaWindow.win.getContent().update(div);
            GStreetMapMultimediaWindow.win.showCenter();
        }.bind({delegate : this, thiz : img})
        img.src = this.photo;
    },
    openwindowPanoramic : function () {
        this.closewindow();
        this.showBackground();
        var div  = document.createElement('div');
        div.setAttribute('class','streetview-window-popup-panoramic');
        div.setAttribute('className','streetview-window-popup-panoramic');
        this.pan = new GStreetviewPanorama(div ,{latlng : new GLatLng(this.panoramic.lat,this.panoramic.lng), pov : this.panoramic.pov});
        GStreetMapMultimediaWindow.win = new Window({
            title: this.title,
            className:"alphacube",
            width: 640,
            height: 480,
            draggable: false,
            minimizable: false,
            maximizable: false,
            resizable: false,
            onClose : this.onClose.bind(this)
        });
        GStreetMapMultimediaWindow.win.getContent().update(div);
        GStreetMapMultimediaWindow.win.showCenter();
    }
}



