	// add the global variables we will use
	var mbolCSDataChanged = false;
	var mstrCSDataChangedMSG = 'You are about to leave this item. If you continue, any data you have changed will be lost. Are you sure you want to do this?';
    var mbolDoneLoading = false;
    var strDebugString = '';
    
    function FCKeditor_OnComplete(editorInstance){

        try{

            editorInstance.Events.AttachEvent('OnSelectionChange', fckChange );

        }catch(e){}
    	
        return true;

    }

    
    function fckChange(editorInstance){
            
       try{
    
            CSDataChanged();
     
        }catch(e){}
    	
        return true;
         
    }
    
    function onFocus(strControlID){

        try{
     
            if(!mbolDoneLoading){return true;}
            
             //alert(mMessageWasSetToStatusBar);
            
            if(!mMessageWasSetToStatusBar){
            
                SetStatusBarText(strControlID);
            
            }
            
            mMessageWasSetToStatusBar = false;
            
        }catch(e){alert(e);}
    	
        return true;
        
    }                 
            
    function onKeyUp(e){
    
        try{
    
            if(!mbolDoneLoading){return true;}
     
        }catch(e){}
    	
        return true;
        
    }  
    
    function onKeyDown(e){
    
        try{
        
            if(!mbolDoneLoading){return true;}
     
        }catch(e){}
    	
        return true;
         
    }
    
    function onKeyPress(e){
            
        try{
        
            
        
            if(!mbolDoneLoading){return true;}
            
            var kC  = (window.event) ?    // MSIE or Firefox?
                    event.keyCode : e.keyCode;
            var Esc = (window.event) ?   
                27 : e.DOM_VK_ESCAPE // MSIE : Firefox
            if(kC!=Esc && kC!=mArrowUpKey && kC!=mArrowDownKey) {
            
                CSDataChanged();
            
            }
     
        }catch(e){}
    	
        return true;
         
    }
	
    function onChange(e){
        
        try{
        
            if(!mbolDoneLoading){return true;}
            
            CSDataChanged(); 
     
        }catch(e){}
    	
        return true;
         
    }


	// add the functions setting and checking data changed state
	function CSDataChanged(){
	
	    try{

                mbolCSDataChanged = true;  
                SetSaveNeededImage(); 
    	            
        }catch(e){}
    	
        return true;
    }
	
	function ClearCSDataChanged(){
	
	    try{
    	
    	    //alert('ClearCSDataChanged');
	        mbolCSDataChanged = false;
    	            
        }catch(e){}
    	
        return true;
    }
	
	function CSCheckDataChanged(){
	
	    try{
    	
            if (mbolCSDataChanged){ 
            
                if (window.addEventListener){ 
                
                    return mstrCSDataChangedMSG; 
                    
                 }else{ 
                 
                    window.event.returnValue= mstrCSDataChangedMSG;
                    
                 }	
             }
    	            
        }catch(e){}                
	}
	
	
	// add the datachanged handler
	try{
	
	    window.onbeforeunload =  CSCheckDataChanged;
	    
    }catch(e){
        
			     alert(e.message);
			     
    }  
	
	
	// Go through all the input types and attach a function
	// that will modify the global datachanged variable which
	// gets fired on beforeunload.
	function CSSetupDataChangedHandler(){
	
		// Attach to the change check JS to all INPUT elements...
		var elements = window.document.getElementsByTagName('INPUT');
		var elem;
		var bolAddChangeEvent = false

		for (i=0; i < elements.length; i++){ 	
		
		  bolAddChangeEvent = false;
	 	
            if (elements[i].getAttributeNode('ASCheckChangesMade') != null){

                if (elements[i].getAttributeNode('ASCheckChangesMade').value == 'true'){
			
				    bolAddChangeEvent = true;
				 
                }
				
			}
				
            if (bolAddChangeEvent){
			
                if(window.addEventListener){
	
					window.addEventListener('onchange', onChange, true);	
                    window.addEventListener('keypress', onKeyPress, true);	

				}else{
				
					elements[i].attachEvent("onchange",onChange);
					elements[i].attachEvent('onkeypress', onKeyPress);	
		
				}
			}	
			
		}
	
		// Attach to the change check JS to all SELECT elements...
        var elements = window.document.getElementsByTagName('SELECT');
		
		for (i=0; i <  elements.length; i++){ 

            if (elements[i].getAttributeNode('ASCheckChangesMade') != null){
		  
			    if (elements[i].getAttributeNode('ASCheckChangesMade').value == 'true'){
				
				    if(window.addEventListener){	
				
                        window.addEventListener('change', onChange, true);	
				  
                    }else{
				
                        elements[i].attachEvent("onchange",onChange);
				  
                    }
                }
            }		
		}
	
		// Attach to the change check JS to all TEXTAREA elements...
		var elements = window.document.getElementsByTagName('TEXTAREA');
		
        for (i=0; i <  elements.length; i++){ 
		
		    if (elements[i].getAttributeNode('ASCheckChangesMade') != null){
		    
			    if (elements[i].getAttributeNode('ASCheckChangesMade').value == 'true'){
			    
				    if(window.addEventListener){	
				    
				        window.addEventListener('change', onChange, true);	
				        
				    }else{
				    
				        elements[i].attachEvent("onchange",onChange);
                    }
                }
		    }
		}
		
		mbolDoneLoading =  true;
	}
	

	// add handlers for the onload event
	if(window.addEventListener) 
	
	    window.addEventListener('load', CSSetupDataChangedHandler, true); // gecko, safari, konqueror and standard
	
	else if(document.addEventListener) 
	
	    document.addEventListener('load', CSSetupDataChangedHandler, true); // opera 7
	    
	else if(window.attachEvent) { // win/ie
		
		window.attachEvent('onload', CSSetupDataChangedHandler);
		
	} else { // mac/ie5
	
		if(typeof window.onload == 'function') {
		
			var existing = onload;
			window.onload = function() {
				existing();
				CSSetupDataChangedHandler();	
	
	        }
	        
		} else {
		
			window.onload = function() {
			
				CSSetupDataChangedHandler();
	
			}
		}
	}
	
	// add handlers for the onbeforeunload event
	if(window.addEventListener) 
	
	    window.addEventListener('onbeforeunload ', CSCheckDataChanged, true); // gecko, safari, konqueror and standard
	    
	else if(document.addEventListener) 
	
	    document.addEventListener('onbeforeunload ', CSCheckDataChanged, true); // opera 7
	    
	else if(window.attachEvent) { // win/ie
	
		window.attachEvent('onbeforeunload', CSCheckDataChanged);
		
	} else { // mac/ie5
	
		if(typeof window.onbeforeunload == 'function') {
		
			var existing = onbeforeunload;
			window.onbeforeunload = function() {
				existing();
				CSCheckDataChanged();
			}
			
		} else {
		
			window.onbeforeunload = function() {
				CSCheckDataChanged();
				
			}
		}
	}
	
	function ConfirmCancel(strMessage){
    
        try{
	
	        var confirmed = true;
	
	        if (mbolCSDataChanged){
	        
	            var confirmed = confirm(strMessage,''); 
    	        
	            if(confirmed){
	                ClearCSDataChanged();
	            }
	            
	        }
	        
	        return confirmed;
                       
        }catch(e){}
    }
    
    
	function ConfirmAction(strMessage){
	    
        try{
    	
    	        var confirmed = confirm(strMessage,''); 
    	        
    	        if(confirmed){
    	        
    	            ClearCSDataChanged();
    	            
    	        }
    	        
    	        return confirmed;
                           
            }catch(e){}
		    
        }

    function SetSaveNeededImage(){
    	
    	    try{
        	
    	        if (mbolCSDataChanged){
    	        
                    document.getElementById('ctl00_imgSaveNeeded').src="../images/NeedToSave.gif";
    	   
    	            var element = window.document.getElementById('ctl00_cmdCancel');
    	            
    	            if (element){
            
                        document.getElementById('ctl00_cmdCancel').value=mCancelButtonText;
                        document.getElementById('ctl00_cmdCancel').title=mCancelButtonToolTipText;
                        document.getElementById('ctl00_cmdCancel').accesskey=mCancelButtonShortcutKey;
                    
                    }
                    
                    var element = window.document.getElementById('ctl00_mnuFileCancel');
                    
                    if (element){
                    
                        document.getElementById('ctl00_mnuFileCancel').innerText=mCancelButtonText;
                        document.getElementById('ctl00_mnuFileCancel').title=mCancelButtonToolTipText;
                        document.getElementById('ctl00_mnuFileCancel').accesskey=mCancelButtonShortcutKey;
                    
                    }
                
                }else{
                
                    document.getElementById('ctl00_imgSaveNeeded').src="../images/spacer.gif";
                
                }
            
            }catch(e){}
        	
			 return true;
			 
	       }
	       
    function SetStatusBarText(strControlID){
    	
    	    try{
    	        
            	if(document.getElementById('ctl00_divStatusText')){
            	   
    	            document.getElementById('ctl00_divStatusText').innerHTML = document.getElementById(strControlID).title;
    	        
    	        }
                                
            }catch(e){}
        	
	       }
	       
    function WebCalendar_ValueChanged(oDropDown, newValue, oEvent){
            
        try{
                
               if(!mbolDoneLoading){return true;}
                    
                    CSDataChanged();
             
                }catch(e){}
            	
                return true;
             
        }
	         