Event.observe(window, 'load', function() { wininit(); });

var activehometab = '';
var animating = false;

function wininit() {
	var tabs = $$('#homesolutionsheader li');
	if (tabs.length > 0) {
		activehometab = 'physician';

		for (var t = 1; t < tabs.length; t++) {
			Element.getElementsBySelector(tabs[t], 'a')[0].onclick = function() { return false; };
			Event.observe(tabs[t], 'click', activatetab.bindAsEventListener(tabs[t]));
		}
		
		$('homesolutionscontent').style.height = $('solutions_physician').getHeight() + 'px';
	}
}

function activatetab(e) {
	var whichtab = Event.element(e).parentNode;
	
	if (!animating && whichtab.nodeName == "LI") {
		var tabid, showtab;
		var tabs = $$('#homesolutionsheader li');
	
		animating = true;
	
		for (var t = 1; t < tabs.length; t++) {
			tabid = tabs[t].id.replace(/tab_/, '');
			if (tabs[t] == whichtab) {
				setClass(tabs[t], 'active', '');
				showtab = tabid;
			} else {
				setClass(tabs[t], '', 'active');
			}
		}
		
		new Effect.Fade('solutions_' + activehometab, {
			duration: 0.125, 
			afterFinish: function() {
				new Effect.ReSize($('homesolutionscontent'), {
					duration: 0.375,
					delay: 0.1,
					queue: 'end', 
					direction:'vert', 
					amount: ($('solutions_' + showtab).getHeight() - $('solutions_' + activehometab).getHeight()), 
					afterFinish: function() { swapcontent(showtab) }
				});
				activehometab = showtab; 
			} 
		});
 	}
}

function swapcontent(whichcontent) {
	new Effect.Appear('solutions_' + whichcontent, { 
		duration: 0.125,
		afterFinish: function() { animating = false; }
	});
}


function setClass(element, newValue, oldValue) {
	if(!newValue && !oldValue) {
		element.className = '';
		return;
	}

	//while(element.className.indexOf('  ') > -1) element.className = element.className.replace('  ', ' ');
	var classes = element.className.split(' ');
	if (oldValue != null && oldValue != '') {
		while (classes.length) { 
			var position = classes.indexOf(oldValue);
			if(position == -1) break;
			var temp = classes.splice(position, 1);
		}
	}
	if (newValue != null && newValue != '') { 
		while (classes.length) { 
			var position = classes.indexOf(newValue); 
			if (position == -1) break;
			var temp = classes.splice(position, 1);
		}
		var temp = classes.push(newValue);
	}
	element.className = classes.join(' ');
}


// script.aculo.us EffectResize.js

// Copyright(c) 2007 - Frost Innovation AS, http://ajaxwidgets.com
//
// EffectResize.js is freely distributable under the terms of an MIT-style license.
// For details, see the script.aculo.us web site: http://script.aculo.us/

/* Helper Effect for resizing elements...
 */
Effect.ReSize = Class.create();
Object.extend(Object.extend(Effect.ReSize.prototype, Effect.Base.prototype), {
  initialize: function(element) {
    this.element = element;
    if(!this.element) throw(Effect._elementDoesNotExistError);
    var options = Object.extend({ amount: 100, direction: 'vert', toSize:null }, arguments[1] || {});
    if( options.direction == 'vert' )
      this.originalSize = options.originalSize || parseInt(this.element.style.height);
    else
      this.originalSize = options.originalSize || parseInt(this.element.style.width);

    if( options.toSize != null )
      options.amount = options.toSize - this.originalSize;

    this.start(options);
  },
  setup: function() {
    // Prevent executing on elements not in the layout flow
    if(this.element.getStyle('display')=='none') { this.cancel(); return; }
  },
  update: function(position) {
    if( this.options.direction == 'vert' ){
      this.element.setStyle({height: this.originalSize+(this.options.amount*position)+'px'});
    } else {
      this.element.setStyle({width: this.originalSize+(this.options.amount*position)+'px'});
    }
  },
  finish: function(){
    if( this.options.direction == 'vert' ){
      this.element.setStyle({height: this.originalSize+this.options.amount+'px'});
    } else {
      this.element.setStyle({width: this.originalSize+this.options.amount+'px'});
    }
  }
});