All pastes #185558 Raw Edit

Mine

public text v1 · immutable
#185558 ·published 2006-09-29 02:09 UTC
rendered paste body
<script type="text/javascript">

		var over_row_color = "#FAD3D6", off_row_color = "transparent";
		var over_row_font = "#000000" , off_row_font = "#5F5F5F";
		
		var sections = [];
		var permissions = [];
		
		var open_section = null;
		
		function roll_over_section(d)
		{
			if (open_section != d)
			{
				d.style.color = over_row_font;
				d.style.backgroundColor = over_row_color;
			}
		}
		
		function roll_off_section(d)
		{
			if (open_section != d)
			{
				d.style.color = off_row_font;
				d.style.backgroundColor = off_row_color;
			}
		}
		
		function add_permission(idPerm)
		{
			var f = document.forms.hiddenForm;
			var perm_exists = false, i, len = f.elements.length;
			var new_e;
			
			for (i = 0; i < len; i++)
			{
				if (f.elements[i].name == "perms" && f.elements[i].value == idPerm)
				{
					perm_exists = true;
					break;
				}
			}
			
			if (!perm_exists)
			{
				new_e = document.createElement("INPUT");
				new_e.setAttribute("type", "hidden");
				new_e.setAttribute("name", "perms");
				new_e.setAttribute("value", idPerm);
				
				f.appendChild( new_e );
				
				permissions.push( idPerm );
			}
		}
		
		function remove_permission(idPerm)
		{
			var f = document.forms.hiddenForm;
			var i, len = f.elements.length;
			var x, perm_len = permissions.length;
			var new_perm = [];
			
			for (i = 0; i < len; i++)
			{
				if (f.elements[i].name == "perms" && f.elements[i].value == idPerm)
				{
					f.removeChild( f.elements[i] );
					
					for (x = 0; x < perm_len; x++)
						if (permissions[x] != idPerm)
							new_perm.push( permissions[x] );
					
					permissions = new_perm;
					
					break;
				}
			}
		}
		
		function all_permissions(bool)
		{
			var i, len = sections.length;
			
			permissions = [];
			
			if (bool == true)
			{
				for (i = 0; i < len; i++)
				{
					permissions.push( sections[i].id );
					add_permission( sections[i].id );
				}
			}
			
			refresh_display();
		}
		
		function refresh_display()
		{
			if (!open_section)
				return;
			
			var section_name = open_section.getAttribute("id").replace(/~/g, " ");
			click_section(open_section, section_name);
		}
		
		function click_section(d, section_name)
		{
			var section = null;
			
			var i, len = sections.length;
			var x, perm_len = permissions.length;
			var div, chk, label, td = document.getElementById("perm_list");
			
			if (open_section)
				section = open_section;
			
			open_section = d;
			
			td.innerHTML = "";
			
			for (i = 0; i < len; i++)
			{
				if (sections[i].section_name != section_name)
					continue;
				
				div = document.createElement("DIV");
				div.className = "perm_list";
				div.onmouseover = function() { roll_over_section(this); }
				div.onmouseout = function() { roll_off_section(this); }

				chk = document.createElement("INPUT");
				chk.className = "chk";
				chk.setAttribute("type", "checkbox");
				chk.setAttribute("name", "perm_"+ sections[i].id);
				chk.setAttribute("id", "perm_"+ sections[i].id);
				chk.setAttribute("value", sections[i].id);
				chk.onclick = function()
				{
					if (this.checked)
						add_permission(this.value);
					else
						remove_permission(this.value);
				}
								
				label = document.createElement("label");
				label.appendChild( document.createTextNode( sections[i].name ) );
				label.attributes["for"].value = "perm_"+ sections[i].id;
				
				div.appendChild( chk );
				div.appendChild( label );
				
				td.appendChild( div );
				
				for (x = 0; x < perm_len; x++)
				{
					if (permissions[x] == sections[i].id)
					{
						chk.checked = true;
						break;
					}
				}
			}
			
			if (section)
				roll_off_section( section );
		}
		
		function display_sections()
		{
			var i, len = sections.length;
			var x, display_len, displayed = [];
			var display = true;
			
			for (i = 0; i < len; i++)
			{
				display = true;
				display_len = displayed.length;
				
				for (x = 0; x < display_len; x++)
				{
					if (displayed[x] == sections[i].section_name)
					{
						display = false;
						break;
					}
				}
				
				if (display)
				{
					document.write("<div id=\""+ sections[i].section_name.replace(/\s/g, "~") +"\" class=\"perm_section\" onmouseover=\"roll_over_section(this);\" onmouseout=\"roll_off_section(this);\" onclick=\"click_section(this, '"+ sections[i].section_name +"');\">");
					document.write( sections[i].section_name );
					document.write("</div>");
					
					displayed.push( sections[i].section_name );
				}
			}
		}
		
		<%
			while not rsAdminPerms.eof
				response.write "sections.push( {"
				response.write "id:"& rsAdminPerms("id") &", idParent:"
				
				if rsAdminPerms("idParent") <> "" then
					response.write rsAdminPerms("idParent")
				else
					response.write "null"
				end if
				
				response.write ", section_name:"""& rsAdminPerms("section_name") &""", name:"""& rsAdminPerms("display_name") &""" } );"& vbcrlf
				
				rsAdminPerms.moveNext
			wend

			while not rsFilePerms.eof
				response.write "sections.push( "& rsFilePerms("id") &" );"& vbcrlf
				rsFilePerms.moveNext
			wend
		%>
		
	</script>