var window_loaded = false;
var states = {"Alabama":"AL","Alaska":"AK","American Samoa":"AS","Arizona":"AZ","Arkansas":"AR","California":"CA","Colorado":"CO","Connecticut":"CT","Delaware":"DE","District of Columbia":"DC","Florida":"FL","Georgia":"GA","Guam":"GU","Hawaii":"HI","Idaho":"ID","Illinois":"IL","Indiana":"IN","Iowa":"IA","Kansas":"KS","Kentucky":"KY","Louisiana":"LA","Maine":"ME","Maryland":"MD","Massachusetts":"MA","Michigan":"MI","Minnesota":"MN","Mississippi":"MS","Missouri":"MO","Montana":"MT","Nebraska":"NE","Nevada":"NV","New Hampshire":"NH","New Jersey":"NJ","New Mexico":"NM","New York":"NY","North Carolina":"NC","North Dakota":"ND","Northern Marianas Islands":"MP","Ohio":"OH","Oklahoma":"OK","Oregon":"OR","Pennsylvania":"PA","Puerto Rico":"PR","Rhode Island":"RI","South Carolina":"SC","South Dakota":"SD","Tennessee":"TN","Texas":"TX","Utah":"UT","Vermont":"VT","Virginia":"VA","Virgin Islands":"VI","Washington":"WA","West Virginia":"WV","Wisconsin":"WI","Wyoming":"WY"};
Event.observe(window, 'load', function() { window_loaded = true; });

Memberfuse = {
    init: function(parent){
        Memberfuse.attachEventObservers(parent);
        Memberfuse.fadeElements(parent);
        Memberfuse.WndManager.attachWnds(parent);
        Memberfuse.attachAjaxTooltips();
        Memberfuse.initFormMessages();
        Memberfuse.clearAllTooltips();
    },
	attachEventObservers: function(parent){
	    Memberfuse.attachEventObserver('asyncForm','submit',Memberfuse.Forms.asyncFormSubmit,parent);
	    Memberfuse.attachEventObserver('asyncAction','click',Memberfuse.asyncActionClick,parent);
	    Memberfuse.attachEventObserver('calendar','click',Memberfuse.calendarClick,parent);
	    Memberfuse.attachEventObserver('cal_link','click',Memberfuse.calendarClick,parent);
	    Memberfuse.attachEventObserver('CtrlExpander','click',Memberfuse.expanderClick,parent);
	    Memberfuse.attachEventObserver('saveitem_btn','click',Memberfuse.savebtnClick,parent);
	    if (!window_loaded) {
	    	/* If window is not yet loaded, wait before triggering wysiwyg */
	    	Event.observe(window, 'load', function() { Memberfuse.wysiwyg();});
	    } else {
	    	/* Window is already loaded, trigger wysiwyg */
	    	/* Most-likely this case is triggered when an ajax call completes */
	    	Memberfuse.wysiwyg();
	    }
	},
	attachEventObserver: function(className,event,observer,parent){
	    if(parent){
	        if(Object.isElement(parent)){
	            $A($(parent).getElementsByClassName(className)).each(function(e){
	                e.observe(event,observer);
	            });
	        }
	    }
	    else{
	       $$('.' + className).each(function(e){
	                e.observe(event,observer);
	       });
	    }
	},
	fadeElements: function(parent){
	   if(parent){
            if(Object.isElement(parent)){
                $A($(parent).getElementsByClassName('fade')).each(function(e){
                    e.fade({ duration: 3.0, delay: 3.0 });
                });
            }
        }
        else{
           $$('.fade').each(function(e){
                e.fade({ duration: 3.0, delay: 3.0 });
           });
        }
	},
	asyncActionClick: function(event){
	   element = event.element();
	   while(!element.href ||  element.tagName != 'A'){
	       element = $(element.up());
	       if(!element){
	           return;
	       }
	   }
	   new Ajax.Request(element.href,{
	       element: $(element),
	       onException: function(requestor,exception){
	           alert(exception);
	       },
	       onFailure: function(request,json){
               alert('There was a problem processing the request');
           }
	   });
	   event.stop();
	},
	calendarClick: function(event)
	{
		element = event.element();
		while(!element.href ||  element.tagName != 'A')
		{
			element = $(element.up());
			if(!element)
			{
				return;
			}
		}
		
		if(!$('calendar'))
		{
			var caldiv = document.createElement('div');
			caldiv.setAttribute('id','calendar');
			document.body.appendChild(caldiv);
		}
		
		var calendar = new CalendarPopup("calendar");
		calendar.select($(element.rel),element.id,'MM/dd/yyyy'); return false;
		event.stop();
	},
	savebtnClick: function(event)
	{
		element = event.element();
		while(!element.href ||  element.tagName != 'A')
		{
			element = $(element.up());
			if(!element)
			{
				return;
			}
		}
		var parent_div = element.up();
		parent_div.innerHTML = '<img src="/themes/global/default/normal/images/icons/ajax_loading_icon.gif" />';
	   new Ajax.Request(element.href,{
	       element: $(element),
	       onException: function(requestor,exception){
	           alert(exception);
	       },
	       onFailure: function(request,json){
               alert('There was a problem processing the request');
           },
		   onSuccess: function(transport){
				parent_div.innerHTML = '<a><img src="/themes/global/default/normal/images/icons/redstar_16.png" class="icon" /></a>';
		   }
	   });
	   event.stop();
	},
	expanderClick: function(event)
	{
		element = event.element().up().down('ul');
        if(element)
        {
          if (element.visible() == true) {
        	  event.element().innerHTML = '+';  
          } else {
        	  event.element().innerHTML = '&ndash;';  
          }
		  Effect.toggle(element, 'slide', { duration: 0.2 });
		}
		event.stop();
	},
	clearAllTooltips:function()
	{
		$$('.tooltip').each(function(element) { 
			element.hide();
		});
	},
	clearAllParentTitles:function(element)
	{
		elements = element.ancestors();
		for(var x=0;x<elements.length;x++) {
			if (elements[x].title.length > 0) {
				elements[x].title = '';
			}
		}
	},
	attachAjaxTooltips:function()
	{
		var obj = $$('.AjaxTip');
		
		if(obj.length > 0)
		{
			for(var i in obj)
			{
				
				obj[i].onmouseover = AjaxTip.getContent;
				obj[i].onmouseout = AjaxTip.clear;  
				obj[i].onmousemove = AjaxTip.updatePosition;
			}
			
			if(!$('ajaxTip'))
			{
				var tooltipdiv = document.createElement('div');
				tooltipdiv.setAttribute('id','ajaxTip');
				tooltipdiv.className = ''; 
				tooltipdiv.style.cssText = 'display: none;position: absolute;z-index: 1000;top:100;left:100;';
				
				var tt_content = '';
				tt_content += '<img src="/images/loading.gif" alt="loading" style="display: block; margin: auto;" />';
				
				tooltipdiv.innerHTML = tt_content;
				
				document.body.appendChild(tooltipdiv);
			}
		}
	},
	initFormMessages:function()
	{
		$$('.form_heading a.close').each(function(e){
			e.observe('click',function(e2){
				e.up().up().up().fade({duration:0.3});
			});
		});
	},
	setPageMessage:function setPageMessage (text, cssClass, fade)
	{
		if(typeof cssClass == 'undefined')
		{
			cssClass = 'success';
		}
		
		if(typeof fade == 'undefined')
		{
			fade = true;
		}
		
		$('pageMessage').innerHTML = '<div id="appMessage" class="appMessage ' + cssClass + '">' + text + '</div>';
		
		if(fade == true)
		{
			/*$('appMessage').fade({delay: 3.0});*/
		}
	},
	clearPageMessage:function setPageMessage ()
	{
		$('pageMessage').innerHTML = '';
	},
	refreshAdminMemberDirectoryRow: function(user_id, action)
	{
		var row = $('user_' + user_id);
		var classSplit = new String(row.className).split(' ');
		var newClass = '';
		var i;
		
		if(action == 'activate')
		{
			row.removeClassName('deactivated').addClassName('activated');
		}
		
		if(action == 'deactivate')
		{
			row.removeClassName('activated').addClassName('deactivated');
		}
		
		new Ajax.Updater('user_' + user_id, '/members/admin/getdirectoryrow/id/' + user_id,{
											onComplete:function(){
												Memberfuse.init($('user_' + user_id));
											}
										});
	},
	refreshAdminGroupDirectoryRow: function(group_id, action)
	{
		var row = $('group_' + group_id);
		var classSplit = new String(row.className).split(' ');
		var newClass = '';
		var i;
		
		if(action == 'activate')
		{
			row.removeClassName('deactivated').addClassName('activated');
		}
		
		if(action == 'deactivate')
		{
			row.removeClassName('activated').addClassName('deactivated');
		}
		
		new Ajax.Updater('group_' + group_id, '/groups/admin/getdirectoryrow/id/' + group_id,{
											onComplete:function(){
												Memberfuse.init($('group_' + group_id));
											}
										});
	},
	refreshAdminEventDirectoryRow: function(event_id, action)
	{
		var row = $('event_' + event_id);
		var classSplit = new String(row.className).split(' ');
		var newClass = '';
		var i;
		
		if(action == 'activate')
		{
			row.removeClassName('deactivated').addClassName('activated');
		}
		
		if(action == 'deactivate')
		{
			row.removeClassName('activated').addClassName('deactivated');
		}
		
		new Ajax.Updater('event_' + event_id, '/events/admin/geteventrow/id/' + event_id,{
											onComplete:function(){
												Memberfuse.init($('event_' + event_id));
											}
										});
	},
	refreshAdminEventcalDirectoryRow: function(event_id, action)
	{
		var row = $('event_' + event_id);
		var classSplit = new String(row.className).split(' ');
		var newClass = '';
		var i;
		
		if(action == 'activate')
		{
			row.removeClassName('deactivated').addClassName('activated');
		}
		
		if(action == 'deactivate')
		{
			row.removeClassName('activated').addClassName('deactivated');
		}
		
		new Ajax.Updater('event_' + event_id, '/eventcal/admin/geteventrow/id/' + event_id,{
											onComplete:function(){
												Memberfuse.init($('event_' + event_id));
											}
										});
	},
	refreshAdminResourceDirectoryRow: function(resource_id)
	{
		var row = $('resource_' + resource_id);
		var classSplit = new String(row.className).split(' ');
		var newClass = '';
		var i;
		
		for(i = 0; i<classSplit.length; i++)
		{
			if(classSplit[i] == 'deactivated')
			{
				newClass += ' activated';
			}
			else if(classSplit[i] == 'activated')
			{
				newClass += ' deactivated';
			}
			else
			{
				newClass += ' ' + classSplit[i];
			}
		}
		
		new Ajax.Updater('resource_' + resource_id, '/resources/admin/getdirectoryrow/id/' + resource_id,{
											onComplete:function(){
												Memberfuse.init($('resource_' + resource_id));
												row.className = newClass;
											}
										});
	},
	refreshAdminGroupCategoryRow: function(category_id)
	{
		var row = $('category_' + category_id);
		var classSplit = new String(row.className).split(' ');
		var newClass = '';
		var i;
		
		for(i = 0; i<classSplit.length; i++)
		{
			if(classSplit[i] == 'deactivated')
			{
				newClass += ' activated';
			}
			else if(classSplit[i] == 'activated')
			{
				newClass += ' deactivated';
			}
			else
			{
				newClass += ' ' + classSplit[i];
			}
		}
		
		new Ajax.Updater('category_' + category_id, '/groups/admin/getcategoryrow/id/' + category_id,{
											onComplete:function(){
												Memberfuse.init($('category_' + category_id ) );
												row.className = newClass;
											}
										});
	},
	bulkActivate: function()
	{
		var checkboxes = $$(".adminMemberDirectoryCheckBox");
		var ids = '';
		var comma = '';
		var i;
		
		for(i = 0; i<checkboxes.length; i++)
		{
			if(checkboxes[i].checked)
			{
				ids += comma + checkboxes[i].getAttribute('rel');
				comma = ',';
			}
		}
		
		new Ajax.Request('/members/admin/bulkactivate?ids=' + ids,
							{
								onComplete: function(transport)
								{
									if(transport.responseText == 'success')
									{
										var idSplit = new String(ids).split(',');
										
										for(i = 0; i<idSplit.length; i++)
										{
											Memberfuse.refreshAdminMemberDirectoryRow(idSplit[i], 'activate');
										}
										
										Memberfuse.setPageMessage('The members have been activated.');
									}
									else
									{
										Memberfuse.setPageMessage('There was an error activating the members.', 'error');
									}
								}
							}
						);
	},
	bulkDeactivate: function()
	{
		var checkboxes = $$(".adminMemberDirectoryCheckBox");
		var ids = '';
		var comma = '';
		var i;
		
		for(i = 0; i<checkboxes.length; i++)
		{
			if(checkboxes[i].checked)
			{
				ids += comma + checkboxes[i].getAttribute('rel');
				comma = ',';
			}
		}
		
		new Ajax.Request('/members/admin/bulkdeactivate?ids=' + ids,
							{
								onComplete: function(transport)
								{
									if(transport.responseText == 'success')
									{
										var idSplit = new String(ids).split(',');
										
										for(i = 0; i<idSplit.length; i++)
										{
											Memberfuse.refreshAdminMemberDirectoryRow(idSplit[i], 'deactivate');
										}
										
										Memberfuse.setPageMessage('The members have been deactivated.');
									}
									else
									{
										Memberfuse.setPageMessage('There was an error deactivating the members.', 'error');
									}
								}
							}
						);
	},
	bulkDelete: function()
	{
		var checkboxes = $$(".adminMemberDirectoryCheckBox");
		var ids = '';
		var comma = '';
		var i;
		
		for(i = 0; i<checkboxes.length; i++)
		{
			if(checkboxes[i].checked)
			{
				ids += comma + checkboxes[i].getAttribute('rel');
				comma = ',';
			}
		}
		
		new Ajax.Request('/members/admin/bulkdelete?ids=' + ids,
							{
								onComplete: function(transport)
								{
									if(transport.responseText == 'success')
									{
										var idSplit = new String(ids).split(',');
										
										for(i = 0; i<idSplit.length; i++)
										{
											$("user_" + idSplit[i]).fade();
										}
										
										Memberfuse.setPageMessage('The members have been deleted.');
									}
									else
									{
										Memberfuse.setPageMessage('There was an error deleting the members.', 'error');
									}
								}
							}
						);
	},
	bulkMessage: function()
	{
		if($('all').value == 'no')
		{
			var checkboxes = $$(".adminMemberDirectoryCheckBox");
			var ids = '';
			var comma = '';
			var i;
			
			for(i = 0; i<checkboxes.length; i++)
			{
				if(checkboxes[i].checked)
				{
					ids += comma + checkboxes[i].getAttribute('rel');
					comma = ',';
				}
			}
			
			var mass_msg_links = $$(".massmessage");
			
			for(i = 0; i<mass_msg_links.length; i++)
			{
				mass_msg_links[i].href = '/members/admin/bulkmessage/ids/' + ids;
			}
		}
		
		return true;
	},
	bulkContactMessage: function()
	{
		if($('all').value == 'no')
		{
			var checkboxes = $$(".adminMemberDirectoryCheckBox");
			var ids = '';
			var comma = '';
			var i;
			
			for(i = 0; i<checkboxes.length; i++)
			{
				if(checkboxes[i].checked)
				{
					ids += comma + checkboxes[i].getAttribute('rel');
					comma = ',';
				}
			}
			
			var mass_msg_links = $$(".massmessage");
			
			for(i = 0; i<mass_msg_links.length; i++)
			{
				mass_msg_links[i].href = '/messaging/compose/index/cmd/to/user/' + ids;
			}
		}
		
		return true;
	},
	checkAllBoxes: function(boxClass, number)
	{
		var checkboxes = $$("." + boxClass);
		
		for(i = 0; i<checkboxes.length; i++)
		{
			checkboxes[i].checked = true;
		}
		 
		$('check').hide();
		$('uncheck').show();
//		$('all').setAttribute('onclick', 'Memberfuse.uncheckAllBoxes("' + boxClass + '");');
		Memberfuse.setPageMessage('All members on this page are selected.  <a href="javascript:void(0);" onclick="Memberfuse.selectAllMembers(\'' + boxClass + '\', \'' + number + '\');">Select all ' + number + ' members in the community.</a>', 'info', false);
	},
	uncheckAllBoxes: function(boxClass)
	{
		var checkboxes = $$("." + boxClass);
		Memberfuse.clearPageMessage();
		for(i = 0; i<checkboxes.length; i++)
		{
			checkboxes[i].checked = false;
		}
		$('uncheck').hide();
		$('check').show();
//		$('all').setAttribute('onclick', 'Memberfuse.checkAllBoxes("' + boxClass + '");');
	},
	checkAllContactBoxes: function(boxClass, number)
	{
		var checkboxes = $$("." + boxClass);
		
		for(i = 0; i<checkboxes.length; i++)
		{
			checkboxes[i].checked = true;
		}
		
//		$('all').setAttribute('onclick', 'Memberfuse.uncheckAllBoxes("' + boxClass + '");');
		Memberfuse.setPageMessage('All contacts on this page are selected.  <a href="javascript:void(0);" onclick="Memberfuse.selectAllContactMembers(\'' + boxClass + '\', \'' + number + '\');">Select all ' + number + ' members in the community.</a>', 'info', false);
	},
	selectAllMembers: function(boxClass, number)
	{
		Memberfuse.setPageMessage('All ' + number + ' members in the community are selected.  <a href="javascript:void(0);" onclick="Memberfuse.deselectAllMembers(\'' + boxClass + '\');">Clear selection.</a>', 'info', false);
		$('all').value = 'yes';
		
		var mass_msg_links = $$(".massmessage");
		
		for(i = 0; i<mass_msg_links.length; i++)
		{
			mass_msg_links[i].href = '/members/admin/bulkmessage/ids/all';
		}
	},
	selectAllContactMembers: function(boxClass, number)
	{
		Memberfuse.setPageMessage('All ' + number + ' contacts are selected.  <a href="javascript:void(0);" onclick="Memberfuse.deselectAllMembers(\'' + boxClass + '\');">Clear selection.</a>', 'info', false);
		$('all').value = 'yes';
		
		var mass_msg_links = $$(".massmessage");
		
		for(i = 0; i<mass_msg_links.length; i++)
		{
			mass_msg_links[i].href = '/messaging/compose/index/cmd/toallcontact';
		}
	},	
	deselectAllMembers: function(boxClass)
	{
		Memberfuse.uncheckAllBoxes(boxClass);
		Memberfuse.clearPageMessage();
		$('all').value = 'no';
		
		var mass_msg_links = $$(".massmessage");
		
		for(i = 0; i<mass_msg_links.length; i++)
		{
			mass_msg_links[i].href = '/members/admin/bulkmessage';
		}
	},
	resetChecks: function(boxClass)
	{
		Memberfuse.clearPageMessage();
		$('uncheck').hide();
		$('check').show();		
		
	},
	wysiwyg: function()
	{
		if (typeof tinyMCE == 'object') {
			
			/**
			 * Remove any existing instances and re-init to prevent multiple-inits
			 */
			$$('textarea.mceeditor').each(function (element) {
				if (element.id && $(element.id + '_parent')) {
					tinyMCE.getInstanceById(element.id).remove();
				}
			});
			
			tinyMCE.init({ 
				mode : "specific_textareas",
				editor_selector : "memfuzeEditor-empty",
				theme: "advanced",
				plugins: "spellchecker,paste",
				theme_advanced_buttons1 : "",
				theme_advanced_buttons2 : "",
				theme_advanced_buttons3 : "",
				theme_advanced_toolbar_location : "top",
				theme_advanced_toolbar_align : "left",
				theme_advanced_statusbar_location : "",
				theme_advanced_resizing : true,
				content_css: "/themes/global/default/css/forms.css",
				skin: "defaultSkin no", /* hides the toolbar */
				convert_urls: false,
				relative_urls: false
			});
			
			tinyMCE.init({ 
				mode : "specific_textareas",
				editor_selector : "memfuzeEditor-wiki",
				theme: "advanced",
				theme: "advanced",
				plugins: "spellchecker,paste,fullscreen,mfimages",
				theme_advanced_buttons1 : "formatselect,|,pastetext,pasteword,|,bold,italic,underline,|,bullist,numlist,|,link,unlink,|,forecolor,backcolor,|,spellchecker,fullscreen,image",
				theme_advanced_buttons2 : "",
				theme_advanced_buttons3 : "",
				theme_advanced_toolbar_location : "top",
				theme_advanced_toolbar_align : "left",
				theme_advanced_statusbar_location : "bottom",
				theme_advanced_resizing : true,
				content_css: "/themes/global/default/css/forms.css",
				convert_urls: false,
				relative_urls: false,
				file_browser_callback : 'mfimage_filebrowser'
			});
			
			
			if ((typeof window['Memberfuse_wysiwyg_init'] == 'function')) {
				Memberfuse_wysiwyg_init();
			}

			/* TinyMCE has trouble posting information when rendered in a modal box, this fixes it*/
			$$('form input[type="submit"]').each(function(element) {
				Event.stopObserving(element, 'click', Memberfuse.wysiwygSave); /* Prevent multiple event handlers from being attached */
				Event.observe(element, 'click', Memberfuse.wysiwygSave);
			});
		}
	},
	wysiwygSave: function () {
		tinyMCE.triggerSave();
	},
	switchWidget: function(widget_id)
	{
		$$(".middle_widgets").each(function(e){
	                e.hide();
					$(e.id + "_tab").removeClassName("active");
	            });
		
		$(widget_id).show();
		$(widget_id + "_tab").addClassName("active");
	},
	open_modal_box: function(header,action)
	{
		var modal_top = new Element('div',{  
		   className: 'top'  
		}); 
		var closeLnk = new Element('a');
		
		closeLnk.onclick = function(){
		   Memberfuse.WndManager.closeWindow(this);
		};
		closeLnk.insert('Close');
		modal_top.insert(closeLnk);
		
		var title = new Element('h1');
		title.insert(header);
		modal_top.insert(title);
		
		var modal_middle = new Element('div',{  
		   className: 'middle'  
		}); 
		var modal_bottom = new Element('div',{  
		   className: 'bottom'  
		}); 
		
		//start with the default options
		var options = {
		   className: 'modalbox',
		   closeOnClick: 'overlay',
		   insertRemoteContentAt: modal_middle,
		   fade: true,
		   fadeDuration: 0.15,
		   reloadContent: true,
		   id: 'bob'
		};
		
		options.className += ' ctrlCntr';
		options.afterInitialize = Memberfuse.WndManager.indexWnd;
		options.onRemoteContentLoaded = Memberfuse.WndManager.initWndContent;
		
		var pop = document.createElement('a');
		pop.setAttribute('id', 'modal_pop');
		pop.setAttribute('href',action);
		
		ctrl = Control.Modal.open(pop, options);
		
		ctrl.container.insert(modal_top);
		ctrl.container.insert(modal_middle);
		ctrl.container.insert(modal_bottom);
	},
	facebook_on_login: function()
	{
		if($('fb-link') && $('fb_ajax_icon'))
		{
			$('fb-link').hide();
			$('fb_ajax_icon').show();
		}
		
		new Ajax.Request('/facebookconnect/index/auth',
							{
								onComplete: function(transport)
								{
									var response = transport.responseText;
									
									if(response == '200')
									{
										window.location = '/';
									}
									else if(response == '101')
									{
										Memberfuse.setPageMessage('It appears that your Facebook account is not linked to your community account yet.  Login and go to <a href="/settings">your settings</a> to set this up.', 'error');
										$('fb-link').show();
										$('fb_ajax_icon').hide();
									}
									else if(response == '201')
									{
										Memberfuse.open_modal_box('Permanently Link Account?','/facebookconnect/index/linkaccount');
									}
									else if(response == '210')
									{
										Memberfuse.open_modal_box('Permanently Link Account?','/facebookconnect/index/suggestaccount');
									}
								}
							}
						);
	},
	facebook_on_link: function()
	{
		Memberfuse.facebook_on_login();
	},
	facebook_on_logout: function()
	{
		window.location = '/login/logout';
	},
	facebook_on_register: function()
	{
		var fb_user = FB.Connect.get_loggedInUser();
		
		FB.Facebook.apiClient.users_getInfo([fb_user],['first_name','last_name','current_location'],
			function(info,ex)
			{
				Memberfuse.open_modal_box('Facebook Connect','/facebookconnect/index/registerinstructions');
				
				$('firstname').value = info[0]['first_name'];
				$('lastname').value = info[0]['last_name'];
				$('city').value = info[0]['current_location']['city'];
				$('state').value = states[info[0]['current_location']['state']];
			}
		);
	},
	refreshPermissionTable: function()
	{
		var checkboxes = $$(".edituserrolescheckbox");
		var ids = '';
		var comma = '';
		var i;
		
		for(i = 0; i<checkboxes.length; i++)
		{
			if(checkboxes[i].checked)
			{
				ids += comma + checkboxes[i].getAttribute('name');
				comma = ',';
			}
		}
		
		new Ajax.Updater('permissiontable', '/members/admin/getuserpermissiontable/userid/' + $("acl_user_id").value + '/roles/' + ids);
	},
	createCookie: function (name,value,days) {
		if (days) {
			var date = new Date();
			date.setTime(date.getTime()+(days*24*60*60*1000));
			var expires = "; expires="+date.toGMTString();
		}
		else var expires = "";
		document.cookie = name+"="+value+expires+"; path=/";
	},
	readCookie: function readCookie(name) {
		var nameEQ = name + "=";
		var ca = document.cookie.split(';');
		for(var i=0;i < ca.length;i++) {
			var c = ca[i];
			while (c.charAt(0)==' ') c = c.substring(1,c.length);
			if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
		}
		return null;
	},
	eraseCookie: function (name) {
		createCookie(name,"",-1);
	},
	resetConnection: function () {
	    new Ajax.Request('/safarifix.php',{asynchronous:false});
	},
	initProgressBar: function (id,iframe,form,callback_url) {
		var progress_bar = new Control.ProgressBar(id,{
			afterChange: function(value,active)
			{
				var error_container = $(form.id + '_' + 'messagePlaceholder');
				
			   try
			   {
					if(value > 0)
					{
						$('progress_percent').show();
						$('progress_percent').innerHTML = value + '%';
					}
					
					if(value == '100')
					{
						$(id).hide();
						$('progress_percent').innerHTML = '';
					}
				}
				catch(e)
				{
					error_container.insert('<div class="formMessage error">There was an error processing the upload response: ' + e.message + '</div>');
				}
			}
		});
		$(id).show();
		//$('file_field').hide();
		progress_bar.poll('/upload/getprogress/id/' + $('progress_key').value);
		setTimeout(function() {
			if (progress_bar.active) {
				progress_bar.stop();
				$(form.id + '_' + 'messagePlaceholder').insert('<div class="formMessage error">There was a problem uploading your photo. Please try again.</div>');
			}
		}, 10000);
	},
	startCropper: function(upload_results) {
		var error_container = $('uploadform_' + 'messagePlaceholder'); 
		if(upload_results['status'])
		{
			var token = upload_results['token'];
			
			if(typeof processupload == 'function')
			{
				processupload(token);
			}
		}
		else
		{
			var errors = upload_results['messages'];
			error_container.innerHTML = '';
			
			for( var i=0 ; i<errors.length; i++ )
			{
				error_container.insert('<div class="formMessage error">' + errors[i] + '</div>');
			}
		}
	},
	initImageCropper: function(ratio_w,ratio_h){
		new Cropper.ImgWithPreview(
			'tmp_slide_img',
			{
				previewWrap: 'preview_img',
				minWidth: 120,
				minHeight: 120,
				
				ratioDim:
				{
					x: ratio_w,
					y: ratio_h
				},
				
				onEndCrop: onEndCrop
			}
		);
	}
};

function toggleDirectoryBox(obj,toggleId)
{
	Effect.toggle( toggleId, 'blind', { duration: .2 } );
	
	if($(toggleId).style['display'] == 'none')
	{
		obj.innerHTML = '<span>minimize</span>';
		obj.className = 'up';
	}
	else
	{
		obj.innerHTML = '<span>maximize</span>';
		obj.className = 'down';
	}
}

function toggleHelpBox(obj,toggleId,mini_text,maxi_text)
{
	Effect.toggle( toggleId, 'blind', { duration: .2 } );
	
	if($(toggleId).style['display'] == 'none')
	{
		obj.innerHTML = '<span>' + mini_text + '</span>';
		obj.className = 'up help';
	}
	else
	{
		obj.innerHTML = '<span>' + maxi_text + '</span>';
		obj.className = 'down help';
	}
}

function toggleSearchBox(obj,toggleId,mini_text,maxi_text)
{
	Effect.toggle( toggleId, 'blind', { duration: .2 } );
	
	if($(toggleId).style['display'] == 'none')
	{
		obj.innerHTML = '<span>' + mini_text + '</span>';
		obj.className = 'up';
	}
	else
	{
		obj.innerHTML = '<span>' + maxi_text + '</span>';
		obj.className = 'down';
	}
}

function toggleDisplay(obj,toggleId)
{
	Effect.toggle( toggleId, 'blind', { duration: .2 } );
	
	if($(toggleId).style['display'] == 'none')
	{
		obj.className = 'up';
	}
	else
	{
		obj.className = 'down';
	}
}

function showActions( element )
{
	status = document.getElementById( element ).style.display;
	if( status == 'block' )
	{
		document.getElementById( element ).style.display =' none';
	}
	else
	{
		document.getElementById( element ).style.display = 'block';
	}
}

document.observe('dom:loaded',function(){Memberfuse.init()});
