Her finner du en oversikt over våre medlemmer

Senia Alperin

The Well

Opplevelsessenter

Martin Alternes

Webarbeider AS

Nettsider, Logoer og Animasjon

Bård Bergsjø

Opposite Lock AS

Agentur- og engroshandel

Kamil Ahmed Faraj

NAV // Alna

Sosialetjenester

Robert Gulbrandsen

Brandsen AS

Fritidsbåter og -utstyr

Bjørn Erik Hansen

toTALL AS

Butikk og logistikkløsninger

Vegard Haugen

Legal 24

Advokattjenester

Heidi Hoen

Brectus

Skilt og dekor

Ola Høva

Studio Fysio AS

Trening og fysioterapi

<style>
html,
body {

  -webkit-tap-highlight-color: transparent;
  -webkit-touch-callout: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

* {
  box-sizing: inherit;
  cursor: inherit;
  transition-duration: 0.2s;
  transition-property: none;
  transition-timing-function: cubic-bezier(0.42, 0, 0.58, 1);
}

label.field {
  border-radius: 2px;
  color: black;
  display: block;
  margin: 0px;
  max-width: 300px;
  padding: 8px;
  opacity: 0;
  position: relative;
  transition-property: opacity;
  z-index: 1;
}
label.field span {
  color: inherit;
  display: block;
  font-size: 16px;
  height: 20px;
  line-height: 20px;
  left: 9px;
  pointer-events: none;
  position: absolute;
  top: 32px;
  transform: scale(1) translateY(0);
  transition-property: color, font-size, top;
  z-index: 1;
}
label.field span.required::after {
  color: inherit;
  content: "*";
  display: block;
  height: 20px;
  left: -20px;
  line-height: 20px;
  position: absolute;
  text-align: center;
  top: 0;
  width: 20px;
}
.error label.field span {
  color: #F02318;
}
label.field .psuedo_select {
  background: rgba(255, 255, 255, 0);
  position: relative;
  border-color: black;
  border-style: solid;
  border-width: 0 0 2px 0;
  color: black;
  cursor: pointer;
  font-size: 14px;
  height: 24px;
  line-height: 24px;
  margin: 28px 0px 0 0;
  min-width: 250px;
  padding-top: 24px;
  outline: 0;
  z-index: 1;
}
label.field .psuedo_select::after {
  background: url("data:image/svg+xml;utf8,<svg fill='#666' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'> <path d='M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z'/> <path d='M0-.75h24v24H0z' fill='none'/> </svg>"), no-repeat;
  content: "";
  height: 24px;
  width: 24px;
  position: absolute;
  top: 0;
  right: 0;
  transition-property: background;
}
label.field .psuedo_select .selected {
  height: 24px;
  left: 1px;
  line-height: 24px;
  opacity: 0;
  position: absolute;
  top: 0;
  transform: translateY(24px);
  transition-property: opacity, transform;
  will-change: transform;
}
label.field .psuedo_select ul {
  background: #fff;
  box-shadow: 0 1px 4px 0 rgba(0, 0, 0, 0.14);
  display: block;
  height: 0;
  list-style: none;
  margin-top: 2px;
  opacity: 0;
  overflow: hidden;
  padding: 0px 10px 10px 10px;
  pointer-events: none;
  transition-property: height, opacity;
  width: 100%;
  z-index: 2;
}
label.field .psuedo_select ul li {
  height: 32px;
  padding: 8px 8px 8px 8px;
}
label.field .deselect {
  height: 100vh;
  left: 0;
  position: fixed;
  top: 0;
  width: 100vw;
  z-index: -1;
}
label.field.focused {
  color: black;
}
label.field.focused .psuedo_select {
  border-color: black;
}
label.field.focused .psuedo_select::after {
  background: url("data:image/svg+xml;utf8,<svg fill='#007BED' height='24' viewBox='0 0 24 24' width='24' xmlns='http://www.w3.org/2000/svg'> <path d='M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z'/> <path d='M0-.75h24v24H0z' fill='none'/> </svg>"), no-repeat;
}
label.field.focused .psuedo_select ul {
  opacity: 1;
  pointer-events: all;
}

  ul#img_category_options {
    min-height: 136px;
}

</style>



<label id="img_category_label" class="field" for="img_category" data-value="">
	<span>Sted</span>
	<div id="img_category" class="psuedo_select" name="img_category">
		<span class="selected"></span>
		<ul id="img_category_options" class="options">
			<li class="option" data-value="*">Alle</li>
			<li class="option" data-value="Oslo">Oslo</li>
 			<li class="option" data-value="Follo">Follo</li>
			<li class="option" data-value="Moss">Moss</li>

		</ul>
	</div>
</label>


<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.isotope/3.0.6/isotope.pkgd.min.js"></script>
<script>
$(document).ready(function() {
  // Initialize Isotope
  var $grid = $('.grid').isotope({
    itemSelector: '.box',
    layoutMode: 'fitRows'
  });

  // Function to create and manage filter display
  function manageFilterDisplay(filterValue, selectedText) {
    // Select elements by class instead of ID
    var $filterDisplayContainers = $('.filterDisplayContainer');
    // Clear previous filter display in all containers
    $filterDisplayContainers.each(function() {
      $(this).empty();
    });

    if (filterValue !== '*') {
      var $filterDisplay = $('<button class="filter-display">' + selectedText + ' <span class="remove-filter">×</span></button>');

      // Append the filter display button to each container
      $filterDisplayContainers.each(function() {
        $(this).append($filterDisplay.clone(true)); // Clone with events using .clone(true)
      });

      // Click event to remove filter, now set directly on the button
      $filterDisplay.on('click', '.remove-filter', function() {
        // Reset Isotope filter to show all
        $grid.isotope({ filter: '*' });
        // Reset the pseudo-select display
        $('#img_category .selected').text('Alle'); // or your default text
        // Clear all filter display containers
        $filterDisplayContainers.empty();
      });
    }
  }

  // Custom dropdown event handling
  $('#img_category_options').on('click', '.option', function() {
    var filterValue = $(this).attr('data-value');
    var selectedText = $(this).text();
    
    // Apply the filter to Isotope
    $grid.isotope({ filter: filterValue === '*' ? '*' : '[data-category="' + filterValue + '"]' });
    // Update the displayed selected value in the pseudo-select
    $('#img_category .selected').text(selectedText);

    // Manage filter display
    manageFilterDisplay(filterValue, selectedText);
  });
});
</script>



<script>

var util = {
		f: {
			addStyle: function (elem, prop, val, vendors) {
				var i, ii, property, value;
				if (!util.f.isElem(elem)) {
					elem = document.getElementById(elem);
				}
				if (!util.f.isArray(prop)) {
					prop = [prop];
					val = [val];
				}
				for (i = 0; i < prop.length; i += 1) {
					var thisProp = String(prop[i]),
						thisVal = String(val[i]);
					if (typeof vendors !== "undefined") {
						if (!util.f.isArray(vendors)) {
							vendors.toLowerCase() == "all"
								? (vendors = ["webkit", "moz", "ms", "o"])
								: (vendors = [vendors]);
						}
						for (ii = 0; ii < vendors.length; ii += 1) {
							elem.style[vendors[i] + thisProp] = thisVal;
						}
					}
					thisProp = thisProp.charAt(0).toLowerCase() + thisProp.slice(1);
					elem.style[thisProp] = thisVal;
				}
			},
			cssLoaded: function (event) {
				var child = util.f.getTrg(event);
				child.setAttribute("media", "all");
			},
			events: {
				cancel: function (event) {
					util.f.events.prevent(event);
					util.f.events.stop(event);
				},
				prevent: function (event) {
					event = event || window.event;
					event.preventDefault();
				},
				stop: function (event) {
					event = event || window.event;
					event.stopPropagation();
				}
			},
			getSize: function (elem, prop) {
				return parseInt(elem.getBoundingClientRect()[prop], 10);
			},
			getTrg: function (event) {
				event = event || window.event;
				if (event.srcElement) {
					return event.srcElement;
				} else {
					return event.target;
				}
			},
			isElem: function (elem) {
				return util.f.isNode(elem) && elem.nodeType == 1;
			},
			isArray: function (v) {
				return v.constructor === Array;
			},
			isNode: function (elem) {
				return typeof Node === "object"
					? elem instanceof Node
					: elem &&
							typeof elem === "object" &&
							typeof elem.nodeType === "number" &&
							typeof elem.nodeName === "string" &&
							elem.nodeType !== 3;
			},
			isObj: function (v) {
				return typeof v == "object";
			},
			replaceAt: function (str, index, char) {
				return str.substr(0, index) + char + str.substr(index + char.length);
			}
		}
	},
	//////////////////////////////////////
	// ok that's all the utilities      //
	// onto the select box / form stuff //
	//////////////////////////////////////
	form = {
		f: {
			init: {
				register: function () {
					console.clear(); // just cuz codepen
					var child,
						children = document.getElementsByClassName("field"),
						i;
					for (i = 0; i < children.length; i += 1) {
						child = children[i];
						util.f.addStyle(child, "Opacity", 1);
					}
					children = document.getElementsByClassName("psuedo_select");
					for (i = 0; i < children.length; i += 1) {
						child = children[i];
						child.addEventListener("click", form.f.select.toggle);
					}
				},
				unregister: function () {
					//just here as a formallity
					//call this to stop all ongoing timeouts are ready the page for some sort of json re-route
				}
			},
			select: {
				blur: function (field) {
					field.classList.remove("focused");
					var child,
						children = field.childNodes,
						i,
						ii,
						nested_child,
						nested_children;
					for (i = 0; i < children.length; i += 1) {
						child = children[i];
						if (util.f.isElem(child)) {
							if (child.classList.contains("deselect")) {
								child.parentNode.removeChild(child);
							} else if (child.tagName == "SPAN") {
								if (!field.dataset.value) {
									util.f.addStyle(child, ["FontSize", "Top"], ["16px", "32px"]);
								}
							} else if (child.classList.contains("psuedo_select")) {
								nested_children = child.childNodes;
								for (ii = 0; ii < nested_children.length; ii += 1) {
									nested_child = nested_children[ii];
									if (util.f.isElem(nested_child)) {
										if (nested_child.tagName == "SPAN") {
											if (!field.dataset.value) {
												util.f.addStyle(
													nested_child,
													["Opacity", "Transform"],
													[0, "translateY(24px)"]
												);
											}
										} else if (nested_child.tagName == "UL") {
											util.f.addStyle(nested_child, ["Height", "Opacity"], [0, 0]);
										}
									}
								}
							}
						}
					}
				},
				focus: function (field) {
					field.classList.add("focused");
					var bool = false,
						child,
						children = field.childNodes,
						i,
						ii,
						iii,
						nested_child,
						nested_children,
						nested_nested_child,
						nested_nested_children,
						size = 0;
					for (i = 0; i < children.length; i += 1) {
						child = children[i];
						util.f.isElem(child) && child.classList.contains("deselect")
							? (bool = true)
							: null;
					}
					if (!bool) {
						child = document.createElement("div");
						child.className = "deselect";
						child.addEventListener("click", form.f.select.toggle);
						field.insertBefore(child, children[0]);
					}
					for (i = 0; i < children.length; i += 1) {
						child = children[i];
						if (util.f.isElem(child) && child.classList.contains("psuedo_select")) {
							nested_children = child.childNodes;
							for (ii = 0; ii < nested_children.length; ii += 1) {
								nested_child = nested_children[ii];
								if (util.f.isElem(nested_child) && nested_child.tagName == "UL") {
									size = 0;
									nested_nested_children = nested_child.childNodes;
									for (iii = 0; iii < nested_nested_children.length; iii += 1) {
										nested_nested_child = nested_nested_children[iii];
										if (
											util.f.isElem(nested_nested_child) &&
											nested_nested_child.tagName == "LI"
										) {
											size += util.f.getSize(nested_nested_child, "height");
											console.log("size: " + size);
										}
									}
									util.f.addStyle(nested_child, ["Height", "Opacity"], [size + "px", 1]);
								}
							}
						}
					}
				},
				selection: function (child, parent) {
					var children = parent.childNodes,
						i,
						ii,
						nested_child,
						nested_children,
						time = 0,
						value;
					if (util.f.isElem(child) && util.f.isElem(parent)) {
						parent.dataset.value = child.dataset.value;
						value = child.innerHTML;
					}
					for (i = 0; i < children.length; i += 1) {
						child = children[i];
						if (util.f.isElem(child)) {
							if (child.classList.contains("psuedo_select")) {
								nested_children = child.childNodes;
								for (ii = 0; ii < nested_children.length; ii += 1) {
									nested_child = nested_children[ii];
									if (
										util.f.isElem(nested_child) &&
										nested_child.classList.contains("selected")
									) {
										if (nested_child.innerHTML) {
											time = 1e2;
											util.f.addStyle(
												nested_child,
												["Opacity", "Transform"],
												[0, "translateY(24px)"],
												"all"
											);
										}
										setTimeout(
											function (c, v) {
												c.innerHTML = v;
												util.f.addStyle(
													c,
													["Opacity", "Transform", "TransitionDuration"],
													[1, "translateY(0px)", ".1s"],
													"all"
												);
											},
											time,
											nested_child,
											value
										);
									}
								}
							} else if (child.tagName == "SPAN") {
								util.f.addStyle(child, ["FontSize", "Top"], ["12px", "8px"]);
							}
						}
					}
				},
				toggle: function (event) {
					util.f.events.stop(event);
					var child = util.f.getTrg(event),
						children,
						i,
						parent;
					switch (true) {
						case child.classList.contains("psuedo_select"):
						case child.classList.contains("deselect"):
							parent = child.parentNode;
							break;
						case child.classList.contains("options"):
							parent = child.parentNode.parentNode;
							break;
						case child.classList.contains("option"):
							parent = child.parentNode.parentNode.parentNode;
							form.f.select.selection(child, parent);
							break;
					}
					parent.classList.contains("focused")
						? form.f.select.blur(parent)
						: form.f.select.focus(parent);
				}
			}
		}
	};
window.onload = form.f.init.register;

  
</script>

Senia Alperin

The Well

Opplevelsessenter

Martin Alternes

Webarbeider AS

Nettsider, Logoer og Animasjon

Lasse Bakke

Caravelle tours

Reisebyrå

Kristina Berger

Follo Futura AS

Rekruttering

Bård Bergsjø

Opposite Lock AS

Agentur- og engroshandel

Harald Ensrud

Røhne & Selmer

Bilforhandler

Kamil Ahmed Faraj

NAV // Alna

Sosialetjenester

Robert Gulbrandsen

Brandsen AS

Fritidsbåter og -utstyr

Bjørn Erik Hansen

toTALL AS

Butikk og logistikkløsninger

Vegard Haugen

Legal 24

Advokattjenester

Bli medlem i ForretningsNettverket

Delta på frokostmøter, møtebørser og sosiale samlinger, og opparbeide deg et solid nettverk med mange spennende  nye kunder!

Vi møtes en gang i måneden til hyggelig frokost hvor vi blir bedre kjent og åpner dører for hverandre – slik gir vi alle hverandre business!

Søk medlemskap

ForretningsNettverket arrangerer organiserte B2B-møteplasser for bedrifter, og vi gjør det enkelt for deg å knytte kontakt med nye bedrifter på hele Østlandet. Gjennom anbefalinger og samarbeid mellom bedrifter og kontakter skaper vi en ideell møteplass for dette.

Frokostmøtene holdes klokken 07:00 – 09:00.

Prøv oss gratis!
Bli med som gjest på frokostmøte.