
function searchInit() 
{
	var searchWrap = $('Search');
	if( searchWrap != null) {
	    ibmSearch = new searchParams();
	}
}

var searchParamsOut = false;

var searchParams = new Class({
	
	initialize: function(element, options) {
			
		this.options = Object.extend({
			changeTransitionOut:    Fx.Transitions.Quint.easeOut,
			changeTransitionIn:	    Fx.Transitions.Quint.easeIn,
			buttonExtend:           $$('#searchAdvanced'),
			buttonCollapse:         $$('#searchSimple'),
			buttonCollapseStay:     $$('#searchSimpleStay'),
			objOuter:               $$('#Search')
		}, options || {});		
		
		this.options.buttonCollapse.setStyle('display','none');
		this.options.buttonCollapseStay.setStyle('display','none');
	
		this.options.buttonExtend.addEvent('click', function(){
				this.paramExtend();
				this.options.objOuter.setStyle('height',600);
				this.options.buttonExtend.setStyle('display','none');
				this.options.buttonCollapse.setStyle('display','block');
				this.options.buttonCollapseStay.setStyle('display','block');
				searchParamsOut = true;
			}.bind(this)
		);
		
		this.options.buttonCollapse.addEvent('click', function(){
				this.paramCollapse();
				this.options.buttonExtend.setStyle('display','block');
				this.options.buttonCollapse.setStyle('display','none');
				this.options.buttonCollapseStay.setStyle('display','none');
				searchParamsOut = false;
			}.bind(this)
		);
	},
	
	paramExtend: function(){	
		
		var paramMiddle = $('paramMiddle');
		var paramBottom = $('paramBottom');
		var listBlocker = $('listBlocker');
		var listObj     = $('searchList');
		var viewObj     = $('articleView');
		var listHeight  = 0;

	    // height
	    if( listObj != null ) {    		
	        listHeight = listObj.getStyle('height').toInt()+330;
	    }
	    if( viewObj != null ) {   
	        listHeight = viewObj.getStyle('height').toInt()+330;
	    }
		
		if( $type(paramMiddle) == 'element' && $type(paramBottom) == 'element' )
		{
			if(this.options.changeTransitionOut != 'none')
			{
				
				var changeEffect = new Fx.Elements(listBlocker, {duration: 1500, transition: this.options.changeTransitionOut});
				changeEffect.start({
					'0': { 'height': listHeight }				   
				});	

				var changeEffect = new Fx.Elements(paramMiddle, {duration: 300, transition: this.options.changeTransitionOut});
				changeEffect.start({
					'0': { 'height': 90 }				   
				});	
				
				var changeEffect = new Fx.Elements(paramBottom, {duration: 300, transition: this.options.changeTransitionOut});
				changeEffect.start({
				}).chain(function() {
					this.start.delay(100, this, {
					'0': { 'height': 280 }				  				
					});
				});
			};			
		}
	},
	
	paramCollapse: function(){	
	
		var paramMiddle = $('paramMiddle')
		var paramBottom = $('paramBottom')
		var listBlocker = $('listBlocker')
			
		if( $type(paramMiddle) == 'element' && $type(paramBottom) == 'element' && this.options.changeTransitionIn != 'none')
		{
			var changeEffect = new Fx.Elements(paramBottom, {duration: 300, transition: this.options.changeTransitionOut});
			changeEffect.start({
				'0': { 'height': 0 }				   
			});	
			
			var changeEffect = new Fx.Elements(paramMiddle, {duration: 300, transition: this.options.changeTransitionIn});
			changeEffect.start({
			}).chain(function() {
				this.start.delay(100, this, {
				'0': { 'height': 0 }				  				
				});
			});
			
			var changeEffect = new Fx.Elements(listBlocker, {duration: 1000, transition: this.options.changeTransitionIn});
			changeEffect.start({
				'0': { 'height': 0 }				   
			});	
			
			var changeEffect = new Fx.Elements(this.options.objOuter, {duration: 700, transition: this.options.changeTransitionIn});
			changeEffect.start({
				'0': { 'height': 110 }				   
			});				
		}
	}
	
	
});












// INIT

function paramInit() 
{
	var paramWrap = $('innerParamBottom');
	if( paramWrap != null) {
	    paramTabs = new searchParamTabs(
	        'innerParamBottom',
	        'searchParamTabs',
	        'searchParamContent'
        );
    }
}


var searchParamTabs = new Class({
	
	initialize: function(element, ulClass, pageClass, options) {
		this.options = Object.extend({
			activeTabClass:     'paramTabActive',
			activeContentClass: 'paramContentActive'
		}, options || {});
		
		this.el     = $(element);
		this.elid   = element;				
		this.titles = $$('#' + this.elid + ' ul.' + ulClass + ' li');
		this.panels = $$('#' + this.elid + ' .' + pageClass);		
		this.titles[0].addClass( this.options.activeTabClass );
		this.panels[0].addClass( this.options.activeContentClass );
		
		this.titles.each(function(item) {		
			item.addEvent('click', function(){
					this.activate(item)
				}.bind(this)
			);
		}.bind(this));
	},
	
	activate: function(tab){
		
		if($type(tab) == 'string') 
		{
			currTab = $$('#' + this.elid + ' ul.' + ulClass + ' li').filterByAttribute('tabtitle', '=', tab)[0];
			tab = currTab;
		}
		
		if(tab != this.activeTitle) {
			if($type(tab) == 'element')
			{			
				var thisTab = tab.getProperty('tabtitle');
				var thisPanel = this.panels.filterById(thisTab)[0];	
							
				this.titles.removeClass( this.options.activeTabClass );	
				this.panels.removeClass( this.options.activeContentClass );					
				tab.addClass( this.options.activeTabClass );
				this.panels.filterById(thisTab).addClass( this.options.activeContentClass );

				this.activeTitle = tab;			
			}
		}
	}
	
});