WM.s960 = function () {};

WM.s960.init = function () {
	WM.s960.data();
	if ($('#homecontainer').length > 0) {
		//homepage
		WM.s960.buttonRotator();
	}
	WM.s960.fastFactsFill();
	WM.s960.iOSZoom();
};

WM.s960.iOSZoom = function () {
	if (navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPad/i)) {
		
		var viewportmeta = $('meta[name="viewport"]');
		if (viewportmeta) {
			$(viewportmeta).attr('content', 'width=device-width, minimum-scale=1.0, maximum-scale=1.0;');
			
			document.body.addEventListener('gesturestart', function () {
				//viewportmeta.content = 'width=device-width, minimum-scale=0.25, maximum-scale=1.6';
				$(viewportmeta).attr('content', 'width=device-width, minimum-scale=0.25, maximum-scale=1.6;');
			}, false);
		}
	}
};

WM.s960.orientationInit = function () {
	// init for events to be triggered on every orientation change
	WM.s960.fastFactsFill();
};
WM.s960.fastFactsFill = function () {
	$('#bfastfacts p').textfill({
		maxFontPixels : 16,
		innerTag : 'a'
	}).find('a').css({
		color : '#eee'
	});
};

WM.s960.donatewidget = function () {
	$('.actionimg').before('<div id="donatejigger"><form action="/donate/donation.asp" method="post"><p>Make a donation and help someone in need</p><p><label id="donatew">I would like to give:</label><input name="Donation" type="text" id="donatew" /> <input name="Button1" type="submit" value="Go" /></p></form></div>');
};

WM.s960.Timer = function (callback, delay) {
	var timerId,
	start,
	remaining = delay;
	this.pause = function () {
		window.clearTimeout(timerId);
		remaining -= new Date() - start;
	};
	this.resume = function () {
		window.clearTimeout(timerId);
		start = new Date();
		timerId = window.setTimeout(callback, delay);
	};
	this.resume();
};

WM.s960.indexCalc = function (elements, indexelem) {
	if (indexelem >= elements) {
		indexelem = indexelem - elements;
	}
	if (indexelem < 1) {
		indexelem = elements;
	}
	return indexelem
};

WM.s960.buttonAdvance = function (elements, indexelem) {
	indexelem = WM.s960.indexCalc(elements, indexelem);
	WM.s960.data.pos = indexelem;
	var toElem = $('#titlebar .banner').eq(0);
	var fromElem = $('#titlebar .banner').eq(indexelem);
	WM.s960.buttonSwitch(fromElem, toElem)
};

WM.s960.timedRotator = function (elements, indexelem) {
	indexelem = WM.s960.indexCalc(elements, indexelem);
	//var t;
	WM.s960.data.pos = indexelem;
	WM.s960.data.t = new WM.s960.Timer(function () {
			var toElem = $('#titlebar .banner').eq(0);
			var fromElem = $('#titlebar .banner').eq(indexelem);
			WM.s960.data.t = false;
			WM.s960.buttonSwitch(fromElem, toElem)
			WM.s960.timedRotator(elements, indexelem + 1)
		}, 7000);
	$('#titlebar').mouseover(function () {
		WM.s960.data.t.pause();
	}).mouseleave(function () {
		WM.s960.data.t.resume();
	});
};

WM.s960.isWide = function () {
	var test = true;
	test = ($('.ban1 .smImage').width() > 100);
	return test;
}

WM.s960.buttonSwitch = function (from, to) {
	var fromelm = $(from).clone();
	var toelm = $(to).clone();
	if (true) {
		$(from).fadeOut('fast', function () {
			$(from).html(toelm.html()).fadeIn()
		});
		$(to).fadeOut('fast', function () {
			$(to).html(fromelm.html()).fadeIn();
		});
	} else {
		$(from).html(toelm.html())
		$(to).html(fromelm.html())
	}
	
	$(fromelm).remove();
	$(toelm).remove();
};

WM.s960.buttonRotator = function () {
	if ($('#wesleybar').width() > 500) {
		$('#titlebar img').attr('src', function () {
		  return $(this).attr('rel');
		});
		$('#titlebar').addClass('rot').append('<div class="control"><span class="play pause"></span><span class="next"></span></div>');
		$('.control .play').live('click', function () {
			if ($(this).hasClass('pause')) {
				$(this).removeClass('pause').addClass('resume');
				if (typeof WM.s960.data.t === 'object') {
					WM.s960.data.t = new WM.s960.Timer(function () {}, 0);
					WM.s960.data.t = false;
				}
			} else {
				$(this).removeClass('resume').addClass('pause');
				WM.s960.timedRotator(WM.s960.data.elements, WM.s960.data.pos);
			}
		});
		$('.control .next').live('click', function () {
			$('.pause').removeClass('pause').addClass('resume');
			if (typeof WM.s960.data.t === 'object') {
				WM.s960.data.t = new WM.s960.Timer(function () {}, 0);
				WM.s960.data.t = false;
			}
			WM.s960.buttonAdvance(WM.s960.data.elements, WM.s960.data.pos + 1)
		});
		WM.s960.data.elements = $('#titlebar .banner').length - 1;
		
		WM.s960.timedRotator(WM.s960.data.elements, 1);
		$('#titlebar .smImage a').live('click', function () {
			$('#titlebar').unbind('mouseover').unbind('mouseleave');
			if (typeof WM.s960.data.t === 'object') {
				WM.s960.data.t = new WM.s960.Timer(function () {}, 0);
				WM.s960.data.t = false;
			}
			$('.pause').removeClass('pause').addClass('resume');
			var sendTo = $('#titlebar .ban0');
			var sendFrom = $(this).parents('div.banner');
			WM.s960.buttonSwitch(sendFrom, sendTo);
			return false;
		});
	}

};

(function ($) {
	/**
	 * Resizes an inner element's font so that the inner element completely fills the outer element.
	 * @author Russ Painter WebDesign@GeekyMonkey.com
	 * @version 0.1
	 * @param {Object} Options which are maxFontPixels (default=40), innerTag (default='span')
	 * @return All outer elements processed
	 * @example <div class='mybigdiv filltext'><span>My Text To Resize</span></div>
	 */
	$.fn.textfill = function (options) {
		var defaults = {
			maxFontPixels : 40,
			innerTag : 'span'
		};
		var Opts = jQuery.extend(defaults, options);
		return this.each(function () {
			var fontSize = Opts.maxFontPixels;
			var ourText = $(Opts.innerTag + ':visible:first', this);
			var maxHeight = $(this).height();
			var maxWidth = $(this).width();
			var textHeight;
			var textWidth;
			do {
				ourText.css('font-size', fontSize);
				textHeight = ourText.height();
				textWidth = ourText.width();
				fontSize = fontSize - 1;
			} while ((textHeight > maxHeight || textWidth > maxWidth) && fontSize > 3);
		});
	};
})(jQuery);


WM.s960.data = function () {
	var t;
	WM.s960.data.t = null;
	var pos = 0;
	var elements = 0;
};

$(document).ready(function () {
	WM.s960.init();
	window.addEventListener('orientationchange', function () {
		WM.s960.orientationInit()
	}, false);
});

