function showPreloader(submitForm) {

	submitForm.submit()

	$('loadercontainer').show();
	
	// have to reload image src so IE6 continues animation
	loaderImage = $('loadercontainer').firstDescendant();
	loaderImage.src = loaderImage.src;
	
	// hide all the select boxes for IE6 that show up overtop loader
	$$('select').each(function(item) { item.hide() });
	
	return false;
	
}

/*
 * Displays a video lightbox for all trailers & previews.
 * *Title shows as NULL in IE6 unless set to something.
 */
function openVideoLightbox(url) {
	myLightWindow.activateWindow({
    	href: url,
	    width: 320,
	    height: 251,
	    title: '',
    	iframe_embed: true
	});
}

function setAlertMessage(alertMessage) {
	$('alert_message').update(alertMessage);
	Effect.Appear($('alert_message'), {
		queue: {
			position: 'end',
			scope: 'alertMessageScope'
		}
	});
	new Effect.Highlight('alert_message', {startcolor: '#FDCACA'});
}

function clearAlertMessage() {
	if ($('alert_message').visible) {
		Effect.Fade($('alert_message'), {
			queue: {
				position: 'end',
				scope: 'alertMessageScope'
			},
			afterFinish: function() {
				$('alert_message').update();
			}
		});
	}
}

function leftmenuToggle(activate, deactivate) {
	var activateBody = $(activate + '_body');
	var deactivateBody = $(deactivate + '_body');
	var activateTab = $(activate + '_tab').firstDescendant();
	var deactivateTab = $(deactivate + '_tab').firstDescendant();

	if (activateBody.getStyle('display') == 'none') {
		activateTab.writeAttribute('src', CI.base_url + '/images/syndication/tab_' + activate + '_on.gif');
		deactivateTab.writeAttribute('src', CI.base_url + '/images/syndication/tab_' + deactivate + '_off.gif');
		new Effect.BlindUp(deactivateBody, {queue: {position: 'front', scope: 'candist_nav', limit: 2}});
		new Effect.BlindDown(activateBody, {queue: {position: 'end', scope: 'candist_nav', limit: 2}});
	}
}

function padZeros(number, length) {
    var str = '' + number;
    while (str.length < length) {
        str = '0' + str;
    }
    return str;
}

/*
 * Creates multi-select dropdowns
 */
document.observe("dom:loaded", function() {
	initMultiSelectDropdowns();
});

function initMultiSelectDropdowns() {
	$$('.multiselect_dropdown_container').each(function(item) {
		item.down('select').reset = function() {
			this.up().select('.dropdown_multiselect_item').each(function(ms_item) {
				ms_item.remove();
			});
		}
		
		item.down('select').observe('change', function (e) {
			selectedValue = $F(this);
			exists = item.select('input').detect(function(input) {
				return $F(input) == selectedValue;
			});
		
			if (exists == undefined && this.value != '') {
				fieldName = this.name.sub('multiselect_', '');	
				optionText = this.options[this.selectedIndex].text;
				xIcon = new Element('img', {'src': CI.base_url + '/images/icons/small_x.gif', 'class':'x_icon'});
				optionInput = new Element('input', {'type': 'hidden', 'name': fieldName, 'value': $F(this)});
				multiSelectOptionDiv = new Element('div', {'class':'x_icon'});

				multiSelectOptionDiv.insert(xIcon);
				multiSelectOptionDiv.insert(optionText);
				multiSelectOptionDiv.insert(optionInput);

				xIcon.observe('click', function (e) {
					this.up().remove();
				});
				item.insert({bottom: multiSelectOptionDiv});
			}
			this.setValue('');
			// alternate way to blur, works in ie & firefox
			this.disable();this.enable();
		});
		
		item.select('.dropdown_multiselect_item').each(function(item2) {
			item2.down('.x_icon').observe('click', function(e) {
				this.up('.dropdown_multiselect_item').remove();
			});
		});
	});	
}

/*
 * Returns an array of the values of arrayed checked checkboxes
 */
function checkboxArrayValue(checkboxes) {
	if (!checkboxes.length) {
		checkboxes = new Array(checkboxes);
	}
	checkboxes = $A(checkboxes).findAll(function(n) {
	    return n.checked;
	});
	checkboxes = checkboxes.collect(function(n) {
		return $F(n);
	});
	return checkboxes;
}

/*
 * Returns an array of checkboxes that are named the same
 */
function checkboxArray(checkboxes) {
	if (checkboxes == undefined) {
		return null;
	}
	if (!checkboxes.length) {
		checkboxes = new Array(checkboxes);
	}
	return $A(checkboxes);
}

/*
 * Returns an array of the values of arrayed input fields
 */
function inputArrayValue(inputboxes) {
	if (!inputboxes.length) {
		inputboxes = new Array(inputboxes);
	}
	inputboxes = $A(inputboxes).collect(function(n) {
		return $F(n);
	});
	return inputboxes;
}

