// Function: JASlider
//
// Description: A content div rotation slider
//
// Parameters:  The controls wrapper div is specified with the "rotatingBannerControlsWrapperDivString" parameter.
//              The value can be any valid jQuery selector.
//              An illegal value will result in unpredictable behaviour.
//              If an empty string is provided then no controls will be created.
//
//              The wrapper div already containing the content divs to be scrolled is specified with the "rotatingBannerWrapperDivString" parameter.
//              The value can be any valid jQuery selector.
//              An illegal value will result in unpredictable behaviour.
//              An empty string is considered an illegal value.
//
//              The normal height of a content div is specified with the "displayDivHeightString" parameter.
//              The value can be of any form which is valid in css (eg "75%" or "50px")
//              An illegal value will result in unpredictable behaviour.
//              An empty string is considered an illegal value.
//
//              The width of a content div is specified with the "displayDivWidthString" parameter.
//              The value can be of any form which is valid in css (eg "75%" or "50px")
//              A positive value will result in every content div being slid in from the right, while a negative one will result in every content div being slid in from the left.
//              An illegal value will result in unpredictable behaviour.
//              An empty string is considered an illegal value.
//
//              The delay in milliseconds between content div rotations is specified with the "rotationTimeoutInt" parameter.
//              An illegal value will result in unpredictable behaviour.
//
//              The transition time in milliseconds for a content div to slide onto the screen is specified with the "slideDurationInt" parameter.
//              An illegal value will result in unpredictable behaviour.
//
// Result:      This function has no return result.
//
// Example HTML:
// <div class="rotatingBannerWrapperDiv">
//
// <div>
// <span>
// Usability
// </span>
// &nbsp;is how easy-to-use and easy-to-learn a new user finds your website or application.
// </div>
//
// <div>
// <span>
// Usability
// </span>
// &nbsp;and&nbsp;
// <span>
// design
// </span>
// &nbsp;define how people feel about your product, service, or company.
// </div>
//
// <div>
// Don't lose another customer to a confusing, frustrating interface.
// </div>
//
// <div>
//
// <a href="/contact/">Contact</a>&nbsp;Marketcrashers now for a candid chat about how we can help you.
// </div>
//
// </div>
// 
// <div class="rotatingBannerControlsWrapperDiv">
// </div>
//
// Example CSS:
// .rotatingBannerControlsWrapperDiv
// {
// 	margin: 0px auto 0px auto;
// 	height: 35px;
// 	overflow: hidden;
// 	width: 940px;
// }
// 
// .rotatingBannerControlsWrapperDiv ol
// {
// 	height: 8px;
// 	list-style: none outside none;
// 	margin: 0px 0px 0px 0px;
// 	padding: 17px 0px 0px 820px;
// }
// 
// .rotatingBannerControlsWrapperDiv ol li
// {
// 	float: left;
// 	height: 8px;
// 	line-height: 8px;
// 	margin: 0px 5px 0px 0px;
// 	padding: 0px 0px 0px 0px;
// }
// 
// .rotatingBannerControlsWrapperDiv ol li a
// {
// 	background: none repeat scroll 0 0 #CCCCCC;
// 	color: #555555;
// 	float: left;
// 	height: 8px;
// 	line-height: 8px;
// 	padding:0px 10px 0px 10px;
// 	text-decoration: none;
// }
//
// .rotatingBannerControlsWrapperDiv ol li a:hover
// {
// 	background: #999999;
// }
// 
// .rotatingBannerControlsWrapperDiv ol li a:focus
// {
// 	outline: none;
// }
// 
// .rotatingBannerControlsWrapperDiv ol li.JASliderCurrentControl a
// {
// 	background: #770343;
// 	color: #FFFFFF;
// }
// 
// .rotatingBannerWrapperDiv
// {
// 	margin: 40px auto 0px auto;
// 	height: 25px;
// 	overflow: hidden;
// 	width: 940px;
// }
// 
// .rotatingBannerWrapperDiv div
// {
// 	color: #333333;
// 	font-family: Arial, Helvetica, sans-serif;
// 	font-size: 18px;
// 	height: 0px;
// 	overflow: hidden;
// 	position: relative;
// }
// 
// .rotatingBannerWrapperDiv div span
// {
// 	color: #770343;
// }
//
// Example Javascript:
// <script type="text/javascript" src="/js/JASlider.js">
// </script>
//
// JASlider(".rotatingBannerControlsWrapperDiv", ".rotatingBannerWrapperDiv", "25px", "940px", 5000, 500);
//
function JASlider(rotatingBannerControlsWrapperDivString, rotatingBannerWrapperDivString, displayDivHeightString, displayDivWidthString, rotationTimeoutInt, slideDurationInt)
{
	var c1;
	var currentDisplayDiv;
	var currentDisplayDivNum;
	var currentTimeout;
	var displayDivCount;
	var tempControlLi;
	var tempDisplayDiv;


	function controlClicked()
	{
		var c1;
		var currentElement;


		clearTimeout(currentTimeout);

		currentElement=jQuery(this);

		if(!(currentElement.hasClass("JASliderCurrentControl")))
		{
			jQuery(rotatingBannerControlsWrapperDivString+" ol li.JASliderCurrentControl").removeClass("JASliderCurrentControl");
			currentElement.addClass("JASliderCurrentControl");

			tempControlLi=jQuery(rotatingBannerControlsWrapperDivString+" ol li:first");
			currentDisplayDivNum=0;

			while(tempControlLi.length>0)
			{
				currentDisplayDivNum++;

				if(tempControlLi.hasClass("JASliderCurrentControl"))
				{
					break;
				}

				tempControlLi=tempControlLi.next('li');
			}

			currentDisplayDiv.css('height', '0px');

			currentDisplayDiv=jQuery(rotatingBannerWrapperDivString+" div:first");

			for(c1=1;c1<currentDisplayDivNum;c1++)
			{
				currentDisplayDiv=currentDisplayDiv.next('div');
			}

			currentDisplayDiv.css('left', displayDivWidthString);
			currentDisplayDiv.css('height', displayDivHeightString);
			currentDisplayDiv.animate({left: '0'}, slideDurationInt);
		}

		currentTimeout=setTimeout(showNextDiv, rotationTimeoutInt);
	}

	function showNextDiv()
	{
		var c1;


		currentDisplayDiv.css('height', '0px');
		currentDisplayDiv=currentDisplayDiv.next('div');
		currentDisplayDivNum++;

		if(currentDisplayDiv.length==0)
		{
			currentDisplayDiv=jQuery(rotatingBannerWrapperDivString+" div:first");
			currentDisplayDivNum=1;
		}

		if(rotatingBannerControlsWrapperDivString.length>0)
		{
			jQuery(rotatingBannerControlsWrapperDivString+" ol li.JASliderCurrentControl").removeClass("JASliderCurrentControl");

			tempControlLi=jQuery(rotatingBannerControlsWrapperDivString+" ol li:first");

			for(c1=1;c1<currentDisplayDivNum;c1++)
			{
				tempControlLi=tempControlLi.next('li');
			}

			tempControlLi.addClass("JASliderCurrentControl");
		}

		currentDisplayDiv.css('left', displayDivWidthString);
		currentDisplayDiv.css('height', displayDivHeightString);
		currentDisplayDiv.animate({left: '0'}, slideDurationInt);

		currentTimeout=setTimeout(showNextDiv, rotationTimeoutInt);
	}


	jQuery(rotatingBannerWrapperDivString).find('div').css('height', '0px');

	currentDisplayDiv=jQuery(rotatingBannerWrapperDivString+" div:first");

	if(currentDisplayDiv.length>0)
	{
		currentDisplayDivNum=1;

		if(rotatingBannerControlsWrapperDivString.length>0)
		{
			displayDivCount=0;
			tempDisplayDiv=currentDisplayDiv;

			while(tempDisplayDiv.length>0)
			{
				displayDivCount++;
				tempDisplayDiv=tempDisplayDiv.next('div');
			}

			jQuery(rotatingBannerControlsWrapperDivString).append(document.createElement("ol"));

			for(c1=0;c1<displayDivCount;c1++)
			{
				jQuery(rotatingBannerControlsWrapperDivString+" ol").append(document.createElement("li"));
			}

			jQuery(rotatingBannerControlsWrapperDivString+" ol li").html("<a href=\"javascript:void(0);\">&nbsp;</a>").click(controlClicked);
			jQuery(rotatingBannerControlsWrapperDivString+" ol li:first").addClass("JASliderCurrentControl");
		}

		currentDisplayDiv.css('left', displayDivWidthString);
		currentDisplayDiv.css('height', displayDivHeightString);
		currentDisplayDiv.animate({left: '0'}, slideDurationInt);

		currentTimeout=setTimeout(showNextDiv, rotationTimeoutInt);
	}
}

