<!--//
function selectRadio(groupName, newval) {var buttonGroup; eval("buttonGroup = " + groupName);for (var i=0; i<buttonGroup.length; i++) {if (buttonGroup[i].value == newval) {buttonGroup[i].checked = true;}}}
function getSelectedRadio(buttonGroup) {if (buttonGroup[0]) {for (var i=0; i<buttonGroup.length; i++) {if (buttonGroup[i].checked) {return i}}} else {if (buttonGroup.checked) { return 0; }} return -1;}
function getSelectedRadioValue(buttonGroup) {var i = getSelectedRadio(buttonGroup);if (i == -1) {return "";} else {if (buttonGroup[i]) { return buttonGroup[i].value;} else { return buttonGroup.value;}}}
function selectOption(field, value) { options = field.options; for(i=0;i<options.length;i++) { if (options[i].value == value) { field.options.selectedIndex = i;}}}

/* ui helpers */
function confirmDelete(item) { return confirm('Are you sure you want to delete this ' + item + '?\n\tTo continue click \'OK\'\n');}
function rOn(obj) {Element.extend(obj).addClassName('highlight');}
function rOff(obj) {Element.extend(obj).removeClassName('highlight');}

// 
function insertAjaxPagination(params_arr) {

	var page_number 		= params_arr['page_number'] || 1;
	var num_results 		= params_arr['num_results'];
	var results_per_page 	= params_arr['results_per_page'] || 10;
	var onclick_handler		= params_arr['onclick_handler'] || 'return false;';
	var max_pages 			= params_arr['max_pages'] || 20;
	var target_element_id	= params_arr['element_id'];
	var separator			= params_arr['separator'] || '&nbsp;...';

	var num_pages 			= Math.floor(num_results / results_per_page);
	var segment 			= 1;
	var total_segments 		= 1;
	var pagination_html 	= '';

	// if we are only going to show MAX_PAGES then get the number for the link
    if (num_pages > max_pages) {
		segment        = Math.floor(page_number/max_pages) + 1;
		total_segments = Math.ceil(num_pages/max_pages);
    }

	// find out if we need an extra page (if total number not divisible by $results_per_page)
	// num_pages = num_results % results_per_page != 0 ? num_pages + 1 : num_pages;
	
	// if we only have 1 page then return
	if (num_pages <= 1) {
		return '&nbsp;';
	}

	// start the html
	pagination_html += '<p class="pagination"><strong>Page : </strong>';

    // if we have more than 1 segment show the previous MAX_PAGES
    if (segment > 1) {

        prev_count = ((segment-1) * max_pages) - 1;
		pagination_html += '<a href="#" onclick="' + onclick_handler + '(' + prev_count + ');return false;" class="pagination">&laquo;<u>previous ' + max_pages +separator + '</u></a>';
    }

	// if we are on segment
    count = 1;
    if (segment > 1) {
		count = ((segment * max_pages) - max_pages) + 1;
    }

    // print the page numbers
    for (count; count <= num_pages && count <= (max_pages*segment); count++) {

        // only page
        if (page_number == '' && count==1) {
            pagination_html += '<span class="paginationOn">' + count + '</span>';

        // page link
        } else if (count != page_number) {
			pagination_html += '<a href="#" onclick="' + onclick_handler + '(' + count + ');return false;" class="pagination"><u>' + count + '</u></a>';
        }
        // selected page
        else {
            pagination_html += '<span class="paginationOn">' + count + '</span>';
        }

        // put a separator between pages ('&nbsp;' by default)
        if (count != num_pages && count != max_pages*segment) {
			pagination_html += '&nbsp';
        }
    }

	// 
    if (total_segments > segment) {
		num_pages_next_segment = '';
		num_pages_next_segment = '...&nbsp;';
		next_prefix = '&nbsp;';

		if (total_segments-segment==1) {
			num_pages_next_segment += "final " + Math.ceil(num_pages - ((total_segments-1)*max_pages));
		} else {
			num_pages_next_segment += "next " + max_pages;
		}

		pagination_html += next_prefix + '<a href="#" onclick="' + onclick_handler + '(' + count + ');return false;" class="pagination"><u>' + num_pages_next_segment + '</u>&raquo;</a>';
    }

	// if we have a target
	if (params_arr.target_id) {

		// insert the html into the target div
		$(params_arr.target_id).update(pagination_html);

	// otherwise just return the html
	} else {
		return pagination_html;
	}
}


/**
 * @param {radio object} or {radio id}
 * @
 */
function $RF(el, radioGroup) { 

	// 
	if($(el).type && $(el).type.toLowerCase() == 'radio') { 
		radioGroup = $(el).name; 
		el = $(el).form; 
	} else if ($(el).tagName.toLowerCase() != 'form') { 
		return false; 
	} 

	// 
	var checked = $(el).getInputs('radio', radioGroup).find( 
		function(re) {return re.checked;} 
	); 
	return (checked) ? $F(checked) : null; 
} 

Array.prototype.randomize = function() {
	var i = this.length;
	if (i == 0) return;
	while (--i) {
		var j = Math.floor(Math.random()*(i+1));
		var tmp1 = this[i];
		var tmp2 = this[j];
		this[i] = tmp2;
		this[j] = tmp1;
	}
	return this;
} 

//-->
