/************************
Autor:Jose Luis Sagredo P
************************/

jQuery.popu = function(){
$("a[ref=popu]").bind("click", function() {
   window.open($(this).attr('href'),$(this).attr('title'),'width=520,height=340,scrollbars=yes');
   return false;
}); 
}

/********** URL ENCODE ************/

jQuery.encode = function(plaintext){
	var SAFECHARS = "0123456789" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + "abcdefghijklmnopqrstuvwxyz" + "!~*'()";
	var HEX = "0123456789ABCDEF";
	var encoded = "";
	for (var i = 0; i < plaintext.length; i++ )
	{
		var ch = plaintext.charAt(i);
	    if (ch == " ")
		{
			encoded += "+";
		}
		else 
		{
			if (SAFECHARS.indexOf(ch) != -1)
			{
				encoded += ch;
			}
			else
			{
				var charCode = ch.charCodeAt(0);
				if (charCode > 255)
				{
					//alert( "Unicode Character '"+ ch + "' cannot be encoded using standard URL encoding.\n" + "(URL encoding only supports 8-bit characters.)\n" + "A space (+) will be substituted." );
					encoded += "+";
				}
				else
				{
					encoded += "%";
					encoded += HEX.charAt((charCode >> 4) & 0xF);
					encoded += HEX.charAt(charCode & 0xF);
				}
			}
		}
	}
	return encoded;
}
/*******************************/

/************ URL DESCODE****************/
jQuery.decode = function(encoded)
{
   var HEXCHARS = "0123456789ABCDEFabcdef"; 
   var plaintext = "";
   var i = 0;
   while (i < encoded.length) {
       var ch = encoded.charAt(i);
	   if (ch == "+") {
	       plaintext += " ";
		   i++;
	   } else if (ch == "%") {
			if (i < (encoded.length-2) 
					&& HEXCHARS.indexOf(encoded.charAt(i+1)) != -1 
					&& HEXCHARS.indexOf(encoded.charAt(i+2)) != -1 ) {
				plaintext += unescape( encoded.substr(i,3) );
				i += 3;
			} else {
				alert( 'Combinacion erronea ...' + encoded.substr(i) );
				plaintext += "%[ERROR]";
				i++;
			}
		} else {
		   plaintext += ch;
		   i++;
		}
	} // while
   return plaintext;
};
jQuery.fn.input_texto_remplaso = function(texto_user)
{

/***************/
    texto_default = {
        texto : "Buscar...",
		key:'buscador();'
    }

    opciones = jQuery.extend(texto_default , texto_user);
	texto=opciones.texto;
/***************/
$(this).val(texto);

	$(this).bind("click", function() {
		if($(this).val()==texto)
		{
			$(this).val('');
		}
	});
	
	$(this).blur(function() {
		if($(this).val()==''){$(this).val(texto);}
	});
	
	$(this).keypress(function(event) {
		if (event.keyCode == '13')
		{
			setTimeout(opciones.key,10);
			event.preventDefault();
		}
	});
}

jQuery.maxi = function(value,maximo,msn)
{
		if(value.length>maximo)
		{
			alert(msn);
			return false;
		}
		else
		{
			return true;
		}
}
// INPUT ->		if($.vari({id:"nombre",type:"input",msn:"El Nombre no puede estar vacio"})==false){return false;}
// FILE  ->		if($.vari({id:"img",type:"file",msn:"Debe ingresar un imagen",ex:"jpg,gif,png"})==false){return false;}
// EMAIL ->		if($.vari({id:"email",type:"email",msn:"El Mail no puede estar vacio"})==false){return false;}
// TEXTAREA ->	if($.vari({id:"mensaje",type:"textarea",msn:"El Mensaje no puede estar vacio"})==false){return false;}
// SUBMIT ->	$.vari({id:"formulario",type:"submit",action:"axn_guardar.php?accion=guardar",method:"post"});

jQuery.vari = function(opciones_root)
{
    opciones_default = {
		id:"",
		type:"input",
		msn:"Falta llenar un dato",
		action:"index.php",
		method:"post",
		enctype:"multipart/form-data",
		con:"false",
		maxi:"full",
		msn_maxi:"A excedido el largo permitido"
    }

    opciones = jQuery.extend(opciones_default , opciones_root);

/*****************************/
if(opciones.type=="input")
{
	
	if(opciones.maxi!="full" && $.maxi($('#'+opciones.id).val(),opciones.maxi,opciones.msn_maxi)==false){$('#'+opciones.id).focus();return false;}

	if($('#'+opciones.id).val() == "")
	{
		alert(opciones.msn);
		$('#'+opciones.id).focus();
		return false;
	} 
	else
	{
		return true;
	}
}
/******************************/
if(opciones.type=="ckeditor")
{

	var texto=CKEDITOR.instances[opciones.id].getData();
	//if(opciones.maxi!="full" && $.maxi(texto,opciones.maxi,opciones.msn_maxi)==false){$('#'+opciones.id).focus();return false;}

	if(texto=='<p></p>' || texto=='' || texto=='<p> </p>')
	{
		alert(opciones.msn);
		$('#'+opciones.id).focus();
		return false;
	} 
	else
	{
		return true;
	}
}
/*****************************/
if(opciones.type=="textarea")
{
	if(opciones.maxi!="full" && $.maxi($('#'+opciones.id).val(),opciones.maxi,opciones.msn_maxi)==false){$('#'+opciones.id).focus();return false;}
	if($('#'+opciones.id).val() == "")
	{
		alert(opciones.msn);
		$('#'+opciones.id).focus();
		return false;
	} 
	else
	{
		return true;
	}
}
/*****************************/
if(opciones.type=="link")
{
	var re=/^(ht|f)tp(s?)\:\/\/(www\.|[0-9a-zA-Z\_\d]{3,1000})[0-9a-zA-Z\_\-\d]*\.[a-zA-Z]{2,3}(\.[a-zA-Z]{2})?\/?([a-zA-Z\.\_\/\?\#\%\&\-\=\d\+]*)?$/;
	if(re.test($('#'+opciones.id).val()) == "false")
	{
		alert(opciones.msn);
		$('#'+opciones.id).focus();
		return false;
	} 
	else
	{
		return true;
	}
}
/*****************************/
if(opciones.type=="email")
{
	if($('#'+opciones.id).val() == "")
	{
		alert(opciones.msn);
		$('#'+opciones.id).focus();
		return false;
	} 
	else
	{
		if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test($('#'+opciones.id).val()))
		{
			return true;
		}
		else
		{
			alert("Debes escribir un Email valido.");
			$('#'+opciones.id).focus();
			return false;
		}
	}
}
/*****************************/
if(opciones.type=="submit")
{
	$('#'+opciones.id).attr('action',opciones.action);
	$('#'+opciones.id).attr('method',opciones.method);
	$('#'+opciones.id).attr('enctype',opciones.enctype);
	
	if(opciones.con=="yes")
	{
		var resp=confirm(opciones.msn);
		if (!resp)return false ;
	}
	
	$('#'+opciones.id).submit();
}
/*****************************/
if(opciones.type=="file")
{
	if(opciones.con=="yes")
	{
		if($('#'+opciones.id).val()=="")
		{
			return true;
		}
	}
	var ext=opciones.ex.split(','); 
	var ext_activa=$('#'+opciones.id).val().substring($('#'+opciones.id).val().lastIndexOf(".")+1).toLowerCase();
	var _return=''; 
	for (i=0;i<ext.length;i++)
	{
		if(ext_activa==ext[i].toLowerCase())
		{
			_return='true';
		}
	}
	if(_return!='true')
	{
			alert(opciones.msn);
			$('#'+opciones.id).attr('value','');
			$('#'+opciones.id).focus();
			return false;
	}
}
/*****************************/
}
