var WindowBuilder = function(){
	var win, winType, MIF;
	
	return{
		init : function(){			
		},

		windowCreate : function(config){
			//build source parameter string
			var URLParam = "";
			var WindowTitle = (config.Title) ? config.Title:'New Window';
			
			if(config.WinType){
				winType=config.WinType;
			}else{
				winType='Default';
			}
			
			for (var i = 0; i < config.Parameters.length; i++) {
				if(i==0){
					URLParam = URLParam + '?'+config.Parameters[i].ParameterName+'='+config.Parameters[i].ParameterValue;
				}
				else{
					URLParam = URLParam + '&'+config.Parameters[i].ParameterName+'='+config.Parameters[i].ParameterValue;
				}	
   			}
   			
   			if(config.TitleParameters){
	   			for (var x = 0; x < config.TitleParameters.length; x++) {
					WindowTitle = WindowTitle + ' ' + config.TitleParameters[x].ParameterValue;
	   			}
   			}
			
			/*if(config.ParameterName && config.ParameterID){
				URLParam = '?'+config.ParameterName+'='+config.ParameterID
			}*/
			
			MIF = new Ext.ux.ManagedIFrame({autoCreate:{id:'Iframe_'+config.WinID,cls:'x-window-body',width:'100%',height:'100%'},loadMask:{msg:''},listeners:{domready:this.onStart}});
			MIF.setSrc(config.URL+URLParam);
			
			win = new Ext.Window({
				title				:		WindowTitle,
				animateTarget		:		(config.Anim_Target) ? config.Anim_Target:null,
				layout				:		(config.Layout) ? config.Layout:'fit',
				id					:		(config.WinID) ? config.WinID:'window',
				width				:		(config.Width) ? config.Width:700,
				height				:		(config.Height) ? config.Height:500,
				closeAction			:		(config.CloseAction) ? config.CloseAction:'close',
				minimizable			: 		(config.Minimizable) ? config.Minimizable:false,
	            maximizable			: 		(config.Maximizable) ? config.Maximizable:false,
				plain				:		(config.Plain) ? config.Plain:true,
				modal				:		(config.Modal) ? config.Modal:true,
				shadow				:		(config.Shadow) ? config.Shadow:false,
				constrain			:		(config.Constrain) ? config.Constrain:true,
				resizable			:		(config.Resizable) ? config.Resizable:false,
				body				:  		MIF
			});
			if(winType == 'Nested'){
				win.setPosition(150,50);
			}else{
				win.setPosition(((screen.width-((config.Width) ? config.Width:700))/2),((screen.height-((config.Height) ? config.Height:500))/4)-25);
			}
			win.show();	
			},
		
		onStart	: function(){
			if(winType == 'Default'){
				//SiteCache.transform(MIF);
			}
			//MIF.setStyle("background-color","#E2F0DD");
		},
		
		windowClose	: function(){
			win.close();
			}
		}
	}();
