var $tipo = {
	XML: 0,
	TEXTO: 1,
	JSON:2
}
var $metodo = {
	GET: "GET",
	POST: "POST"
}
window.moveTo(0,0);
if (document.all) {
	top.window.resizeTo(screen.availWidth,screen.availHeight);
}
else 
  if (document.layers||document.getElementById) {
	  if (top.window.outerHeight<screen.availHeight||top.window.outerWidth<screen.availWidth){
		  top.window.outerHeight = screen.availHeight;
		  top.window.outerWidth = screen.availWidth;
	}
}
function $Ajax(url,opciones)
{
	if(__$P(opciones,"cache",true)==false)
	{
		var caracter = "?";
		if(url.indexOf("?")>0) caracter = "&";
		url += caracter + Math.random();
	}
	var metodo = __$P(opciones,"metodo",$metodo.GET);
	var parametros = __$P(opciones,"parametros");
	var protoOpc = {
		method: metodo,
		onSuccess:__$AjaxRecibir.bind(this,opciones),
		onException:__$AjaxError.bind(this,opciones),
		onFailure:__$AjaxError.bind(this,opciones)
	}
	if(parametros != undefined)
	{
		protoOpc.parameters = parametros;
	}
	var peticion = new Ajax.Request(url,protoOpc);
	if(__$P(opciones,"avisoCargando")!= undefined)
	{
		__$AjaxCargando(opciones.avisoCargando, true);
	}
}

function __$AjaxRecibir(opciones,xhr)
{
	if(__$P(opciones,"avisoCargando") != undefined)
	{
		__$AjaxCargando(opciones.avisoCargando,false);
	}
	var funcionRetorno = __$P(opciones,"onfinish");
	var id = __$P(opciones,"id");
	if (funcionRetorno != undefined)
	{
		var tipoRespuesta = __$P(opciones,"tipoRespuesta",$tipo.TEXTO)
		switch(tipoRespuesta)
		{
			case $tipo.TEXTO: funcionRetorno(xhr.responseText,id);break;
			case $tipo.XML: funcionRetorno(hhr.responseXML,id);break;
			case $tipo.JSON:
			  var objeto;
			  try{
				  objeto = xhr.responseText.evalJSON();
			  }catch(e){
				  __$AjaxError(opciones,xhr,{code:-1,message:"JSON No válido"});return;
				  }
				  funcionRetorno(objeto,id);
		}
	}
}

function __$AjaxCargando(cartel,prender)
{
	if(prender)
	{
		$(cartel).show();
	}
	else
	{
		$(cartel).hide();
	}
}

function __$AjaxError(opciones,xhr,excepcion)
{
	if(__$P(opciones,"avisoCargando")!=undefined)
	{
		__$AjaxCargando(opciones.avisoCargando,false);
	}
	if(excepcion == undefined)
	{
		excepcion = {code:xhr.status,message:"Error del servidor"};
	}
	var funcionError = __$P(opciones,"onerror");
	if(funcionError!=undefined)
	{
		funcionError(excepcion,__$P(opciones,"id"));
	}
}

function __$P(coleccion,parametro,defecto)
{
	if(coleccion==undefined)
	{
		return defecto;
	}
	else
	{
		if(coleccion[parametro]==undefined){
			return defecto;
		} else{
			return coleccion[parametro];
		}
	}
}

function paginas(url,contenedor)
{
	$Ajax(url,{cache:false,onfinish:cargaContenido,onerror:avisoError,metodo:$metodo.GET,avisoCargando:"cargando",id:contenedor});

}

function enviarFormulario(url,contenedor,f)
{
	$Ajax(url,{cache:false,onfinish:cargaContenido,metodo:$metodo.POST,avisoCargando:"cargando",id:contenedor,parametros:f});
}

function cargaContenido(html,id)
{
	$(id).innerHTML = html;
	__$AjaxCargando("cargando",false);
}

function avisoError(html,id)
{
	$(id).innerHTML = "<div align='center'><strong>Error:</strong> La operación que solicitó no puede ser completada.</div>";
	__$AjaxCargando("cargando",false);
}

//------------Función Trim----------//
function ltrim(s) {					//
   return s.replace(/^\s+/, "");	//
}									//
									//
function rtrim(s) {					//
   return s.replace(/\s+$/, "");	//
}									//
									//
function trim(s) {					//
   return rtrim(ltrim(s));			//
}									//
//__________________________________//

/*function validaProducto(){
	if(trim($('nombre').value)!=""&&trim($('imagen').value)!=""&&trim($('descripcion').value)!=""){
		$('f_prod').submit();
		startUpload();
	}
	else{
		alert("Para dar de alta un producto todos los campos son obligatorios");
	}
}*/

function startUpload(){
	//$('mensaje').style.visibility = 'hidden';
	$('subiendo').style.visibility = 'visible';		
	mleft = (screen.availWidth - $('divsubiendo').style.width)/3;
	mtop = (screen.availHeight - $('divsubiendo').style.height)/2;
	$('divsubiendo').style.left = mleft+'px';
	$('divsubiendo').style.top = mtop+'px';
    $('carga_formulario').style.visibility = 'hidden';
    return true;
}

function stopUpload(success){
      var result = '';
      switch (success){
         case 1:
		 result = '<span id="mensaje" class="txt_1" style="font-size:20px">La im&aacute;gen se subi&oacute; correctamente, el producto se ha dado de alta<\/span><br/><br/>';$('f_prod').reset();break;
		 case 2:
		 result = '<span id="mensaje" class="txt_1" style="font-size:20px">No seleccionaste ninguna categor&iacute;a<\/span><br/><br/>';break;
		 case 3:
		 result = '<span id="mensaje" class="txt_1" style="font-size:20px">Falta el nombre del producto!<\/span><br/><br/>';break;
		 case 4:
		 result = '<span id="mensaje" class="txt_1" style="font-size:20px">Selecciona una im&aacute;gen!<\/span><br/><br/>';break;
		 case 5:
		 result = '<span id="mensaje" class="txt_1" style="font-size:20px">Debes escribir una descripci&oacute;n del producto!<\/span><br/><br/>';break;
		 case 0:
		 result = '<span id="mensaje" class="txt_1" style="font-size:20px">Hubo un errror durante la carga de la im&aacute;gen!<\/span><br/><br/>';break;
		 case 6:
		 result = '<span id="mensaje" class="txt_1" style="font-size:20px">El prodcuto se actualiz&oacute; correctamente!<\/span><br/><br/>';break;
      }
      $('subiendo').style.visibility = 'hidden';
	  $('carga_formulario').innerHTML = result;
      $('carga_formulario').style.visibility = 'visible';      
      return true;   
}