function insertAtCursor(myField, myValue) {
  //IE support
  if (document.selection) {
    myField.focus();
    sel = document.selection.createRange();
    sel.text = myValue;
  }

  //MOZILLA/NETSCAPE support
  else if (myField.selectionStart || myField.selectionStart == 0) {
    var startPos = myField.selectionStart;
    var endPos = myField.selectionEnd;
    myField.value = myField.value.substring(0, startPos)
                  + myValue
                  + myField.value.substring(endPos, myField.value.length);
  } else {
    myField.value += myValue;
  }

}


function search_popup(controller, name, multiple) {
	search_text = $(name+'_search').value;
	$(name+'_search').value = '';
	url = '/'+controller+'/search_popup?result_to='+escape(name)+'&text='+escape(search_text);
	if (multiple) url += '&multiple=1';
	//newwin = window.open(url,'_blank','width=300,height=300,scrollbars=yes,resizable=yes');
	//if (newwin.opener == null) newwin.opener = self;
	
	myLightWindow.activateWindow({href: url, title: 'Search...', caption: '', height: 300, width:400 })
	
}

function search_date_popup(controller, name, multiple) {
	day = $(name+'_search(3i)').value;
	month = $(name+'_search(2i)').value;
	year = $(name+'_search(1i)').value;
	url = '/'+controller+'/search_popup?result_to='+escape(name)+'&day='+escape(day)+'&month='+escape(month)+'&year='+escape(year);
	if (multiple) url += '&multiple=1';
	popup = window.open(url,'_blank','width=300,height=300,scrollbars=yes,resizable=yes');
	if (popup.opener == null) popup.opener = self;
}

function select_from_popup(controller, primary_key, name, result_to) {
	parent.$(result_to).value = primary_key;
	link = '<a href="/'+controller+'/'+primary_key+'">'+name+'</a>';
	parent.$(result_to+'_name').innerHTML = link;
	clear = parent.$(result_to+'_clear');
	if (clear) clear.style.display = 'inline';
	parent.myLightWindow.deactivate();
}

function add_html_from_popup(element_id, to_id) {
	html = $(element_id).innerHTML;
	to = opener.document.getElementById(to_id);
	Element.show(to);
	new Insertion.Bottom(to, html);
	window.close();
}

function remove_selection(name, pkey) {
	var list = $(name+'_list');
	Element.remove($(name+'_key_'+pkey));
	if (update_array(list, $(name)) == 0)
		Element.hide(list);
}
function update_array(list, to) {
	items = list.childNodes;
	result = '';
	for (var i = 0, count = 0; i < items.length; i++){
		if (!items[i].id) continue;
		if (result) result += ' ';
		result += items[i].id.split('_key_')[1];
		count++;
	}
	to.value = result;
	return count;
}

function clear_popup_selection(name) {
	$(name).value = '';
	$(name+'_name').innerHTML = '[None selected]';
	$(name+'_clear').style.display = 'none';
}

function carousel(id, m, pages) {
	i = $('carousel_'+id).down();
	move = m*-100 + Math.round(((i.style.marginLeft.slice(0,-1))*1)/100)*100;
	if(pages > -move/100 && move <= 0) {
		$(i).morph('margin-left:'+move+'%');
	}
}


function loadingMore() {
	$('load_more').update("<div>Loading...</div>");
}

function showTimeframe(t) {
	(['day','week','year']).each(function(x) {
		$('timeframe_'+x).hide();
		$('t_'+x).removeClassName('selected');
		
	})
	$('t_'+t).addClassName('selected');
	$('timeframe_'+t).show();
}


function addActive(x) {
	if($(x))
		$(x).addClassName('active');
}
function removeActive(x) {
	if($(x))
		$(x).removeClassName('active');
}


function showBoard(id, type) {
	if(type=='latest') {
		$(id+"_latest").show()
		$(id+"_popular").hide()
		addActive(id+'_latest_tab')
		removeActive(id+'_popular_tab')
		
	} else {
		$(id+"_latest").hide()
		$(id+"_popular").show()
		addActive(id+'_popular_tab')
		removeActive(id+'_latest_tab')
	}
}






Effect.BlindRight = function(element) {
  element = $(element);
  var elementDimensions = element.getDimensions();
  return new Effect.Scale(element, 100, Object.extend({
    scaleContent: false,
    scaleY: false,
    scaleFrom: 0,
    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
    restoreAfterFinish: true,
    afterSetup: function(effect) {
      effect.element.makeClipping().setStyle({
        width: '0px',
        height: effect.dims[0] + 'px'
      }).show();
    },
    afterFinishInternal: function(effect) {
      effect.element.undoClipping();
    }
  }, arguments[1] || { }));
};