function advCallback(){
	
	multiSelectDo(function() {
		doAjaxSubmit('newad', '/blank.php?do=advertisement_preview_charges', 'preview_charges', false);
	});
};

function multiSelectSubmit(){
	multiSelectDo(function(){
		$('newad').submit();
	});
}

function multiSelectDo(callback){
	var selects = $$('.right_select');
	selected = new Array();
	for (var i = 0; i<selects.length; i++){
		//save selected to repopulate
		selected[i] = getSelectedIndexes(selects[i]);
		selectAll(selects[i]);
	}
	callback();
	for (var i = 0; i<selects.length; i++){
		selectNone(selects[i]);
		//reselect originally selected indexes
		setSelectedIndexes(selects[i], selected[i]);
	}		
}

function attachCallbacks(){
	var callback = advCallback;
	var elems;
	
	elems = $$('.call_preview');
	for (i=0; i<elems.length; i++){
		Event.observe(elems[i], 'blur', callback);
	}
	
	elems = $$('.multiSelectRight');
	for (i=0; i<elems.length; i++){
		Event.observe(elems[i], 'click', callback);
	}
	
	elems = $$('.multiSelectLeft');
	for (i=0; i<elems.length; i++){
		Event.observe(elems[i], 'click', callback);
	}

}

function getSelectedIndexes(object){
	var selected = new Array();
	for(i=object.length-1; i>=0; i--){
		if(object.options[i].selected){
			selected.push(i);
		}
	}
	return selected;
}

function setSelectedIndexes(object, selected){
	for(i=selected.length-1; i>=0; i--){
		object.options[selected[i]].selected=true;
	}
}
