/**
 * @author ikaudenko
 */

function customSelect(newelem){
		/* CUSTOM SELECT START */
		if(newelem){
			var $_select = {
				custom 	 : $("select#"+newelem),
				parDiv	 : $("select#"+newelem).parent("div"),
				ul		 : $("<ul class='select-list' />"),
				wrapul	 : $("<div class='wrap-list' />"),
				ulblk	 : $("<div class='list-box' />"),
				boxval	 : $("<div class='list-val' />")
			}
		}else{
			var $_select = {
				custom 	 : $("select.custom-select"),
				parDiv	 : $("select.custom-select").parent("div"),
				ul		 : $("<ul class='select-list' />"),
				wrapul	 : $("<div class='wrap-list' />"),
				ulblk	 : $("<div class='list-box' />"),
				boxval	 : $("<div class='list-val' />")
			}	
		}
		
		$_select.custom.css({ display: "none" });
		
		/* add list with items on the page, wrap all selec list's to the div */
		$_select.parDiv.append($_select.ul);
		var ullist = $_select.parDiv.find("ul.select-list"),
			options;
		ullist.wrap($_select.ulblk);
		var listbox = $_select.parDiv.find(".list-box");
		listbox.prepend($_select.boxval);
		ullist.wrap($_select.wrapul);
		var boxval = $_select.parDiv.find(".list-val"),
			wrapul = $_select.parDiv.find(".wrap-list");
			
		for(var i=0; i<=$_select.custom.length-1; i++){
			//$($_select.custom[i]).attr('id', 'select'+(i+1));
			options = $($_select.custom[i]).find("option");
	
			for(var j=0; j<=options.length-1; j++){
				if($(options[j]).attr("selected")) { 
					$(ullist[i]).append('<li class="selected" rel="'+(j+1)+'">'+$(options[j]).text()+'</li>');
					$(boxval[i]).text($(options[j]).text());
				}else{
					$(ullist[i]).append('<li rel="'+(j+1)+'">'+$(options[j]).text()+'</li>');
				}
			}
			
		}
		
		/* boxval clik event */
		boxval.click(function(){	
			var elem = $(this),
				child = elem.next(wrapul);
			if(!child.hasClass("active")){
				wrapul.slideUp(100).removeClass("active");
				child.addClass("active");
				child.slideDown(200);
			}else{
				child.removeClass("active");
				child.slideUp(200);
			}
		});
		
		listbox.find("li").click(function(){
			var elem	= $(this),
				current	= elem.attr("rel"),
				parDiv	= elem.parent().parent(),
				newval	= parDiv.prev(boxval),
				parselect = parDiv.parent(listbox).prev("select"),
				opts	= parselect.find("option");	
			if(!elem.hasClass("selected")){
				parDiv.find("li").removeAttr("class");
				elem.addClass("selected");
				newval.text(elem.text());
				parselect.removeAttr("selected")
				$(opts[current-1]).attr("selected", "selected");
				parDiv.removeClass("active");
				parDiv.slideUp(200);
			}
			
		});
		/* CUSTOM SELECT END */
	}

 $(document).ready(function(){	
	
	customSelect();
	
 })

