// 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;
  }
});

Object.extend(Math, {
	formatNumber:function(n, options){
		var options = Object.extend({
			decimals:0,
			currency:false,
			currencySymbol: '$ ',
			formatWhole:true,
			wholeDelimiter:',',
			decimalDelimiter:'.'
		},options);

		var nArr = new Array();
		nArr = String(n).split('.');

		var whole = (typeof nArr[0]!='undefined')?nArr[0]:'0';
		if(options.formatWhole){
			var exp = /(\d+)(\d{3})/;
			while (exp.test(whole)) {
				whole = whole.replace(exp, '$1' + options.wholeDelimiter + '$2');
			}
		}

		if(typeof nArr[1]!='undefined'){
			var remainder = nArr[1];
		}else{
			var remainder = '';
			for(var i=0;i<options.decimals;i++){remainder += '0'}
		}

		var pfix = options.currency?options.currencySymbol:'';

		if(options.decimals<=0) return pfix + whole;

		var a = new Array();
		for(var i = 0; i < options.decimals; i++){
			if(remainder.charAt(i) != '') a[i] = remainder.charAt(i);
			else a[i] = '0';
		}

		return pfix + whole + options.decimalDelimiter + a.join("");
	}
});
