var CtJournalSearch = new (Class.create({

	inputValueList: [],
	redioButtons:[],
	searchAction: null,
	advancedButton: null,
	normalButton: null,
	form: null,
	initialize: function() {
		Event.observe(window, 'load', function() {
			this.refresh();
		}.bind(this));
	},

	refresh: function() {

		this.searchAction = '/search/index.html';

		try {
			this.form = $('formSearch');

			this.advancedButton = $$('body')[0].down('a.ctJournalSearch-btnAdvanced');
			this.normalButton = $$('body')[0].down('a.ctJournalSearch-btnNormal');

			this.normalSearchFormContent =  $$('body')[0].down('div.ctJournalSearch-form-content');
			this.advancedSearchFormContent =  $$('body')[0].down('div.ctJournalSearch-form-content-ex');

			this.redioButtons = $$('body')[0].down('div.ctJournalSearch-form-content-ex')
					.down('div.row-1').down('div.col-1').select('input');

			this.advancedButton.observe('click', this.advancedSearch.bindAsEventListener(this));
			this.normalButton.observe('click', this.advancedSearch.bindAsEventListener(this));
		} catch(ex) {

		}


		var	inputList = $$('body')[0].down('span.search-input-container2').select('input');
		var	selectList = $$('body')[0].down('span.search-input-container2').select('select');
	    inputList = inputList.concat(selectList);


	    for (var i = 0; i < this.redioButtons.length; i++) {
		    var radioInput = this.redioButtons[i];
	        if (radioInput.identify() == 'rb-content-site-content') {
		        radioInput.observe('click', function() {
					for(var j = 0; j < inputList.length; j++) {
						var input = inputList[j];
						input.disabled = true;
						input.addClassName('readonly');
					}
		        }.bindAsEventListener(this));
	        } else if (radioInput.identify() != 'content') {
		        radioInput.observe('click', function() {
					for(var j = 0; j < inputList.length; j++) {
						var input = inputList[j];
						if (input.disabled) {
							input.disabled = false;
							input.removeClassName('readonly');
						}
					}
		        }.bindAsEventListener(this));
	        }
	    }

		this.processSearchFormInputs();
		this.processLink();
		this.processNoEmptyForm();
	},

	/**
	 *
	 */
	advancedSearch: function(event) {
		Event.stop(event);
		this.normalSearchFormContent.toggle();
		this.advancedSearchFormContent.toggle();
	},

	/**
	 *
	 */
	processSearchFormInputs: function() {

		var inputList = $$('input.searchInput');
		for(var i = 0; i < inputList.length; i++) {

			var input = inputList[i];
			this.inputValueList[input.identify()] = input.getValue();

			Event.observe(input, 'click', function(evet, element) {
				var value = element.getValue();
				var title = this.inputValueList[element.identify()];
				if(value == title) {
					element.setValue('');
				}
			}.bindAsEventListener(this, input));

			Event.observe(input, 'blur', function(evet, element) {
				var value = element.getValue();
				var title = this.inputValueList[element.identify()];
				if(value == '') {
					element.setValue(title);
				}
			}.bindAsEventListener(this, input));
		}
	},

	processLink: function() {

		try {
			var container = ($$('body')[0]).down('div.journal-container');
			var linkList = container.select('a');
		} catch(ex) {
			return;
		}

		for (var i = 0; i < linkList.length; i++) {
			Event.observe(linkList[i], 'mouseover', function(evet, element) {
				try {
					var spanList = element.select('span.hl');
					for (var j = 0; j < spanList.length; j++) {
						spanList[j].addClassName('under');
					}
				} catch(ex) {
					return;
				}
			}.bindAsEventListener(this, linkList[i]));

			Event.observe(linkList[i], 'mouseout', function(evet, element) {
				try {
					var spanList = element.select('span.hl');
					for (var j = 0; j < spanList.length; j++) {
						spanList[j].removeClassName('under');
					}
				} catch(ex) {
					return;
				}
			}.bindAsEventListener(this, linkList[i]));

		}
	},


	processNoEmptyForm: function() {

		try {
			($$('body')[0]).select('div.ctNoEmpty > form').each(function(form) {

				CtPage.getComponent(form.identify()).preSubmit = function(obj) {
					var isEmpty = true;
					var inputList = obj.form.select('input.searchInput');
					inputList.each(function(input) {
					 	if (input.getValue() != '') {
							if (this.inputValueList[input.identify()] != '') {
								if (input.getValue() != this.inputValueList[input.identify()]) {
									isEmpty = false;
								}
							} else {
								isEmpty = false;
							}
						}
					}.bind(this));

					if (isEmpty) {
						var searchFor = obj.form.down('span.search-for');
						if (Effect.Queues.get('span.search-for').size() == 0) {
							new Effect.Pulsate(searchFor, {
								pulses: 2,
								duration: 0.6,
								queue: {scope: 'span.search-for', position: 'end'}
							});
						}
					}

					return !isEmpty;
				}.bind(this);
			}.bind(this));

		} catch(ex) {
		}
	},

	x: null
}));


