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

$(document).ready(function(){

	$("input[val]").each(function(cant)
	{
		$(this).keypress(function(event) {					  
			var tecla = (document.all) ? event.keyCode : event.which;
			if (tecla==8) return true;
			if (tecla==0) return true;
			var te = String.fromCharCode(tecla);
			var patron = $(this).attr('val');
			
			for (var i=0; i < patron.length; i++)
			{
				if(patron.charAt(i)==te)
				{
					var estado=true;
				}
			}
			
			if(estado==true)
			{
				return true;
			}
			else
			{
				return false;
			}
		});
		
	});
	
	$("input[formato]").each(function(cant)
	{
		$(this).change(function() {					  
			var patron = $(this).attr('formato');
			
			var formato = new RegExp(patron);
			
			if(formato.test($(this).val())==true)
			{
				return true;
			}
			else
			{
				if($(this).attr('msn')!=undefined)
				{
					alert($(this).attr('msn'));
				}
				else
				{
					alert("El valor ingresado no es valido");
				}
				$(this).val("");
				return false;
			}
		});
		
	});
});

/*sexy alert*/
var estado_de_alert=true;

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

// 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:false,
		ref:false,
		type:"input",
		msn:"Falta llenar un dato",
		action:"index.php",
		method:"post",
		enctype:"multipart/form-data",
		con:"false"
    }

    opciones = jQuery.extend(opciones_default , opciones_root);

if(estado_de_alert==true)
{
	$('#BoxOverlay').remove();
	Sexy.initialize();
}

/*****************************/
if(opciones.type=="input")
{
	if($('#'+opciones.id).val() == "")
	{
		if(estado_de_alert==true){Sexy.alert(opciones.msn);}
		else{alert(opciones.msn);}
		
		$('#'+opciones.id).focus();
		return false;
	} 
	else
	{
		return true;
	}
}
/*****************************/
if(opciones.type=="textarea")
{
	if($('#'+opciones.id).val() == "")
	{
		if(estado_de_alert==true){Sexy.alert(opciones.msn);}
		else{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")
	{
		if(estado_de_alert==true){Sexy.alert(opciones.msn);}
		else{alert(opciones.msn);}
		$('#'+opciones.id).focus();
		return false;
	} 
	else
	{
		return true;
	}
}
/*****************************/
if(opciones.type=="email")
{
	if($('#'+opciones.id).val() == "")
	{
		if(estado_de_alert==true){Sexy.alert(opciones.msn);}
		else{alert(opciones.msn);}
		$('#'+opciones.id).focus();
		return false;
	} 
	else
	{
		if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test($('#'+opciones.id).val()))
		{
			return true;
		}
		else
		{
			
		if(estado_de_alert==true){Sexy.alert("Debes escribir un Email valido.");}
		else{alert();}
			$('#'+opciones.id).focus();
			return false;
		}
	}
}
/*****************************/
if(opciones.type=="CK")
{
	var texto=CKEDITOR.instances[opciones.id].getData();
	if(texto=='<p></p>' || texto=='' || texto=='<p> </p>')
	{
		return false;
	}
	else
	{
		return true;
	}
}
/*****************************/
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=="checked")
{
	
	if(opciones.id!=false)
	{
		if($('#'+opciones.id).is(':checked')==false)
		{
			return false;
		}
		else
		{
			return true;
		}
	}

	if(opciones.ref!=false)
	{
		var returnd = false;
		$(opciones.ref).each(function(cant)
		{
			if($(this).is(':checked')==true)
			{
				returnd = true;
			}
		});
		
		if(returnd==true)
		{
			return true;
		}
		else
		{
		if(estado_de_alert==true){Sexy.alert(opciones.msn);}
		else{alert(opciones.msn);}
			return false;
		}

	}

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

/******************/
jQuery.buscador = function(data)
{
	op_default = {
		id : false,
		loading: false,
		id_loading: false,
		form: false,
		data: false,
		url: false,
		type: "POST",
		report: false,
		data_record: false,
		fin_de_carga:'',
		cookies:false

    }
	op = jQuery.extend(op_default , data);
	
	if(op.data==false && op.form!=false)
	{
		op.data=$("#"+op.form).serialize();
	}
	else
	{
		if(op.data!=false && op.data !='')
		{
			if(op.form!=false)
			{
				op.data=$("#"+op.form).serialize()+'&'+op.data;
			}
			else
			{
				op.data=op.data;
			}
		}
		else
		{
			alert('Error: No se encontraron datos');
			return false;
		}
	}
	
	if(op.cookies==true)
	{
		$('a[ref=ultima_busqueda]').show();
		$.cookie("DATA", op.data);
	}
	
	
	if(op.report==true)
	{
	$("#report_true").remove();
	$('body').append('<div id="report_true" style="-moz-border-radius: 5px;position:fixed; right:0; width:100%; line-height:25px; font-family:Arial, Helvetica, sans-serif; color:#FFF; font-weight:bold; background:#000; filter:alpha(opacity=60);float:left;-moz-opacity:.60;opacity:.60;"></div>');
	$("#report_true").hide().fadeIn("fast");
	$("#report_true").html('<p style="padding-left:20px; padding-right:20px;line-height:25px; font-family:Arial, Helvetica, sans-serif; color:#FFF; font-weight:bold;">'+op.data+'</p>');
	}

	if(op.data_record!=false)
	{
		$('#'+op.data_record).val(op.data);
		location.href='#'+op.data;
	}

	$.ajax({
		   url: op.url,
		   async:true,
		   data: op.data,
		   beforeSend: function(objeto)
		   {
			   $("#loader").show();
			   //Antes de ejecutar
		   },
		   complete: function(objeto, exito)
		   {
			   //alert("Me acabo de completar");
			   if(exito=="success")
			   {
				   //alert("Y con éxito");
			   }
		   },
		   contentType: "application/x-www-form-urlencoded",
		   dataType: "html",
		   error: function(objeto, quepaso, otroobj)
		   {
			   //alert("Estas viendo esto por que fallé");
			  // alert("Pasó lo siguiente: "+quepaso);
		   },
		   global: true,
		   ifModified: false,
		   processData:true,
		   success: function(datos){
			   $("#"+op.id).html(datos);
			   
			   setTimeout(op.fin_de_carga,1000);
			   $("#loader").hide();

		   },
		   timeout: 3000,
		   type: op.type
		   });


}


/******************************************************************/
/*Shadow*/
jQuery.shadow_calk = function(type)
{

	var width=$('#_data_shadow_').attr('data_width');
	var height=$('#_data_shadow_').attr('data_height');
	var max_width=$('#_data_shadow_').attr('data_max_width');
	var max_height=$('#_data_shadow_').attr('data_max_height');
	var min_width=$('#_data_shadow_').attr('data_min_width');
	var min_height=$('#_data_shadow_').attr('data_min_height');
	var auto=$('#_data_shadow_').attr('data_auto');
	var patron=$('#_data_shadow_').attr('data_patron');	
	
	
	
	
	switch (type)
	{
		case 'top':
			height = $.shadow_calk('height');
			var top = ($(window).height() - height) / 2;
			if(top<=10)	{top=10;}
			return top;
		break;
		case 'left':
			width = $.shadow_calk('width');
			var left = ($(window).width() - width) / 2;
			if(left<=10){left=10;}
			return left;
		break;
		case 'width':
			if($(window).width()>width && min_width<width)
			{
				width=$(window).width()*patron;
			}
			else
			{
				width=width*patron;
			}
			return width;
		break;
		case 'height':
			if(($(window).height()+40)>height && min_height<height)
			{
				height=$(window).height()*patron;
			}
			else
			{
				height=height*patron;
			}
			return height;
		break;
	}
	
}


jQuery.shadow_play = function(data_root)
{
	op_default = {
		data:false,
		type:'html'
    }
	op = jQuery.extend(op_default , data_root);

	switch (op.type)
	{
		case 'iframe':
			op.data='<iframe src="'+op.data+'" width="100%" height="100%" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" ><p>Su navegador no soporta iframes.</p></iframe>';
		break;
		case 'html':
			op.data=op.data;
		break;
		default:
			op.data=op.data;
	}
	
	if(op.data!=false)
	{
		$('#_isabela_cont_central_').html(op.data);
	}
	
	$('#_sombra_shadow_').fadeIn('slow', function() {						  
		$('#_isabela_shadow_').fadeIn('slow');								 
	});
}


jQuery.shadow_open = function()
{


		var width=650;
		var height=490;
		var max_width=1024;
		var max_height=768;
		var min_width=640;
		var min_height=480;
		var auto=true;
		var patron=0.80;

	
	$('body').append('<div id="_data_shadow_" style="position:fixed;"></div>\n\n');
	$('#_data_shadow_').attr('data_width',width);
	$('#_data_shadow_').attr('data_height',height);
	$('#_data_shadow_').attr('data_max_width',max_width);
	$('#_data_shadow_').attr('data_max_height',max_height);
	$('#_data_shadow_').attr('data_min_width',min_width);
	$('#_data_shadow_').attr('data_min_height',min_height);
	$('#_data_shadow_').attr('data_auto',auto);
	$('#_data_shadow_').attr('data_patron',patron);
	
	$('body').append('<div id="_sombra_shadow_" style="display:none;"></div>\n\n');
	$('#_sombra_shadow_').css('position','fixed');
	$('#_sombra_shadow_').css('left','0');
	$('#_sombra_shadow_').css('top','0');
	$('#_sombra_shadow_').css('background-color','#000');
	$('#_sombra_shadow_').css('filter','alpha(opacity=60)');
	$('#_sombra_shadow_').css('float','left');
	$('#_sombra_shadow_').css('-moz-opacity','.60');
	$('#_sombra_shadow_').css('opacity','.60');
	$('#_sombra_shadow_').css("width", $(window).width()).css("height", $(window).height());
	
	$('body').append('<div id="_isabela_shadow_" style="display:none;"></div>\n\n');
	$('#_isabela_shadow_').css('position','fixed');
	$('#_isabela_shadow_').css('width',$.shadow_calk('width')+'px');
	$('#_isabela_shadow_').css('height',$.shadow_calk('height')+'px');
	$('#_isabela_shadow_').css('top',$.shadow_calk('top')+'px');
	$('#_isabela_shadow_').css('left',$.shadow_calk('left')+'px');
	//$('#_isabela_shadow_').css('background-color','#fff');
	
	$('#_isabela_shadow_').append('<div id="_isabela_top_"></div>\n\n');
	$('#_isabela_top_').css('position','relative');
	$('#_isabela_top_').css('height','10px');
	//$('#_isabela_top_').css('float','float');
	$('#_isabela_top_').css('width',$.shadow_calk('width')+'px');
	
	$('#_isabela_top_').append('<div id="_isabela_der_top_"></div>\n\n');
		$('#_isabela_der_top_').css('background','url(img/shadow/fondo.png)');
		$('#_isabela_der_top_').css('width','20px');
		$('#_isabela_der_top_').css('height','10px');
		$('#_isabela_der_top_').css('float','left');
		$('#_isabela_der_top_').css('position','relative');
	$('#_isabela_top_').append('<div id="_isabela_center_top_"></div>\n\n');
		$('#_isabela_center_top_').css('height','10px');
		$('#_isabela_center_top_').css('background','#ebebeb');
		$('#_isabela_center_top_').css('float','left');
		$('#_isabela_center_top_').css('width',($.shadow_calk('width')-40)+'px');
	$('#_isabela_top_').append('<div id="_isabela_izq_top_"></div>\n\n');
		$('#_isabela_izq_top_').css('background','url(img/shadow/fondo.png) right top');
		$('#_isabela_izq_top_').css('width','20px');
		$('#_isabela_izq_top_').css('height','10px');
		$('#_isabela_izq_top_').css('float','right');
		$('#_isabela_izq_top_').css('position','relative');
		$('#_isabela_izq_top_').append('<div id="_isabela_close_"></div>\n\n');
			$('#_isabela_close_').css('background','url(img/shadow/cerrar.png)');
			$('#_isabela_close_').css('width','30px');
			$('#_isabela_close_').css('height','30px');
			$('#_isabela_close_').css('top','-15px');
			$('#_isabela_close_').css('left','5px');
			$('#_isabela_close_').css('position','absolute');
			$('#_isabela_close_').css('cursor','pointer');
			$('#_isabela_close_').css('z-index','10');
			
	$('#_isabela_shadow_').append('<div id="_isabela_cont_central_"></div>\n\n');
		$('#_isabela_cont_central_').css('position','relative');
		$('#_isabela_cont_central_').css('background','#ebebeb');
		$('#_isabela_cont_central_').css('overflow','hidden');
		$('#_isabela_cont_central_').css('float','left');
		$('#_isabela_cont_central_').css('width',$.shadow_calk('width')+'px');
		$('#_isabela_cont_central_').css('height',($.shadow_calk('height')-20)+'px');
	
	$('#_isabela_shadow_').append('<div id="_isabela_bottom_"></div>\n\n');
		$('#_isabela_bottom_').css('position','relative');
		$('#_isabela_bottom_').css('height','10px');
		//$('#_isabela_bottom_').css('float','float');
		$('#_isabela_bottom_').css('width',$.shadow_calk('width')+'px');

	$('#_isabela_bottom_').append('<div id="_isabela_der_bottom_"></div>\n\n');
		$('#_isabela_der_bottom_').css('background','url(img/shadow/fondo.png) left bottom');
		$('#_isabela_der_bottom_').css('width','20px');
		$('#_isabela_der_bottom_').css('height','10px');
		$('#_isabela_der_bottom_').css('float','left');
		$('#_isabela_der_bottom_').css('position','relative');
	$('#_isabela_bottom_').append('<div id="_isabela_center_bottom_"></div>\n\n');
		$('#_isabela_center_bottom_').css('height','10px');
		$('#_isabela_center_bottom_').css('background','#ebebeb');
		$('#_isabela_center_bottom_').css('float','left');
		$('#_isabela_center_bottom_').css('width',($.shadow_calk('width')-40)+'px');
	$('#_isabela_bottom_').append('<div id="_isabela_izq_bottom_"></div>\n\n');
		$('#_isabela_izq_bottom_').css('background','url(img/shadow/fondo.png) right bottom');
		$('#_isabela_izq_bottom_').css('width','20px');
		$('#_isabela_izq_bottom_').css('height','10px');
		$('#_isabela_izq_bottom_').css('float','right');
		$('#_isabela_izq_bottom_').css('position','relative');


$(window).resize(function() {
		$('#_sombra_shadow_').css("width", $(window).width());
		$('#_sombra_shadow_').css("height", $(window).height());

		$('#_isabela_shadow_').css('width',$.shadow_calk('width')+'px');
		$('#_isabela_shadow_').css('height',$.shadow_calk('height')+'px');
		$('#_isabela_shadow_').css('top',$.shadow_calk('top')+'px');
		$('#_isabela_shadow_').css('left',$.shadow_calk('left')+'px');

		$('#_isabela_top_').css('width',$.shadow_calk('width')+'px');
		$('#_isabela_center_top_').css('width',($.shadow_calk('width')-40)+'px');
		$('#_isabela_cont_central_').css('width',$.shadow_calk('width')+'px');
		$('#_isabela_cont_central_').css('height',($.shadow_calk('height')-20)+'px');
		$('#_isabela_bottom_').css('width',$.shadow_calk('width')+'px');
		$('#_isabela_center_bottom_').css('width',($.shadow_calk('width')-40)+'px');
});

$('#_sombra_shadow_').click(function() {
	$('#_isabela_shadow_').fadeOut('slow', function() 
	{
		$('#_sombra_shadow_').fadeOut('slow',function(){$('#_isabela_cont_central_').html('');});
	});
});	

$('#_isabela_close_').click(function() {
	$('#_isabela_shadow_').fadeOut('slow', function() 
	{
		$('#_sombra_shadow_').fadeOut('slow',function(){$('#_isabela_cont_central_').html('');});
	});
});	

}
/****************************************/
/**

$.cookie('the_cookie', 'the_value');
$.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
$.cookie('the_cookie', null);

*/
jQuery.cookie = function(name, value, options) {
    if (typeof value != 'undefined') { // name and value given, set cookie
        options = options || {};
        if (value === null) {
            value = '';
            options.expires = -1;
        }
        var expires = '';
        if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
            var date;
            if (typeof options.expires == 'number') {
                date = new Date();
                date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
            } else {
                date = options.expires;
            }
            expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
        }
        // CAUTION: Needed to parenthesize options.path and options.domain
        // in the following expressions, otherwise they evaluate to undefined
        // in the packed version for some reason...
        var path = options.path ? '; path=' + (options.path) : '';
        var domain = options.domain ? '; domain=' + (options.domain) : '';
        var secure = options.secure ? '; secure' : '';
        document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
    } else { // only name given, get cookie
        var cookieValue = null;
        if (document.cookie && document.cookie != '') {
            var cookies = document.cookie.split(';');
            for (var i = 0; i < cookies.length; i++) {
                var cookie = jQuery.trim(cookies[i]);
                // Does this cookie string begin with the name we want?
                if (cookie.substring(0, name.length + 1) == (name + '=')) {
                    cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                    break;
                }
            }
        }
        return cookieValue;
    }
};
