
var FrameManager =
{   
	registered: [],
    resizeFrame: function(frameId, height)
    {
		var iframes = dojo.query('#'+frameId);
	    if (iframes.length <= 0) return;
		var currentHeight = dojo.style(iframes[0], 'height');
		if(currentHeight == height){
			return;
		}else{
			dojo.style(iframes[0], 'height', '' + height + 'px');
		}
    },
    
    resizeFrameWidth: function(frameId, width)
    {
		var iframes = dojo.query('#'+frameId);
	    if (iframes.length <= 0) return;
		var currentSize = dojo.style(iframes[0], 'width');
		if(currentSize == width){
			return;
		}else{
			dojo.style(iframes[0], 'width', '' + width + 'px');
		}
    },
    
    gup: function( name, url )
    { 
      name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
      var regexS = "[\\?&]"+name+"=([^&#]*)";
      var regex = new RegExp( regexS );
      var results = regex.exec( url );
      if( results == null )
        return '';
      else
        return results[1];
    },
    
    refreshWindow: function(query)
    {
    	var u = new dojo._Url(query);
        //var request = dojo.queryToObject(u.query);
        var frameId = this.gup('frameId', '?'+u.query);
        var height = this.gup('height', '?'+u.query);
        var width = this.gup('width', '?' + u.query);
        var bgColor = this.gup('bgColor', '?' + u.query);
        var bgImage = this.gup('bgImage', '?' + u.query);
        if (frameId)
        {
        	if(height && height > dojo.style(dojo.body(), 'height')){
            	this.resizeFrame(frameId, height);
        	}
        	if(width){
            	this.resizeFrameWidth(frameId, width);
        	}
        	if(bgColor){
            	dojo.body().style.backgroundColor = '#'+bgColor;
        	}
        	if(bgImage){
            	dojo.body().style.backgroundImage = 'url('+bgImage+')';
        	}
        }
    },
    
    wasRegistered: function(id)
    {
    	for(var i=0; i<this.registered.length; i++){
            if(this.registered[i]==id){
                return true;
            }
        }
        return false;
    },

    registerFrame : function(frame)
    {	
		if(!this.wasRegistered(frame.id)){
	        var query = 'frameId=' + frame.id;
	        this.registered.push(frame.id);
	        if(frame.src.indexOf(query)<0){
		        if(frame.src.indexOf('?')>-1){
		            frame.contentWindow.location = frame.src + '&' + query;
		        }else{
		            frame.contentWindow.location = frame.src + '?' + query;
		        }
	        }
		}
    }
};


