$(document).ready(function(){
	$.each($(".selector"), function(n,element){
		$(element).attr("name", $(element).children("input[type=hidden]").attr("name"));
		$(element).children(".current").html($(element).children(".placeholder").html());
	});

	//$(".selector").click(function(e){
	window.selectormakework = function(thisis,e){
		var $target = $(e.target);
		if($target.hasClass("current") || $target.hasClass("selector")) {
			if($(thisis).hasClass("disabled")){
				return false;
			}
			if(!($(thisis).hasClass("window"))){
				$(thisis).children(".layer").fadeTo("fast","1", function(){
					$(thisis).children(".layer").css("display","block");	
				});
				$(thisis).css("overflow","visible");
			}
		} else {
			if($target.hasClass("option")){
				if($target.parents(".selector").hasClass("multiple")){
					$(thisis).attr('unselectable', 'on');
					if($target.hasClass("selected")){
						$target.removeClass("selected");
					} else {
						$target.addClass("selected");
					}
					var current_value = [];
					$.each($target.parent(".layer").children(".option"), function(n, element){
						if($(element).hasClass("selected")){
							current_value.push($(element).attr("id"));
						}
					});
					if($target.parent(".layer").parent(".selector").children(".placeholder").html()==''){
						$target.parent(".layer").parent(".selector").children(".current").html(current_value.join(' | '));
					}
					$target.parent(".layer").parent(".selector").val(current_value);
					if($target.parent(".layer").parent(".selector").children("input[type=hidden]")){
						$target.parent(".layer").parent(".selector").children("input[type=hidden]").val(current_value);
					}
				} else {
					$target.parent(".layer").children(".option").removeClass("selected");
					if(!($(thisis).hasClass("window"))){
						$target.parent(".layer").fadeTo("fast","0", function(){
							$target.parent(".layer").css("display","none");
						});
					}
					if($target.attr("id")){
						$target.parent(".layer").parent(".selector").children(".current").html($target.html());
					} else {
						$target.parent(".layer").parent(".selector").children(".current").html($target.parent(".layer").parent(".selector").children(".placeholder").html());
					}
					$target.parent(".layer").parent(".selector").val($target.attr("id"));
					if($target.parent(".layer").parent(".selector").children("input[type=hidden]")){
						$target.parent(".layer").parent(".selector").children("input[type=hidden]").val($target.attr("id"));
					}
					$target.addClass("selected");
				}
				$target.parent(".layer").parent(".selector").change();
			}
		}
	}

	$(".selector").click(function(e){
		window.selectormakework(this,e);
	});


	$(".selector .layer").hover(function(){},function(){
		if(!($(this).parent(".selector").hasClass("window"))){
			$(this).css("display","none");
			$(this).parent(".selector").css("overflow", "hidden");
		}
	});

	$(".checkbox").click(function(){
		if($(this).hasClass("checked")){
			$(this).removeClass("checked");
			$(this).val(undefined);
		} else {
			$(this).addClass("checked");
			$(this).val('1');
		}
	});
});
