//generador_de_ids
var uid = (
		function(){
		var id=0;
		return function(){
			return id++ ;
		};
}
)();

/* ==================================================== */
/*  un listado simple                                   */
/* ==================================================== */

var SimpleList  = Class.create();

SimpleList.prototype  = {

		initialize: function(config) {
    			this.get_page_url  = config.get_page_url;
    			this.list_conteiner = config.list_conteiner;
    			this.current_page = 0;
    			this.order_by = false;
    			this.order_type = "DESC";
		},
		prev_page: function(){
			if(this.current_page > 0){
				return this.get_page(this.current_page - 1);
			}
			return false;
		},
		next_page:function(){
			return this.get_page(this.current_page + 1);
		},
		sort_by:function(col){
			
			if (this.order_by === col && this.order_type === "DESC"){
				this.order_type = "ASC";
			}else{ this.order_type="DESC"; }
			
			this.order_by = col;
			return this.get_page(0);
		},
		get_page:function(n){

			var div = document.getElementById(this.list_conteiner);
			$('image_loading').show();
			var handleSuccess = function(o){
					if(o.responseText !== undefined){
							div.innerHTML = o.responseText;
							o.argument.that.current_page = o.argument.n;
							$('image_loading').hide();
					}
				}

				var handleFailure = function(o){
					if(o.responseText !== undefined){
						div.innerHTML += "<h1>ERROR AL OBTENER LOS DATOS</h1>";
						$('image_loading').hide();
					}
				}
				
				var callback = {
				  			success:handleSuccess,
				  			failure: handleFailure,
				  			argument: {n:n, that:this}
				};
 			
			if (this.order_by){
				var url = this.get_page_url+"/"+n+"/order_by/"+this.order_by+"/"+this.order_type+"/";
			}else{
				var url = this.get_page_url+"/"+n+"/";
			}
 			var request = YAHOO.util.Connect.asyncRequest('GET', url , callback);
 			return false;
		}
}
/* ==================================================== */



/* ==================================================== */
document.getElementsByPartialClassName = function(value, parentElement) {
    var children = ($(parentElement) || document.body).getElementsByTagName('*');
    var elements = [], child;
    regexp = new RegExp(""+value+"");
    for (var i = 0, length = children.length; i < length; i++) {
    	
    	child = children[i];
      if (matches = Element.classNames(child).toString().match(regexp)) {
        elements.push(Element.extend(child));
      }
    }
    return elements;
  };
/* ==================================================== */

/* ====================================================*/
  function reemplazarClassName(elementos, valor1, valor2){
	  elementos.each(function(e){
		  e.className = e.className.replace(valor1, valor2 );
	  });
  }
/* ==================================================== */
  
 
  

