var AdminUI={
	init:function(){
		for(i in AdminUI){
			if(AdminUI[i].init){
				AdminUI[i].init();
			}
		}
	}
}

/**
* CalendarField
*/
AdminUI.CalendarField=Class.create();
AdminUI.CalendarField.prototype={
	close:function(){
		this.scal.closeCalendar();
	},
	initialize: function(element, options){
		this.element=element;
		var value=element.innerHTML;
		element.innerHTML="";
		this.display=this.element.appendChild(new Element("input"));
		this.display.type="text";
		this.input=this.element.appendChild(new Element("input", {type:"hidden"}));
		this.input.name=element.id;
		this.button=this.element.appendChild(new Element("img"));
		this.button.src="/pics/icon_calendar.png";
		this.scalDiv=this.element.appendChild(new Element("div"));
		this.scalDiv.hide();
		this.scalDiv.addClassName("dashblack");
		this.button.observe("click", this.show.bindAsEventListener(this));
		this.display.observe("change", this.updateValue.bind(this));
		this.scal=new scal(this.scalDiv, this.display,
								{titleformat:'mmmm yyyy',
          						updateformat: 'yyyy-mm-dd',
								closebutton:'X',
								dayheadlength:2,
								weekdaystart:1,
								openeffect: Effect.Appear,
          						closeeffect: Effect.Fade
								});
		var date;
		if(value){
			date=new Date(value*1000);
		}
		else{
			date=new Date();
		}
		this.scal.setCurrentDate(date);
		this.scal.closeCalendar();
		document.observe("click", function(event){
				if(event.findElement(".CalendarField")!=this.element){
					this.close();
				}
			}.bindAsEventListener(this)
		);
		
		this.scalDiv.observe("click", function(event){
						if(Event.element(event).hasClassName("dayboxdate")){
							this.close();
							this.updateValue();
						}
		}.bindAsEventListener(this)
		
		);
		this.updateValue();
		
	},
	updateValue:function(){
		this.input.value=Date.parse(this.scal.currentdate)/1000;
	},
	show:function(event){
		this.scalDiv.makePositioned();
		
		Position.clone(this.button, this.scalDiv,  {setWidth: false, setHeight: false});
		this.scal.toggleCalendar();
	}
}
AdminUI.CalendarField.init=function(){
	var calendarFields=$$(".CalendarField");
	var i;
	for(i=0, l=calendarFields.length;i<l;i++){
		new AdminUI.CalendarField(calendarFields[i]);
	}
	
}
/**
* CalendarTimeField
*/
AdminUI.CalendarTimeField=Class.create(AdminUI.CalendarField,{
	initialize: function(element, options){
		this.element=element;
		var value=element.innerHTML;
		element.innerHTML="";
		this.display=this.element.appendChild(new Element("input"));
		this.display.type="text";
		this.input=this.element.appendChild(new Element("input", {type:"hidden"}));
		this.input.name=element.id;
		this.button=this.element.appendChild(new Element("img"));
		this.button.src="/pics/icon_calendar.png";
		this.scalDiv=this.element.appendChild(new Element("div"));
		this.scalDiv.hide();
		this.scalDiv.addClassName("dashblack");
		this.button.observe("click", this.show.bindAsEventListener(this));
		this.display.observe("change", this.updateValue.bind(this));
		this.scal=new scal(this.scalDiv, this.display,
								{titleformat:'mmmm yyyy',
								updateformat: 'yyyy-mm-dd hh:nn:ss',
								closebutton:'X',
								dayheadlength:2,
								weekdaystart:1,
								time:true,
								openeffect: Effect.Appear,
          						closeeffect: Effect.Fade
								});
		var date;
		if(value){
			date=new Date(value*1000);
		}
		else{
			date=new Date();
		}
		this.scal.setCurrentDate(date);
		this.scal.closeCalendar();
		document.observe("click", function(event){
				if(event.findElement(".CalendarTimeField")!=this.element){
					this.close();
				}
			}.bindAsEventListener(this)
		);
		
		this.scalDiv.observe("click", function(event){
						if(Event.element(event).hasClassName("dayboxdate")){
							this.close();
							this.updateValue();
						}
		}.bindAsEventListener(this)
		
		);
		this.updateValue();
	}
});
AdminUI.CalendarTimeField.init=function(){
	var calendarFields=$$(".CalendarTimeField");
	var i;
	for(i=0, l=calendarFields.length;i<l;i++){
		new AdminUI.CalendarTimeField(calendarFields[i]);
	}
	
}
/**
* IntField
*/
AdminUI.IntField=Class.create();
AdminUI.IntField.prototype={
	initialize: function(element, options){
		this.element=element;
		this.element.observe("blur", this.validate.bind(this));
	},
	validate:function(){
		this.element.value=this.element.value.replace(/[^0-9]/g,"");
		if(this.element.value=="" && !this.element.required || this.isInt(this.element.value)){
			this.element.removeClassName("invalid");
		}
		else{
			this.element.addClassName("invalid");
		}
	},
	isInt:function(x) {
	   var y=parseInt(x);
	   if (isNaN(y)) return false;
	   return x==y && x.toString()==y.toString();
	}
}
AdminUI.IntField.init=function(){
	var intFields=$$(".IntField");
	var i;
	for(i=0, l=intFields.length;i<l;i++){
		new AdminUI.IntField(intFields[i]);
	}
	
}
/**
* DecimalField
*/
AdminUI.DecimalField=Class.create();
AdminUI.DecimalField.prototype={
	initialize: function(element, options){
		this.element=element;
		this.element.observe("blur", this.validate.bind(this));
	},
	validate:function(){
		this.element.value=this.element.value.replace(/,/g,".");
		this.element.value=this.element.value.replace(/[^0-9\.]/g,"");
		if(this.element.value=="" && !this.element.required || this.isFloat(this.element.value)){
			this.element.removeClassName("invalid");
		}
		else{
			this.element.addClassName("invalid");
		}
	},
	isFloat:function(x) {
	   var y=parseFloat(x);
	   if (isNaN(y)) return false;
	   return x==y && x.toString()==y.toString();
	}
}
AdminUI.DecimalField.init=function(){
	var DecimalFields=$$(".DecimalField");
	var i;
	for(i=0, l=DecimalFields.length;i<l;i++){
		new AdminUI.DecimalField(DecimalFields[i]);
	}
}

/**
* MultipleImageField
*/
AdminUI.MultipleImageField=Class.create();
AdminUI.MultipleImageFieldItem=Class.create();
AdminUI.MultipleImageFieldItem.prototype={
	initialize: function(element, imageField){
		this.imageField=imageField;
		this.element=element;
		this.id=this.element.getAttribute("data-id");
		this.element.insert(new Element("span", {className:"remove"}).update("X").observe("click", this.imageField.deleteImage.bind(this.imageField, this)));
	}
}



AdminUI.MultipleImageField.prototype={
	initialize: function(element, options){
		this.element=element;
		var lis=this.element.select("ul li");
		this.op=this.element.getAttribute("data-op");
		this.id=this.element.getAttribute("data-id");
		lis.each(function(li){
			new AdminUI.MultipleImageFieldItem(li, this);
			
		} , this)
	},
	deleteImage:function(item){
		if(confirm("Biztos törlöd?")){
			new Ajax.Request("ajax.php?op="+this.op+"&id="+this.id, {
					parameters:{field:this.element.id,
								pic_id:item.id
					}, 
					onComplete: function(result){
						object=eval(result.responseText);
						if(object){
							if(object.result=="1"){
								console.log(item);
								item.element.remove();
							}
						}
					}.bind(this)
				});
		}
	}
}
AdminUI.MultipleImageField.init=function(){
	var MultipleImageField=$$(".MultipleImageField");
	var i;
	for(i=0, l=MultipleImageField.length;i<l;i++){
		new AdminUI.MultipleImageField(MultipleImageField[i]);
	}
}

/**
* AjaxMultipleSelectField
*/
AdminUI.AjaxMultipleSelectField=Class.create();
AdminUI.AjaxMultipleSelectFieldItem=Class.create();
AdminUI.AjaxMultipleSelectFieldItem.prototype={
	initialize: function(data, selectField){
		this.selectField=selectField;
		if(typeof data.getAttribute != "undefined"){
			this.text=data.innerHTML;
			this.id=data.getAttribute("data-id");
		}
		else if(typeof data.id != "undefined" && typeof data.text != "undefined"){
			this.text=data.text;
			this.id=data.id;
		}
		this.selectLi=new Element("li").update(this.text);
		this.selectLi.observe("click", this.selectField.select.bind(this.selectField, this));
		
		this.listLi=new Element("li")
			.insert(new Element("span", {className:"value"}).update(this.text))
			.insert(new Element("span", {className:"remove"}).update("X").observe("click", this.selectField.deleteFromList.bind(this.selectField, this)))
			.insert(new Element("input", {type:"hidden", value:this.id, name:this.selectField.element.id+"[]"}));
		
	},
	highlight:function(){
		this.selectLi.addClassName("highlight");
	},
	unHighlight:function(){
		this.selectLi.removeClassName("highlight");
	}
}
AdminUI.AjaxMultipleSelectField.prototype={
	initialize: function(element){
		this.selectItems=new Array();
		this.listItems=new Array();
		this.currentItem=null;
		this.element=element;
		this.op=this.element.getAttribute("data-op");
		this.id=this.element.getAttribute("data-id");
		this.addEnabled=this.element.getAttribute("data-add")=="1"?true:false;
		
		
		this.element.insert(this.input=new Element("input", {type:"text"}));
		if(this.addEnabled){
			this.element.insert(this.addButton=new Element("button",{className:"add"}).insert("+"));
			this.addButton.observe("click", this.AddNewItem.bindAsEventListener(this));
			
		}
		Event.observe(this.input, "keydown", this.keydown.bindAsEventListener(this));
		Event.observe(this.input, "keyup", this.keyup.bindAsEventListener(this));
		this.selectUl=new Element("ul", {className:"select"});
		this.listUl=new Element("ul", {className:"list"});
		var divs=this.element.select("div");
		divs.each(function(div){
			this.addToList(new AdminUI.AjaxMultipleSelectFieldItem(div, this));
			div.remove();
		}.bind(this));
		this.element.insert(this.listUl);
		this.element.insert(this.selectUl);
		document.observe("click", function(event){
			var element=event.findElement("#"+this.element.id);
			if(typeof element == "undefined" || element==document){
				this.clearSelect();
			}
			
		}.bindAsEventListener(this))
		
	},
	keydown:function(event){
		switch(event.keyCode){
			case Event.KEY_ESC:{
				this.clearSelect()
				event.stop();
				break;
			}
			case Event.KEY_RETURN:{
				event.stop();
				this.select(this.currentItem);
				break;
			}
			case Event.KEY_UP:{
				event.stop();
				this.moveCursorUp();
				break;
			}
			case Event.KEY_DOWN:{
				event.stop();
				this.moveCursorDown();
				break;
			}
		}
	},
	keyup:function(event){
		switch(event.keyCode){
			case Event.KEY_ESC:
			case Event.KEY_RETURN:
			case Event.KEY_UP:
			case Event.KEY_DOWN:{
				event.stop();
				return false;
			}
		}
		if(this.input.value.length>1){
			this.sendRequest(this.input.value);
		}
	},
	AddNewItem:function(event){
		event.stop();
		if(this.input.value){
			this.sendAddRequest(this.input.value);
			this.input.value="";
		}
	},
	sendAddRequest:function(word){
		new Ajax.Request("ajax.php?op="+this.op+"&mode=add&id="+this.id, {
				parameters:{field:this.element.id,
							word:word
				}, 
				onComplete: function(result){
					object=eval(result.responseText);
					if(object){
						this.clearSelectList();
						if(object.option){
							this.addToList(new AdminUI.AjaxMultipleSelectFieldItem(object.option, this));
						}
					}
				}.bind(this)
			});
	},
	sendRequest:function(keyword){
		new Ajax.Request("ajax.php?op="+this.op+"&mode=search&id="+this.id, {
				parameters:{field:this.element.id,
							keyword:keyword
				}, 
				onComplete: function(result){
					object=eval(result.responseText);
					if(object){
						this.clearSelectList();
						if(object.options && object.options.length>0){
							object.options.each(function(value){
								this.addToSelect(new AdminUI.AjaxMultipleSelectFieldItem(value, this));
								
							}.bind(this));
						}
					}
				}.bind(this)
			});
	},
	clearSelectList:function(){
		this.selectUl.update("");
	},
	clearSelect:function(){
		this.clearSelectList();
		this.input.value="";
		this.selectItems=new Array();
	},
	setCurrent:function(item){
		if(this.currentItem){
			this.currentItem.unHighlight();
		}
		this.currentItem=item;
		this.currentItem.highlight();
	},
	addToSelect:function(item){
		this.selectUl.insert(item.selectLi);
		this.selectItems.push(item);
		this.setCurrent(this.selectItems.first());
	},
	moveCursorUp:function(){
		if(this.selectItems.first()===this.currentItem){
			this.setCurrent(this.selectItems.last());
		}
		else if((pos=this.selectItems.indexOf(this.currentItem))!=null){
			this.setCurrent(this.selectItems[pos-1]);
		}
	},
	moveCursorDown:function(){
		if(this.selectItems.last()===this.currentItem){
			this.setCurrent(this.selectItems.first());
		}
		else if((pos=this.selectItems.indexOf(this.currentItem))!=null){
			this.setCurrent(this.selectItems[pos+1]);
		}
	},
	findInList:function(item){
		return this.listItems.detect(function(i){
			return i.id==item.id;
		
		}, this);
	},
	select:function(item){
		this.clearSelect();
		this.input.focus();
		if(this.findInList(item)){
			return false;
		}
		this.addToList(item);
		
	},
	addToList:function(item){
		this.listUl.insert(item.listLi);
		this.listItems.push(item);
	},
	deleteFromList:function(item){
		item.listLi.remove();
		item=this.findInList(item);
		if(item){
			var pos=this.listItems.indexOf(item);
			if(pos!=-1){
				this.listItems.splice(pos, 1);
			}
		}
		
	}
}
AdminUI.AjaxMultipleSelectField.init=function(){
	var AjaxMultipleSelectFields=$$(".AjaxMultipleSelectField");
	var i;
	for(i=0, l=AjaxMultipleSelectFields.length;i<l;i++){
		new AdminUI.AjaxMultipleSelectField(AjaxMultipleSelectFields[i]);
	}
}



/**
* ColorField
*/
AdminUI.ColorField=Class.create();
AdminUI.ColorField.prototype={
	hue:null,
	color:null,
	initialize: function(element, options){
		this.element=element;
		this.input=this.element.select("input")[0];
		this.input.observe("blur", this.update.bind(this, this.element.value));
		this.box=this.element.select(".box")[0];
		this.box.observe("click", this.togglePicker.bind(this));
		this.picker= new Element("div", {className:"picker"});
		this.huePicker=new Element("img",{className:"hue", src:"pics/h.png"});
		this.huePicker.observe("mousemove", this.hueOver.bindAsEventListener(this));
		this.huePicker.observe("mouseout", this.hueOut.bindAsEventListener(this));
		this.huePicker.observe("click", this.selectHue.bindAsEventListener(this));
		this.svPicker=new Element("img",{className:"sv", src:"pics/sv.png"}).setStyle({backgroundColor:"#fff"});
		this.svPicker.observe("mousemove", this.svOver.bindAsEventListener(this));
		this.svPicker.observe("mouseout", this.svOut.bindAsEventListener(this));
		this.svPicker.observe("click", this.selectColor.bindAsEventListener(this));
		this.picker.insert(this.svPicker);
		this.picker.insert(this.huePicker);
		this.element.insert(this.picker);
		this.picker.hide();
		Position.clone(this.box,this.picker,{setWidth:false, setHeight:false});
		this.update(this.input.value);
		document.observe("click", function(event){
				if(event.findElement(".ColorField")!=this.element){
					this.picker.hide();
				}
			}.bindAsEventListener(this)
		);
	},
	hueOver:function(e) {
		hue=this.getHue(e.offsetY);
		this.setBackgroundHue(hue);
		return false;
	},
	hueOut:function(e) {
		this.setBackgroundHue(this.hue);
	},
	selectHue:function(e) {
		hue=this.getHue(e.offsetY);
		this.hue=hue;
		this.setBackgroundHue(hue);
		return false;
	},
	setBackgroundHue:function(hue){
		var rgb=this.hsvToRgb(hue, 1, 1);
		var hex=this.rgbToHex(rgb);
		this.svPicker.setStyle({backgroundColor:"#"+hex});
	},
	getHue:function(y){//megállapítja az árnyalatot
		return h=360-y/255*360;
	},
	getColor:function(x, y){//megállapítja az árnyalatot
		val=1-y/255;
		sat=x/255;
		rgb = this.hsvToRgb(this.hue, sat, val);
		hex = this.rgbToHex(rgb);
		return hex;
	},
	svOut:function(e) {
		this.update(this.color);
		return false;
	},
	svOver:function(e) {
		color=this.getColor(e.offsetX, e.offsetY);
		this.update(color);
		return false;
	},
	selectColor:function(e) {
		color=this.getColor(e.offsetX, e.offsetY);
		this.color=color;
		this.update(color);
		this.picker.hide();
		return false;
	},
	togglePicker:function(){
		this.picker.toggle();
	},
	validate:function(color){
		var match;
		if(match=color.match(/(^#?([0-9a-f]{3}$))|(^#?([0-9a-f]{6}$))/i)){
			if(match[2]){
				return this.convert3to6digit(match[2]);
			}
			return match[4];
		}
		return false;
	},
	convert3to6digit:function(x) {
	   return x[0]+x[0]+x[1]+x[1]+x[2]+x[2];
	},
	hsvToRgb:function(Hdeg,S,V) {
		H = Hdeg/360;     // a fokból 0 és 1 közé seső számot csinál
		if (S==0) {       // HSV érték 0 és 1 közé esik, ha 0 akkor csak a szürke valamely árnyalata lehet, tehát az rgb 3 paramétere egyenlő lesz v-vel
			R = V*255;
			G = V*255;
			B = V*255;
		}
		else {//ha nem a szürke egyik árnyalata
			var_h = H*6;
			var_i = Math.floor( var_h );
			var_1 = V*(1-S);
			var_2 = V*(1-S*(var_h-var_i));
			var_3 = V*(1-S*(1-(var_h-var_i)));
			if (var_i==0){
				var_r=V ;
				var_g=var_3;
				var_b=var_1;
			}
			else if (var_i==1){
				var_r=var_2;
				var_g=V;
				var_b=var_1;
			}
			else if (var_i==2){
				var_r=var_1;
				var_g=V;
				var_b=var_3;
			}
			else if (var_i==3){
				var_r=var_1;
				var_g=var_2;
				var_b=V;
			}
			else if (var_i==4){
				var_r=var_3;
				var_g=var_1;
				var_b=V;
			}
			else{
				var_r=V;
				var_g=var_1;
				var_b=var_2;
			}
			R = Math.round(var_r*255);
			G = Math.round(var_g*255);
			B = Math.round(var_b*255);
		}
		//egy tömbbel tér vissza amiben az rgb 3 értéke van
		return new Array(R,G,B);
	},
	rgbToHsv:function(hex){
		rgb=this.hexToRgb(hex);
		if(!rgb){
			return flase;
		}
		var max = Math.max(Math.max(rgb.r, rgb.g), rgb.b);//legmagasabb színérték
		var min = Math.min(Math.min(rgb.r, rgb.g), rgb.b);//legalacsonyabb színérték
		var hue;
		var saturation;
		var value = max;
		if (min == max){
			hue = 0;
			saturation = 0;
		}
		else{
			var delta = (max - min);//a legmagasabb, és a legalacsonyabb szín érték közötti különbség
			saturation = delta / max;
			if (rgb.r == max){
				hue = (rgb.g - rgb.b) / delta;
			}
			else if (rgb.g == max){
				hue = 2 + ((rgb.b - rgb.r) / delta);
			}
			else{
				hue = 4 + ((rgb.r - rgb.g) / delta);
			}
			hue /= 6;
			if (hue < 0){
				hue += 1;
			}
			if (hue > 1){
				hue -= 1;
			}
		}
		return {h: hue*360, s: saturation, v: value}; //egy tömbbel tér vissza
	},
	hexToRgb:function(hex_string){
		hex_string=this.validate(hex_string);
		if(hex_string){
			r = hex_string.substr(0, 2);
			g = hex_string.substr(2, 2);
			b = hex_string.substr(4, 2);
		}
		else{
			return null;
		}
		r = parseInt(r, 16);
		g = parseInt(g, 16);
		b = parseInt(b, 16);
		if (isNaN(r) || isNaN(g) || isNaN(b)){//ha bármely érték hibás akkor az alapértéket adja vissza
			return null;
		}
		else{
			return {r: r / 255, g: g / 255, b: b / 255};//egy objektummal tér vissza
		}
	},
	rgbToHex:function(rgbArray) {
		var hex="";
		var i;
		for (i=0; i < 3; i++) {
			tmpValue = 0;
			tmpValue = parseInt(rgbArray[i]).toString(16);
			if (tmpValue.length < 2) tmpValue = "0"+ tmpValue;
			hex = hex + tmpValue;
		}
		return hex;
	},
	update:function(color){
		if(color=this.validate(color)){
			this.input.value="#"+color;
			this.box.setStyle({backgroundColor:"#"+color});
			var hsv=this.rgbToHsv(color);
			this.hue=hsv.h;
			this.setBackgroundHue(this.hue);
		}
	}
}
AdminUI.ColorField.init=function(){
	var ColorFields=$$(".ColorField");
	var i;
	for(i=0, l=ColorFields.length;i<l;i++){
		new AdminUI.ColorField(ColorFields[i]);
	}
}









/**
* OpenableTable
*/
AdminUI.OpenableTable=Class.create();
AdminUI.OpenableTable.prototype={
	initialize: function(element, options){
		this.element=element;
		this.handle=this.element.select(".handle")[0].observe("click", this.toggle.bind(this));
		this.handle.setStyle({cursor:"pointer"});
		this.content=this.element.select(".table_content")[0];
		if(this.element.getAttribute("data-closed")){
			this.content.hide();
		}
		
	},
	toggle:function(){
		this.content.toggle();
	}
	
}
AdminUI.OpenableTable.init=function(){
	tables=$$(".openable_table");
	var i;
	for(i=0, l=tables.length;i<l;i++){
		new AdminUI.OpenableTable(tables[i]);
	}
	
}
/**
* SendNewsletterButton
*/
AdminUI.SendNewsletterButton=Class.create();
AdminUI.SendNewsletterButton.prototype={
	initialize:function(element){
		this.element=element;
		this.element.observe("click", this.send.bind(this));
		
	},
	send:function(){
		if(this.element.form.test_address.value || confirm("Biztos kiküldöd?")){
			this.element.form.mode.value="send";
			this.element.form.submit();
		}
	}
}
AdminUI.SendNewsletterButton.init=function(){
	buttons=$$(".send_newsletter");
	var i;
	for(i=0, l=buttons.length;i<l;i++){
		new AdminUI.SendNewsletterButton(buttons[i]);
	}
	
}
/**
* Order
*/
AdminUI.Order=Class.create();
AdminUI.Order.prototype={
	initialize:function(element){
		this.rows=new Array();
		this.element=$(element);
		this.tbody=this.element.select(".order")[0];	
		this.moveUpButton=this.element.select(".move_up")[0];
		this.moveDownButton=this.element.select(".move_down")[0];	
		this.moveUpButton.observe("click", this.up.bind(this));
		this.moveDownButton.observe("click", this.down.bind(this));
		var trs=this.tbody.select("tr");
		var i;
		for(i=0; i<trs.length; i++){
			this.rows.push(new AdminUI.Order.Row(trs[i]));
		}
	},
	up:function(){
		var trs=this.tbody.select("tr");
		var i;
		for(i=0;i<trs.length;i++){
			if(trs[i].selected && trs[i].previous("tr") && !trs[i].previous("tr").selected){
				trs[i].previous("tr").down("input").value++;
				trs[i].down("input").value--;
				trs[i].parentNode.insertBefore(trs[i], trs[i].previous("tr"));	
			}
		}
	},
	down:function(){
		var trs=this.tbody.select("tr");
		for(i=trs.length-1;i>=0;i--){
			if(trs[i].selected && trs[i].next("tr") && !trs[i].next("tr").selected){
				trs[i].next("tr").down("input").value--;
				trs[i].down("input").value++;
				trs[i].parentNode.insertBefore(trs[i].next("tr"), trs[i]);
			}
		}
	}
}
/**
* Order.Row
*/
AdminUI.Order.Row=Class.create();
AdminUI.Order.Row.prototype={
	initialize:function(element){
		this.element=element;
		this.input=element.select("input")[0];
		this.element.selected=false;
		this.element.observe("click", function(e){
			this.element.selected=!this.element.selected;
			if(this.element.selected){
				this.element.setStyle({backgroundColor:"#91C82E"});
			}
			else{
				this.element.setStyle({backgroundColor:""});
			}
		}.bindAsEventListener(this))
	},
	
}
AdminUI.Order.init=function (){
	if(element=$("order_list")){
		new AdminUI.Order(element);
	} 
};

/**
* MenuGroup
*/
AdminUI.MenuGroup=Class.create();
AdminUI.MenuGroup.prototype={
	initialize:function(element){
		this.element=element;
		
		this.li=element.parentNode;
		this.element.insert(
			{before:this.toggleButton=new Element("span").update("-").observe("click", 
				function(event){
					this.toggleButton.update(this.toggleButton.innerHTML=="+"?"-":"+");
					this.element.toggle();
				}.bindAsEventListener(this))
			});
		if(this.element.getAttribute("data-closed")=="1"){
			this.element.hide();
			this.toggleButton.update("+");
		}
		
	},
	
}
AdminUI.MenuGroup.init=function (){
	menuGroups=$$(".menu_group");
	menuGroups.each(function(element){new AdminUI.MenuGroup(element);}, this)
};
document.observe("dom:loaded", AdminUI.init);

/**
* MessageGroup
*/
AdminUI.MessageGroup=Class.create();
AdminUI.MessageGroup.prototype={
	initialize:function(element){
		this.element=element;
		
		this.element.insert(this.toggleButton=new Element("div",{className:"close_button"}).update("^").observe("click", 
				function(event){
					this.element.toggleClassName("closed");
					this.toggleButton.update(this.element.hasClassName("closed")?"v":"^");
					
					
				}.bindAsEventListener(this))
			);
			setTimeout(function(){
				this.element.addClassName("closed"); 
				this.toggleButton.update("v");
			}.bind(this), 3000)
	},
}
AdminUI.MenuGroup.init=function (){
	messageGroups=$$(".message_group");
	messageGroups.each(function(element){new AdminUI.MessageGroup(element);}, this)
};
document.observe("dom:loaded", AdminUI.init);

