// PAGE LOAD OBJECTS

Event.observe(window, 'load', function() {
	new Accordion('#FAQ');
});


function MM_showHideLayers() { //v9.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3)
  with (document) if (getElementById && ((obj=getElementById(args[i]))!=null)) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

// Copyright 2006 | Thierry Koblentz - www.TJKDesign.com All Rights reserved
// TJK_ToggleDL() Version 1.5.4 report bugs or errors to thierry@tjkdesign.com

function TJK_doToggleDL(x){
    var zDD=document.getElementById('TJK_DL').getElementsByTagName('dd');
    var zDT=document.getElementById('TJK_DL').getElementsByTagName('dt');
    zDD[x].className=(zDD[x].className=='hideDD')?'showDD':'hideDD';
    zDT[x].className=(zDT[x].className=='DTplus')?'DTminus':'DTplus';
}
function TJK_ToggleDL(){
    if (document.getElementById && document.getElementsByTagName){
	    var zDT=document.getElementById('TJK_DL').getElementsByTagName('dt');
	    var zDD=document.getElementById('TJK_DL').getElementsByTagName('dd');
	    var ToggleON = document.getElementById('TJK_ToggleON');
	    var ToggleOFF = document.getElementById('TJK_ToggleOFF');
		    if (ToggleON && ToggleOFF){
				ToggleON.onclick = TJK_ToggleDLopen;
				ToggleON.title = "Show all answers";
				ToggleON.href = "#";
			   	ToggleOFF.onclick = TJK_ToggleDLclose;
 			   	ToggleOFF.title = "Hide all answers";
				ToggleOFF.href = "#";
			}
	    for(var i=0;i<zDT.length;i++){
    		var zContent = zDT[i].innerHTML;
		    var zHref = "<a href='#' onclick=\"TJK_doToggleDL("+i+");return false\" title='Show/hide the answer'>";
		    zDT[i].innerHTML = zHref + zContent + "</a>";
		    zDD[i].className='hideDD';
		    zDT[i].className='DTplus';
	    }
    }
}


// GLOBAL ACCORDION BOXES

var Accordion = Class.create();

Accordion.prototype =
{
	initialize: function(s)
	{
		var x = $$(s);
		if (!x || !x.length) return;

		this.container = x[0];
		this.open = false;
		this.options = this.container.getElementsBySelector('.qa');
		this.drawers = this.container.getElementsBySelector('.qa .answer');

		this.options.each(function(x, i) {
			if (x.hasClassName('on')) this.open = i;
			var handle = x.getElementsBySelector('.question a:not(.edit)');
			handle.invoke('observe', 'click', function(e) { this.slide(e, i) }.bind(this));
		}.bind(this));
	},

	slide: function(e, i)
	{
		Event.stop(e);
		if (this.halt || this.open === i) return;
		this.halt = true;

		this.options[i].addClassName('on');
		var effects = [new Effect.BlindDown(this.drawers[i], {sync:true})];
		if (this.open !== false) {
			this.drawers[this.open].setStyle({overflow: 'hidden'});
			effects.push(new Effect.BlindUp(this.drawers[this.open], {sync:true}));
		}

		new Effect.Parallel(effects, {duration: 0.2, afterFinish: function() {
			if (this.open !== false) this.options[this.open].removeClassName('on');
			this.open = i;
			delete this.halt;
		}.bind(this)});
	}
}

/**
 * Reset validation errors
 * @param array	fields
 */
function resetValidationErrors(fields) {
	$('errors').hide();
	$$('#errors li').each(function(el) {
		el.hide();
	});
	fields.each(function(field) {
		$(field).removeClassName('inputError');
		label = $$('label[for=' + field + ']').first();
		if (label)
			label.removeClassName('labelError');
	});
}

/**
 * Show validation error
 * @param string	field
 */
function showValidationError(field, error_id) {
	if (!error_id)
		error_id = field;
	$('error_' + error_id).show();
	$(field).addClassName('inputError');
	label = $$('label[for=' + field + ']').first();
	if (label)
		label.addClassName('labelError');
}

//define additional validation methods
Object.extend(String.prototype, {
	/**
	 * Validate phone number
	 * @return	boolean
	 */
	isValidPhoneNumber: function() {
		return this.match(/^(?:\D*\d\D*){10}$/);
	},

	/**
	 * Validate email
	 * @return	boolean
	 */
	isValidEmail: function() {
		return this.match(/^.+@.+\..+$/); //very basic, we send confirmation anyway
	}
});

//SHOW HIDE MEMBERSHIP OPTIONS

//here you place the ids of every element you want.
var ids=new Array('silver', 'gold', 'platinum');

var selectedPlan = 'silver';

function switchid(id){
	hideallids();
	$(id + 'Detail').show();
	$(id + 'Badge').addClassName('on');
}

function hideallids(){
	//loop through the array and hide each element by id
	ids.each(function (id) {
		$(id + 'Detail').hide();
		$(id + 'Badge').removeClassName('on');
	});
}

function switchSelected() {
	hideallids();
	$(selectedPlan + 'Detail').show();
	$(selectedPlan + 'Radio').addClassName('on');
	$(selectedPlan + 'Badge').addClassName('on');
}

function selectPlan(plan) {
	//deselect previously selected plan
	$(selectedPlan + 'Radio').removeClassName('on');
	$(selectedPlan + 'Badge').removeClassName('on');
	//select new one
	selectedPlan = plan;
	$('inputPlan').value = plan;
	$(selectedPlan + 'Radio').addClassName('on');
	$(selectedPlan + 'Badge').addClassName('on');
}
