// JavaScript Document
var selectExt = {
	purge: function(element) {
		var element = $(element);
		while(element.length > 0) {
			element.remove(0);  
		}
	},
	addOption: function(element, value, label) {
		var element = $(element);
		element.options[element.options.length] = new Option(label, value, false, false);
	},
	populate: function(element, array, purge) {
		var element = $(element);
		if(typeof(array) != 'object') array = array.evalJSON;
		if(arguments[2]) element.purge();
		for(var i = 0; i < array.length; i++) {
			var pair = Object.values(array[i]);
			element.addOption(pair[0], pair[1]);
		}
	},
	selectByValue: function(element, value) {
		var element = $(element);
		for(var i = 0; i < element.options.length; i++) {
			if(element.options[i].value == value) {
				element.selectedIndex = i;
				return i;
			}
		}
		return false;
	},
	removeByValue: function(element, value) {
		var element = $(element);
		for(var i = 0; i < element.options.length; i++) {
			if(element.options[i].value == value) {
				element.remove(i);
			}
		}
	}
}
Element.addMethods('select', selectExt);

/*
var formExt = {
	getValuesByInputName:function($form, $input_name) {
		$form = $($form);
		
		if($form[$input_name].type) {
			return $F($form[$input_name]);
		}
		else {
			var str = '';
			for(var i = 0; i < $form[$input_name].length; i++) {
				if($F($form[$input_name][i]).length > 0) str += $F($form[$input_name][i])+',';
			}
			return str.substr(0, str.length-1);
		}
	}
};
Element.addMethods('form', formExt);
*/

Element.addMethods({
  scrollTo: function(element, left, top){
    var element = $(element);
    if (arguments.length == 1){
      var pos = element.cumulativeOffset();
      window.scrollTo(pos[0], pos[1]);
    } else {
      element.scrollLeft = left;
      element.scrollTop  = top;
    }
    return element;
  }
});
