/**
 * @author Arturas Paleicikas <arturas.paleicikas@metasite.net>
 */

var BaseData	= {
	init: function(){
		var B = this;

		B.initTopSearchForm();
		B.initCSS();
		B.initToogleView('.toogleView td');
	},
	
	initCSS: function(){
		$('table.tableTdBorder tr.TableRowSelect, table.tableBorders tr.TableRowSelect')
			.hover(
				function(){$(this).addClass('TableRowSelected');}, 
				function(){$(this).removeClass('TableRowSelected')}
			);
	},

	initToogleView: function(item){
		var B = this;

		$(item)
			.each(function(i,n){
				var $obj = $(n);
				var $big = $('.big', $obj);
				var $small = $('.small', $obj);
				var $hrefSmall = $('a.open', $small);
				var $hrefBig = $('a.close', $big);
				
				$hrefSmall
					.click(function(){
						$(item + ' .big').hide();
						$(item + ' .small').show();
						$big.slideDown();
						$small.hide();
						return false;
					});

				$hrefBig
					.click(function(){
						$big.hide();
						$small.show();
						return false;
					});
			});
	},

	initTopSearchForm: function(){
		var $form = $('#search');
		var $input = $('input[@type=text]', $form);
		var defaultValue = $input.val();

		$input
			.click(function(){
				if($input.val() == defaultValue)
					$input.val('');
				return false;
			})
			.end()
			.parents()
			.mousedown(function(){
				if('' == $input.val())
					$input.val(defaultValue);		
			});
	}
};

var callableForms =	{
	items: {},
	add: function(id, pattern){ 
		this.items[id]	= pattern;
	},
	validate: function(obj){
		if(!this.items[obj.id] 
			|| !this.items[obj.id].test($(obj).val())){
			obj.className = 'invalid';
			return false;
		}

		obj.className = 'valid';
		return true;
	},
	validateAll: function(){
		var $callF = this;
		try {
			$.each($callF.items, function(id, pattern){
				if(!$callF.validate(document.getElementById(id)))
					throw '';
			});

		} catch (e){
			return false;
		}

		return true;
	}
};

$(document).ready(function(){window.BaseData.init();});