var sponsor_ad_index = null;
var sponsor_ad_ids = new Array();
var sponsor_source_index = 4;

var target_sponsor_ad_element = null;
var source_sponsor_ad_element = null;

var currently_displayed_ads = new Array();


// display next ad, make ajax request to increment impression count
function show_next_sponsor_ad(target_sponsor_index) {
	// fade out ad
	Effect.Fade("sponsor_ad_" + target_sponsor_index, {duration: 0.2, to: 0.01});

	// increment impressions
	new Ajax.Request("/advertiser_ad/increment_impressions/" + sponsor_ad_ids[sponsor_source_index]);

	// replace ad content
	target_sponsor_ad_element = document.getElementById("sponsor_ad_" + target_sponsor_index);
	source_sponsor_ad_element = document.getElementById("all_sponsor_ads_" + sponsor_ad_ids[sponsor_source_index]);

	setTimeout("target_sponsor_ad_element.innerHTML = source_sponsor_ad_element.innerHTML;", 200);

	sponsor_ad_index = target_sponsor_index + 1;

	if (sponsor_ad_index > 4)
		sponsor_ad_index = 1;

	// fade in ad
	if (sponsor_ad_index == 1)
		setTimeout("Effect.Appear('sponsor_ad_4', {duration: 0.2});", 500);
	else
		setTimeout("Effect.Appear('sponsor_ad_" + (sponsor_ad_index - 1) + "', {duration: 0.2});", 500);


	sponsor_source_index++;

	if (sponsor_source_index >= sponsor_ad_ids.length)
		sponsor_source_index = 0;
	
	// repeat for next ad
	setTimeout("show_next_sponsor_ad(" + sponsor_ad_index + ");", 4000);
}


function get_random_number (top_range) {

    var now=new Date();
    var num=(now.getSeconds())%top_range;
   // var num=num+1; //comment out to allow 0
    return num;

}

function fill_four_ads () {

	//only keep looping if the number of pictures left is greater than or equal the number of slots to fill!!!
	slots_to_fill = (sponsor_ad_ids.length < 4 ? sponsor_ad_ids.length : 4);
	total_available_ads = sponsor_ad_ids.length;
	for (x = 0; x < slots_to_fill; x++) {	
		target_sponsor_index = x;
	
		//loop until find a random number not already in the currently_displayed_ads array 
		var currently_being_displayed = true; //flag for if picture is already showing
		current_index = ''; //hold current picture index to show

		while (currently_being_displayed) {
			current_index = get_random_number (total_available_ads);
			currently_being_displayed = false; //innocent until proven guilty
			for (y = 0; y < currently_displayed_ads.length; y++) {
				if (currently_displayed_ads[y] == current_index) currently_being_displayed = true;
			}
		}

		//if find one not in use, add it to the stack and keep going
		currently_displayed_ads.push(current_index);


		// increment impressions
		new Ajax.Request("/advertiser_ad/increment_impressions/" + sponsor_ad_ids[current_index]);

		// replace ad content
		target_sponsor_ad_element = document.getElementById("sponsor_ad_" + (target_sponsor_index + 1));
		source_sponsor_ad_element = document.getElementById("all_sponsor_ads_" + sponsor_ad_ids[current_index]);
		target_sponsor_ad_element.innerHTML = source_sponsor_ad_element.innerHTML;

	}//end for loop


}//end function
