/**
*	@author http://chalker.ru/ ChALkeR
*	@copyright (c) ChALkeR
*	@version 2009-08-13
**/

$.fn.extend({
	eval_scripts: function() {
		this.find('script').each(function() {
			eval(this.innerHTML);
		});
		return this;
	},
	smooth_scroll: function(x,y) {
		this.stop().animate({
			scrollLeft: $(arg).scrollLeft() + (x || 0),
			scrollTop: $(arg).scrollTop() + (y || 0)
			}, 1000);
		return this;
	},
	cms: {}
});

$.cms = {
	effects: 200,
	config: {
		root:'/', path:'', uri:'', username:'',
		popup:'', editor:'',
		paths:{plugins:'', style_generic:''},
		enabled:{}
	},

	init: function() {
		$.cms.init_hovers();
		$.cms.init_form_categories();
		return $.cms;
	},
	setup: function(data) {
		$.extend(true,$.cms.config,data);
		return $.cms;
	},
	go_back: function() {
		history.go(-1);
		return false;
	},
	media_toggle: function(arg) {
		if (arg) {
			$('object').not('.no_toggle').show();
		} else {
			$('object').not('.no_toggle').hide();
		}
		return $.cms;
	},
	field_category_toggle: function(field) {
		if ($('input[name=\''+field+'\']:checked').val()) {
			$('.category_'+field).hide().slideDown($.cms.effects);
		} else {
			$('.category_'+field).show().slideUp($.cms.effects);
		}
		return false;
	},
	menu_toggle: function(menu) {
		if ($('#menu_cat_'+menu).hasClass('closed')) {
			$('#menu_cat_'+menu).removeClass('closed');
			$('#menu_cat_list_'+menu).hide().slideDown($.cms.effects);	
		} else {
			$('#menu_cat_'+menu).addClass('closed');
			$('#menu_cat_list_'+menu).show().slideUp($.cms.effects);
		}
		return false;
	},
	init_hovers: function() {
		$('.hover img:not(.hover .active img)')
		.live('mouseover', function () {
				$(this).stop().fadeTo($.cms.effects,1);
			})
		.live('mouseout', function () {
				$(this).stop().fadeTo($.cms.effects,0);
			})
		.fadeTo(0,0);
		return $.cms;
	},
	init_form_categories: function() {
		$('.field_category').each(function () {
			if (!$('input[name=\''+this.name+'\']:checked').val()) {
				$('.field_category_'+this.name).hide();
			}
		});
		return $.cms;
	}
};

$($.cms.init);