/**********************************/
/*         JQUERY EXTENDS         */
/**********************************/
/*        RADIO SELECTABLES       */
/**********************************/
$.fn.radioSelect = function(options) {
    var opt = { 
		ticket: 'img/img_btn_ok.jpg',
		ticketOK: 'img/img_btn_ok_sel.jpg',
		cruz: 'img/img_btn_x.jpg',
		cruzOK: 'img/img_btn_x_sel.jpg'
	};
    $.extend(opt, options);
   
    return this.each(function(i) {
		var el = $(this);
		
		$(el).after('<img class="imgcruz IRS_cruz" src=\''+opt.cruz+'\' alt="Deshabilitar" id=\'C'+i+'\' />');
		$(el).after('<img class="imgvicto IRS_ticket" src=\''+opt.ticket+'\' alt="Habilitar" id=\'T'+i+'\' />');
			
		$('#T'+i).css('cursor', 'pointer').click(function() {
			if($('#C'+i).attr('src') == opt.cruzOK) {
				$(this).attr('src', opt.ticketOK);
				$('#C'+i).attr('src', opt.cruz);
				/**********************/
				el.val('habilitado');
				/**********************/
			} else {
				if($(this).attr('src') == opt.ticket) {
					$(this).attr('src', opt.ticketOK);
					/**********************/
					el.val('habilitado');
					/**********************/
				} else {
					$(this).attr('src', opt.ticket);
					el.val('');
				}
			}
		});
		
		$('#C'+i).css('cursor', 'pointer').click(function() {
			if($('#T'+i).attr('src') == opt.ticketOK) {
				$(this).attr('src', opt.cruzOK);
				$('#T'+i).attr('src', opt.ticket);
				/**********************/
				el.val('deshabilitado');
				/**********************/
			} else {
				if($(this).attr('src') == opt.cruz) {
					$(this).attr('src', opt.cruzOK);
					/**********************/
					el.val('deshabilitado');
					/**********************/
				} else {
					$(this).attr('src', opt.cruz);
					el.val('');
				}
			}
		});
	});
}

/**************************************/
/* CONTROLAR TODOS: RADIO SELECTABLES */
/**************************************/
var todos = {
	opt: {
		ticket: 'img/img_btn_ok.jpg',
		ticketOK: 'img/img_btn_ok_sel.jpg',
		cruz: 'img/img_btn_x.jpg',
		cruzOK: 'img/img_btn_x_sel.jpg'
	},
	
	activar: function(btn, el) {
		$(btn).parent().parent().find('img.masterCruz').attr('src',this.opt.cruz);
		var img = $(btn).parent().find('img');
		var opt = this.opt;
	
		if(img.attr('src') == opt.ticket) {
			img.attr('src', opt.ticketOK);
			
			$(el).find('.radioSelect').val('habilitado');
			$(el).find('.IRS_ticket').attr('src', opt.ticketOK).click(function() { img.attr('src', opt.ticket);	});
			$(el).find('.IRS_cruz').attr('src', opt.cruz).click(function() { img.attr('src', opt.ticket); });
			
		} else {
			img.attr('src', opt.ticket);
			
			$(el).find('.IRS_ticket').attr('src', opt.ticket);
			$(el).find('.radioSelect').val('');
		}
		return false;
	},
	
	desactivar: function(btn,el) {
		$(btn).parent().parent().find('img.masterTicket').attr('src',this.opt.ticket);
		var img = $(btn).parent().find('img');
		var opt = this.opt;
	
		if(img.attr('src') == opt.cruz) {
			img.attr('src', opt.cruzOK);
			
			$(el).find('.radioSelect').val('deshabilitado');
			$(el).find('.IRS_cruz').attr('src', opt.cruzOK).click(function() { img.attr('src', opt.cruz); });
			$(el).find('.IRS_ticket').attr('src', opt.ticket).click(function() { img.attr('src', opt.cruz);	});

		} else {
			img.attr('src', opt.cruz);
			
			$(el).find('.IRS_cruz').attr('src', opt.cruz);
			$(el).find('.radioSelect').val('');
		}
		
		return false;
	}
}

/**********************************/
/*         VENTANA MODAL          */
/**********************************/
jQuery.extend(jQuery, {

	vModal: function(opciones) {
		if (typeof $('.activa:first').get(0) != 'undefined') {
			$('.activa').removeClass('activa').hide(300).queue(function() {
				$('#overlay').fadeTo(200, 0).queue(function() {
					if ($.browser.version <= 6.0 && $.browser.msie) {
						$('select').css({visibility: 'visible'});
					}
					$(this).css({display: 'none'}).dequeue();
				});
				$(this).dequeue();
			});
			return false
		}
		
		
		var opt = {
			ancho: 580,
			id: 'lb-box'
		};
    	$.extend(opt, opciones);
		
		
		for (var sp in opciones.params) {
			//console.log(i +': '+opciones.params[i]);
			$('#'+opt.id+' .'+sp).html(opciones.params[sp]);
		}
		
		
		$('#'+opt.id).addClass('activa');
		$('#'+opt.id).css({ width: opt.ancho + 'px' });
		
		if (typeof $('#overlay').get(0) == 'undefined') {
			var nuevoOv = '<div id="overlay" style="display: none"></div>';
			$('body').append(nuevoOv);
		}
		$('#overlay').click(function() {
			$('#'+opt.id).hide(300).queue(function() {
				$('#overlay').fadeTo(200, 0).queue(function() {
					$(this).css({display: 'none'}).dequeue();
				});
				if ($.browser.version <= 6.0 && $.browser.msie) {
					$('select').css({visibility: 'visible'});
				}
				$(this).dequeue();
			}).removeClass("activa");
		});
		
		if ($.browser.version <= 6.0 && $.browser.msie) {
			$('select').css({visibility: 'hidden'});
			$('#'+opt.id+' select').css({visibility: 'visible'});
		}
		
		$('#overlay').css({
			opacity: 0,
			display: '',
			background: '#000',
			width: '100%',
			height: $(document).height()+'px',
			position: 'absolute',
			zIndex: 2,
			top:0,
			left:0
		}).fadeTo(200, 0.5)
		.queue(function() {
			$('#'+opt.id).centerInClient().css({zIndex: 100, display: 'none'});
			$('#'+opt.id).show(300);
			$(this).dequeue();
		});
		return false;
	}
});

$.fn.centerInClient = function(options) {
    var opt = { forceAbsolute: false,
                container: window,    // selector of element to center in
                completeHandler: null
              };
    $.extend(opt, options);
   
    return this.each(function(i) {
        var el = $(this);
        var jWin = $(opt.container);
        var isWin = opt.container == window;

        if (opt.forceAbsolute) {
            if(isWin) 	el.remove().appendTo("body");
            else 		el.remove().appendTo(jWin.get(0));
        }

        el.css("position", "absolute");

        var heightFudge = isWin ? 2.0 : 1.8;

        var x = (isWin ? jWin.width() : jWin.outerWidth()) / 2 - el.outerWidth() / 2;
        var y = (isWin ? jWin.height() : jWin.outerHeight()) / heightFudge - el.outerHeight() / 2;
		
		y = (y < 0) ? 0 : y;
		
        el.css("left", x + jWin.scrollLeft());
        el.css("top", y + jWin.scrollTop());

        if (opt.completeHandler) opt.completeHandler(this);
    });
}
