/**
* Page Manager JS
* 
* Code is ordered by:
*
* "Core Functions" 		Drag & Drop & etc
* "Module changing" 	For module options
*
*/

PAGE_AJAX_URL = '/common/ajax/back/modules/page/ajax.php';


/*************************************
 - Pages Dropdown
*************************************/

// populate dropdown
function fncPageManager_PagesDropdown(element, selPageID){

  	new Ajax.Request(PAGE_AJAX_URL, {
	  	parameters: { action  : 'PagesDropdown' },
	  	evalScripts : true,
	  	onSuccess : function(transport){
	  		var arrMenus = transport.responseJSON;
	  		$(element).options.length = 1;		  	
		  	
	  		arrMenus.each(function(eachmenu){
		  		
		  		// label
		  		optGroup = document.createElement('optgroup');
		  		optGroup.label = eachmenu.menu_name;
		  		$(element).appendChild(optGroup);
		  		
		  		// pages
		  		if(eachmenu.arrPages && isArray(eachmenu.arrPages)) {
		  			menuSubPages = eachmenu.arrPages;
			  		menuSubPages.each(function(eachpage){
			  			// mark selected
			  			if(selPageID == eachpage.page_id) { 
			  				$(element).options[$(element).options.length] = new Option(eachpage.page_locale_name, eachpage.page_id, 1, 1);
			  			} else {
			  				$(element).options[$(element).options.length] = new Option(eachpage.page_locale_name, eachpage.page_id);
			  			}
			  			
						// subpages
						if(eachpage.arrPages && isArray(eachpage.arrPages)) {
				  			pagesDropdown(element, eachpage.arrPages,eachpage.page_locale_name,selPageID);
				  		}
			  		});
		  		}
	  		
		  		
		  	});
	  	}, 
	  	onFailure: function(transport){
			Error.alert(transport.responseText);
		}
	});
	
}

// go to page
function fncPageManager_PagesDropdown_OnChange(elem, nameindex){
	window.location = 'index.php?module='+nameindex+'&page_id='+ elem.getValue();
	return false;
}

// get pages 
function pagesDropdown(element, arrPages, prefix, selectedItem) {
	
	if(!prefix) {
		prefix = "";
	}
	arrPages.each(function(eachsub){
		// mark selected
		if(selectedItem == eachsub.page_id) { 
			$(element).options[$(element).options.length] = new Option(prefix + " > " + eachsub.page_locale_name, eachsub.page_id, 1, 1);
		} else {
			$(element).options[$(element).options.length] = new Option(prefix + " > " + eachsub.page_locale_name, eachsub.page_id);
		}			
			
		if(eachsub.arrPages && isArray(eachsub.arrPages)) {
			pagesDropdown(element, eachsub.arrPages, prefix + " > " +eachsub.page_locale_name, selectedItem);
		}
	
	});
	return true;

}



/*************************************
 - Pages List
*************************************/

// load list of pages
function fncPageManager_Pages_Load(){
	$('pageWindow').update('<center><br><br><br><br><br>Loading<br><img src="/common/templates/default/images/icons_modules/loading.gif" /><br><br><br><br><br></center>');
	
	new Ajax.Updater('pageWindow', PAGE_AJAX_URL, {
		parameters: { 
			action        : 'Pages_Load',
			menu_id       : $('menus').getValue(),
			language_code : $('languages').getValue()
		},
		evalScripts : true,
						  		
		onComplete: function(transport){
			// make page tree sortable
			Sortable.create('PageTree', {tree:true, dropOnEmpty: true, handle : 'Draggable', hoverclass: 'sortable_hover', onUpdate: PageTree_UpdateSortOrder });
		},
	  
		onFailure: function(transport){
			Error.alert(transport.responseText);
		}
	});
}

// Sort order of pages 
function PageTree_UpdateSortOrder(){
	var Parameters = "?action=PageTree_UpdateSortOrder&menu_id=" + $F('menus') + "&" + Sortable.serialize('PageTree');
	new Ajax.Request(PAGE_AJAX_URL, { 
		parameters: Parameters,
		onFailure: function(transport){
			Error.alert(transport.responseText); 
		}
	});
		

	/* LEGACY 
	var Parameters = "?&action=PageTree_UpdateSortOrder&menu_id=" + $('menus').getValue() + "&" + Sortable.serialize('PageTree');
	$('pageWindow').update('<center><br><br><br><br><br>Loading<br><img src="/common/templates/default/images/icons_modules/loading.gif" /><br><br><br><br><br></center>');
	new Ajax.Request(PAGE_AJAX_URL, {
		  parameters: Parameters,
		  evalScripts : true,
		  
		  onSuccess: function(transport){
		  	  //fncPageManager_Pages_Load();
		  },
		 
		  onFailure: function(transport){
			Error.alert(transport.responseText);
		  }
	});
	*/
}

// add page
function fncPageManager_Page_Add(){
	$('actionWindow').show().update('<center><br><br>Loading...<img src="/common/templates/default/images/icons_modules/loading.gif" /><br><br></center>');
	
	new Ajax.Updater({success : 'actionWindow', failure :  null}, PAGE_AJAX_URL, {
	  parameters: { 
	  	action : 'Page_Add' 
	  },
	  evalScripts : true,
	  				  		
	  onSuccess: function(transport){
			
	  },
	  
	 onFailure: function(transport){
 			Error.alert(transport.responseText);
	  }
	});
}

// old - not in use
function fncPageManager_Page_Edit(){
	$('actionWindow').show().update('<center><br><br>Loading...<img src="/common/templates/default/images/icons_modules/loading.gif" /><br><br></center>');
	
	new Ajax.Updater({success : 'actionWindow', failure : null}, PAGE_AJAX_URL, {
	  parameters: { 
	  	action  : 'Page_Edit',
	  	page_id : $('page_id').getValue()
	  },
	  onFailure: function(transport){
 			Error.alert(transport.responseText);
	  }
	});
}

// save page from add
function fncPageManager_Page_QuickSave(){
	var Parameters   = "action=Page_QuickSave&" + Form.serialize($('Page'));
	var clsValidator = new Validation ($('Page'));
	
	if(clsValidator.validate()){
		
  	new Ajax.Request(PAGE_AJAX_URL, {
		  parameters  : Parameters,
		  evalScripts : true,
		  				  		
		  onComplete: function(transport){
		  	var arrPage = transport.responseJSON;
		  	
		  	if(arrPage.is_clone) {
		  		Message.alert("Page was created successfully, you can find it under the copied page.");
		  	} else if(!arrPage.is_clone) {
		  		Message.alert("Page was created successfully, you can find it at the bottom of the list.");
		  	}
		  	new Effect.Fade('actionWindow');
		  	fncPageManager_Pages_Load();
			
		  },
		  
		  onFailure: function(transport){
		  	Error.alert(transport.responseText);
		  }
		});
		
	}
}

// old i think save page on edit 
function fncPageManager_Page_Save(){
	var Parameters   = "action=Page_Save&" + Form.serialize($('Page'));
	var clsValidator = new Validation ($('Page'));
	
	if(clsValidator.validate()){
		
  		new Ajax.Request(PAGE_AJAX_URL, {
			  parameters  : Parameters,
			  evalScripts : true,
			  				  		
			  onComplete: function(transport){
				  	new Effect.Fade('actionWindow');
				  	fncPageManager_Pages_Load();
			  },
			  
			  onFailure: function(transport){
			  	Error.alert(transport.responseText);
			  }
		});
		
	}
}


// delete page
function DeletePage(page_id){
	if(confirm("Are you sure you want to delete this page?")) {
		new Ajax.Request(PAGE_AJAX_URL, {
		  parameters: {
		  	action        : 'DeletePage',
		  	page_id       : page_id
		  },
		  				  		
		  onSuccess: function(transport){
			fncPageManager_Pages_Load();
		  	Message.alert("Page was deleted successfully");
		  },
		  			  
		  onFailure: function(transport){
		  	Error.alert(transport.responseText);
		  }
		});
	}
			
}


function SavePageInfo(){
	var valid = new Validation('edit_pageinfo');
	if(valid.validate()){
		
		// do locale info
		new Ajax.Request(PAGE_AJAX_URL, {
		  parameters: {
			  	action                       : 'SavePageLocale',
			  	page_id                      : $('page_id').getValue(),
			  	page_locale_name             : $('page_locale_name').getValue(),
			  	page_locale_title            : $('page_locale_title').getValue(),
			  	page_locale_nameindex        : $('page_locale_nameindex').getValue(),
			  	page_locale_meta_author      : $('page_locale_meta_author').getValue(),
			  	page_locale_meta_description : $('page_locale_meta_description').getValue(),
			  	page_locale_meta_keywords    : $('page_locale_meta_keywords').getValue(),
			  	language_code                : $('language_code').getValue()
		  },
		  				  		
		  onSuccess: function(transport){
			 	$('page_locale_nameindex').value = $F('page_locale_nameindex').toLowerCase();
			 
			  	// do details
			  	var Parameters = $H({ 
					action                      	: 'SavePageDetails',
					page_id                     	: $('page_id').getValue(),
					page_is_homepage            	: $('page_is_homepage').getValue(),
					page_is_splash              	: $('page_is_splash').getValue(),
					page_status                	 	: $('page_status').getValue(),
					page_menu_rendering         	: $('page_menu_rendering').getValue(),
					page_visibility_always			: $('page_visibility_always').getValue(),
					page_visibility_not_loggedin 	: $('page_visibility_not_loggedin').getValue(),
					page_visibility_loggedin		: $('page_visibility_loggedin').getValue(),
					page_menu_id                	: $('page_menu_id').getValue(),
					page_thumbnail_image       		: $('page_thumbnail_image').getValue(),
					page_redirect_is_new_window 	: $('page_redirect_is_new_window').getValue(),
					page_redirect_full_url      	: $('page_redirect_full_url').getValue(),
					page_is_plain               	: $('page_is_plain').getValue(),
					page_description            	: $('page_description').getValue()
					
				});
				
				//convert to parameters from hash to querystring
				Parameters = Parameters.toQueryString();
				
				//add people_types to querystring
				var people_types = Form.getInputs($('edit_pageinfo'), 'checkbox', 'page_people_types[]');
				people_types.each(function(people_type){
					if(people_type.checked)
						Parameters += '&page_people_types[]=' + people_type.value;
				});
				//
				
				
				new Ajax.Request(PAGE_AJAX_URL, {
				 parameters:  Parameters,
				  				  		
				  onSuccess: function(transport){
				  		Message.alert("Page was saved successfully");
				  		
				  		var page_id = $('page_id').getValue();
						
						
						
						fncPageManager_PagesDropdown('pages_content_dropdown_id',page_id);
						fncPageManager_PagesDropdown('pages_info_dropdown_id',page_id);
						
						new Effect.Highlight($('edit_pageinfo'));
				  		
				  },
				  			  
				  onFailure: function(transport){
				  		Error.alert(transport.responseText);
				  }
				});
		  	
		  	
		  },
		  			  
		  onFailure: function(transport){
		  		Error.alert(transport.responseText);
		  }
		});
	} 
}

/* Real time showing of the page name */
function fncPageManager_ShowSamplePageURL() {
	if($F('page_locale_nameindex')) {
		$('layerSampleURLFull').show();
		var page_name = $F('page_locale_nameindex').toLowerCase();
		if(Validation.get('validate-nameindex').test(page_name)) {
			$('layerBadPageNameindex').hide();
			$('layerSampleURL').update(page_name).setStyle({ color:'#177F1C' });
		} else {
			$('layerBadPageNameindex').show();
			$('layerSampleURLFull').show();
			$('layerSampleURL').update(page_name).setStyle({ color:'#ff0000'}); 
			
		}
	}
}



/* Get Page Locale */
function GetPageLocale(){
	new Ajax.Request(PAGE_AJAX_URL, {
	  parameters: {
	  	action        : 'GetPageLocale',
	  	page_id       : $('page_id').getValue(),
	  	language_code : $('language_code').getValue()
	  },
	  				  		
	  onSuccess: function(transport){
	  	page_locale = transport.responseJSON;
	  	
	  	try {
		  	$('page_locale_name').value             = page_locale.page_locale_name
		  	$('page_locale_title').value            = page_locale.page_locale_title
		  	$('page_locale_nameindex').value        = page_locale.page_locale_nameindex
		  	$('page_locale_meta_author').value      = page_locale.page_locale_meta_author
		  	$('page_locale_meta_description').value = page_locale.page_locale_meta_description
		  	$('page_locale_meta_keywords').value    = page_locale.page_locale_meta_keywords
	  	} catch(ex) {
	  		$('page_locale_name').value             = "";
		  	$('page_locale_title').value            = "";
		  	$('page_locale_nameindex').value        = "";
		  	$('page_locale_meta_author').value      = "";
		  	$('page_locale_meta_description').value = "";
		  	$('page_locale_meta_keywords').value    = "";
	  	}
	  },
	  			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}




/********************************************
					Menu  
*********************************************/

// add menu 
function fncPageManager_Menu_Add(){
	$('actionWindow').update('<center><br><br>Loading...<img src="/common/templates/default/images/icons_modules/loading.gif" /><br><br></center>');
	
	new Ajax.Updater({success : 'actionWindow', failure :  null}, PAGE_AJAX_URL, {
		  parameters: { 
		  		action : 'Menu_Add' 
		  },
		  onComplete: function(transport){
				new Effect.Appear('actionWindow');
		  },
		  onFailure: function(transport){
	 			Error.alert(transport.responseText);
		  }
	});
}
  
// edit menu
function fncPageManager_Menu_Edit(){
	$('actionWindow').update('<center><br><br>Loading...<img src="/common/templates/default/images/icons_modules/loading.gif" /><br><br></center>');
	
	new Ajax.Updater({success : 'actionWindow', failure : null}, PAGE_AJAX_URL, {
		  parameters: { 
		  	action  : 'Menu_Edit',
		  	menu_id : $('menus').getValue()
		  },
		  onComplete: function(transport){
				new Effect.Appear('actionWindow');
		  },
		  onFailure: function(transport){
				Error.alert(transport.responseText);
		  }
	});
}

// save menu
function fncPageManager_Menu_Save(){
	var Parameters   = "action=Menu_Save&" + Form.serialize($('Menu'));
	var clsValidator = new Validation ($('Menu'));
	
	if(clsValidator.validate()){
		
	  	new Ajax.Request(PAGE_AJAX_URL, {
			  parameters  : Parameters,
			  evalScripts : true,
			  				  		
			  onSuccess: function(transport){
					Message.alert("Menu saved");
			  		var arrMenu = transport.responseJSON;
			  		fncCommon_Update_Select_Option($('menus'), arrMenu.menu_id, arrMenu.menu_name);
					new Effect.Fade('actionWindow');
			  },
			  
			   onFailure: function(transport){
		 			Error.alert(transport.responseText);
			  }
		});
		
	}
}

// delete menu
function fncPageManager_Menu_Delete(){
	 if(confirm("Are you sure you want to delete this menu?")) {
		new Ajax.Request(PAGE_AJAX_URL, {
			  parameters: { 
			  	action  : 'Menu_Delete',
			  	menu_id : $('menus').getValue()
			  },
			  evalScripts : true,
			  
			  onSuccess: function(transport){
			  		//will delete from list
			  		fncCommon_Alter_Select($('menus'), $('menus').getValue()); 
			  		
			  		// reload pages
					fncPageManager_Pages_Load(0);
			  	
					Message.alert("Menu removed successfully");
					
			  		new Effect.Fade($('actionWindow'));
			  },
			  
			  onFailure: function(transport){
		 			Error.alert(transport.responseText);
			  }
		});
  			
	 }
}



/********************************************
				Do Stuff  
*********************************************/

var refresh_function = "$('items').update('');";

/**
* Refreshing functions
* - These just get some HTML
*/
function PageTree(){
	new Ajax.Request(PAGE_AJAX_URL, {
	  parameters: {
		action        : 'PageTree',
		menu_id       : $('menus').getValue(),
		language_code : $('languages').getValue()
	  },
	  evalScripts : true,
							
	  onSuccess: function(transport){
			$('main').update(transport.responseText);
			Sortable.create('menu', {tree:true, dropOnEmpty: true, onUpdate: SaveTree });
			
			// dunno what this is
			//$('bottomBar').innerHTML = '<input type="button" value="Cancel" onclick="window.location = \'?\';">&nbsp;';
	  },
	  
	  onFailure: function(transport){
			Error.alert(transport.responseText);
	  }
	});
}

//old
function onchange_categories(){
	var category = $('categories').getValue();
	
	new Ajax.Request(PAGE_AJAX_URL, {
	  parameters: {
	  	action   : 'GetFilteredModules',
	  	category : category
	  },
	  				  		
	  onSuccess: function(transport, modules){
			$('modules').options.length = 1;//cut list down
			modules.each(function(module){
				$('modules').options[$('modules').options.length] = new Option(module.component_name, module.component_id_name, false);
			});
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}



// Display Component Options 
function onchange_module(){
	
	$('selection').show().innerHTML = '<center><br><br>Loading...<img src="/common/templates/default/images/icons_modules/loading.gif" /><br><br></center>';

	new Ajax.Updater('selection', PAGE_AJAX_URL, {
	  parameters: {
	  	action    : 'GetModules',
	  	subaction : $('modules').getValue()
	  },
	  evalScripts : true,
	  				  		
	  onSuccess: function(transport){
	  	$('selection').show();
	  },
	  onComplete: function(){
		  	// initiate tooltips
			initTooltips();
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}

/*
Deprecated.
Yaz Sep 09
*/
function onchange_menu_types(elm){
	var menu_type_id = $(elm).getValue();

	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
	  	action : 'GetMenuBlocks',
	  	menu_type_id : menu_type_id
	  },
	  				  		
	  onComplete: function(transport){                //last select list (this function)
			refresh_function = "onchange_menu_types('menu_type_id');";
	  	reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}


//LINK FUNCTION 

//call from modules bar drag -> page row (refreshes list of items)
function refreshItems(element){
	eval(refresh_function); //basically the last function that got items
}

//CORE FUNCTIONS


function GetChunks(){
	new Ajax.Updater('chunks', PAGE_AJAX_URL, {
	  parameters: { 
	  	action : 'GetChunks'
	  },
	  evalScripts: true,

	  onComplete: function(transport){
		Position.includeScrollOffsets = true;
		Sortable.create('chunks', {tag: 'div', dropOnEmpty:true, ghosting: true, hoverclass: "dragHover", containment: ["chunks","row"], constraint:false, onUpdate: GetChunks })
	  }, 
	  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}


function GetRow(){
	//lazy loader code
	$('row').innerHTML = '<center><br><br><br><br><br><br><br><br>Loading<br><img src="/common/templates/default/images/icons_modules/loading.gif" /><br><br><br><br><br><br><br><br><br></center>';
	
	new Ajax.Updater('row', PAGE_AJAX_URL, {
		parameters: { 
			action  : "GetRow",
			page_id : $('page_id').getValue()
		},
		evalScripts : true,
		onComplete: function(transport){
			
			reserializePage();
		},
			  
		onFailure: function(transport){
			Error.alert(transport.responseText);
		}
	});
	
}

//if row chunk is dragged to page row
function SaveChunks(element){
	refreshItems();
	
	var params = "?&action=SaveChunks&page_id=" + $('page_id').getValue() + '&' + Sortable.serialize('row');
	
	new Ajax.Request(PAGE_AJAX_URL, {
	  parameters: params,
	  				  		
	  onSuccess: function(transport){
		 new Effect.Highlight('row');
	  	GetRow();
	  },
	  			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
	
	GetChunks();
}

//create a huge post
function SaveAll(element){
	var blocks = $$('.cellBlock');
	
	//build URL post query...
	var params = "?action=SaveAll&page_id=" + $('page_id').getValue() + "&";
	blocks.each(function(block){
		params += Sortable.serialize(block) + "&";
	});
	
	//send change, and update row (changes new blocks to IDs...)
	new Ajax.Request(PAGE_AJAX_URL, {
	  parameters: params,
	  				  		
	  onSuccess: function(transport){
	  	GetRow();
	  },
	  			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}


function reserializePage(){
	var containment = $$('.cellBlock');
	containment[containment.length] = $('items');
	
	containment.without($('items')).each(function(sortable_list){
		Sortable.create(sortable_list, {tag:'div', hoverclass: 'dragHover', handle: "dragHandle", dropOnEmpty:true, containment: containment, only:'item', scroll: window, constraint:false, onUpdate: SaveAll});
	});
	  Sortable.create($('items')   , {tag:'div', hoverclass: "dragHover", handle: "dragHandle", dropOnEmpty:true, containment: containment, only:'item', scroll: window, constraint:false, onUpdate: refreshItems});
	
	Sortable.create('chunks'  , {tag:'div', hoverclass: "dragHover", handle: "dragHandle", overlap: "horizontal", scroll: window, dropOnEmpty:true, containment: ["chunks","row"], constraint:false, onUpdate: GetChunks })
	Sortable.create('row'  , {tag:'div', hoverclass: "dragHover", handle: "dragHandle", overlap: "horizontal", scroll: window, dropOnEmpty:true, containment: ["chunks","row"], constraint:false, onUpdate: SaveChunks })
}

//VALIDATION FUNCTIONS (tabbing)
var CSSPageRowComponentID = undefined;

function EditCSS(page_row_component_id){
	CSSPageRowComponentID = page_row_component_id;
	CSSPageRowID          = undefined;
	CSSCell                  = undefined;
  
	new Ajax.Request(PAGE_AJAX_URL, {
	  parameters: {
	  	action                : 'GetBlockCSS',
	  	page_row_component_id : page_row_component_id
	  },
	  
	  onSuccess: function(transport){
	  	// old (tinymce 1.3?)
		//tinyMCE.setContent('<p style="'+ transport.responseText +'"></p>');
	  	//double &nbsp;&nbsp; prevents ie from making it null which will mess up the select all hack
	  	//hack: hack forces IE to recycle
	  	//tinyMCE.setContent('<p style="'+ transport.responseText + '; hack: hack; ">&nbsp;&nbsp;</p>');
	  	//tinyMCE.execInstanceCommand('mce_editor_0', 'mceSelectAll', true);
	  	//tinyMCE.execInstanceCommand('mce_editor_0', 'mceStyleProps', true);
		
		// new tiny mce
		tinyMCE.execInstanceCommand('hackTinyMCE', 'mceSetContent', false, 
			'<p style="'+ transport.responseText + '; hack: hack; ">&nbsp;&nbsp;</p>'
		);	
	  	tinyMCE.execInstanceCommand('hackTinyMCE','selectall');
		tinyMCE.execInstanceCommand('hackTinyMCE', 'mceStyleProps', true);

		
	  },
	  			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
	
}


function SaveBlockCSS(csstext){
	
	new Ajax.Request(PAGE_AJAX_URL, {
	  parameters: {
	  	action                   : 'SaveBlockCSS',
	  	page_row_component_id : CSSPageRowComponentID,
	  	csstext                  : csstext
	  },
	  				  		
	  onSuccess: function(transport){
	  },
	  			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
	
}


var CSSPageRowID = undefined;
var CSSCell         = undefined;

function EditColumnCSS(page_row_id, cell){
	CSSPageRowComponentID = undefined;
  CSSPageRowID = page_row_id;
  CSSCell         = cell;
  
	new Ajax.Request(PAGE_AJAX_URL, {
	  parameters: {
	  	action                       : 'GetColumnCSS',
	  	page_row_id               : page_row_id,
	  	page_row_component_column : cell
	  },
	  				  		
	  onSuccess: function(transport){
	  	//tinyMCE.setContent('<p style="'+ transport.responseText + '; hack: hack; ">&nbsp;&nbsp;</p>');
	  	//tinyMCE.execInstanceCommand('mce_editor_0', 'mceSelectAll', true);
	  	//tinyMCE.execInstanceCommand('mce_editor_0', 'mceStyleProps', true);
	  	
	  	
		tinyMCE.execInstanceCommand('hackTinyMCE', 'mceSetContent', false, 
			'<p style="'+ transport.responseText + '; hack: hack; ">&nbsp;&nbsp;</p>'
		);	
		
		
		tinyMCE.execInstanceCommand('hackTinyMCE','selectall');

		//tinyMCE.execInstanceCommand('hackTinyMCE', 'mceSelectAll', true);
		tinyMCE.execInstanceCommand('hackTinyMCE', 'mceStyleProps', true);

	  	
	  },
	  			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
	
}

function SaveColumnCSS(csstext){
	
		new Ajax.Request(PAGE_AJAX_URL, {
	  parameters: {
	  	action                       : 'SaveColumnCSS',
	  	page_row_id               : CSSPageRowID,
	  	page_row_component_column : CSSCell,
	  	csstext                      : csstext
	  },
	  				  		
	  onSuccess: function(transport){
	  },
	  			  
	  onFailure: function(transport){
			Error.alert(transport.responseText);
	  }
	});
	
}



function ImportPage(){
	
	if(Validation.validate('source_page_id')){
		
		var confirming = confirm('This will delete everything on this page and import. Continue?');
		if(confirming){
			//send page id to copy from
			new Ajax.Request(PAGE_AJAX_URL, {
			  parameters: {
			  	action         : 'ImportPage',
			  	page_id        : $('page_id').getValue(),
			  	source_page_id : $('source_page_id').getValue()
			  },
			  				  		
			  onSuccess: function(transport){
			  	GetRow();
			  },
			  			  
			  onFailure: function(transport){
			  	Error.alert(transport.responseText);
				  }
			});
			//
		}
	} else {
		alert('Please select a page to import from.')
	}
	
}

function AppendPage(){
	if(Validation.validate('source_page_id')){
		
		//send page id to copy from
		new Ajax.Request(PAGE_AJAX_URL, {
		  parameters: {
		  	action         : 'AppendPage',
		  	page_id        : $('page_id').getValue(),
		  	source_page_id : $('source_page_id').getValue()
		  },
		  				  		
		  onSuccess: function(transport){
		  	GetRow();
		  },
		  			  
		  onFailure: function(transport){
		  	Error.alert(transport.responseText);
		  }
		});
		//
		
	} else {
		alert('Please select a page to append from.')
	}
	
}




//
//
//
//
//menu core functions

function GetCreateMenu(){
	PageTree();
	
	new Ajax.Updater('slidemenu', PAGE_AJAX_URL, {
	  parameters: { 
	  	action: 'GetCreateMenu'
	  },
	  				  		
	  onComplete: function(transport){
			new Effect.SlideDown('slidemenu');
	  },
	  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}

//Process submit for create menu...
function SaveCreateMenu(){
	var valid = new Validation('create_menu_form');
	if(valid.validate()){
  	
  	new Ajax.Request(PAGE_AJAX_URL, {
		  parameters: { 
		  	action       : 'SaveCreateMenu',
		  	menu_name    : $('menu_name').getValue()
		  },
		  				  		
		  onSuccess: function(transport){
				new Effect.SlideUp('slidemenu');
				
				//refresh menu list
				GetMenus();
		  },
		  
		  onFailure: function(transport){
				Error.alert(transport.responseText);
		  }
		});
		
	}
}

//pop row for editing
function GetEditMenu(){
	PageTree();
	
	new Ajax.Updater('slidemenu',PAGE_AJAX_URL, {
	  parameters: { 
	  	action  : 'GetEditMenu',
	  	menu_id : $('menu_id').getValue()
	  },
	  evalScripts : true,
	  				  		
	  onComplete: function(transport){
			new Effect.SlideDown('slidemenu');
	  },
	  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}

//process for edit (many forms, need to target with ids)
function SaveEditMenu(){
	var valid = new Validation('edit_menu_form');
	if(valid.validate()){

  	new Ajax.Request(PAGE_AJAX_URL, {
		  parameters: { 
		  	action           : 'SaveEditMenu',
		  	menu_id          : $('menu_id').getValue(),
		  	menu_name        : $('menu_name').getValue(),
		  	menu_is_disabled : $('menu_is_disabled').getValue()
		  },
		  				  		
		  onSuccess: function(transport){
		  	new Effect.SlideUp('slidemenu')
		  	GetMenus();
		  },
		  
		  onFailure: function(transport){
				Error.alert(transport.responseText);
		  }
		});
	}

}

//delete x menu
function DeleteMenu(){
	new Ajax.Request(PAGE_AJAX_URL, {
	  parameters: { 
	  	action        : 'DeleteMenu',
	  	menu_id       : $('menu_id').getValue()
	  },
	  				  		
	  onSuccess: function(transport){
			new Effect.Fade('slidemenu');
			
			//refresh menu list
			GetMenus();
	  },
	  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
	
}


//get the menu list (puts it into a div id="menus")
function GetMenus(){
	var menu_id = $('menu_id') ? $('menu_id').getValue() : '';

	new Ajax.Updater('menus', PAGE_AJAX_URL, {
	  parameters: { 
	  	action        : 'GetMenus',
	  	menu_id       : menu_id
	  },
	  evalScripts : true,
	  				  		
	  onComplete: function(transport){
			PageTree();
	  },
	  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
	
}




function GetCreatePage(){
		
	new Ajax.Updater({success:'main', failure:'notice'}, PAGE_AJAX_URL, {
	  parameters: { 
	  	action        : 'GetCreatePage'
	  },
	  evalScripts : true,
	  				  		
	  onComplete: function(transport){
	  	$('bottomBar').innerHTML = '<input type="button" value="Save" class="standardButton" onclick="SaveCreatePage();">&nbsp;';
	  	$('bottomBar').innerHTML += '&nbsp;<input type="button" value="Cancel"  class="standardButton" onclick="PageTree();">&nbsp;';
	  },
	  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	  
	});
	
}

function SaveCreatePage(){
	
  var valid = new Validation('create_form');
	if(valid.validate()){
			var Parameters = $H({ 
				action                       : 'SaveCreatePage',
				page_menu_id                 : $('page_menu_id').getValue(),
				page_description             : $('page_description').getValue(),
				page_is_homepage             : $('page_is_homepage').getValue(),
				page_is_splash               : $('page_is_splash').getValue(),
				page_menu_rendering          : $('page_menu_rendering').getValue(),
				page_showonlywhennotloggedin : $('page_showonlywhennotloggedin').getValue(),
				page_status                  : $('page_status').getValue(),
				page_thumbnail_image         : $('page_thumbnail_image').getValue(),
				page_redirect_is_new_window  : $('page_redirect_is_new_window').getValue(),
				page_redirect_full_url       : $('page_redirect_full_url').getValue(),
				page_is_plain                : $('page_is_plain').getValue(),
				page_locale_name             : $('page_locale_name').getValue(),
				page_locale_title            : $('page_locale_title').getValue(),
				page_locale_nameindex        : $('page_locale_nameindex').getValue(),
				page_locale_meta_author      : $('page_locale_meta_author').getValue(),
				page_locale_meta_keywords    : $('page_locale_meta_keywords').getValue(),
				page_locale_meta_description : $('page_locale_meta_description').getValue()
			});
	
		//convert to parameters from hash to querystring
		Parameters = Parameters.toQueryString();
	
		//add people_types to querystring
		var people_types = Form.getInputs($('create_form'), 'checkbox', 'page_people_types[]');
		people_types.each(function(people_type){
			if(people_type.checked)
				Parameters += '&page_people_types[]=' + people_type.value;
		});
		//
		
		new Ajax.Updater({success:'main', failure:'notice'}, PAGE_AJAX_URL, {
		  parameters: Parameters,
		  evalScripts : true,
		  				  		
		  onComplete: function(transport){
				PageTree();
		  },
		  
		  onFailure: function(transport){
		  	 Error.alert(transport.responseText);
		  }
		  
		});
	}
}

//new functions

function fncPageManager_Page_DeleteRow(page_row_id){
		if(confirm("Are you sure you want to delete this row and all of the components in it?")){
			new Ajax.Updater({success:'main', failure:'notice'}, PAGE_AJAX_URL, {
			  parameters: { 
			  	action         : 'Page_DeleteRow',
			  	page_row_id : page_row_id
			  },
			  evalScripts : true,
			  				  		
			  onComplete: function(transport){
					PageTree();
			  },
			  
			  onFailure: function(transport){
			  	 Error.alert(transport.responseText);
			  }
			  
			});
		}
}

function fncPageManager_Page_SaveAs(){
	var page_save_name = prompt("Please enter the save name you would like to use.");
	
	if(page_save_name.length > 0){
		new Ajax.Request(PAGE_AJAX_URL, {
		  parameters: { 
		  	action         : 'Page_SaveAs',
		  	page_id        : $('page_id').getValue(),
		  	page_save_name : page_save_name
		  },
		  			  		
		  onSuccess: function(transport){
				//refresh select list of "saves
				fncPageManager_Page_ListSave();
		  },
		  
		  onFailure: function(transport){
		  	 Error.alert(transport.responseText);
		  }
		  
		});
	}
}

function fncPageManager_Page_LoadSave(){
	if(Validation.validate("page_save_id")){
		new Ajax.Request(PAGE_AJAX_URL, {
		  parameters: { 
		  	action         : 'Page_LoadSave',
		  	page_id        : $('page_id').getValue(),
		  	page_save_id   : $('page_save_id').getValue()
		  },
		  			  		
		  onSuccess: function(transport){
				//refresh select list of "saves"
				GetRow();
		  },
		  
		  onFailure: function(transport){
		  	 Error.alert(transport.responseText);
		  }
		  
		});
	}
}

function fncPageManager_Page_DeleteSave(){
	if(Validation.validate("page_save_id")){
		new Ajax.Request(PAGE_AJAX_URL, {
		  parameters: { 
		  	action         : 'Page_DeleteSave',
		  	page_save_id   : $('page_save_id').getValue()
		  },
		  			  		
		  onSuccess: function(transport){
				fncPageManager_Page_ListSave();
		  },
		  
		  onFailure: function(transport){
		  	Error.alert(transport.responseText);
		  }
		  
		});
	}
}

// old
function fncPageManager_Page_ListSave(){
	new Ajax.Request(PAGE_AJAX_URL, {
	  parameters: { 
	  	action         : 'Page_ListSave'
	  },
	  			  		
	  onSuccess: function(transport, pages_saves){
			//refresh select list of "saves"
			//fill select list
			
			if($('page_save_id')) {
				page_save_id = $('page_save_id');
				page_save_id.options.length = 0;
				page_save_id.options[page_save_id.options.length] = new Option("Select a save", "");
				pages_saves.each(function(page_save){
					page_save_id.options[page_save_id.options.length] = new Option(page_save.page_save_name, page_save.page_save_id);
				});
			}
			
	  },
	  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	  
	});
}

function fncPageManager_PageRowComponent_Delete(page_row_component_id){
	if(confirm("Are you sure you want to delete this component?")){
		new Ajax.Request(PAGE_AJAX_URL, {
		  parameters: { 
		  	action                : 'PageRowComponent_Delete',
		  	page_row_component_id : page_row_component_id
		  },
		  
		  onSuccess: function(transport){
		  	GetRow();
		  },
		  
		  onFailure: function(transport){
		  	Error.alert(transport.responseText);
		  }
		});
	}
}
function fncPageManager_PageRow_Delete(page_row_id){
	if(confirm("Are you sure you want to delete this row and all its components?")){
		new Ajax.Request(PAGE_AJAX_URL, {
		  parameters: { 
		  	action      : 'PageRow_Delete',
		  	page_row_id : page_row_id
		  },
		  
		  onSuccess: function(transport){
		  	GetRow();
		  },
		  
		  onFailure: function(transport){
		  	Error.alert(transport.responseText);
		  }
		});
	}
}

function pageTabExit(mantisTabs, tabName, tabBody, nextTab) {
	//"buttom bar setup hack
	if(nextTab == "pageinfo"){
		$('bottomBar').innerHTML = '<input type="button" class="standardButton" value="Save" onclick="SavePageInfo();">&nbsp;';
		$('bottomBar').innerHTML += '&nbsp;<input type="button"  class="standardButton" value="Cancel" onclick="history.go(-1)">&nbsp;';
	} else if(nextTab == "pagecontent"){
		$('bottomBar').innerHTML = '<input type="button"  class="standardButton" value="Cancel" onclick="history.go(-1)">&nbsp;';
	}
}



function pageTabEnter(mantisTabs, tabName, tabBody, prevTab) {
	//return valid.validate();
}  

function isArray(obj) {
   if (obj.constructor.toString().indexOf("Array") == -1)
      return false;
   else
      return true;
}

/*************************************************************************************



								MODULE CHANGING



**************************************************************************************/


function fncPageManager_Page_CancelSubscriptionForm(){
	if(!$('cancel_subscription_email').present()) return false;
	
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
	  	action : 'Page_CancelSubscriptionForm',
	  	email : $('cancel_subscription_email').getValue()
	  },
	  				  		
	  onComplete: function(transport){ 
	  	refresh_function = "fncPageManager_Page_CancelSubscriptionForm();";
			reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}


function fncPageManager_Page_ChangeAddressForm(){
	if(!$('change_address_email').present()) return false;
	
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
	  	action : 'Page_ChangeAddressForm',
	  	email : $('change_address_email').getValue()
	  },
	  				  		
	  onComplete: function(transport){ 
	  	refresh_function = "fncPageManager_Page_ChangeAddressForm();";
			reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}

/**
 * XML FLash Thing
 */
function GetNewsFlashXMLBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
		parameters: {
			action : 'GetNewsFlashXMLBlocks'
		},
	  				  		
	  onComplete: function(transport) {
		  refresh_function = "GetNewsFlashXMLBlocks();";
		  reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
	  		Error.alert(transport.responseText);
	  }
	});
}

/**
 * Language Selector
 */
function GetLanguageSelectorBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: { 
	  	action : 'GetLanguageSelectorBlocks'
	  },
	  				  		
	  onComplete: function(transport){
	  	refresh_function = "GetLanguageSelectorBlocks();";
	  	reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}

/**
 * Currency Selector
 */
function GetCurrencySelectorBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: { 
	  	action : 'GetCurrencySelectorBlocks'
	  },
	  				  		
	  onComplete: function(transport){
	  	refresh_function = "GetCurrencySelectorBlocks();";
	  	reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}

/*
 * DateTime AJAX
 */
function GetDateTimeBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: { 
	  	action : 'GetDateTimeBlocks'
	  },
	  				  		
	  onComplete: function(transport){
	  	refresh_function = "GetDateTimeBlocks();";
	  	reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}

/*
 * BreadCrumb AJAX
 */
function GetBreadCrumbBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: { 
	  	action : 'GetBreadCrumbBlocks'
	  },
	  				  		
	  onComplete: function(transport){
	  	refresh_function = "GetBreadCrumbBlocks();";
	  	reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	}); 
}
/**
 * Newsletter Signup
 */
function GetNewsletterSignupBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
		parameters: {
			action : 'GetNewsletterSignupBlocks',
			wrapper_style			: $F('wrapper_style'),
			subs_target_page_id		: $F('subs_target_page_id'),
			unsub_target_page_id	: $F('unsub_target_page_id'),
			request_name			: $F('request_name'),
			request_dob				: $F('request_dob'),
			request_gender			: $F('request_gender')
			
		},
	  				  		
	  onComplete: function(transport) {
		  refresh_function = "GetNewsletterSignupBlocks();";
		  reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
	  		Error.alert(transport.responseText);
	  }
	});
}
/**
* Content Manager
*/
function GetContentBlocks(){

	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
	  	action              : 'GetContentBlocks',
		content_id			: $('content_id').getValue()
	  },
	  				  		
	  onComplete: function(transport){       
	  	refresh_function = "GetContentBlocks();";
	  	reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}
/**
* Content Tabbed 
*/
function GetContentTabbedBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
		action              		: 'GetContentTabbedBlocks',
		tab_one_content_id			: $('tab_one_content_id').getValue(),
		tab_two_content_id			: $('tab_two_content_id').getValue(),
		tab_three_content_id		: $('tab_three_content_id').getValue(),
		tab_four_content_id			: $('tab_four_content_id').getValue()
	  },
							
	  onComplete: function(transport){       
		refresh_function = "GetContentTabbedBlocks();";
		reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
		Error.alert(transport.responseText);
	  }
	});
}

/**
* ContentListCollpase
*/
function GetContentListCollapseBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
		action              		: 'GetContentListCollapseBlocks',
		list_1_content_id			: $('list_1_content_id').getValue(),
		list_2_content_id			: $('list_2_content_id').getValue(),
		list_3_content_id			: $('list_3_content_id').getValue(),
		list_4_content_id			: $('list_4_content_id').getValue(),
		list_5_content_id			: $('list_5_content_id').getValue(),
		list_6_content_id			: $('list_6_content_id').getValue(),
		list_7_content_id			: $('list_7_content_id').getValue(),
		list_8_content_id			: $('list_8_content_id').getValue(),
		list_9_content_id			: $('list_9_content_id').getValue(),
		list_10_content_id			: $('list_10_content_id').getValue(),
		bool_open_first				: $('bool_open_first').getValue(),
		wrapper_style				: $('wrapper_style').getValue()
	  },
							
	  onComplete: function(transport){       
		refresh_function = "GetContentListCollapseBlocks();";
		reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
		Error.alert(transport.responseText);
	  }
	});
}


/**
* Content Wrapped
*/
function GetContentWrappedBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
		action              : 'GetContentWrappedBlocks',
		content_id			: $F('content_id'),
		wrapper_style		: $F('wrapper_style')
	  },
							
	  onComplete: function(transport){       
		refresh_function = "GetContentWrappedBlocks();";
		reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
		Error.alert(transport.responseText);
	  }
	});
}

/**
* Content Time Limited
*/
function GetContentTimeLimitedBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
		action              : 'GetContentTimeLimitedBlocks',
		content_id			: $F('content_id'),
		wrapper_style		: $F('wrapper_style'),
		date_from			: $F('date_from'),
		date_to				: $F('date_to')
	  },
							
	  onComplete: function(transport){       
		refresh_function = "GetContentTimeLimitedBlocks();";
		reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
		Error.alert(transport.responseText);
	  }
	});
}



/*
* Content Rotator
*/
function GetContentRotatorBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
		action              : 'GetContentRotatorBlocks',
		content_cat_id		: $F('content_cat_id'),
		time_delay			: $F('time_delay')
	  },
							
	  onComplete: function(transport){       
		refresh_function = "GetContentRotatorBlocks();";
		reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
		Error.alert(transport.responseText);
	  }
	});
}

/*
* Content Randomizer
*/
function GetContentRandomizerBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
		action              : 'GetContentRandomizerBlocks',
		content_cat_id		: $F('content_cat_id'),
		wrapper_style		: $F('wrapper_style')
	  },
							
	  onComplete: function(transport){       
		refresh_function = "GetContentRandomizerBlocks();";
		reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
		Error.alert(transport.responseText);
	  }
	});
}


/*
* INTERNAL - Get List of Content for dropdown
*/
function fncPageManager_Page_ContentOnChange() {
	$('items').show().innerHTML = '<center><br>Loading<br><img src="/common/templates/default/images/icons_modules/loading.gif" /><br></center>';

	if($('content_category').getValue() != ""){
		new Ajax.Request(PAGE_AJAX_URL, {
		  parameters: {
		  	action           : 'Page_ContentList',
		  	content_category : $('content_category').getValue()
		  },
		  onSuccess: function(transport){ 
		  	var contenlist = transport.responseJSON;
			$('content_list').show();
			$('content_id').options.length = 0;
			$('content_id').options[$('content_id').options.length] = new Option('Select...', '');
			contenlist.each(function(content){
				$('content_id').options[$('content_id').options.length] = new Option(content.content_name, content.content_id);
			});
			$('items').innerHTML = '';
		  },
		  onFailure: function(transport){
		  		Error.alert(transport.responseText);
		  }
		});
	}
}




















/*
* News
* Note: function uses bad naming convention. Go to bottom of page for latest examples. 
*/
function fncPageManager_Page_NewsOnChange(){
	$('items').show().innerHTML = '<center><br>Loading<br><img src="/common/templates/default/images/icons_modules/loadingsmall.gif" /><br></center>';
	
	var news_category_id 	= $('news_categories').getValue();
	var display_option		= $('display_option').getValue();;
	
	if(display_option == 'latest') {
		show_latest_featured_article = 0;	
		news_id	= 0;

	} else if(display_option == 'latest_featured') {
		show_latest_featured_article = 1;	
		news_id	= 0;

	} else if(display_option == 'specific') {
		show_latest_featured_article = 0;
		if($('news_id')) {
			var news_element = 'news_id'; //m8
		} else {
			var news_element = 'news'; // m7 legacy code
		}
		var news_id            	= $(news_element).getValue();
	}
	
	var enable_news_list = 0;
	var hide_heading_title = 0;
	var bool_hide_print = 0;
	
	if($('enable_news_list').checked){
		var enable_news_list = 1;
	} 
	if($('hide_heading_title')){
		var hide_heading_title = $('hide_heading_title').getValue();
	} 
	if($('bool_hide_print')){
		var bool_hide_print = $('bool_hide_print').getValue();
	} 

	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
		action             				: 'Page_NewsOnChange',
		news_category_id   				: news_category_id,
		news_id           				: news_id,
		show_latest_featured_article	: show_latest_featured_article,
		enable_news_list				: enable_news_list,
		number_of_articles          	: $('number_of_articles').getValue(),
		hide_heading_title				: hide_heading_title,
		wrapper_style					: $('wrapper_style').getValue(),
		bool_hide_print					: bool_hide_print,
		enable_comments					: $F('enable_comments'),
		mod_comments					: $F('mod_comments'),
		censor_comments					: $F('censor_comments')
	  },
	  onComplete: function(transport){ 
			refresh_function = "fncPageManager_Page_NewsOnChange();";
			reserializePage();
	  },
	  onFailure: function(transport){
		Error.alert(transport.responseText);
	  }
	});
}

// News - Load articles dropdown
function fncPageManager_Page_NewsArticles(){
	if($('news_categories').getValue() != ""){
		new Ajax.Request(PAGE_AJAX_URL, {
		  parameters: {
		  	action           : 'Page_NewsArticles',
		  	news_category_id : $('news_categories').getValue()
		  },
		  onSuccess: function(transport){ 
		  	var articles = transport.responseJSON;
			if($('news_id')) {
				var element = 'news_id';
			} else {
				var element = 'news';
			}
			$(element).options.length = 0;
			$(element).options[$(element).options.length] = new Option('Select an Article', '');
			articles.each(function(article){
				$(element).options[$(element).options.length] = new Option(article.news_name, article.news_id);
			});
		  },
		  onFailure: function(transport){
		  	Error.alert(transport.responseText);
		  }
		});
	}
}

/**
 * News List
 */
function fncPageManager_Page_NewsListOnChange(){
	$('items').show().innerHTML = '<center><br>Loading<br><img src="/common/templates/default/images/icons_modules/loadingsmall.gif" /><br></center>';

	var news_category_id 		= $('news_categories').getValue();
	var target_page_id     		= $('target_page_id').getValue();
	
	if($('show_only_featured_articles').checked){
		var show_only_featured_articles = 1;
	} else {
		var show_only_featured_articles = 0;
	}
	if($('article_thumb_width')){
		var article_thumb_width = $('article_thumb_width').getValue();
	} else {
		var article_thumb_width = 225;
	}
	if($('article_thumb_height')){
		var article_thumb_height = $('article_thumb_height').getValue();
	} else {
		var article_thumb_height = 170;
	}
	if($('show_article_thumb').checked){
		var show_article_thumb 	= 1;
	} else {
		var show_article_thumb 	= 0;
		article_thumb_height 	= 0;
		article_thumb_width 	= 0;
	}
	if($('heading_thumb_width')){
		var heading_thumb_width = $('heading_thumb_width').getValue();
	} else {
		var heading_thumb_width = 225;
	}
	if($('heading_thumb_height')){
		var heading_thumb_height = $('heading_thumb_height').getValue();
	} else {
		var heading_thumb_height = 170;
	}
	if($('show_heading_thumb').checked){
		var show_heading_thumb 	= 1;
	} else {
		var show_heading_thumb 	= 0;
		heading_thumb_height 	= 0;
		heading_thumb_width 	= 0;
	}
	
	if(news_category_id != "" && target_page_id != ""){
		
		new Ajax.Updater('items', PAGE_AJAX_URL, {
		  parameters: {
			action            			: 'Page_NewsListOnChange',
		  	news_category_id   			: news_category_id,
		  	target_page_id     			: target_page_id,
			sort_articles_by			: $('sort_articles_by').getValue(),
		  	show_only_featured_articles : show_only_featured_articles,
			number_of_articles          : $('number_of_articles').getValue(),
			hide_pagination				: $F('hide_pagination'),
			truncate_body_chars         : $('truncate_body_chars').getValue(),	
			hide_date					: $F('hide_date'),
			show_article_thumb			: show_article_thumb,
			article_thumb_width			: article_thumb_width,
			article_thumb_height		: article_thumb_height,
			show_heading_thumb			: show_heading_thumb,
			heading_thumb_width			: heading_thumb_width,
			heading_thumb_height		: heading_thumb_height,
			hide_heading_title			: $F('hide_heading_title'),
			hide_rss_feed				: $F('hide_rss_feed'),
			wrapper_style				: $F('wrapper_style'),
			truncate_title				: $F('truncate_title')
		 },
		  				  		
		  onComplete: function(transport){ 
				refresh_function = "fncPageManager_Page_NewsListOnChange();";
				reserializePage();
		  },
				  
		  onFailure: function(transport){
		  	Error.alert(transport.responseText);
		  }
		});
		
	} else {
		$('items').innerHTML = '';
		Error.alert("You must select a target page and a category for the News List component to work");
	}
}

/**
 * News Mini
 * v1.3
 */
function GetNewsMiniBlocks(){ 
	$('items').show().innerHTML = '<center><br>Loading<br><img src="/common/templates/default/images/icons_modules/loading_small.gif" /><br></center>';

	var show_only_featured_articles = 0;
	if($('show_only_featured_articles').checked){
		show_only_featured_articles = 1;
	} 
	
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
		action             			: 'Page_NewsMiniOnChange',
		news_category_id   			: $('news_categories').getValue(),
		target_page_id     			: $('target_page_id').getValue(),
		news_id            			: $('news_id').getValue(),
		display_option            	: $('display_option').getValue(),
		show_only_featured_articles : show_only_featured_articles,
		image_width					: $('image_width').getValue(),
		image_height				: $('image_height').getValue(),
		truncate_body_chars         : $('truncate_body_chars').getValue(),
		hide_heading_title			: $('hide_heading_title').getValue()
	  },
							
	  onComplete: function(transport){ 
			refresh_function = "GetNewsMiniBlocks();";
			reserializePage();
	  },
			  
	  onFailure: function(transport){
		Error.alert(transport.responseText);
	  }
	});
		
}

// Specific to NewsMini 
function fncPageManager_Page_NewsMini_SetDisplayOption() {
	$('items').innerHTML = '';
	var display_option = $('display_option').getValue();
	
	if(display_option == 'specific') {
		$('single_article_box').show(); 
		$('generic_article_box').hide(); 
		fncPageManager_Page_NewsArticles(); 
		
	} else {
		$('generic_article_box').show(); 
		$('single_article_box').hide(); 
		GetNewsMiniBlocks();
	}
}

/**
 * News Box
 */
function fncPageManager_Page_NewsBoxOnChange(){
	//note categories titling, pluralization is faulty
	var news_category_id   = $('news_categories').getValue();
	var news_id            = $('news').getValue();
	var target_page_id     = $('target_page_id').getValue();
	
	if(news_category_id != "" && target_page_id != ""){
		
		new Ajax.Updater('items', PAGE_AJAX_URL, {
		  parameters: {
		  	action             : 'Page_NewsBoxOnChange',
		  	news_category_id   : news_category_id,
		  	news_id            : news_id,
		  	target_page_id     : target_page_id
		  },
		  				  		
		  onComplete: function(transport){ 
				refresh_function = "fncPageManager_Page_NewsBoxOnChange();";
				reserializePage();
		  },
				  
		  onFailure: function(transport){
		  	Error.alert(transport.responseText);
		  }
		});
		
	}
}

/*
 * News Calendar 
 */
function GetNewsCalendarBlocks(){
	var target_page_id = $('target_page_id').getValue();
	
	if(target_page_id) {
		new Ajax.Updater('items', PAGE_AJAX_URL, {
		  parameters: { 
			action 			: 'GetNewsCalendarBlocks',
			target_page_id	 	: target_page_id
		  },
								
		  onComplete: function(transport){
			refresh_function = "GetNewsCalendarBlocks();";
			reserializePage();//SHE LAGS.
		  },
				  
		  onFailure: function(transport){
			Error.alert(transport.responseText);
		  }
		});
	} else {
		$('items').innerHTML = '';
		Error.alert("You must select a target page for the News Calendar component to work");
	}
}



/*
 * News Search
 */
function GetNewsSearchBlocks(){
	var target_page_id = $('target_page_id').getValue();
	if(target_page_id) {
		new Ajax.Updater('items', PAGE_AJAX_URL, {
		  parameters: { 
			action : 'GetNewsSearchBlocks',
			target_page_id	 	: target_page_id
		  },
								
		  onComplete: function(transport){
			refresh_function = "GetNewsSearchBlocks();";
			reserializePage();//SHE LAGS.
		  },
				  
		  onFailure: function(transport){
			Error.alert(transport.responseText);
		  }
		});
	} else {
		$('items').innerHTML = '';
		Error.alert("You must select a target page for the News Calendar component to work");
	}
}

/**
 * News Search Mini 
 */
function GetNewsSearchMiniBlocks(){
	var search_page_id     = $('search_page_id').getValue();

	
	if(search_page_id != ""){
		
		new Ajax.Updater('items', PAGE_AJAX_URL, {
		  parameters: {
		  	action             : 'GetNewsSearchMiniBlocks',
		  	search_page_id     : search_page_id
			
		  },
		  				  		
		  onComplete: function(transport){ 
				refresh_function = "GetNewsSearchMiniBlocks();";
				reserializePage();
		  },
				  
		  onFailure: function(transport){
		  	Error.alert(transport.responseText);
		  }
		});
		
	} else {
		$('items').innerHTML = '';
		Error.alert("You must select select a search page for this component to work.");
	}
}




/* 
* Galleries 
* Pst: Bad function name. 
*/ 
function fncPageManager_Page_GalleriesOnChange(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
		action            	: 'Page_GalleriesOnChange',
		gallery_id			: $('gallery_id').getValue(),
		gallery_rows       	: $('gallery_rows').getValue(),
		gallery_columns    	: $('gallery_columns').getValue(),
		gallery_width      	: $('gallery_width').getValue(),
		gallery_height     	: $('gallery_height').getValue(),
		wrapper_style		: $('wrapper_style').getValue()
	  },
							
	  onComplete: function(transport){ 
			refresh_function = "fncPageManager_Page_GalleriesOnChange();";
			reserializePage();
	  },
			  
	  onFailure: function(transport){
		Error.alert(transport.responseText);
	  }
	});
	
}

/**
 * Gallery.2 (New)
 */
function GetGallery2Blocks(){

	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
		action          			: 'GetGallery2Blocks', 
		gallery_id					: $F('gallery_id'),
		photo_width					: $F('photo_width'),
		photo_height				: $F('photo_height'),
		columns						: $F('columns'),
		rows						: $F('rows'),
		display_caption				: $F('display_caption'),
		wrapper_style				: $F('wrapper_style'),
		display_heading				: $F('display_heading'),
		display_pager				: $F('display_pager')
	  },
							
	  onComplete: function(transport){ 
			refresh_function = "GetGallery2Blocks();";
			reserializePage();
	  },
			  
	  onFailure: function(transport){
		Error.alert(transport.responseText);
	  }
	});
}



/**
 * Gallery Mini 
 */
function GetGalleryMiniBlocks(){
	if($('photo_width')){
		var photo_width = $('photo_width').getValue();
	} else {
		var photo_width = 0;
	}

	if($('photo_height')){
		var photo_height = $('photo_height').getValue();
	} else {
		var photo_height = 0;
	}
	
	var display_caption = 1;
	if($('display_caption_no').checked){
		display_caption = 0;
	}
	
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
	  	action          			: 'GetGalleryMiniBlocks', 
	  	gallery_id					: $('gallery_id').getValue(),
	  	photo_width					: photo_width,
	  	photo_height				: photo_height,
	  	display_caption				: display_caption,
		wrapper_style				: $('wrapper_style').getValue()
	  },
	  				  		
	  onComplete: function(transport){ 
			refresh_function = "GetGalleryMiniBlocks();";
			reserializePage();
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}


/**
 * Gallery Mosaic
 */
function GetGalleryMosaicBlocks(){

	var gallery_id = $('gallery_id').getValue();
		
	if($('photo_width')){
		var photo_width = $('photo_width').getValue();
	} else {
		var photo_width = 80;
	}

	if($('photo_height')){
		var photo_height = $('photo_height').getValue();
	} else {
		var photo_height = 80;
	}
	
	if($('number_columns')){
		var number_columns = $('number_columns').getValue();
	} else {
		var number_columns = 4;
	}
	
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
		action          			: 'GetGalleryMosaicBlocks', 
		gallery_id					: gallery_id,
		photo_width					: photo_width,
		photo_height				: photo_height,
		number_columns				: number_columns
	  },
							
	  onComplete: function(transport){ 
			refresh_function = "GetGalleryMosaicBlocks();";
			reserializePage();
	  },
			  
	  onFailure: function(transport){
		Error.alert(transport.responseText);
	  }
	});
}

/**
 * Gallery Flash Slideshow
 */
function GetGalleryFlashSlideshowBlocks(){

	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
		action          			: 'GetGalleryFlashSlideshowBlocks', 
		gallery_id					: $F('gallery_id'),
		photo_width					: $F('photo_width'),
		photo_height				: $F('photo_height'),
		thumb_width					: $F('thumb_width'),
		thumb_height				: $F('thumb_height'),
		wrapper_style				: $F('wrapper_style'),
		main_bg						: $F('main_bg'),
		caption_bg					: $F('caption_bg'),
		slider_bg					: $F('slider_bg'),
		thumb_mouseover				: $F('thumb_mouseover'),
		thumb_mouseout				: $F('thumb_mouseout'),
		auto_start					: $F('auto_start'),
		show_caption				: $F('show_caption'),
		delay_trans					: $F('delay_trans')
	  },
							
	  onComplete: function(transport){ 
			refresh_function = "GetGalleryFlashSlideshowBlocks();";
			reserializePage();
	  },
			  
	  onFailure: function(transport){
		Error.alert(transport.responseText);
	  }
	});
}


/*
* Gallery Image Randomizer
*/
function GetGalleryImageRandomizerBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
		action          : 'GetGalleryImageRandomizerBlocks',
		gallery_id		: $F('gallery_id')
	  },
							
	  onComplete: function(transport){       
		refresh_function = "GetGalleryImageRandomizerBlocks();";
		reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
		Error.alert(transport.responseText);
	  }
	});
}



/*
* Banners
*/
function fncPageManager_Page_BannersOnChange(){
	if($('banner_type_id').getValue() != ''){
		if($('banner_campaign_id').getValue() != ''){
			new Ajax.Updater('items', PAGE_AJAX_URL, {
			  parameters: { 
			  	action             : 'Page_BannersOnChange',
			  	banner_type_id     : $('banner_type_id').getValue(),
			  	banner_campaign_id : $('banner_campaign_id').getValue()
			  },
			  
			  onComplete: function(transport){
			  	refresh_function = "fncPageManager_Page_BannersOnChange();";
	  			reserializePage();//SHE LAGS.
			  },
					  
			  onFailure: function(transport){
			  	Error.alert(transport.responseText);
			  }
			});
		} else {
			Error.alert("You must select a campaign");
		}
	} else {
		Error.alert("You must select a banner type");
	}
}

/*
 * Store Frontend
 */
function GetStoreFrontBlocks(){
	
	var target_page_id     		= $('target_page_id').getValue();
	var display_options			= $('display_options').getValue();
	var product_category_id 	= 0;

	if(display_options == 'products_all'){
		var product_display_cat = 0;
	} else {
		var product_category_id = $('product_category_id').getValue();
		var product_display_cat = 1;
	}

	if(target_page_id != ""){
		
		new Ajax.Updater('items', PAGE_AJAX_URL, {
		  parameters: {
			action            			: 'GetStoreFrontBlocks',
		  	target_page_id     			: target_page_id,
			product_display_cat			: product_display_cat,
			product_category_id			: product_category_id,
			category_placement			: $('category_placement').getValue(),
			cart_placement				: $('cart_placement').getValue(),
			search_placement			: $('search_placement').getValue(),
			number_of_products_per_page : $('number_of_products_per_page').getValue(),
			number_of_products_per_row	: $('number_of_products_per_row').getValue(),
			collapse_child_menu			: $('collapse_child_menu').getValue(),
			sort_by						: $F('sorty_by'),
			wrapper_style				: $F('wrapper_style'),
			truncate_text				: $F('truncate_text')
		 },
		  				  		
		  onComplete: function(transport){ 
				refresh_function = "GetStoreFrontBlocks();";
				reserializePage();
		  },
				  
		  onFailure: function(transport){
		  	Error.alert(transport.responseText);
		  }
		});
		
	} else {
		$('items').innerHTML = '';
		Error.alert("You must select a target page");
	}
}

/*
 * Store Product Category Menu
 */
function GetProductCategoryMenu(){
	$('items').show().innerHTML = '<center><br>Loading<br><img src="/common/templates/default/images/icons_modules/loadingsmall.gif" /><br></center>';
	
	if( $('target_page_id').getValue() ){
		new Ajax.Updater('items', PAGE_AJAX_URL, {
		  parameters: { 
			action 				: 'GetProductCategoryMenu',
		  	target_page_id		: $('target_page_id').getValue(),
			collapse_child_menu : $('collapse_child_menu').getValue()
		  },
		  				  		
		  onComplete: function(transport){
		  	refresh_function = "GetProductCategoryMenu();";
		  	reserializePage();//SHE LAGS.
		  },
				  
		  onFailure: function(transport){
		  	Error.alert(transport.responseText);
		  }
		});
	}
}

/*
 * Store Cart View
 */
function GetStoreFrontViewCartBox(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: { 
	  	action : 'GetStoreFrontViewCartBox'
	  },
	  				  		
	  onComplete: function(transport){
	  	refresh_function = "GetStoreFrontViewCartBox();";
	  	reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}

/*
 *  Store Checkout AJAX
 */
function GetCheckoutBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: { 
	  	action : 'GetCheckoutBlocks'
	  },
	  				  		
	  onComplete: function(transport){
	  	refresh_function = "GetCheckoutBlocks();";
	  	reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}

/*
 * FlashTopBar
 */
function GetFlashTopBarBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: { 
	  	action : 'GetFlashTopBarBlocks'
	  },
	  				  		
	  onComplete: function(transport){
	  	refresh_function = "GetFlashTopBarBlocks();";
	  	reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}

/*
 * Survey 
 */
function GetSurveyBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: { 
	  	action : 'GetSurveyBlocks'
	  },
	  				  		
	  onComplete: function(transport){
	  	refresh_function = "GetSurveyBlocks();";
	  	reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}

/*
 * Form AJAX
 */
function GetFormBlocks(){
	$('items').show().innerHTML = '<center><br>Loading<br><img src="/common/templates/default/images/icons_modules/loadingsmall.gif" /><br></center>';

	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
		action          	: 'GetFormBlocks', 
		form_id				: $('form_id').getValue(),
		bool_register_user	: $('bool_register_user').getValue(),
		bool_allow_repeats	: $('bool_allow_repeats').getValue(),
		wrapper_style		: $('wrapper_style').getValue(),
		bool_attach_xml		: $F('bool_attach_xml')
	  },
							
	  onComplete: function(transport){ 
			refresh_function = "GetFormBlocks();";
			reserializePage();
	  },
			  
	  onFailure: function(transport){
		Error.alert(transport.responseText);
	  }
	});
	
}

/*
 * Poll AJAX
 */
function GetPollBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: { 
	  	action 			: 'GetPollBlocks',
		poll_id 		: $F('poll_id'),
		wrapper_style	: $F('wrapper_style')
	  },
	  				  		
	  onComplete: function(transport){
	  	refresh_function = "GetPollBlocks();";
	  	reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}

/*
 * ContactForm AJAX
 */
function GetContactFormBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: { 
	  	action 				: 'GetContactFormBlocks',
		wrapper_style		: $F('wrapper_style')
	  },
	  				  		
	  onComplete: function(transport){
	  	refresh_function = "GetContactFormBlocks();";
	  	reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}

/*
 * Sign up/Registration AJAX
 */
function GetUserRegistrationBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: { 
	  	action : 'GetUserRegistrationBlocks'
	  },
	  				  		
	  onComplete: function(transport){
	  	refresh_function = "GetUserRegistrationBlocks();";
	  	reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}

/*
 * User Profile
 */
function GetUserProfileBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: { 
	  	action : 'GetUserProfileBlocks'
	  },
	  				  		
	  onComplete: function(transport){
	  	refresh_function = "GetUserProfileBlocks();";
	  	reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	}); 
}


/*
 * User Profile Edit
 */
function GetUserProfileEditBlocks(){
	var target_page_id = $('target_page_id').getValue();
	
	if(target_page_id){
		new Ajax.Updater('items', PAGE_AJAX_URL, {
		  parameters: {
			action          			: 'GetUserProfileEditBlocks', 
			target_page_id				: target_page_id
		  },
								
		  onComplete: function(transport){ 
				refresh_function = "GetUserProfileEditBlocks();";
				reserializePage();
		  },
				  
		  onFailure: function(transport){
			Error.alert(transport.responseText);
		  }
		});
	}
}


/*
 * Login AJAX
 */
function GetUserLoginBlocks(){
	
	/*var form = $('UserLoginForm').serialize();
	
	if($F('allow_selected_types').checked) {
		var input = form['people_type_ids']; 
		var sel_people_types = $F('input');
	} else {
		var sel_people_types = null;	
	}
	console.log(sel_people_types);
	*/
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: { 
	  	action : 'GetUserLoginBlocks',
		target_page_id : $F('target_page_id')
	  },
	  				  		
	  onComplete: function(transport){
	  	refresh_function = "GetUserLoginBlocks();";
	  	reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	}); 
}

/*
 * Logout AJAX
 */
function GetUserInfoLogoutBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: { 
	  	action : 'GetUserInfoLogoutBlocks'
	  },
	  				  		
	  onComplete: function(transport){
	  	refresh_function = "GetUserInfoLogoutBlocks();";
	  	reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	}); 
}

/*
 * Layout Manager Blocks AJAX
 */
function GetLayoutsBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: { 
	  	action : 'GetLayoutsBlocks'
	  },
	  				  		
	  onComplete: function(transport){
	  	refresh_function = "GetLayoutsBlocks();";
	  	reserializePage();//SHE 4LAGS.
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}

/*
 * Sitemap Manager 
 */
function GetSitemapBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: { 
	  	action 				: 'GetSitemapBlocks',
		menu_id				: $('menu_id').getValue(),
		wrapper_style		: $('wrapper_style').getValue()
	  },
	  				  		
	  onComplete: function(transport){
	  	refresh_function = "GetSitemapBlocks();";
	  	reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}

/*
 * Menu Manager AJAX
 */
function GetMenuBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: { 
	  	action 			: 'GetMenuBlocks',
		menu_id			: $('menu_id').getValue(),
		menu_type_id	: $('menu_type_id').getValue()
	  },
	  				  		
	  onComplete: function(transport){
	  	refresh_function = "GetMenuBlocks();";
	  	reserializePage();//SHE LAGS.
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}

/*
 * Blog Manager AJAX
 */
function GetBlogBlocks(){
	// Categories Menu
	if($('blog_category_menu')){
		var $strCategoryMenu = $('blog_category_menu').getValue();
	} else {
		var $strCategoryMenu = 'left';
	}
	
	// Comments List Dropdown
	if($('blog_recent_comments')){
		var $strRecentComments = $('blog_recent_comments').getValue();
	} else {
		var $strRecentComments = 'left';
	}
	
	// Archive List
	if($('blog_archive_list')){
		var $strArchiveList = $('blog_archive_list').getValue();
	} else {
		var $strArchiveList = 'left';
	}
	
	// Blog Title/Home Link
	if($('str_home_link')){
		var $strHomeLink = $('str_home_link').getValue();
	} else {
		var $strHomeLink = 'left';
	}
	
	// pass to php
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
	  	action          			: 'GetBlogBlocks', 
	  	blog_id						: $('blog_id').getValue(),
	  	strCategoryMenu				: $strCategoryMenu,
	  	strRecentComments			: $strRecentComments,
	  	strArchiveList				: $strArchiveList,
		strHomeLink					: $strHomeLink,
	 	enable_comments				: $F('enable_comments'),
		mod_comments				: $F('mod_comments'),
		censor_comments				: $F('censor_comments'),
	  	bookmark_this				: $F('bookmark_this'),
		wrapper_style				: $('wrapper_style').getValue()	
	  },
	  				  		
	  onComplete: function(transport){ 
			refresh_function = "GetBlogBlocks();";
			reserializePage();
	  },
			  
	  onFailure: function(transport){
	  	Error.alert(transport.responseText);
	  }
	});
}


/*
 * Blog Calendar Manager AJAX
 */
function GetBlogCalendarBlocks(){
	var blog_page_id = $('blog_page_id').getValue();
	
	if(blog_page_id) {
		var xploded = blog_page_id.split("-");
		
		// pass to php
		new Ajax.Updater('items', PAGE_AJAX_URL, {
		  parameters: {
		  	action          			: 'GetBlogCalendarBlocks', 
		  	blog_id						: xploded[0],
		  	page_id						: xploded[1],
		  	blog_category_id			: $('blog_category_id').getValue()
		  },
		  				  		
		  onComplete: function(transport){ 
				refresh_function = "GetBlogCalendarBlocks();";
				reserializePage();
		  },
				  
		  onFailure: function(transport){
		  	Error.alert(transport.responseText);
		  }
		});
	}
}

/*
 * INTERNAL  Blog Calendar 
 * Generate list of pages with blogs
 */
function fncPageManager_Page_BlogCalendarOnChange(){
	var blog_page_id = $('blog_page_id').getValue();
	
	if(blog_page_id != ""){
		var xploded = blog_page_id.split("-");
		
		new Ajax.Request(PAGE_AJAX_URL, {
		  parameters: {
		  	action             : 'Page_BlogCalendarOnChange',
		  	blog_id  			:  xploded[0]
		  },
		  onSuccess : function(transport){			  		
		  		var arrBlogsCategories = transport.responseJSON;
				$('blog_category_id').options.length = 1;//cut list down
				
				arrBlogsCategories.each(function(eachitem){
					$('blog_category_id').options[$('blog_category_id').options.length] = new Option(eachitem.blog_category_locale_name, eachitem.blog_category_id);
				});	
				refresh_function = "GetBlogCalendarBlocks();";
				reserializePage();
				
		  },
				  
		  onFailure: function(transport){
		  	Error.alert(transport.responseText);
		  }
		});
		
	}
}


/*
 * Blog List AJAX
 */
function GetBlogListBlocks(){
	var blog_page_id = $('blog_page_id').getValue();
	
	if(blog_page_id) {
		var xploded = blog_page_id.split("-");
		
		new Ajax.Updater('items', PAGE_AJAX_URL, {
		  parameters: {
		  	action          			: 'GetBlogListBlocks', 
		  	blog_id						: xploded[0],
		  	the_page_id					: xploded[1],
		  	posts						: $F('posts'),
			truncate_text				: $F('truncate_text'),
			sort_by						: $F('sort_by'),
			wrapper_style				: $F('wrapper_style')
		  },
		  				  		
		  onComplete: function(transport){ 
				refresh_function = "GetBlogListBlocks();";
				reserializePage();
		  },
				  
		  onFailure: function(transport){
		  	Error.alert(transport.responseText);
		  }
		});
	}
}

/**
 * Locations 
 */
function GetLocationsBlocks(){

	var show_files = 0;
	if($('show_files').checked){ show_files = 1; }
		
	var show_photos = 0;
	if($('show_photos').checked){ show_photos = 1; }
	
	var hide_pending = 0;
	if($('hide_pending').checked){ hide_pending = 1; }

	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
		action 					: 'GetLocationsBlocks',
		show_files				: show_files,
		show_photos				: show_photos,
		hide_pending			: hide_pending,
		wrapper_style			: $('wrapper_style').getValue()
	  },
							
	  onComplete: function(transport){ 
			refresh_function = "GetLocationsBlocks();";
			reserializePage();
	  },
			  
	  onFailure: function(transport){
		Error.alert(transport.responseText);
	  }
	});
}


/**
 * Locations List
 */
function GetLocationsListBlocks(){
	$('items').show().innerHTML = '<center><br>Loading<br><img src="/common/templates/default/images/icons_modules/loadingsmall.gif" /><br></center>';
	
	var target_page_id = $('target_page_id').getValue();
	
	if(target_page_id){
				
		new Ajax.Updater('items', PAGE_AJAX_URL, {
		  parameters: {
			action          			: 'GetLocationsListBlocks', 
			target_page_id				: target_page_id,
			location_category_id		: $('location_category_id').getValue(),
			truncate_text				: $('truncate_text').getValue(),
			items_to_display			: $('items_to_display').getValue(),
			wrapper_style				: $('wrapper_style').getValue(),
			truncate_title				: $F('truncate_title')
		  },
								
		  onComplete: function(transport){ 
				refresh_function = "GetLocationsListBlocks();";
				reserializePage();
		  },
				  
		  onFailure: function(transport){
			Error.alert(transport.responseText);
		  }
		});
	} else {
		$('items').innerHTML = '';
		Error.alert("You must select a target page for the Locations List component to work");
	}
}

/**
 * Events 
 */
function GetEventsBlocks(){

	var show_files = 0;
	if($('show_files').checked){		show_files = 1; 	}
		
	var show_photos = 0;
	if($('show_photos').checked){ 		show_photos = 1; 	}
	
	var hide_pending = 0;
	if($('hide_pending').checked){ 		hide_pending = 1; 	}
	
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
		action 					: 'GetEventsBlocks' ,
		show_files				: show_files,
		show_photos				: show_photos,
		hide_pending			: hide_pending,
		first_load 				: $('first_load').getValue(),
		location_page_id		: $('location_page_id').getValue(),
		registration_page_id	: $('registration_page_id').getValue(),
		add_event_page_id		: $('add_event_page_id').getValue(),
		cal_event_page_id		: $('cal_event_page_id').getValue(),
		wrapper_style			: $('wrapper_style').getValue()
	  },
							
	  onComplete: function(transport){ 
			refresh_function = "GetEventsBlocks();";
			reserializePage();
	  },
			  
	  onFailure: function(transport){
		Error.alert(transport.responseText);
	  }
	});
}

/**
 * Events  Add
 */
function GetEventsAddBlocks(){

	var bool_allow_anyone_to_post = 0;
	if($('bool_allow_anyone_to_post').checked){ bool_allow_anyone_to_post = 1; }
	
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
		action 						: 'GetEventsAddBlocks' ,
		bool_allow_anyone_to_post	: bool_allow_anyone_to_post,
		thank_you_page_id			: $('thank_you_page_id').getValue()
	  },
							
	  onComplete: function(transport){ 
			refresh_function = "GetEventsAddBlocks();";
			reserializePage();
	  },
			  
	  onFailure: function(transport){
		Error.alert(transport.responseText);
	  }
	});
}

/**
 * Events List
 */
function GetEventsListBlocks(){
	$('items').show().innerHTML = '<center><br>Loading<br><img src="/common/templates/default/images/icons_modules/loadingsmall.gif" /><br></center>';
	
	var target_page_id = $('target_page_id').getValue();
	
	if(target_page_id){
		var sort_by;
		if($('sort_by_upcoming').checked){ var sort_by = 'upcoming'; } 
		if($('sort_by_today').checked){ var sort_by = 'today'; } 
		
		if($('items_to_display')){
			var items_to_display = $('items_to_display').getValue();
		} else {
			var items_to_display = 10;
		}
		if($('truncate_text')){
			var truncate_text = $('truncate_text').getValue();
		} else {
			var truncate_text = 100;
		}
		
		new Ajax.Updater('items', PAGE_AJAX_URL, {
		  parameters: {
			action          			: 'GetEventsListBlocks', 
			target_page_id				: target_page_id,
			event_category_id			: $F('event_category_id'),
			truncate_text				: truncate_text,
			items_to_display			: items_to_display,
			sort_by						: sort_by,
			truncate_title				: $F('truncate_title'),
			wrapper_style				: $F('wrapper_style'),
			show_logo					: $F('show_logo')
		  },
								
		  onComplete: function(transport){ 
				refresh_function = "GetEventsListBlocks();";
				reserializePage();
		  },
				  
		  onFailure: function(transport){
			Error.alert(transport.responseText);
		  }
		});
	} else {
		$('items').innerHTML = '';
		Error.alert("You must select a target page for the Events List component to work");
	}
}


/**
 * Events Calendar
 */
function GetEventsCalendarBlocks(){
	$('items').show().innerHTML = '<center><br>Loading<br><img src="/common/templates/default/images/icons_modules/loadingsmall.gif" /><br></center>';
	
	// page
	var target_page_id = $('target_page_id').getValue();
	if(target_page_id == 0) {
		$('items').innerHTML = '';
		Error.alert("You must select a target page for the Events Calendar component to work");
	}
	
	// truncate
	var truncate_chars = $('truncate_chars').getValue();
	if(truncate_chars == 0 ) {
	  	$('items').innerHTML = '';
	  	Error.alert("Truncate value cannot be 0");
	}
	
	// sidebar on/off
	var sidebar = 'off';
	if( $('sidebar').checked ){
		sidebar = 'on';
	}
	
	if(target_page_id != 0 && truncate_chars != 0){
		new Ajax.Updater('items', PAGE_AJAX_URL, {
		  parameters: {
			action          			: 'GetEventsCalendarBlocks', 
			target_page_id				: target_page_id,
			event_category_id			: $('event_category_id').getValue(),
			location_id					: $('location_id').getValue(),
			sidebar						: sidebar,
			truncate_chars				: truncate_chars,
			wrapper_style				: $('wrapper_style').getValue()
		  },
								
		  onComplete: function(transport){ 
				refresh_function = "GetEventsCalendarBlocks();";
				reserializePage();
		  },
				  
		  onFailure: function(transport){
			Error.alert(transport.responseText);
		  }
		});
	} 
}

/**
 * Events Calendar Mini
 */
function GetEventsCalendarMiniBlocks(){
	$('items').show().innerHTML = '<center><br>Loading<br><img src="/common/templates/default/images/icons_modules/loadingsmall.gif" /><br></center>';
	
	// page
	var target_page_id = $('target_page_id').getValue();
	if(target_page_id == 0) {
		$('items').innerHTML = '';
		Error.alert("You must select a target page for the Events Calendar component to work");
	}
	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
		action          			: 'GetEventsCalendarMiniBlocks', 
		target_page_id				: target_page_id,
		wrapper_style				: $('wrapper_style').getValue()
	  },
							
	  onComplete: function(transport){ 
			refresh_function = "GetEventsCalendarMiniBlocks();";
			reserializePage();
	  },
			  
	  onFailure: function(transport){
		Error.alert(transport.responseText);
	  }
	});
 
}

/**
 * Events 
 */
function GetEventsRegistrationBlocks(){

	var event_page_id = $('event_page_id').getValue();
	var success_page_id	= $('success_page_id').getValue();
	
	if(event_page_id) {
		new Ajax.Updater('items', PAGE_AJAX_URL, {
		  parameters: {
			action 					: 'GetEventsRegistrationBlocks' ,
			event_page_id			: event_page_id,
			success_page_id			: success_page_id
		  },
								
		  onComplete: function(transport){ 
				refresh_function = "GetEventsRegistrationBlocks();";
				reserializePage();
		  },
				  
		  onFailure: function(transport){
			Error.alert(transport.responseText);
		  }
		});
	} else {
		$('items').innerHTML = '';
		Error.alert("You must select the page where Events are displayed. ");
	}
}

/**
 * Media Library
 */
function GetMediaLibraryBlocks(){
	// options for download are only to prompt and show in browswer. 
	if($('file_click_action_prompt').checked){ 	var file_click_action = 'prompt'; } 
	if($('file_click_action_browser').checked){ var file_click_action = 'browser'; } 

	new Ajax.Updater('items', PAGE_AJAX_URL, {
	  parameters: {
		action          			: 'GetMediaLibraryBlocks',
		file_click_action			: file_click_action,
		wrapper_style				: $F('wrapper_style')
		
	  },
							
	  onComplete: function(transport){ 
			refresh_function = "GetMediaLibraryBlocks();";
			reserializePage();
	  },
			  
	  onFailure: function(transport){
		Error.alert(transport.responseText);
	  }
	});
}



/**
 * Media Library Lists
 */
function GetMediaLibraryListBlocks(){
	// options can be to download, view in browswer and take to the description page. 
	if($('file_click_action_prompt').checked){ 	var file_click_action = 'prompt'; } 
	if($('file_click_action_browser').checked){ var file_click_action = 'browser'; } 
	if($('file_click_action_show').checked){ 	var file_click_action = 'show'; } 

	if(file_click_action == 'show' && $F('ml_page_id') == 0) {
		Error.alert("Can't choose the 'go to info page' option because there's no target page set");
	}

	new Ajax.Updater('items', PAGE_AJAX_URL, {
		  parameters: {
			action 				: 'GetMediaLibraryListBlocks',
			media_category_id 	: $F('media_category_id'),
			tag_id 				: $F('tag_id'),
			items_to_display	: $F('items_to_display'),
			wrapper_style		: $F('wrapper_style'),
			ml_page_id			: $F('ml_page_id'),
			file_click_action	: file_click_action
		  },
								
		  onComplete: function(transport){ 
				refresh_function = "GetMediaLibraryListBlocks();";
				reserializePage();
		  },
				  
		  onFailure: function(transport){
			Error.alert(transport.responseText);
		  }
	});
}

/**
 * Video Display
 */
function GetVideoDisplayBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
		  parameters: {
			action 				: 'GetVideoDisplayBlocks',
			tag_id 				: $F('tag_id'),
			wrapper_style		: $F('wrapper_style'),
			enable_comments		: $F('enable_comments'),
			mod_comments		: $F('mod_comments'),
			censor_comments		: $F('censor_comments'),
			video_w				: $F('video_w'),
			video_h				: $F('video_h'),
			disable_video_list	: $F('disable_video_list'),
			total_videos_in_list: $F('total_videos_in_list'),
			videolist_thumb_w	: $F('videolist_thumb_w'),
			videolist_thumb_h	: $F('videolist_thumb_h')
		  },
								
		  onComplete: function(transport){ 
				refresh_function = "GetVideoDisplayBlocks();";
				reserializePage();
		  },
				  
		  onFailure: function(transport){
			Error.alert(transport.responseText);
		  }
	});
}


/**
 * Video Lists
 */
function GetVideoListBlocks(){
	if($('sort_by_date').checked){ var sort_by = 'date'; } 
	if($('sort_by_alpha').checked){ var sort_by = 'alpha'; } 
	if($('sort_by_popular_long').checked){ var sort_by = 'hits_long'; } 
	if($('sort_by_popular_med').checked){ var sort_by = 'hits_med'; } 
	if($('sort_by_popular_short').checked){ var sort_by = 'hits_short'; } 
	
	new Ajax.Updater('items', PAGE_AJAX_URL, {
		  parameters: {
			action 				: 'GetVideoListBlocks',
			tag_id 				: $F('tag_id'),
			video_page_id 		: $F('video_page_id'),
			items_to_display	: $F('items_to_display'),
			sort_by				: sort_by,
			display_style		: $F('display_style'),
			wrapper_style		: $F('wrapper_style'),
			truncate_title		: $F('truncate_title'),
			video_w				: $F('video_w'),
			video_h				: $F('video_h'),
			thumb_w				: $F('thumb_w'),
			thumb_h				: $F('thumb_h'),
			truncate_text		: $F('truncate_text')
		  },
								
		  onComplete: function(transport){ 
				refresh_function = "GetVideoListBlocks();";
				reserializePage();
		  },
				  
		  onFailure: function(transport){
			Error.alert(transport.responseText);
		  }
	});
}
/**
 * Video Lists Mini
 */
function GetVideoListMiniBlocks(){
	
	var specific_video_id	= 0;
	var tag_id 				= $F('tag_id');
	var sort_by 			= 0 ;
	
	if($('sort_by_latest').checked) {
		var sort_by 			= 0;
	} else if ($('sort_by_random').checked) {
		var sort_by 			= 1;
	} else if ($('sort_by_popular_long').checked) {
		var sort_by 			= 3;
	} else if ($('sort_by_popular_med').checked) {
		var sort_by 			= 4;
	} else if ($('sort_by_popular_short').checked) {
		var sort_by 			= 5;
	} else if ($('sort_by_specific').checked) {
		var sort_by 			= 2;
		var tag_id 				= 0;
		var specific_video_id	= $F('specific_video_id');
	} 

	if($('heading_option_off').getValue()) {
		var heading_option = 0;
	} else if ($('heading_option_on').getValue()) {
		var heading_option = 1;
	} 

	new Ajax.Updater('items', PAGE_AJAX_URL, {
		  parameters: {
				action 				: 'GetVideoListMiniBlocks',
				video_page_id		: $F('target_page_id'),
				sort_by				: sort_by,
				tag_id				: tag_id,
				specific_video_id 	: specific_video_id,
				heading_option		: heading_option,
				wrapper_style		: $F('wrapper_style')
		  },
								
		  onComplete: function(transport){ 
				refresh_function = "GetVideoListMiniBlocks();";
				reserializePage();
		  },
				  
		  onFailure: function(transport){
			Error.alert(transport.responseText);
		  }
	});
}

/**
 *  Site Updates
 */
function GetSiteUpdatesBlocks(){
	if($('site_updates_type_upds').checked) {
		var sort_by = null;
	} else {
		var sort_by = $F('sort_by');
	}
	
	new Ajax.Updater('items', PAGE_AJAX_URL, {
		  parameters: {
				action 				: 'GetSiteUpdatesBlocks',
				setting_list_id		: $F('setting_list_id'),
				truncate_chars		: $F('truncate_chars'),
				items_to_display	: $F('items_to_display'),
				show_thumb			: $F('show_thumb'),
		  		thumb_width			: $F('thumb_width'),
				thumb_height		: $F('thumb_height'),
				show_rss_feed		: $F('show_rss_feed'),
		  		show_pagination		: $F('show_pagination'),
				wrapper_style		: $F('wrapper_style'),
				show_type_icon		: $F('show_type_icon'),
				show_heading		: $F('show_heading'),
				truncate_title		: $F('truncate_title'),
				sort_by				: sort_by
		  },
								
		  onComplete: function(transport){ 
				refresh_function = "GetSiteUpdatesBlocks();";
				reserializePage();
		  },
				  
		  onFailure: function(transport){
			Error.alert(transport.responseText);
		  }
	});
}

/* Site Updates ontype click */
function fncPageManager_SiteUpdates_OnClickType(selected_item){
	
	new Ajax.Request(PAGE_AJAX_URL, {
	  	parameters: { 
			action  : 'Page_SiteUpdates_OnClickType', 
			site_updates_type: selected_item
		},
	  	evalScripts : true,
	  	onSuccess : function(transport){
			
	  		var arrLists = transport.responseJSON;
			$('setting_list_id').options.length = 1;	
		  	$('setting_list_id').options[0] = new Option("Select one", 0);
			
	  		arrLists.each(function(list){
		  		$('setting_list_id').options[$('setting_list_id').options.length] = new Option(list.site_updates_settings_name, list.site_updates_settings_id);
		  	});
			
			if(selected_item == 'popular') { 
				$('layerSortBy').show(); 
			} else { 
				$('layerSortBy').hide(); 
			}
			
	  	}, 
	  	onFailure: function(transport){
			Error.alert(transport.responseText);
		}
	});
}

/**
 *  Features Player
 */
function GetFeaturesPlayerBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
		  parameters: {
				action 				: 'GetFeaturesPlayerBlocks',
				tag_id				: $F('tag_id'),
				player_id			: $F('player_id'),
				items_to_display	: $F('items_to_display'),
				image_width			: $F('image_width'),
				image_height		: $F('image_height'),
		  		thumb_width			: $F('thumb_width'),
				thumb_height		: $F('thumb_height'),
				truncate_title		: $F('truncate_title'),
		  		truncate_text		: $F('truncate_text'),
				wrapper_style		: $F('wrapper_style'),
				secs_delay			: $F('secs_delay'),
				hex_text_color		: $F('hex_text_color'),
				hex_link_color		: $F('hex_link_color'),
				hex_title_color		: $F('hex_title_color'),
				img_aspect_ratio	: $F('img_aspect_ratio')
		  },
								
		  onComplete: function(transport){ 
				refresh_function = "GetFeaturesPlayerBlocks();";
				reserializePage();
		  },
				  
		  onFailure: function(transport){
			Error.alert(transport.responseText);
		  }
	});
}

/**
 *  StoreAutoAddUnit
 */
function GetStoreAutoAddUnitBlocks(){
	new Ajax.Updater('items', PAGE_AJAX_URL, {
		  parameters: {
				action 				: 'GetStoreAutoAddUnitBlocks',
				checkout_page_id	: $F('checkout_page_id'),
				product_unit_id		: $F('product_unit_id')
		  },
								
		  onComplete: function(transport){ 
				refresh_function = "GetStoreAutoAddUnitBlocks();";
				reserializePage();
		  },
				  
		  onFailure: function(transport){
			Error.alert(transport.responseText);
		  }
	});
}














