AjaxCallbacks.showError = function (message){
	if (!message) return;
	var reg=/errortip{(\w+)}(.+)/; 
	var chunks = message.split(';');
	var restMsg = [];
	for (var i=0; i < chunks.length; i++){
		var result=reg.exec(chunks[i]);
		if (result == null) {
			restMsg.push(chunks[i]);
			continue;
		}
		var elem = result[1];
		var message = result[2];
		try{
			new Insertion.After(elem, ' <span class="errorTip">' + message + '</span>');
			$(elem).addClassName('errorTip');
		}catch(e){
			restMsg.push(message);
		}
	}
	if (restMsg.length > 0){
		return StatusMessages.showError(restMsg.join('<br/>') );
	}

}
AjaxCallbacks.hideMessages = function(){
	var tips = $$('.errorTip');
	tips.each(
		function(s){
			if (s.tagName == 'SPAN'){
				s.remove();
			}else{
				s.removeClassName('errorTip');
			}
		}
	);
	StatusMessages.hide();
}
function checkAll(object, status){
  		var boxes = object.getElementsByTagName('input');
  		for (var i=0; i < boxes.length; i++){
  			if (boxes[i].type != 'checkbox') continue;
  			if (boxes[i].name != 'ids[]') continue;
  			boxes[i].checked = status;
  		} 
}

function highlight(id){
   	new Effect.Morph(id,{style:'background:#FFE8E8; color:#f00;',duration:0.6});
   	new Effect.Morph(id,{style:'background:#fff; color:#000;', duration:1.2, queue:'end'});
}
