Element.extend({
	toJsonString:function(){
		var formElements = {};
		var j=0;
		this.getFormElements().each(function(el){
			var name = el.name;
			var value = el.getValue();
			if (value === false || !name || el.disabled) return;
			if (formElements[name.replace('[]', "")])
				formElements[name.replace('[]', "")].push(value);
			else formElements[name.replace('[]', "")] = [value];
		});
 
		for (var element in formElements){
			if (formElements[element].length == 1)
				formElements[element] = formElements[element][0];
		}
		return Json.toString(formElements);
	},
	
	getValue: function() {
		return this.value;
	},
	
    show: function() {   
            this.setStyle('display','');   
    },   
        //implement hide   
    hide: function() {   
            this.setStyle('display','none');   
    }   
      
});  
var stack = new Array();
function test(obj, name, url) {
		var item  = $(name);
		if ($chk(item)) {
			var par = item.getParent();
par.getElements("p").each(function (it, ind) {if ($chk(it)) {				
							it.remove();
						}				
					});
				
		}	


	if (obj.value != 0) {
		if (obj.value == "DEL") {
			if ($$("#category_"+name+" li").length != 1) {
				var akt = stack[name].pop();
				$(name).value  = stack[name].getLast();				
				obj.selectedIndex = 0;
				obj.parentNode.getPrevious().remove();
				var ajax = new Request.HTML({url: url +'/'+stack[name].getLast()+'/' + name,
					update: 'category_selected_' + name,		
					evalScripts:true				
				}).get();
			}
		} else {
			$(name).value = obj.value;
			stack[name].push(obj.value);
			var dd = new Element('li');
			dd.setHTML('<a href="#">' + obj.options[obj.selectedIndex].label + '</a>');
									
			obj.selectedIndex = 0;
			dd.injectBefore(obj.parentNode);
			var ajax = new Request.HTML({url: url +'/'+stack[name].getLast()+'/' + name,
				update: 'category_selected_' + name,		
				evalScripts:true				
			}).get();
			obj.selectedIndex = 0;
		}
	}
	if ($chk($(name)))
		$(name).fireEvent('change');
	obj.selectedIndex = 0;
}

function showPanelWithAjax(id, nr, url, langPanel)
{
	if ($(id+nr).hasClass('system-ajax_upload') == false) {
		ajax_action(url, id+nr);
		$(id+nr).addClass('system-ajax_upload');
	}
	try {
			
			if (langPanel) {
			document.getElementById(id).className = document.getElementById(id).className.replace(/langopen[0-9]*/gi, 'langopen'+nr);
		
			} else {
		document.getElementById(id).className = document.getElementById(id).className.replace(/open[0-9]*/gi, 'open'+nr);
		
		}
	} catch (e) {alert(e);}
}

function ajax_action(link, updateElement) {
	if(!$chk($(updateElement)) ) {
		redirect(link);
	} else {

			var loader = $('loader');
			var load = new Request.HTML ({
				url: link,
				method: 'get',
				update: updateElement,
				evalScripts: true,
				onRequest: function(){			
				
					if ($chk(loader)) {
						loader.setStyle('display', 'inline');
					}
						$(updateElement).effect('opacity').start(0.2);
					
				}, 
				onComplete: function() {	
				
					if ($chk(loader)) {
						loader.setStyle('display', 'none');
					}	
						$(updateElement).effect('opacity').start(1);
					
					refreshTips();
				}
			});
			load.send();
	}
}

window.addEvent('domready' , function() {
	$$('#add_comment_form').each(function (item, index) {
		item.addEvent('submit', function(e) {
			var loader = $('loader');		
			new Event(e).stop();			
			var myHTMLRequest = new Request.HTML({
				url: item.action,
				update: 'comments_list_action_content',
				method: 'post',
				evalScripts:true,
				onRequest: function(){
					if ($chk(loader)) {
						loader.setStyle('display', 'inline');
					}
					$('comments_list_action_content').effect('opacity').start(0.2);
				}, 
				onFailure: function() {  },
				onComplete: function() {
				
					if ($chk(loader)) {
						loader.setStyle('display', 'none');
					}
					$('comments_list_action_content').effect('opacity').start(1);
					$('add_comment_form').getElementsBySelector('input[type=text], textarea').each(function (item) {item.value ="";})

  					//$('loading').setStyle('display', 'none');
				}
			}).post($('add_comment_form'));
		});
		
	
	});
	
	refreshTips();	
});

function refreshTips() {

    var formImpTips = new Tips('.formImpTips', {className: 'tips'});
Slimbox.scanPage();
 }
function addNote(obj, url, text) {
	var par = obj.parentNode;
	var jSonRequest = new Request.JSON({
		url: url,
		onRequest: function() {
			obj.innerHTML += '<img src="/ajax-loading.gif" />';
		},
		onComplete: function(json){
			if ($chk(json["json"]) && json["json"] == true) {
			   	if ($chk(linkToNote)) {
			   		par.innerHTML = '<a href="' + linkToNote + '">' + text +'</a>';
			   	} else {
					par.innerHTML = '<a href="#">' + text +'</a>';
				}
				new Fx.Style(par.firstChild,'background-color', {duration:600, wait:false, transition: Fx.Transitions.Quad}).start('#ffffff', '#ff8935').start('#ff8935', '#ffffff');
			} else {
				window.location.href = json['redirect'];
			}
			
		}
	}).send();

}



function go_to(url) {
	if (Browser.Engine.trident) {
		redirect(url);
	} else {
		ajax_action(url, "action_content");
	}
}

function redirect(url) {
	window.location.href = url;
}

function trim(str, chars) {
    return ltrim(rtrim(str, chars), chars);
}

function ltrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}

function rtrim(str, chars) {
    chars = chars || "\\s";
    return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function changeRating(obj, className)
{
	try {
		obj.parentNode.parentNode.className='rating '+className;
	} catch (e) {}
}


