@mixin o-verticalmenu($primary-stylename: o-verticalmenu) {
	.#{$primary-stylename}{

	  .#{$primary-stylename}-menuitem {
	    display: block;
	    @include valo-selection-item-style;
	    padding-left: $v-selection-item-padding-horizontal;
	    padding-right: $v-unit-size;
	    position: relative;
	  }
	  
	  &.#{$primary-stylename}-border-top > div:first-child:before{
	  	display: block;
	  }

	  .#{$primary-stylename}-menuitem:hover {
	    @include valo-selection-item-selected-style;
	  }
	
	  .#{$primary-stylename}-separator {
	    display: block;
	    margin: $v-selection-overlay-padding-vertical 0;
	    height: 0;
	    overflow: hidden;
	    border-bottom: valo-border($color: $v-overlay-background-color, $strength: 0.5);
	    @if first-number($v-border) == 0 {
	      border-bottom-width: 1px;
	    }
	  }
	
	  [class*="checked"] .#{$primary-stylename}-menuitem-caption:before {
	    @include valo-menubar-checked-icon-style;
	    position: absolute;
	    left: $v-selection-item-padding-horizontal;
	  }
	
	  [class*="unchecked"] .#{$primary-stylename}-menuitem-caption:before {
	    content: "";
	  }
	
	  [class*="disabled"] {
	    cursor: default;
	  }
	}
}

@mixin o-contextmenu {

	@include o-verticalmenu;
	
	.v-context-menu-container{
		@include valo-selection-overlay-style;
	}
	
	div.v-menubar-popup{
		margin-top: 14px !important;
	}
	
	.v-context-menu-container, div.v-menubar-popup{
		border: 4px solid $v-window-background-color;
	}
	
	.v-context-menu-item-basic, .v-context-menu-item-basic-submenu, .v-menubar-menuitem {
		color: $v-font-color;
	}
	.v-popupview-popup-o-user-info div.v-menubar-submenu {
		width: 100%;
	}
	
	.v-context-menu, div.v-menubar-submenu, div.o-verticalmenu {
		float: left;
		
		> div, > span {
			margin-top: 5px;
			
			&:first-child {
				margin-top: 0;
				
				&:before {
					display: none;
				}
			}
		}
		
		.v-context-menu-item-basic, .v-context-menu-item-basic-submenu {
			float: left;
			clear: left;
		  	@include valo-selection-item-style;
		  	&.bold{
		  		font-weight: 800;
		  	}
		}
		.v-context-menu-item-basic, .v-context-menu-item-basic-submenu, .v-menubar-menuitem, .o-verticalmenu-menuitem {
			padding-top: 2px;
			padding-bottom: 2px;
			font-size: $v-font-size--large;
			
			&:hover, &:focus {
				outline: none;
				box-shadow: none;
			}
			
			&:before, &:hover:before, &:focus:before, &:active:before {
				content: "";
				margin-top: -5px;
				left: -3px;
				right: -3px;
				position: absolute;
				height: 0;
				border-top: valo-border($border: $v-border, $color: $v-app-background-color, $strength: 1);
			}
		}
		
		.v-context-menu-item-basic-submenu:after {
			content: "\f0da";
			font-family: FontAwesome;
			float: right;
		}
	
		.v-context-menu-item-basic:focus,
		.v-context-menu-item-basic-submenu:focus,
		.v-context-menu-item-basic-open {
			@include valo-selection-item-selected-style;
		}
	
		.v-context-menu-item-basic.v-context-menu-item-disabled > div{
			opacity: 0.3;
			filter: alpha(opacity = 30);
			zoom: 1;
		}
	
		.v-context-menu-item-basic-icon-container {
			float: left;
			width: $v-selection-item-height;
			height: $v-selection-item-height;
			margin: 0 5px 0 0;
			text-align: center;
			
			.v-icon {
				display: inline-block;
				line-height: $v-selection-item-height;
				padding: 0 2px;
			}
		}
	
		.v-context-menu-item-basic-text {
			float: left;
			padding: 0 20px 0 0px;
		}
		.v-context-menu-item-basic-text, .v-menubar-menuitem-caption{
			line-height: 26px;
		}
	}
}