
(function(jQuery) {

	jQuery.fn.easyAccordion = function(options) {

		var defaults = {
			slideNum: true,
			autoStart: false,
			slideInterval: 3000
		};

		this.each(function() {
			var settings = jQuery.extend(defaults, options);
			jQuery(this).find('dl').addClass('easy-accordion');

		// -------- Set the variables ------------------------------------------------------------------------------

			jQuery.fn.setVariables = function() {
				dlWidth = jQuery(this).width();
				dlHeight = jQuery(this).height();
				dtWidth = jQuery(this).find('dt').outerWidth();
				dtHeight = dlHeight - (jQuery(this).find('dt').outerHeight()-jQuery(this).find('dt').height());
				slideTotal = jQuery(this).find('dt').size();
				ddWidth = dlWidth - (dtWidth*slideTotal) - (jQuery(this).find('dd').outerWidth(true)-jQuery(this).find('dd').width());
				ddHeight = dlHeight - (jQuery(this).find('dd').outerHeight(true)-jQuery(this).find('dd').height());
			};
			jQuery(this).setVariables();

		// -------- Fix some weird cross-browser issues due to the CSS rotation -------------------------------------
/*
			if (jQuery.browser.safari) {
				var dtTop = (dlHeight-dtWidth)/2;
				var dtOffset = -dtTop;
			}
			if (jQuery.browser.mozilla) {
				var dtTop = dlHeight - 20; var dtOffset = - 20;
			}
			if (jQuery.browser.msie) {
				var dtTop = 0; var dtOffset = 0;
			}
*/
			var dtTop = 0;
			var dtOffset = 0;
		// -------- Getting things ready ------------------------------------------------------------------------------

			var f = 1;
			jQuery(this).find('dt').each( function() {
				jQuery(this).css({'width':dtWidth,'top':dtTop,'padding-left':dtOffset});
				f = f + 1;
			});

			if(jQuery(this).find('.active').size()) { 
				jQuery(this).find('.active').next('dd').addClass('active');
			} else {
				jQuery(this).find('dt:first').addClass('active').next('dd').addClass('active');
			}

			jQuery(this).find('dt:first').css({'left':'0'}).next().css({'left':dtWidth});
			jQuery(this).find('dd').css({'width':ddWidth,'height':ddHeight});	

		// -------- Functions ------------------------------------------------------------------------------


			jQuery.fn.findActiveSlide = function() {
				var i = 1;
				this.find('dt').each(function(){
					if(jQuery(this).hasClass('active')){
						activeID = i; // Active slide
					} else if (jQuery(this).hasClass('no-more-active')){
						noMoreActiveID = i; // No more active slide
					}
					i = i + 1;
				});
			};


			jQuery.fn.calculateSlidePos = function() {
				var u = 2;
				var speed = 500;
				jQuery(this).find('dt').not(':first').each(function() {
					var activeDtPos = dtWidth*activeID;
					if(u <= activeID){
						var leftDtPos = dtWidth*(u-1);
						jQuery(this).animate({'left': leftDtPos}, speed);
						if(u < activeID){ // If the item sits to the left of the active element
							jQuery(this).next().css({'left':leftDtPos+dtWidth});	
						} else{ // If the item is the active one
							jQuery(this).next().animate({'left':activeDtPos}, speed);
						}
					} else {
						var rightDtPos = dlWidth-(dtWidth*(slideTotal-u+1));
						jQuery(this).animate({'left': rightDtPos}, speed);
						var rightDdPos = rightDtPos+dtWidth;
						jQuery(this).next().animate({'left':rightDdPos}, speed);
					}
					u = u+ 1;
				});

				setTimeout( function() {
					jQuery('.easy-accordion').find('dd').not('.active').each(function(){ 
						jQuery(this).css({'display':'none'});
					});
				}, 400);

			};


			jQuery.fn.activateSlide = function() {
				this.parent('dl').setVariables();	
				this.parent('dl').find('dd').css({'display':'block'});
				this.parent('dl').find('dd.plus').removeClass('plus');
				this.parent('dl').find('.no-more-active').removeClass('no-more-active');
				this.parent('dl').find('.active').removeClass('active').addClass('no-more-active');
				this.addClass('active').next().addClass('active');	
				this.parent('dl').findActiveSlide();
				if(activeID < noMoreActiveID){
					this.parent('dl').find('dd.no-more-active').addClass('plus');
				}
				this.parent('dl').calculateSlidePos();	
			};


			jQuery.fn.rotateSlides = function(slideInterval, timerInstance) {
				var accordianInstance = jQuery(this);
				timerInstance.value = setTimeout(function(){accordianInstance.rotateSlides(slideInterval, timerInstance);}, slideInterval);
				jQuery(this).findActiveSlide();
				var totalSlides = jQuery(this).find('dt').size();
				var activeSlide = activeID;
				var newSlide = activeSlide + 1;
				if (newSlide > totalSlides) newSlide = 1;
				jQuery(this).find('dt:eq(' + (newSlide-1) + ')').activateSlide(); // activate the new slide
			}


		// -------- Let's do it! ------------------------------------------------------------------------------

			function trackerObject() {this.value = null}
			var timerInstance = new trackerObject();

			jQuery(this).findActiveSlide();
			jQuery(this).calculateSlidePos();

			if (settings.autoStart == true){
				var accordianInstance = jQuery(this);
				var interval = parseInt(settings.slideInterval);
				timerInstance.value = setTimeout(function(){
					accordianInstance.rotateSlides(interval, timerInstance);
				}, interval);
			}


			jQuery(this).find('dt').not('active').click(function(){		
				jQuery(this).activateSlide();
				clearTimeout(timerInstance.value);
			});


			if (!(jQuery.browser.msie && jQuery.browser.version == 6.0)){ 
				jQuery('dt').hover(function(){
					jQuery(this).addClass('hover');
				}, function(){
					jQuery(this).removeClass('hover');
				});
			}

		});
	};

})(jQuery);



function validate(the_form) {
	var error = "";
	var cb = jQuery("#confirmation1");
	if (the_form.conf.checked != true) {
		error = error + "The Terms and Conditions of Business were not accepted.\n";
	}
	if (error != "") {
		alert(error);
		return false;
	} else {
		return true;
	}
}


