	//MyrsolModal Class.. 
	//
	//
	// aOptions.. are controls for this object
	// modOptions. These can be found at http://livepipe.net/control/window
	//
	function MyrsolModal(aOptions,modOptions)
	{
		
		
		var m_thisobject = null;
		var m_modal = null;
		var oValidation = null;
		var bContentLoaded = false;
		var m_Options = aOptions;
		var m_modOptions = modOptions;

		//Options for this Object
		var m_id = aOptions.id || 1;
		var m_initialcontent = aOptions.initialcontent || '<center>Loading Please Wait...</center>';
		var m_cacheenabled = aOptions.cacheenabled || false;
		var m_showcontent = aOptions.showcontent || false;
		var m_showcontentonget = aOptions.showcontentonget || false;
		var m_className = aOptions.className || 'modal';
		var m_viewevent = aOptions.viewevent || '';
		var m_formid = aOptions.formid || '';
		var m_validation_ajaxlink = aOptions.ajaxlink || '';
		var m_reqPhone = modOptions.reqPhone || 1;
		
		//modOptions are passed to the primary modual
		
		MM_Init();

		//-----------------------------------------
		//Access Functions
		//-----------------------------------------

		//MM_GetisContentLoaded
		//////////////////////////////	
		this.MM_GetisContentLoaded = MM_GetisContentLoaded;
		function MM_GetisContentLoaded()
		{
			return bContentLoaded;
			
		} //END MM_GetisContentLoaded

		//Init
		//////////////////////////////	
		this.MM_SetContentIsLoaded = MM_SetContentIsLoaded;
		function MM_SetContentIsLoaded(bvalue)
		{
			bContentLoaded = bvalue;
			
		} //End MM_SetContentIsLoaded

		//Init
		//////////////////////////////	
		this.MM_Init = MM_Init;
		function MM_Init()
		{
			m_modal  = new Control.Modal(false,m_modOptions);

			if (m_showcontent)
				MM_Open(m_initialcontent);
				
		} //End Init()

		//Flush Content
		//////////////////////////////	
		this.MM_Flush = MM_Flush;
		function MM_Flush()
		{
			bContentLoaded = false;				
		} //End MM_Flush()

		//Open
		//////////////////////////////	
		this.MM_Open = MM_Open;
		function MM_Open(szNewContent)
		{
			if (m_modal){
				m_modal.open();
				if (typeof(szNewContent) != 'undefined' && szNewContent != '' && szNewContent)
				{
					m_modal.container.update(szNewContent);
				}
			}
			else
			{
				MM_Init();
				m_modal.open();
			}
		} //End MM_Open()

		//Close
		//////////////////////////////	
		this.MM_Close = MM_Close;
		function MM_Close()
		{
			if (m_modal){
				m_modal.close();
				return true;
			}
			
			return false;
		} //End MM_Close()


		//Clear
		//////////////////////////////	
		this.MM_Clear = MM_Clear;
		function MM_Clear()
		{
			if (m_modal){
				MM_SetContentIsLoaded(false);
				m_modal.container.update('');
				return true;
			}
			
			return false;
		} //End MM_Clear()
		
		
		//Update
		//////////////////////////////	
		this.MM_Update = MM_Update;
		function MM_Update(szNewContent)
		{
			if (m_modal){
				m_modal.container.update(szNewContent);
				return true;
			}
			
			return false;
		} //End MM_Update()

		//MM_Insert
		//////////////////////////////	
		this.MM_Insert = MM_Insert;
		function MM_Insert(szNewContent)
		{
			if (m_modal){
				m_modal.container.insert(szNewContent);
				return true;
			}
			
			return false;
		} //End MM_Insert()

		//Get Modal Callback
		//////////////////////////////	
		this.MM_Get = MM_Get;
		function MM_Get(szurl,aOptions)
		{
			//Lets not load the data over and over if we already have it in memory
			if (!m_cacheenabled){
				if (m_showcontentonget)
					MM_Open(m_initialcontent);				
				
				m_viewevent = aOptions.viewevent || '';
				m_formid = aOptions.formid || '';
				m_validation_ajaxlink = aOptions.ajaxlink || '';
				m_reqPhone = aOptions.reqPhone || 1;

				m_viewevent = m_viewevent.trim();
				m_formid = m_formid.trim();
				m_validation_ajaxlink = m_validation_ajaxlink.trim();
	
				//Call Server
				new Ajax.Request(szurl, {
				  method: 'get',
				  onSuccess: MM_GetCB,
				  onFailure: MM_GetCBError
				  //parameters: Form.serialize(oform)
				});
			}
			else
			{
				MM_Open();
			}
				
		} //End MM_Get(szurl,aOptions)

		//Get Modal Content
		//////////////////////////////	
		this.MM_GetCB = MM_GetCB;
		function MM_GetCB(oReq, oJSN)
		{
			if (oReq){
				var oData = oReq.responseText;
				if (oData){
					MM_SetContentIsLoaded(true);
					MM_Open(oData);
					//Dynamic Validation 
					if (m_formid != '' && m_viewevent != '')
						oValidation = new MyrsolFrontendValidation({"view":m_viewevent,"formid":m_formid,"ajaxlink":m_validation_ajaxlink,"reqPhone":m_reqPhone});
				}
				//Refresh Dialog over time
				setTimeout(function(){m_modal.position();},50);
			}
		} //End MM_GetCB(oReq, oJSN)
		
		//Get CallBack Error
		//////////////////////////////	
		this.MM_GetCBError = MM_GetCBError;
		function MM_GetCBError(obj)
		{
			alert('something is wrong');
		}


		//Validation
		//////////////////////////////	
		this.MM_Validation = MM_Validation;
		function MM_Validation()
		{
			if (oValidation)
				return oValidation.MV_Validate();
		}

		//Validation
		//////////////////////////////	
		this.MM_CustomValidation = MM_CustomValidation;
		function MM_CustomValidation()
		{
			if (oValidation)
				return oValidation.MV_CustomValidation();
		}

		

	} //End MM_Validation
