	
	/**
	 * CX Javascript Library
	 *
	 * Version 0.5 | Updated 7/26/2010
	 *
	 * Recent Changes
	 * - Removed Jquery + addons to separate files
	 * - Began 'library' versioning
	 *
	 */
	
	function get_id(input) {
		var parts = input.split("_");
		return parts[parts.length-1];
	}
	
	function get_inverse_id(input) {
		var parts = input.split("_");
		var string = "";
		if(parts.length>1) {
			for(var i = 0; i < (parts.length-1); i++) {
				if(i!=0) string += "_";
				string += parts[i];	
			}
		} else {
			string = input;
		}
		return string;
	}
	
	function get_element(movieName) {
		if (navigator.appName.indexOf("Microsoft") != -1) {
			return window[movieName];
		} else {
			return document[movieName];
		}
	}
	
	function is_valid_email(string) {
		if (string.search(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/) != -1)
			return true;
		else
			return false;
	}
	
	function url_rewrite(input) {
		input=input.toLowerCase();
		input=input.replace(/[^a-z0-9-\s\/]+/g,'');
		input=input.replace(/\s(\s)*/g,'-');
		return input;
	}
	
	function empty() { return false; }
	
	function convert_to_number(amount) {
		amount = amount.replace("$","");
		amount = amount.replace(",","");
		return parseFloat(amount);
	}
	
	function number_format (number, decimals, dec_point, thousands_sep) {
	
		var n = number, prec = decimals;
	 
		var toFixedFix = function (n,prec) {
			var k = Math.pow(10,prec);        return (Math.round(n*k)/k).toString();
		};
	 
		n = !isFinite(+n) ? 0 : +n;
		prec = !isFinite(+prec) ? 0 : Math.abs(prec);    var sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep;
		var dec = (typeof dec_point === 'undefined') ? '.' : dec_point;
	 
		var s = (prec > 0) ? toFixedFix(n, prec) : toFixedFix(Math.round(n), prec); //fix for IE parseFloat(0.55).toFixed(0) = 0;
		 var abs = toFixedFix(Math.abs(n), prec);
		var _, i;
	 
		if (abs >= 1000) {
			_ = abs.split(/\D/);        i = _[0].length % 3 || 3;
	 
			_[0] = s.slice(0,i + (n < 0)) +
				  _[0].slice(i).replace(/(\d{3})/g, sep+'$1');
			s = _.join(dec);    } else {
			s = s.replace('.', dec);
		}
	 
		var decPos = s.indexOf(dec);    if (prec >= 1 && decPos !== -1 && (s.length-decPos-1) < prec) {
			s += new Array(prec-(s.length-decPos-1)).join(0)+'0';
		}
		else if (prec >= 1 && decPos === -1) {
			s += dec+new Array(prec).join(0)+'0';    }
		return s;
	}
	
	function isset(variable_name) {
		try {
			if (typeof(eval(variable_name)) != 'undefined')
			if (eval(variable_name) != null)return true;
		} catch(e) { }
		return false;
	}
	
	function trace( msg ){
		try { window.console.log ( msg ) } catch ( err ) { }
	}
	
	function show_overlay() {
		var hide_select = $('<iframe id="popup_overlay_hide_select" class="popup_overlay_hide_select"></iframe>');
		var overlay = $('<div id="popup_overlay" class="popup_overlay"></div>');
		$("body").prepend(hide_select).append(overlay);
	}
	
	function hide_overlay() {
		$("iframe.popup_overlay_hide_select").remove();
		$("div.popup_overlay").remove();
	}
	
	function open_popup(popup_id) {
		show_overlay();
		var popup = $(popup_id);
		var width = ($(window).width() - parseFloat($(popup).css("width")))/2 + $(window).scrollLeft();
		var height = ($(window).height() - parseFloat($(popup).css("height")))/2 + $(window).scrollTop();
		if(width < 0) { width = 0; }
		if(height < 0) { height = 0; }
		$(popup).css("top",height+"px").css("left",width+"px").css("display","block");
		return false;
	}
	
	function close_popup(popup_id) {
		$(popup_id).css("display","none");
		hide_overlay();
		return false;
	}

