/* AO CARREGAR A PAGINA
------------------------------------------------------------------------------------- */
$(document).ready(function() {

    InitJQuery();
    
    //Trecho necessário para funcionamento com UpdatePanels
    if (typeof (Sys) != "undefined") {
        var prm = Sys.WebForms.PageRequestManager.getInstance();
        prm.add_endRequest(function(sender, args) {
            if (args.get_error() == undefined && !args.get_response().get_aborted()) {
                InitJQuery();
            }
        });
    }
	
    //Minha Conta - Acompanhe
    if ($(".dadosInfoDetalheCompra").length = !0) {
        $(".dadosInfoDetalheCompra .tabs").click(function() {
            var tab = $("#tab" + $(this).attr("id"));
            //
            if (tab.hasClass("active")) {
                tab.removeClass("active");
                $(this).removeClass("icoM");
                tab.hide();
            } else {
                tab.addClass("active");
                $(this).addClass("icoM");
                tab.show();
            }
            return false;
        });
    }

});

// Formatação de quantidade de carateres para o textarea
function max(txarea){

		total = 250;
		tam = txarea.attr("value").length;
		
		var txtCont = $("#restante_" + txarea.attr('class').split('_')[1]);
		
		$(txtCont).html(total - tam);
		
		if (tam > total){
			aux = txarea.attr("value");
			txarea.attr("value", aux.substring(0,total));
			txtCont.html(0);
		}
}

// Verificar se algum dos caracteres inválidos foi digitado na pesquisa.
function noInvalidChars(e) {
    var key
    var keychar
    var charCheck

    if (window.event) // IE
    {
        key = e.keyCode
    }
    else if (e.which) // Netscape/Firefox/Opera
    {
        key = e.which
    }

    keychar = String.fromCharCode(key);
    charCheck = /\.|\>|\<|\&|\*|\?|\#|\@|\!|\´|\^|\~|\`|\\|\/|\:|\||\+|\;|\,|\_|\%|\¨|\&|\(|\)|\$|\{|\}|\[|\]/ 
    return !charCheck.test(keychar)
}

// Formatacao de quantidade de carateres para o textarea
function textAreas() {

    var num = 250;

    if ($('textarea').length > 0) {

        $('textarea').each(function(index) {

            $(this).bind("keyup keypress keydown", function(e) {
                max($(this));
            });

            $(this).attr('class', 'comentario_' + index);

            var carac = $(this).attr("value").length;

            num = num - carac;

            $(this).after("<span class='caracteres_rest'><span id='restante_" + index + "'>" + num + "</span>caracteres restantes.</span>")
        });

    }
}

function InitJQuery() {
    //carrego as midias
    $('.media').media();

    //ajustes de textareas
    textAreas();

    //contorlo o submenu
    submenu();

    //exibo as galerias e crio a paginacao
    criaGaleria();

    //controlo as abas do rodape
    controlaAbas();

    //customizo os selectas da Home
    customSelectHome('select.customSelect, select.customSelect2');

    //exibir mais detalhes do produtos
    $('.boxDetalheProd').find('h4').unbind();
    $('.boxDetalheProd').find('h4').upDown('.conteudo');

    //comentario ler materia
    $('.apareceComentarioNoticia').click(function() {
        $('.enviarComentarioNoticia').slideToggle('fast');
        $(this).toggleClass('apareceComentarioNoticia-on');
    });

    //comentario ler materia
    $('.apareceComentarioAprovado').click(function() {
        $('.showDiv').slideToggle('fast');
        $(this).toggleClass('apareceComentarioAprovado-on');
    });

    formularios();
	
	/* CALENDARIO
	-----------------------------------------------------------
	*/
	$.datepicker.regional['pt-BR'] = {
		closeText: 'Fechar',
		prevText: '&#x3c;Anterior',
		nextText: 'Pr&oacute;ximo&#x3e;',
		currentText: 'Hoje',
		monthNames: ['Janeiro','Fevereiro','Mar&ccedil;o','Abril','Maio','Junho',
		'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
		monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun',
		'Jul','Ago','Set','Out','Nov','Dez'],
		dayNames: ['Domingo','Segunda-feira','Ter&ccedil;a-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sabado'],
		dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sab'],
		dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sab'],
		weekHeader: 'Sm',
		dateFormat: 'dd/mm/yy',
		firstDay: 0,
		isRTL: false,
		showMonthAfterYear: false,
		yearSuffix: ''};
	$.datepicker.setDefaults($.datepicker.regional['pt-BR']);
	$( ".calendarioBlog" ).datepicker($.datepicker.regional['pt-BR'])
	

    //controlo as abas
    controlaAbas_int();

    //Enviar comentarios, video e fotos
    $('.linkSendComent').showHide('.formFacaSeuComentario', '.comentarios');
    $('.linkSendVideo').showHide('.showDivVideos', '.videos0');
    $('.linkSendFoto').showHide('.showDivPhotos', '.photos0');

    $('.linkSend').click(function() {
        $($(this).attr('href').replace('#', '.')).show();
        return false;
    });

    //modal
    $('.modal').unbind('click');
    $('.modal').click(function() {
        modal($(this).attr('rel'));
    })

    //modal
    $('.modalNew').unbind('click');
    $('.modalNew').click(function() {
        modalNew($(this).attr('rel'));
    })

    //modal
    $('.modal_ProdutoImage').unbind('click');
    $('.modal_ProdutoImage').click(function() {
        modal_ProdutoImage($(this).attr('rel'));
    })

    //equal height Mapa do Site
    /*var h = $('.institucional .boxPublicoInt .boxmaior0 ul.ulColsMapasite').height();
    var h2 = $('.institucional .boxPublicoInt .boxmaior0 ul.ulColsMapasite.ulBg').height();
    if (h > h2) $('.institucional .boxPublicoInt .boxmaior0 ul.ulColsMapasite').height(h);
    else $('.institucional .boxPublicoInt .boxmaior0 ul.ulColsMapasite.ulBg').height(h2);*/

    //personalização do input file
    $(".inputFile #arquivo").change(function() {
        $(this).prev().html($(this).val());
    });

    /* $('input.star').rating(); */
	$('.votacao').each(function(){
		$(this).find('input.star').rating();
	});
	
    /*addRedesSociais()*/

    $('.bodyModal .todasaslinhas ul.ulTodaslinhas').quebraLista('ulTodaslinhas');

    //Formulario de cadastre-se | Exibir e Ocultar
    $('.cadastre-se').find('fieldset h2.titBox').click(function() {
        $(this).next('.mainBox').slideToggle();
        $(this).find('span').toggleClass('icoMenos');
    });

    //Lista de parcelas
    $('.minhaCesta.pagamento ul li .parcelas ul.col1').quebraLista();
    $('li:odd', '.minhaCesta.pagamento ul li .parcelas ul').addClass('alt');

    //Menu Atendimento
    $('.atendimento .boxPublicoInt .boxMenu h3 a').click(function() {
        $(this).parent().toggleClass('ativo').next().slideToggle();
    });

    //Zebrado!
    $('tbody tr:odd', '.tableMinhaConta').addClass('bgCor0');
    $('li:even', '.ulminhalista').addClass('bgCor0');
    $('li:odd p', '.ulListagem0').addClass('bgColor0');
    //$('tbody tr:even', '.tablePrazoInst').addClass('bgColor0');
    $('li:even', '.relUl').addClass('bgColor0');
    $('li:odd', '.relUl').addClass('bgColor1');

    //Selo de saiba mais
    $(".smais").unbind('hover');
    $(".smais").hover(
      function() {
          h = $(this).find('img').height();

          if ($(this).find('span.icomais').length == 0) {
              $(this)
				  .append('<span class="icomais"></span>')
				  .parent()
				  .find('.icomais')
				  .css({ opacity: 0.0, marginTop: (h - 20) + 'px' })
				  .animate({
				      opacity: 0.99,
				      top: '-=10'
				  }, 'fast');
          }
      },
      	function() {
      	    $('.icomais').delay(500)
			.animate({
			    opacity: 0.0,
			    top: '+=10'
			}, 'fast', function() { $(this).remove() });
      	}
    );

	$(".smaisSearch").hover(
      function() {
          h = $(this).find('img').height();
          var navegador = $.browser;
          var engine = "0";
          if (document.compatMode)
              engine = document.documentMode;

          if (navegador.msie) {
              if (parseInt(navegador.version, 10) < 8 && engine != "8") {
                  $(this)
				  .append('<span class="icomais"></span>')
				  .parent()
				  .find('.icomais')
		  	  	  .css({ opacity: 0.0, marginTop: (h * 0.8) + 'px' })
				  .animate({
				      opacity: 0.99,
				      top: '-=10'
				  }, 'fast');
              }
              else {
                  $(this)
				  .append('<span class="icomais"></span>')
				  .parent()
				  .find('.icomais')
				  .css({ opacity: 0.0, paddingTop: (h * 0.8) + 'px' })
				  .animate({
				      opacity: 0.99,
				      top: '-=10'
				  }, 'fast');
              }
          }
          else {
              $(this)
			  .append('<span class="icomais"></span>')
			  .parent()
			  .find('.icomais')
	  	  	  .css({ opacity: 0.0, marginTop: (h * 0.8) + 'px' })
			  .animate({
			      opacity: 0.99,
			      top: '-=10'
			  }, 'fast');
          }
      },
      function() {
          $('.icomais').delay(500)
			.animate({
			    opacity: 0.0,
			    top: '+=10'
			}, 'fast', function() { $(this).remove() });
      }
    );

		$(".smaisSearchIncentivo").hover(
      function() {
          h = $(this).find('img').height();
          var navegador = $.browser;

          $(this).append('<span class="icomais"></span>')
		  .parent()
		  .find('.icomais')
  	  	  .css({ opacity: 0.0, marginTop: (h * 0.8) + 'px' })
		  .animate({
		      opacity: 0.99,
		      top: '-=8'
		  }, 'fast');
      },
      function() {
          $('.icomais').delay(500)
			.animate({
			    opacity: 0.0,
			    top: '+=10'
			}, 'fast', function() { $(this).remove() });
      }
    );

    //Background
    $(".boxConteudo").each(function() {
        $(this).find(".listProd:even").addClass("impar");
    });

    $(".boxContVideos").each(function() {
        $(this).find(".itensVideo:even").addClass("impar");
    });

    //SCROLL HORIZONTAL IE7
    var resolucaoAtual = screen.width;
    if (resolucaoAtual == '1024') {
        $("html").css('overflow-x', 'hidden');
    }
    if (resolucaoAtual == '1280') {
        $("html").css('overflow-x', 'hidden');
    }
    if (resolucaoAtual == '1440') {
        $("html").css('overflow-x', 'hidden');
    }

    //MINHA CESTA LOGIN
    // Tratamento Exibir/Ocultar foi levado para código asp.net
    /*$('.divEndereco fieldset.editarIdentificacao .esqueci-minha-senha').hide();
	
	$(".ja-sou-cadastrado span.txtLegenda a").click(function(){	
    $(".divEndereco fieldset.editarIdentificacao .esqueci-minha-senha").show();																 	
    $('.divEndereco fieldset.editarIdentificacao .ja-sou-cadastrado').hide();
    });
    */

    $("div.programa-fidelidade").hide();
    $("a.visualiza-programa-fidelidade").click(function() {
        $('div.nao-sou-cadastrado').hide();
        $("div.programa-fidelidade").show();
    });

    //INCENTIVO INTERNO
    $(".dicasBeleza .meio dl dd:odd").addClass("listra");

    $("table.pontos td a").click(function() {
        $(this).parents("td").find('span').slideToggle('fast');
        $(this).toggleClass("fechar");
    });

    $('.dicasBeleza .meio .minha-cesta').hide();
    $(".dicasBeleza .meioMinhaCesta").mouseenter(function() {
        $('.dicasBeleza .meioMinhaCesta .minha-cesta').slideDown('fast');
    });
    $(".dicasBeleza .meioMinhaCesta").mouseleave(function() {
        $('.dicasBeleza .meioMinhaCesta .minha-cesta').slideUp('fast');
    });

    //DEV_produtos_comentarios_produto FOTOS
    $(".fotosAba .divBarraComentarios a.number-coments").unbind().click(function() {
        $('.fotosAba .divBoxOutrasNoticias').slideToggle('fast');
    });

    $(".fotosAba .divBarraComentarios a.submit-coments").unbind().click(function(e) {
        e.preventDefault();
        $('.fotosAba .enviarComentarioNoticia').slideToggle('fast');
    });

    //DEV_produtos_comentarios_produto VIDEOS
    $(".videosAba .divBarraComentarios a.number-coments").unbind().click(function() {
        $('.videosAba .divBoxOutrasNoticias').slideToggle('fast');
    });

    $(".videosAba .divBarraComentarios a.submit-coments").unbind().click(function(e) {
        e.preventDefault();
        $('.videosAba .enviarComentarioNoticia').slideToggle('fast');
    });

    //DEV_visualizar_foto	
    $(".bwebconteudo .divBarraComentarios a.number-coments").click(function() {
        $('.bwebconteudo .bwebInternas .displayNone').slideToggle('fast');
    });

    $(".bwebconteudo .divBarraComentarios a.submit-coments").click(function(e) {
        e.preventDefault();
        $('.bwebconteudo .bwebInternas .enviarComentarioNoticia').slideToggle('fast');
    });

    //Enviar comentários
    $("#naoLogado").click(function() {
        $(this).hide();
        $('.comentariosLogin').show();
    });

    $(".lstResultadoBusca li .container-resultado-busca:odd").addClass("even");

    //MENU INSTITUCIONAL(comentário realizado em 03/03/2011 alteração ESAT)
    /*$(".institucional .boxPublicoInt .boxMenu .links1").hide();
    $(".institucional .boxPublicoInt .boxMenu a").click(function() {
		
        //e.preventDefault();
        $(this).parent().parent().parent().find('ul:visible').slideUp("normal");
        $(this).parents("li").find('ul:not(:animated)').slideDown("normal");
		$(this).parent().parent().parent().find('ul:visible').prev().find('a').toggleClass('ativo');
		return false;

    });*/

    //regulamento fidelidade
    if ($(".listaRegulamento").length = !0) {
        $(".btnReg").click(function() {
            if ($(this).hasClass("active")) {
                $(this).removeClass("active");
                $(this).find(".texto").hide(200);
            } else {
                $(".btnReg").removeClass("active");
                $(".btnReg").find(".texto").hide(200);
                $(this).addClass("active");
                $(this).find(".texto").show(200);
            }
            // linha removida para evitar interferência no evento disparado para o GA
            // return false; 
        });
    }

    //Perguntas Frequentes
    $('.pergCat').click(function() { $(this).toggleClass('ativo').next('div.textResposta').slideToggle('fast').toggleClass('ativo').siblings('div.textResposta:visible').slideToggle('fast').toggleClass('ativo').prev().toggleClass('ativo'); return false; });

    //Comentário
    if ($(".facaEnvie").length = !0) {
        $('.facaEnvie a').click(function() {
            $(".facaEnvie").hide();
            $(".facaLogin").show();
            return false;
        });

        $('.btnLogin').click(function() {
            $(".formLogin").show();
            return false;
        });
    }

    //Vídeos
    if ($(".facaEnvieVideos").length = !0) {
        $('.facaEnvieVideos a').click(function() {
            $(".facaEnvieVideos").hide();
            $(".facaLoginVideos").show();
            return false;
        });
    }

    //Photos
    if ($(".facaEnviePhotos").length = !0) {
        $('.facaEnviePhotos a').click(function() {
            $(".facaEnviePhotos").hide();
            $(".facaLoginPhotos").show();
            return false;
        });
    }

    //detalhes do extrato
    detalhesExtrato();

    //validação do valor do cartao presente
    validarCartaoPresente();

    // Tratamento Exibir/Ocultar foi levado para código asp.net
    //Exibir/Ocultar Celular no Cadastre-se
    /*if($('.cadastre-se').length>0){
    var campoCelular = '.cadastre-se .camposFoneCelular';
    $(campoCelular).hide();
    $('.cadastre-se .opt-in-checkbox .sms input:checkbox').click(function(){
    var checked = $(this).attr('checked');
    if(checked)
    $(campoCelular).show();
    else
    $(campoCelular).hide();
    });
    }*/

    //BLOG	
   $("a.number-coments").click(function() {
        $(this).parents('.conteudoBlog').find('.divcomentarios').slideToggle('fast');
        $(this).parent().toggleClass("selected");
    });

    $("a.submit-coments").click(function() {
        $(this).parents('.conteudoBlog').find('.enviecomentarios').slideToggle('fast');
    });

    //SIDEBAR BLOG - Arquivos
    $('.divBoxArquivos ul li ul, .divBoxArquivos ul li ul li ul').hide();
	
	$('.divBoxArquivos').find('a').click(function(){
		$('.divBoxArquivos').find('.controlList').not($(this).parents()).slideUp().removeClass('controlList').prev().not(this).removeClass('ativoIn');
		$(this).toggleClass('ativoIn').next().not(':animated').slideToggle().end().addClass('controlList');
	})
	
	//Exibir/Ocultar OPT IN
    if ($('.cadastre-se').length > 0) {
        var campooptin = '.cadastre-se .opt-in-checkbox';
        $(campooptin).hide();
        $('.cadastre-se .camposRecebEmail input:checkbox').click(function() {
            var checked = $(this).attr('checked');
            if (checked)
                $(campooptin).show();
            else
                $(campooptin).hide();
        });
    }

    //Exibir/Ocultar OPT IN
    if ($('.formminhaconta').length > 0) {
        $('.formminhaconta .pessoa-juridica').hide();
        $('.formminhaconta input:radio.pj').click(function() {
            $(this).attr('checked');
            $('.formminhaconta .pessoa-juridica').show();
            $('.formminhaconta .pessoa-fisica').hide();
        });
        $('.formminhaconta input:radio.pf').click(function() {
            $(this).attr('checked');
            $('.formminhaconta .pessoa-fisica').show();
            $('.formminhaconta .pessoa-juridica').hide();
        });
    }
}

/* FUNCOES ORIENTADAS A UM OBJETO
------------------------------------------------------------------------------------- */
; (function($) {

    /* SLIDE UP/DOWN
    ------------------------------------------------------------------------------------------------- */
    $.fn.upDown = function(obj) {
        $(this).click(function() {
            $('.activeUp').slideUp('slow').not($(this).parents('div:first').find(obj)).removeClass('activeUp').parent().removeClass('active');
            $(this).parents('div:first').find(obj).not(
                function() {
                    if ($(this).is('.activeUp'))
                        $(this).removeClass('activeUp').parent().removeClass('active');
                    else
                        $(this).slideDown('slow').addClass('activeUp').parent().addClass('active');
                }
            )
        })
    }

    /* SHOW HIDE
    ------------------------------------------------------------------------------------------------- */
    $.fn.showHide = function(objShow, objHide) {
        $(this).click(function() {
            $(objHide).hide().end().find(objShow).show();
        })
    }

    /* Função que divide uma lista em duas colunas
    ------------------------------------------------------------------------------------------------- */
    $.fn.quebraLista = function(auxClass) {
        var limit = $(this).children().length;
        limit = (limit % 2 == 0) ? limit / 2 : parseInt(limit / 2, 10) + 1;

        $(this).after('<ul' + ((typeof auxClass != 'undefined') ? ' class="' + auxClass + '"' : '') + ' />');
        var itens = $(this).children(':gt(' + (limit - 1) + ')').remove();
        $(this).next('ul').append(itens);
    }

})(jQuery);

$(function() {
    //$( "#datepicker" ).datepicker($.datepicker.regional['pt-BR']);
    $("#datepicker").datepicker({
        showOn: "button",
        buttonImage: "../util/img/incentivoInterno/ico-calendario.gif",
        buttonImageOnly: true,
        buttonText: "Escolha a data no calendário"
    });

    $("#datepicker2").datepicker({
        showOn: "button",
        buttonImage: "../util/img/incentivoInterno/ico-calendario.gif",
        buttonImageOnly: true,
        buttonText: "Escolha a data no calendário"
    });
});


/* PRINTPROD
------------------------------------------------------------------------------------------------- */
function printProd(objUrl) {
    LeftPosition = -450;
    TopPosition = -450;
    var scroll = 'yes';

    settings = 'height=' + 400 + ',width=' + 800 + ',top=' + TopPosition + ',left=' + LeftPosition + ',scrollbars=' + scroll + ',resizable'
    var win = window.open(objUrl, 'nomeJanela', settings);

    win.print();

    //setTimeout(function() { win.close() }, 1000)
}

/* SUBMENU
------------------------------------------------------------------------------------------------- */
function submenu() {
    $(".menuMinhasCompras, .minhaConta").mouseenter(function() {
        //$($(this).attr("rel")).slideDown(200);
		$($(this).find('.btnConta').addClass('active').end().find('.abrirSubMenu').attr("rel")).css({display:'block', opacity: 0.0}).animate({opacity: 0.99},500);
    });
	//mouse leave minhas compras
	$(".fecharSubMenu").mouseleave(function() {
        $(this).slideUp('fast');
    });
	//mouse leave minha conta
    $(".minhaConta").mouseleave(function() {
        $(this).find('.btnConta').removeClass('active').end().find('.fecharSubMenu').slideUp('fast');
    });
}


/* ABAS
------------------------------------------------------------------------------------------------- */
function controlaAbas_int() {
    $('.abas_bottom > div:not(:first)').hide();
    $('.abas').find('li').click(function(e) {
        elem = '.' + $(this).attr('id');
        $('.abas_bottom > div').hide();
        $(this).parent().attr('class', 'abas ' + elem.replace('.', ''));
        $(elem).show();
        e.preventDefault();
    });
}

/* MODAL
------------------------------------------------------------------------------------------------- */
// Funcoes de modal foram alteradas para adaptacao a algumas necessidades
function modal(modalUrl) {

    $('<div />')
    .addClass('jModal')
    .css('height', $(document).height())
    .appendTo('body')
    .click(function() {
        fechaModal(false, '');
    })
    .slideDown('slow', function() {
        var boxModal = '';

         boxModal += '<div class="jModal_content">';
		boxModal += '<ul class="modal">';
		boxModal += '<li class="topo">';
		//boxModal += '<div class="left"></div>';
		//boxModal += '<div class="main"></div>';
		boxModal += '<div class="right"><a href="javascript:fechaModal();" title="Fechar" class="fecharModal"></a></div>';
		boxModal += '</li>';
		boxModal += '<li class="meio"><iframe src="' + modalUrl + '" frameborder="0" id="iframeFloater" width="300" height="200" scrolling="no"></iframe></li>';
		boxModal += '<li class="bottom">';
		//boxModal += '<div class="left"></div>';
		//boxModal += '<div class="main"></div>';
		//boxModal += '<div class="right"></div>';
		boxModal += '</li>';
		boxModal += '</ul>';
		boxModal += '</div>';

        $("body").prepend(boxModal);
    })
}

// Funcao alterada
function fechaModal(refreshBasket, redirectUrl) {
    $('.jModal_content').hide('slow', function() {
        $('.jModal').slideUp('slow', function() {
            if (redirectUrl != undefined && redirectUrl != '') {
                location.href = redirectUrl;
            }
            else if (refreshBasket || $('div.jModal_content a.fecharModal').attr('refreshBasket') === 'true') {
                __doPostBack(basketPanelName, 'refreshBasket');

                if (checkoutPanelName != undefined &&
                	    checkoutPanelName != null &&
                	    checkoutPanelName != '') {
                    __doPostBack(checkoutPanelName, 'refreshCheckout');
                }
            }
            $('.jModal_content').remove();
            $(this).remove();
        })
    });
}

function modal_ProdutoImage(modalUrl) {

    $('<div />')
    .addClass('jModal')
    .css('height', $(document).height())
    .appendTo('body')
    .click(function() {
        fechaModal_ProdutoImage(false, '');
    })
    .slideDown('slow', function() {
        var boxModal = '';

         boxModal += '<div class="jModal_content_produto_image">';
		boxModal += '<ul class="modal">';
		boxModal += '<li class="topo">';
		//boxModal += '<div class="left"></div>';
		//boxModal += '<div class="main"></div>';
		boxModal += '<div class="right"><a href="javascript:fechaModal_ProdutoImage();" title="Fechar" class="fechaModal_ProdutoImage"></a></div>';
		boxModal += '</li>';
		boxModal += '<li class="meio"><iframe src="' + modalUrl + '" frameborder="0" id="iframeFloater" width="300" height="200" scrolling="no"></iframe></li>';
		boxModal += '<li class="bottom">';
		//boxModal += '<div class="left"></div>';
		//boxModal += '<div class="main"></div>';
		//boxModal += '<div class="right"></div>';
		boxModal += '</li>';
		boxModal += '</ul>';
		boxModal += '</div>';

        $("body").prepend(boxModal);
    })
}

// Funcao alterada
function fechaModal_ProdutoImage(refreshBasket, redirectUrl) {
    $('.jModal_content_produto_image').hide('slow', function() {
        $('.jModal').slideUp('slow', function() {
            $('.jModal_content_produto_image').remove();
            $(this).remove();

            if (redirectUrl != undefined && redirectUrl != '') {
                location.href = redirectUrl;
            }
            else if (refreshBasket) {
                __doPostBack(basketPanelName, 'refreshBasket');
            }
        })
    });
}



/* MODAL NEW
------------------------------------------------------------------------------------------------- */
function modalNew(modalUrl) {

    $('<div />')
        .addClass('jModalNew')
        .css('height', $(document).height())
        .appendTo('body')
        .slideDown('slow', function() {
            var boxModal = '';

            boxModal += '<div class="jModal_content">';
            boxModal += '<ul class="modal">';
            boxModal += '<li class="topo">';
            //boxModal += '<div class="left"></div>';
            //boxModal += '<div class="main"></div>';
            boxModal += '<div class="rightNotClose" style="background-image:none;"></div>';
            boxModal += '</li>';
            boxModal += '<li class="meio"><iframe src="' + modalUrl + '" frameborder="0" id="iframeFloater" width="300" height="200" scrolling="no"></iframe></li>';
            boxModal += '<li class="bottom">';
            //boxModal += '<div class="left"></div>';
            //boxModal += '<div class="main"></div>';
            //boxModal += '<div class="right"></div>';
            boxModal += '</li>';
            boxModal += '</ul>';
            boxModal += '</div>';

            $("body").prepend(boxModal);

        })
}

function fechaModalNew(refreshBasket, redirectUrl) {

    var jModalContent = '.jModal_content';
    var jModalNew = '.jModalNew';

    $(jModalContent).hide('slow', function() {
        $(jModalNew).slideUp('slow', function() {
            $(jModalContent).remove();
            $(this).remove();

            if (redirectUrl != undefined && redirectUrl != '') {
                location.href = redirectUrl;
            }
            else if (refreshBasket) {
                __doPostBack(basketPanelName, 'refreshBasket');

                if (checkoutPanelName != undefined &&
            	        checkoutPanelName != null &&
            	        checkoutPanelName != '') {
                    __doPostBack(checkoutPanelName, 'refreshCheckout');
                }

            }
        })
    });
}

/* REDIRECT URL
------------------------------------------------------------------------------------------------- */
function redirectURL(url) {
    parent.location.href = url;
}

/* CALCULATE SIZE
funcao que calcula o tamanho do pagina e envia a informação ao iframe pai
------------------------------------------------------------------------------------------------- */
function calculatesize() {

    var ajust = 15;

    if ($('.jmodal_indiqueamigo').height() != null)
        ajust = 45;

    $("#iframeFloater", parent.document.body).css({
        width: $('.contentModal').outerWidth() - 15 + 'px',
        height: $('.contentModal').outerHeight() + ajust + 'px'
    });

    $(".jModal_content_produto_image", parent.document.body)
    .css({
        /*top: ($(parent.window).height() / 2) - $(this).height() / 2,*/
        top: (0),
        left: ($(parent.window).width() / 2) - $(this).width() / 2,
        width: $('.contentModal').outerWidth() + 'px',
        height: $('.contentModal').outerHeight() + 'px'
    })


    $(".jModal_content", parent.document.body)
    .css({
        top: ($(parent.window).height() / 2) - $(this).height() / 2,
        left: ($(parent.window).width() / 2) - $(this).width() / 2,
        width: $('.contentModal').outerWidth() + 'px',
        height: $('.contentModal').outerHeight() + 15 + 'px'
    })

    $(parent.window).scrollTo(0, 800);
}


/* ESTEIRA
funcao que controla a exibicao dos conteudos em lista com controle por setas
------------------------------------------------------------------------------------------------- */

/**
 * Aplica o efeito de Carrossel em listas nao-ordenadas (<ul>).
 * A estrutura HTML deve seguir o padrao abaixo.
 * Os itens da lista podem conter qualquer tipo de conteudo, mas devem possuir a mesma largura.
 *
 * @param view (Integer, optional) Quantidade de itens a serem exibidos (quantidade de itens a serem rolados por vez).
 *
 * @example Estrutura HTML
 * <div id="simple-carrossel">
 * 	<ul>
 * 		<li><img /></li>
 * 		<li><img /></li>
 * 		<li><img /></li>
 * 		<li><img /></li>
 * 	</ul>
 * 	<a href="#" class="anterior">Anteriores</a>
 * 	<a href="#" class="proximo">Proximos</a>
 * </div>
 *
 * @example Chamada
 * $("#simple-carrossel").carrossel(2);
 */
$.fn.carrossel = function (view) {
    view = (view) ? parseInt(view) : 5;
    if (isNaN(view))
        return false;

    this.each(function () {
        var carrossel = $(this);
        var controlButtons = carrossel.find('.anterior,.proximo');
        var list = carrossel.find('ul');
        var itemWidth = list.children(':eq(0)').outerWidth(true);
        var countItens = list.children().length;
        var nextRange;
        var viewed = view;
        var button;
        var disable;
        var currentFirstIndex;
        
        if (countItens <= view) {
            controlButtons.addClass('disable');
        }
        else {
            carrossel.find('.proximo').removeClass('disable');
            carrossel.find('.anterior').addClass('disable');
        }

        controlButtons.bind('click', function () {
            button = $(this);
            disable = false;

            if (button.hasClass('disable') || list.is(':animated') || list.children().is(':animated'))
                return false;

            controlButtons.removeClass('disable');

            if (button.hasClass('proximo')) {
                nextRange = (countItens - viewed >= view) ? view : countItens - viewed;
                viewed += nextRange;
                disable = (nextRange < view || viewed == countItens);
                direction = '-=';
            }
            else {
                nextRange = (viewed - view >= view) ? view : viewed - view;
                viewed -= nextRange;
                disable = (nextRange < view || viewed == view);
                direction = '+=';
            }

            if (itemWidth * countItens - view * itemWidth < 10000) { //jQuery.fn.animate bug: http://bugs.jquery.com/ticket/7193
                list.stop().animate({
                    marginLeft: direction + (itemWidth * nextRange)
                }, 500);
            }
            else {
                currentFirstIndex = viewed - 2 * view;
                if (direction == '-=') {
                    list.children(':eq(' + currentFirstIndex + ')').stop().animate({
                        marginLeft: direction + (itemWidth * nextRange)
                    }, 500);
                }
                else {
                    list.children(':eq(' + (currentFirstIndex + view) + ')').stop().animate({
                        marginLeft: direction + (itemWidth * nextRange)
                    }, 500);
                }
            }

            if (disable)
                button.addClass('disable');

            return false;
        });
    });
    return this;
};

function esteira(obj) {
    var esteira = obj;

    //desabilito o botao anterior e ativo a 1 listagem
    $(esteira).find('li:first').addClass('active').end().parent().find('span.anterior').css('visibility', 'hidden');

    //caso clique no botao proximo
    $(esteira).parent().find('span.proximo')
    .click(function() {
        //habilito o botao esquerdo
        $(this).prev().css('visibility', 'visible');

        //exibo a proxima lista
        $(esteira).find('.active').removeClass('active').fadeOut('fast').delay(0)
        .next().fadeIn('fast').addClass('active')
        .filter(function() {
            return $(esteira).children().index(this) == $(esteira).children().length - 1;
        })
        .parents(esteira).parent().find('span.proximo').css('visibility', 'hidden');
    })

    //caso clique no botao anterior
    $(esteira).parent().find('span.anterior')
    .click(function() {
        //habilito o botao esquerdo
        $(this).next().css('visibility', 'visible');

        //exibo a proxima lista
        $(esteira).find('.active').removeClass('active').fadeOut('fast').delay(0)
        .prev().fadeIn('fast').addClass('active')
        .filter(function() {
            return $(esteira).children().index(this) == 0;
        })
        .parents(esteira).parent().find('span.anterior').css('visibility', 'hidden');
    })
}



/* Formulario - Cadastre-se adicionar Rede Sociais!
-------------------------------------------------------------------------*/
/*function addRedesSociais() {
    //Deletar campo
    $('.redesSociais').find('.btnFechar').click(function(e) {
        $(this).parent().fadeOut();
        e.preventDefault();
    });
}*/

/* Cartão presente
-------------------------------------------------------------------------*/
// alterada para permitir globalizacao da mensagem de erro
function validarCartaoPresente() {
    var input = $('.categorias .boxPublicoInt .secaoPresentes .valorCartao');
    var etiqueta = $('.categorias .boxPublicoInt .secaoPresentes .cartao p strong span');
    var valorMinimo = 30;

    input.keyup(function() {
        var valorEtiqueta = input.val().replace(/\D/g, '');
        etiqueta.text(valorEtiqueta);
    })
    
	/*$('.categorias .boxPublicoInt .secaoPresentes .opcoes .btnMaior0').find('input').click(function() {
        if (!validarValorCartao(input.val())) {
            $(".validationMessage").show();
            input.val(valorMinimo);
            etiqueta.text(valorMinimo);
        }
        else $(".validationMessage").hide();
    });*/

}
function validarValorCartao(valor) {
	if(valor % 10 == 0 && valor >= 30 && valor <= 500) {
				   return true;
	}
	return false;
}

/* Formularios
-------------------------------------------------------------------------*/
$(document).ready(function() {
    $('input[name="campo_cc"]').setMask('cc'); // cartão de crédito
    $('input[name="campo_numero"]').setMask('integer'); // números inteiros
    $('input[name="campo_money"]').setMask('decimal'); // dinheiro
    $('input[name="campo_money_negativo"]').setMask('signed-decimal'); // dinheiro com valores negativos
});


function formularios() {
    //Formulario
    var values = [], pos;
    $('.custom').each(function() {

        // Selects foram modificados para permitir utilizacao com ASP.NET
        //Pega apenas os Select's
        if ($(this).is('select')) {

            //Verifica Select:disabled true?
            $slDisabled = ($(this).attr('disabled') == true) ? ' selectDisable' : '';
            //valido se o campo ja nao esta customizado
            if (!($(this).parent().is('.ctext')) || !($(this).next().is('.campSelect'))) {
                var selectId = $(this).attr('id');
                var selectSize = $(this).width();
                var selectSizeCurve = $(this).width();

                // Se ultrapassar 6 adicionar altura no selec 
                var numOptions = ($(this).find('option').length + 1 > 6) ? 'height:75px; overflow-x:hidden;overflow-y:auto;' : '';

                textIndex = $(this).find('option').filter(':selected').text()

                if (textIndex != null) {
                    if (selectSize >= 150)
                        limit = (textIndex.length > 20) ? textIndex.substr(0, 15) + '..' : textIndex;
                    else if (selectSize < 150 && selectSize >= 100)
                        limit = (textIndex.length > 18) ? textIndex.substr(0, 13) + '..' : textIndex;
                    else if (selectSize < 100)
                        limit = (textIndex.length > 15) ? textIndex.substr(0, 10) + '..' : textIndex;
                }
                else
                    limit = '';

                var selectt = '';
                selectt += '<div class="campSelect' + $slDisabled + '">';

                if (selectSize == 0) {
                    selectSize = parseInt($(this).css('width').split('px')[0]);
                    selectSizeCurve = parseInt($(this).css('width').split('px')[0]) + 5;
                }

                // adiciona 5px a largura atual do select
                // e caso o tamanho seja menor que 40px (mínimo para exibir 2 caracteres na lista)
                // garante a largura mínima em 40px
                var selectWidth = (selectSize + 5) < 40 ? 40 : (selectSize + 5);
                selectt += '<ul style="width:' + eval(selectSize + 5) + 'px; ' + numOptions + '">';

                if ($(this).find('optgroup').is('optgroup')) {
                    $(this).find('optgroup').each(function(e) {
                        selectt += '<li>' + $(this).attr('label') + '</li>';
                        $(this).find('option').each(function(e) {
                            selectt += '<li>&nbsp;&#8250;&nbsp;<a href="#">' + $(this).text() + '</a></li>';
                        });

                    });
                } else {
                    $(this).find('option').each(function(e) {
                        selectt += '<li><a href="#" selectValue="' + $(this).val() + '" selectId="' + selectId + '">' + $(this).text() + '</a></li>';
                    });
                }

                selectt += '<li class="cselB" style="width:' + eval(selectSizeCurve - 4) + 'px;"><span class="cselBint"></span></li>';
                selectt += '</ul>';
                selectt += '<a href="#" title="' + textIndex + '"><strong style="width:' + eval(selectSize - 31) + 'px;">' + limit + '</strong></a>'; //[Tlantic] Alteramos pois TODOS os select da Tlantic ficaram quebrados
                selectt += '</div>';
                $(this).after(selectt).hide();
            }
        }

        /*	
        //Pega apenas os Textarea's
        var limit_ = '';
        if ($(this).is('textarea')) {

            //Se tiver "maxlength" pega valor/limit
        if ($(this).attr('maxlength')) {
        limit_ = '<span class="limit_">';
        if(!$(this).is('.noMax')) { limit_ += $(this).attr('maxlength') + ' caracteres'; }
        limit_ += '</span>';
        }
			
			//Contador de caracteres
        $(this).after(limit_).keyup(function(){
        if (!$(this).is('.noMax')) {
        if($(this).val().length == 0) {
        $txt = $(this).attr('maxlength') + ' caracteres';
        }else{
        $txt =($(this).attr('maxlength') - $(this).val().length < 0 ? '0' : $(this).attr('maxlength') - $(this).val().length) + ' caracteres restantes';
        }
        $(this).next().text($txt);
        ($(this).val().length >= $(this).attr('maxlength'))
        $(this).val($(this).val().substr(0, $(this).attr('maxlength')));
        }
        });
        /* $(this).after(limit_).wrap('<span class="ctextarea"></span>').before('<span><span>&nbsp;</span></span>').after('<span class="b"><span>&nbsp;</span></span></span>').keyup(function() {
        if (!$(this).is('.noMax')) {
        $(this).parent().next().text($(this).attr('maxlength') - $(this).val().length + ' caracteres restantes');
        ($(this).val().length >= $(this).attr('maxlength'))
        $(this).val($(this).val().substring(0, $(this).attr('maxlength')));
        }
        });
        if ($(this).hasClass('error')) {
        $(this).parent().addClass('ctextarea_error');
        } 
        } */
    });

    var mySelec = '.campSelect';
    $(mySelec).click(function() {
		if(!$(this).is('.selectDisable')){
			if (!$(this).find('ul').is(':visible')) {
				valor = $(this);

				$(valor).find('a').addClass('ativo');
				$(valor).find('ul').fadeIn('fast');
				$(valor).find('ul a').click(function() {
					textIndex = $(this).text();
					limit = (textIndex.length > 25) ? textIndex.substr(0, 18) + '..' : textIndex;
					$(valor).find('a strong').text(limit).parent('a').attr('title', $(this).text());

					$('.campSelect').find('ul a').filter('[selected]').removeAttr('selected');
					$(this).attr('selected', 'true');
				});
			}
			else {
				$(this).find('ul').fadeOut('fast');
				$(this).find('a').removeClass();

				var val = $('.campSelect').find('ul a').filter('[selected]').attr('selectValue');
				var id = $('.campSelect').find('ul a').filter('[selected]').attr('selectId');

				if (val != undefined && id != undefined) {
					roundedSelectIndexChanged(id, val);
				}
			}
		}
		return false;
    });

    $(mySelec).live('mouseleave', function() {

        if ($(this).find('ul').is(':visible')) {

            setTimeout(function() {
                $(mySelec).find('ul').fadeOut('fast');
                $(mySelec).find('a').removeClass();
            }, 500);
        }
    });
}

/*SELECTS CUSTOMIZAVEIS
-------------------------------------------------------------------------*/
// Selects foram modificados para permitir utilizacao com ASP.NET
function customSelectHome(selectObj) {
    var str;

    $(selectObj).each(function() {
        //Verifica Select:disabled true?
        $slDisabled = ($(this).attr('disabled') == true) ? ' selectDisable' : '';

        if (!$(this).next().is('.customSelect')) {
            str = '';
            str += '<div class="customSelect' + $slDisabled + '">';
            str += '<a href="javascript:void(0);"><span>' + $(this).find('option').filter(':selected').text() + '</span></a>'
            str += '<div class="selectContainer">';
            str += '<ul>';

            var selectId = $(this).attr('id');

            $(this).find('option').each(function() {
                if ($(this).val() != '') {
                    if ($(this).attr('class') == 'modal') {
                        str += '<li><a href="javascript:void(0);" title="' + $(this).text() + '" class="modal" rel="' + $(this).val() + '">' + $(this).text() + '</a></li>';
                    } else {
                        str += '<li><a href="javascript:roundedSelectIndexChanged(\'' + selectId + '\',\'' + $(this).val() + '\')" title="' + $(this).text() + '">' + $(this).text() + '</a></li>';
                    }
                }
            });

            str += '</ul>';
            str += '</div>';
            str += '</div>';

            $(this).after(str);
        }
    });

    controlSelect('div.customSelect');
}

function controlSelect(selectObj) {
	
		$(selectObj).find('a:not(.modal)').live('click', function() {
			if(!$(this).parents('.customSelect').is('.selectDisable'))
			$(this).parents('.customSelect').find('.selectContainer:not(:animated)').slideToggle('fast');
		});

		$(selectObj).live('mouseleave', function() {
			if ($(this).find('.selectContainer').is(':visible'))
				$(this).find('.selectContainer:not(:animated)').slideToggle('fast');
		});
	
}

function roundedSelectIndexChanged(selectId, newValue) {
    if (selectId != '') {
        $('#' + selectId).val(newValue).change();
    }
}

/* GALERIAS
-------------------------------------------------------------------------*/
function criaGaleria() {
    var str = '';
    //ativo a 1 lista e exibo a paginacao
    $('.galeria').find('ul:first').addClass('active')
    .end()
    .find('.numbers:not(.noPager)').html(function() {
        str = '';
        for (var i = 1; i < $(this).parents('.galeria').children('ul').length; i++) { str += '<a href="javascript:void(0);">' + i + '</a>' }
        return str;
    }).find('a:first').addClass('active')
    .end()
    .parents('ul').filter('.showAllNumbers').find('a').addClass('showAll');
    //chamo a funcao que controla a galeria
    controleGaleria('.galeria');
}


function controleGaleria(objClassName) {
    //caso nao haja listas suficientes, escondo a paginacao
    /*
	Função comentada pela Tlantic em 02/03/2011
	$(objClassName).each(function() {
        if ($(this).children('ul:not(.paginacaoDestaque)').length <= 1) {
            $(this).find('.paginacaoDestaque').css('display', 'none');
        }
    });*/

    var activeIndex;
    $(objClassName).find('.paginacaoDestaque a').click(function() {
        //verifico o item ativo no momento
        activeIndex = $(this).parents('.paginacaoDestaque').find('.numbers').find('a').index($(this).parents('.paginacaoDestaque').find('.numbers').find('a.active'));

        //caso clique no anterior
        if ($(this).parent().is('.next'))
            activeIndex++;
        //caso clique no proximo
        else if ($(this).parent().is('.previous'))
            activeIndex--;
        //caso clique em um dos numeros
        else if ($(this).parent().is('.numbers'))
            activeIndex = $(this).parents('.paginacaoDestaque').find('.numbers').find('a').index(this);

        //caso ultrapasse volto ao primeiro
        if (activeIndex >= $(this).parents('.galeria').children('ul:not(.paginacaoDestaque)').length)
            activeIndex = 0;
        //caso seja inferior a 1
        if (activeIndex < 0)
            activeIndex = $(this).parents('.galeria').children('ul:not(.paginacaoDestaque)').length - 1;

        //atualizo a classe do item ativo para o item atual
        $(this).parents('.paginacaoDestaque').find('.numbers a').removeClass('active').end().find('.numbers a:eq(' + activeIndex + ')').addClass('active');

        //caso clique em um item da paginacao
        $(this).parents('.galeria').children('ul:not(.paginacaoDestaque)').removeClass('active').eq(activeIndex).addClass('active');
    })
}

/* CONTROLE DAS ABAS DO RODAPE 
-------------------------------------------------------------------------*/
function controlaAbas() {
    var abaAtual = 'aba1';
    var indiceAtual;

    $('.produtosMais_abas').find('a').live('click', function() {
        //indice atual
        indiceAtual = $('.produtosMais_abas').find('a').index(this);

        //mudo a classe do bg das abas
        $('.produtosMais_abas').find('a').removeClass('active');
        $(this).addClass('active');

        //mudo a classe da aba clicada
        $('.produtosMais_abas').removeClass(abaAtual);
        abaAtual = 'aba' + (indiceAtual + 1);
        $('.produtosMais_abas').addClass(abaAtual)

        //mudo a classe da galeria
        $('.produtosMais').find('.galeria').removeClass('active').eq(indiceAtual).addClass('active');

    });
}

/* MOSTRA ESCONDE DETALHES EXTRATO PROGRAMA FIDELIDADE 
-------------------------------------------------------------------------*/
function detalhesExtrato() {
    //ao clicar em detalhes escondo a tr atuaal e exibo a tr com os detalhes
    $('.detalhesExtrato').live('click', function() {
        $(this).parents('tr').hide().next().show();
    })

    $('.escondeExtrato').live('click', function() {
        $(this).parents('.infoDetalhesExtrato').hide().prev().show();
    })
}

/* PLUGINS 
-------------------------------------------------------------------------/*
/*
* jQuery Media Plugin for converting elements into rich media content.
*
* Examples and documentation at: http://malsup.com/jquery/media/
* Copyright (c) 2007-2008 M. Alsup
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
* @author: M. Alsup
* @version: 0.92 (24-SEP-2009)
* @requires jQuery v1.1.2 or later
* $Id: jquery.media.js 2460 2007-07-23 02:53:15Z malsup $
*
* Supported Media Players:
*	- Flash
*	- Quicktime
*	- Real Player
*	- Silverlight
*	- Windows Media Player
*	- iframe
*
* Supported Media Formats:
*	 Any types supported by the above players, such as:
*	 Video: asf, avi, flv, mov, mpg, mpeg, mp4, qt, smil, swf, wmv, 3g2, 3gp
*	 Audio: aif, aac, au, gsm, mid, midi, mov, mp3, m4a, snd, rm, wav, wma
*	 Other: bmp, html, pdf, psd, qif, qtif, qti, tif, tiff, xaml
*
* Thanks to Mark Hicken and Brent Pedersen for helping me debug this on the Mac!
* Thanks to Dan Rossi for numerous bug reports and code bits!
* Thanks to Skye Giordano for several great suggestions!
* Thanks to Richard Connamacher for excellent improvements to the non-IE behavior!
*/
; (function($) {

    /**
    * Chainable method for converting elements into rich media.
    *
    * @param options
    * @param callback fn invoked for each matched element before conversion
    * @param callback fn invoked for each matched element after conversion
    */
    $.fn.media = function(options, f1, f2) {
        if (options == 'undo') {
            return this.each(function() {
                var $this = $(this);
                var html = $this.data('media.origHTML');
                if (html)
                    $this.replaceWith(html);
            });
        }

        return this.each(function() {
            if (typeof options == 'function') {
                f2 = f1;
                f1 = options;
                options = {};
            }
            var o = getSettings(this, options);
            // pre-conversion callback, passes original element and fully populated options
            if (typeof f1 == 'function') f1(this, o);

            var r = getTypesRegExp();
            var m = r.exec(o.src.toLowerCase()) || [''];

            o.type ? m[0] = o.type : m.shift();
            for (var i = 0; i < m.length; i++) {
                fn = m[i].toLowerCase();
                if (isDigit(fn[0])) fn = 'fn' + fn; // fns can't begin with numbers
                if (!$.fn.media[fn])
                    continue;  // unrecognized media type
                // normalize autoplay settings
                var player = $.fn.media[fn + '_player'];
                if (!o.params) o.params = {};
                if (player) {
                    var num = player.autoplayAttr == 'autostart';
                    o.params[player.autoplayAttr || 'autoplay'] = num ? (o.autoplay ? 1 : 0) : o.autoplay ? true : false;
                }
                var $div = $.fn.media[fn](this, o);

                $div.css('backgroundColor', o.bgColor).width(o.width);

                if (o.canUndo) {
                    var $temp = $('<div></div>').append(this);
                    $div.data('media.origHTML', $temp.html()); // store original markup
                }

                // post-conversion callback, passes original element, new div element and fully populated options
                if (typeof f2 == 'function') f2(this, $div[0], o, player.name);
                break;
            }
        });
    };

    /**
    * Non-chainable method for adding or changing file format / player mapping
    * @name mapFormat
    * @param String format File format extension (ie: mov, wav, mp3)
    * @param String player Player name to use for the format (one of: flash, quicktime, realplayer, winmedia, silverlight or iframe
    */
    $.fn.media.mapFormat = function(format, player) {
        if (!format || !player || !$.fn.media.defaults.players[player]) return; // invalid
        format = format.toLowerCase();
        if (isDigit(format[0])) format = 'fn' + format;
        $.fn.media[format] = $.fn.media[player];
        $.fn.media[format + '_player'] = $.fn.media.defaults.players[player];
    };

    // global defautls; override as needed
    $.fn.media.defaults = {
        standards: false,      // use object tags only (no embeds for non-IE browsers)
        canUndo: true,       // tells plugin to store the original markup so it can be reverted via: $(sel).mediaUndo()
        width: 400,
        height: 400,
        autoplay: 0, 	   	// normalized cross-player setting
        bgColor: '', 	// background color
        params: { wmode: 'transparent' }, // added to object element as param elements; added to embed element as attrs
        attrs: {}, 		// added to object and embed elements as attrs
        flvKeyName: 'file', 	// key used for object src param (thanks to Andrea Ercolino)
        flashvars: {}, 		// added to flash content as flashvars param/attr
        flashVersion: '7', // required flash version
        expressInstaller: null, // src for express installer

        // default flash video and mp3 player (@see: http://jeroenwijering.com/?item=Flash_Media_Player)
        flvPlayer: 'mediaplayer.swf',
        mp3Player: 'mediaplayer.swf',

        // @see http://msdn2.microsoft.com/en-us/library/bb412401.aspx
        silverlight: {
            inplaceInstallPrompt: 'true', // display in-place install prompt?
            isWindowless: 'true', // windowless mode (false for wrapping markup)
            framerate: '24',   // maximum framerate
            version: '0.9',  // Silverlight version
            onError: null,   // onError callback
            onLoad: null,   // onLoad callback
            initParams: null,   // object init params
            userContext: null	  // callback arg passed to the load callback
        }
    };

    // Media Players; think twice before overriding
    $.fn.media.defaults.players = {
        flash: {
            name: 'flash',
            title: 'Flash',
            types: 'flv,mp3,swf',
            mimetype: 'application/x-shockwave-flash',
            pluginspage: 'http://www.adobe.com/go/getflashplayer',
            ieAttrs: {
                classid: 'clsid:d27cdb6e-ae6d-11cf-96b8-444553540000',
                type: 'application/x-oleobject',
                codebase: 'http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=' + $.fn.media.defaults.flashVersion
            }
        },
        quicktime: {
            name: 'quicktime',
            title: 'QuickTime',
            mimetype: 'video/quicktime',
            pluginspage: 'http://www.apple.com/quicktime/download/',
            types: 'aif,aiff,aac,au,bmp,gsm,mov,mid,midi,mpg,mpeg,mp4,m4a,psd,qt,qtif,qif,qti,snd,tif,tiff,wav,3g2,3gp',
            ieAttrs: {
                classid: 'clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
                codebase: 'http://www.apple.com/qtactivex/qtplugin.cab'
            }
        },
        realplayer: {
            name: 'real',
            title: 'RealPlayer',
            types: 'ra,ram,rm,rpm,rv,smi,smil',
            mimetype: 'audio/x-pn-realaudio-plugin',
            pluginspage: 'http://www.real.com/player/',
            autoplayAttr: 'autostart',
            ieAttrs: {
                classid: 'clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA'
            }
        },
        winmedia: {
            name: 'winmedia',
            title: 'Windows Media',
            types: 'asx,asf,avi,wma,wmv',
            mimetype: $.browser.mozilla && isFirefoxWMPPluginInstalled() ? 'application/x-ms-wmp' : 'application/x-mplayer2',
            pluginspage: 'http://www.microsoft.com/Windows/MediaPlayer/',
            autoplayAttr: 'autostart',
            oUrl: 'url',
            ieAttrs: {
                classid: 'clsid:6BF52A52-394A-11d3-B153-00C04F79FAA6',
                type: 'application/x-oleobject'
            }
        },
        // special cases
        iframe: {
            name: 'iframe',
            types: 'html,pdf'
        },
        silverlight: {
            name: 'silverlight',
            types: 'xaml'
        }
    };

    //
    //	everything below here is private
    //


    // detection script for FF WMP plugin (http://www.therossman.org/experiments/wmp_play.html)
    // (hat tip to Mark Ross for this script)
    function isFirefoxWMPPluginInstalled() {
        var plugs = navigator.plugins;
        for (var i = 0; i < plugs.length; i++) {
            var plugin = plugs[i];
            if (plugin['filename'] == 'np-mswmp.dll')
                return true;
        }
        return false;
    }

    var counter = 1;

    for (var player in $.fn.media.defaults.players) {
        var types = $.fn.media.defaults.players[player].types;
        $.each(types.split(','), function(i, o) {
            if (isDigit(o[0])) o = 'fn' + o;
            $.fn.media[o] = $.fn.media[player] = getGenerator(player);
            $.fn.media[o + '_player'] = $.fn.media.defaults.players[player];
        });
    };

    function getTypesRegExp() {
        var types = '';
        for (var player in $.fn.media.defaults.players) {
            if (types.length) types += ',';
            types += $.fn.media.defaults.players[player].types;
        };
        return new RegExp('\\.(' + types.replace(/,/ig, '|') + ')\\b');
    };

    function getGenerator(player) {
        return function(el, options) {
            return generate(el, options, player);
        };
    };

    function isDigit(c) {
        return '0123456789'.indexOf(c) > -1;
    };

    // flatten all possible options: global defaults, meta, option obj
    function getSettings(el, options) {
        options = options || {};
        var $el = $(el);
        var cls = el.className || '';
        // support metadata plugin (v1.0 and v2.0)
        var meta = $.metadata ? $el.metadata() : $.meta ? $el.data() : {};
        meta = meta || {};
        var w = meta.width || parseInt(((cls.match(/w:(\d+)/) || [])[1] || 0));
        var h = meta.height || parseInt(((cls.match(/h:(\d+)/) || [])[1] || 0));

        if (w) meta.width = w;
        if (h) meta.height = h;
        if (cls) meta.cls = cls;

        var a = $.fn.media.defaults;
        var b = options;
        var c = meta;

        var p = { params: { bgColor: options.bgColor || $.fn.media.defaults.bgColor} };
        var opts = $.extend({}, a, b, c);
        $.each(['attrs', 'params', 'flashvars', 'silverlight'], function(i, o) {
            opts[o] = $.extend({}, p[o] || {}, a[o] || {}, b[o] || {}, c[o] || {});
        });

        if (typeof opts.caption == 'undefined') opts.caption = $el.text();

        // make sure we have a source!
        opts.src = opts.src || $el.attr('href') || $el.attr('src') || 'unknown';
        return opts;
    };

    //
    //	Flash Player
    //

    // generate flash using SWFObject library if possible
    $.fn.media.swf = function(el, opts) {
        if (!window.SWFObject && !window.swfobject) {
            // roll our own
            if (opts.flashvars) {
                var a = [];
                for (var f in opts.flashvars)
                    a.push(f + '=' + opts.flashvars[f]);
                if (!opts.params) opts.params = {};
                opts.params.flashvars = a.join('&');
            }
            return generate(el, opts, 'flash');
        }

        var id = el.id ? (' id="' + el.id + '"') : '';
        var cls = opts.cls ? (' class="' + opts.cls + '"') : '';
        var $div = $('<div' + id + cls + '>');

        // swfobject v2+
        if (window.swfobject) {
            $(el).after($div).appendTo($div);
            if (!el.id) el.id = 'movie_player_' + counter++;

            // replace el with swfobject content
            swfobject.embedSWF(opts.src, el.id, opts.width, opts.height, opts.flashVersion,
			opts.expressInstaller, opts.flashvars, opts.params, opts.attrs);
        }
        // swfobject < v2
        else {
            $(el).after($div).remove();
            var so = new SWFObject(opts.src, 'movie_player_' + counter++, opts.width, opts.height, opts.flashVersion, opts.bgColor);
            if (opts.expressInstaller) so.useExpressInstall(opts.expressInstaller);

            for (var p in opts.params)
                if (p != 'bgColor') so.addParam(p, opts.params[p]);
            for (var f in opts.flashvars)
                so.addVariable(f, opts.flashvars[f]);
            so.write($div[0]);
        }

        if (opts.caption) $('<div>').appendTo($div).html(opts.caption);
        return $div;
    };

    // map flv and mp3 files to the swf player by default
    $.fn.media.flv = $.fn.media.mp3 = function(el, opts) {
        var src = opts.src;
        var player = /\.mp3\b/i.test(src) ? $.fn.media.defaults.mp3Player : $.fn.media.defaults.flvPlayer;
        var key = opts.flvKeyName;
        src = encodeURIComponent(src);
        opts.src = player;
        opts.src = opts.src + '?' + key + '=' + (src);
        var srcObj = {};
        srcObj[key] = src;
        opts.flashvars = $.extend({}, srcObj, opts.flashvars);
        return $.fn.media.swf(el, opts);
    };

    //
    //	Silverlight
    //
    $.fn.media.xaml = function(el, opts) {
        if (!window.Sys || !window.Sys.Silverlight) {
            if ($.fn.media.xaml.warning) return;
            $.fn.media.xaml.warning = 1;
            alert('You must include the Silverlight.js script.');
            return;
        }

        var props = {
            width: opts.width,
            height: opts.height,
            background: opts.bgColor,
            inplaceInstallPrompt: opts.silverlight.inplaceInstallPrompt,
            isWindowless: opts.silverlight.isWindowless,
            framerate: opts.silverlight.framerate,
            version: opts.silverlight.version
        };
        var events = {
            onError: opts.silverlight.onError,
            onLoad: opts.silverlight.onLoad
        };

        var id1 = el.id ? (' id="' + el.id + '"') : '';
        var id2 = opts.id || 'AG' + counter++;
        // convert element to div
        var cls = opts.cls ? (' class="' + opts.cls + '"') : '';
        var $div = $('<div' + id1 + cls + '>');
        $(el).after($div).remove();

        Sys.Silverlight.createObjectEx({
            source: opts.src,
            initParams: opts.silverlight.initParams,
            userContext: opts.silverlight.userContext,
            id: id2,
            parentElement: $div[0],
            properties: props,
            events: events
        });

        if (opts.caption) $('<div>').appendTo($div).html(opts.caption);
        return $div;
    };

    //
    // generate object/embed markup
    //
    function generate(el, opts, player) {
        var $el = $(el);
        var o = $.fn.media.defaults.players[player];

        if (player == 'iframe') {
            var o = $('<iframe' + ' width="' + opts.width + '" height="' + opts.height + '" >');
            o.attr('src', opts.src);
            o.css('backgroundColor', o.bgColor);
        }
        else if ($.browser.msie) {
            var a = ['<object width="' + opts.width + '" height="' + opts.height + '" '];
            for (var key in opts.attrs)
                a.push(key + '="' + opts.attrs[key] + '" ');
            for (var key in o.ieAttrs || {}) {
                var v = o.ieAttrs[key];
                if (key == 'codebase' && window.location.protocol == 'https:')
                    v = v.replace('http', 'https');
                a.push(key + '="' + v + '" ');
            }
            a.push('></ob' + 'ject' + '>');
            var p = ['<param name="' + (o.oUrl || 'src') + '" value="' + opts.src + '">'];
            for (var key in opts.params)
                p.push('<param name="' + key + '" value="' + opts.params[key] + '">');
            var o = document.createElement(a.join(''));
            for (var i = 0; i < p.length; i++)
                o.appendChild(document.createElement(p[i]));
        }
        else if (o.standards) {
            // Rewritten to be standards compliant by Richard Connamacher
            var a = ['<object type="' + o.mimetype + '" width="' + opts.width + '" height="' + opts.height + '"'];
            if (opts.src) a.push(' data="' + opts.src + '" ');
            a.push('>');
            a.push('<param name="' + (o.oUrl || 'src') + '" value="' + opts.src + '">');
            for (var key in opts.params) {
                if (key == 'wmode' && player != 'flash') // FF3/Quicktime borks on wmode
                    continue;
                a.push('<param name="' + key + '" value="' + opts.params[key] + '">');
            }
            // Alternate HTML
            a.push('<div><p><strong>' + o.title + ' Required</strong></p><p>' + o.title + ' is required to view this media. <a href="' + o.pluginspage + '">Download Here</a>.</p></div>');
            a.push('</ob' + 'ject' + '>');
        }
        else {
            var a = ['<embed width="' + opts.width + '" height="' + opts.height + '" style="display:block"'];
            if (opts.src) a.push(' src="' + opts.src + '" ');
            for (var key in opts.attrs)
                a.push(key + '="' + opts.attrs[key] + '" ');
            for (var key in o.eAttrs || {})
                a.push(key + '="' + o.eAttrs[key] + '" ');
            for (var key in opts.params) {
                if (key == 'wmode' && player != 'flash') // FF3/Quicktime borks on wmode
                    continue;
                a.push(key + '="' + opts.params[key] + '" ');
            }
            a.push('></em' + 'bed' + '>');
        }
        // convert element to div
        var id = el.id ? (' id="' + el.id + '"') : '';
        var cls = opts.cls ? (' class="' + opts.cls + '"') : '';
        var $div = $('<div' + id + cls + '>');
        $el.after($div).remove();
        ($.browser.msie || player == 'iframe') ? $div.append(o) : $div.html(a.join(''));
        if (opts.caption) $('<div>').appendTo($div).html(opts.caption);
        return $div;
    };


})(jQuery);


/*
* Metadata - jQuery plugin for parsing metadata from elements
*
* Copyright (c) 2006 John Resig, Yehuda Katz, J Zaefferer, Paul McLanahan
*
* Dual licensed under the MIT and GPL licenses:
*   http://www.opensource.org/licenses/mit-license.php
*   http://www.gnu.org/licenses/gpl.html
*
* Revision: $Id: jquery.metadata.js 3640 2007-10-11 18:34:38Z pmclanahan $
*
*/


(function($) {

    $.extend({
        metadata: {
            defaults: {
                type: 'class',
                name: 'metadata',
                cre: /({.*})/,
                single: 'metadata'
            },
            setType: function(type, name) {
                this.defaults.type = type;
                this.defaults.name = name;
            },
            get: function(elem, opts) {
                var settings = $.extend({}, this.defaults, opts);
                // check for empty string in single property
                if (!settings.single.length) settings.single = 'metadata';

                var data = $.data(elem, settings.single);
                // returned cached data if it already exists
                if (data) return data;

                data = "{}";

                var getData = function(data) {
                    if (typeof data != "string") return data;

                    if (data.indexOf('{') < 0) {
                        data = eval("(" + data + ")");
                    }
                }

                var getObject = function(data) {
                    if (typeof data != "string") return data;

                    data = eval("(" + data + ")");
                    return data;
                }

                if (settings.type == "html5") {
                    var object = {};
                    $(elem.attributes).each(function() {
                        var name = this.nodeName;
                        if (name.match(/^data-/)) name = name.replace(/^data-/, '');
                        else return true;
                        object[name] = getObject(this.nodeValue);
                    });
                } else {
                    if (settings.type == "class") {
                        var m = settings.cre.exec(elem.className);
                        if (m)
                            data = m[1];
                    } else if (settings.type == "elem") {
                        if (!elem.getElementsByTagName) return;
                        var e = elem.getElementsByTagName(settings.name);
                        if (e.length)
                            data = $.trim(e[0].innerHTML);
                    } else if (elem.getAttribute != undefined) {
                        var attr = elem.getAttribute(settings.name);
                        if (attr)
                            data = attr;
                    }
                    object = getObject(data.indexOf("{") < 0 ? "{" + data + "}" : data);
                }

                $.data(elem, settings.single, object);
                return object;
            }
        }
    });

    /**
    * Returns the metadata object for the first member of the jQuery object.
    *
    * @name metadata
    * @descr Returns element's metadata object
    * @param Object opts An object contianing settings to override the defaults
    * @type jQuery
    * @cat Plugins/Metadata
    */
    $.fn.metadata = function(opts) {
        return $.metadata.get(this[0], opts);
    };

})(jQuery);

/**
* jquery.meio.mask.js
* @author: fabiomcosta
* @version: 1.1.1
*
* Created by Fabio M. Costa on 2008-09-16. Please report any bug at http://www.meiocodigo.com
*
* Copyright (c) 2008 Fabio M. Costa http://www.meiocodigo.com
*
* The MIT License (http://www.opensource.org/licenses/mit-license.php)
*
* Permission is hereby granted, free of charge, to any person
* obtaining a copy of this software and associated documentation
* files (the "Software"), to deal in the Software without
* restriction, including without limitation the rights to use,
* copy, modify, merge, publish, distribute, sublicense, and/or sell
* copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following
* conditions:
* 
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
* 
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
* OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
* NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
* HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
* WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
* FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*/

(function($) {

    var isIphone = (window.orientation != undefined);

    $.extend({
        mask: {

            // the mask rules. You may add yours!
            // number rules will be overwritten
            rules: {
                'z': /[a-z]/,
                'Z': /[A-Z]/,
                'a': /[a-zA-Z]/,
                '*': /[0-9a-zA-Z]/,
                '@': /[0-9a-zA-ZçÇáàãéèíìóòõúùü]/
            },

            // these keys will be ignored by the mask.
            // all these numbers where obtained on the keydown event
            keyRepresentation: {
                8: 'backspace',
                9: 'tab',
                13: 'enter',
                16: 'shift',
                17: 'control',
                18: 'alt',
                27: 'esc',
                33: 'page up',
                34: 'page down',
                35: 'end',
                36: 'home',
                37: 'left',
                38: 'up',
                39: 'right',
                40: 'down',
                45: 'insert',
                46: 'delete',
                116: 'f5',
                224: 'command'
            },

            iphoneKeyRepresentation: {
                10: 'go',
                127: 'delete'
            },

            signals: {
                '+': '',
                '-': '-'
            },

            // default settings for the plugin
            options: {
                attr: 'alt', // an attr to look for the mask name or the mask itself
                mask: null, // the mask to be used on the input
                type: 'fixed', // the mask of this mask
                maxLength: -1, // the maxLength of the mask
                defaultValue: '', // the default value for this input
                signal: false, // this should not be set, to use signal at masks put the signal you want ('-' or '+') at the default value of this mask.
                // See the defined masks for a better understanding.

                textAlign: true, // use false to not use text-align on any mask (at least not by the plugin, you may apply it using css)
                selectCharsOnFocus: true,
                autoTab: true,
                fixedChars: '[(),.:/ -]', // fixed chars to be used on the masks. You may change it for your needs!

                onInvalid: function() { },
                onValid: function() { },
                onOverflow: function() { }
            },

            // masks. You may add yours!
            // Ex: $.fn.setMask.masks.msk = {mask: '999'}
            // and then if the 'attr' options value is 'alt', your input should look like:
            // <input type="text" name="some_name" id="some_name" alt="msk" />
            masks: {
                'phone': { mask: '(99) 9999-9999' },
                'phone-us': { mask: '(999) 999-9999' },
                'cpf': { mask: '999.999.999-99' }, // cadastro nacional de pessoa fisica
                'cnpj': { mask: '99.999.999/9999-99' },
                'date': { mask: '39/19/9999' }, //uk date
                'date-us': { mask: '19/39/9999' },
                'cep': { mask: '99999-999' },
                'time': { mask: '29:59' },
                'cc': { mask: '9999 9999 9999 9999' }, //credit card mask
                'integer': { mask: '999.999.999.999', type: 'reverse' },
                'decimal': { mask: '99,999.999.999.999', type: 'reverse', defaultValue: '000' },
                'decimal-us': { mask: '99.999,999,999,999', type: 'reverse', defaultValue: '000' },
                'signed-decimal': { mask: '99,999.999.999.999', type: 'reverse', defaultValue: '+000' },
                'signed-decimal-us': { mask: '99,999.999.999.999', type: 'reverse', defaultValue: '+000' }
            },

            init: function() {
                // if has not inited...
                if (!this.hasInit) {

                    var self = this, i,
						keyRep = (isIphone) ? this.iphoneKeyRepresentation : this.keyRepresentation;

                    this.ignore = false;

                    // constructs number rules
                    for (i = 0; i <= 9; i++) this.rules[i] = new RegExp('[0-' + i + ']');

                    this.keyRep = keyRep;
                    // ignore keys array creation for iphone or the normal ones
                    this.ignoreKeys = [];
                    $.each(keyRep, function(key) {
                        self.ignoreKeys.push(parseInt(key));
                    });

                    this.hasInit = true;
                }
            },

            set: function(el, options) {

                var maskObj = this,
					$el = $(el),
					mlStr = 'maxLength';

                options = options || {};
                this.init();

                return $el.each(function() {

                    if (options.attr) maskObj.options.attr = options.attr;

                    var $this = $(this),
						o = $.extend({}, maskObj.options),
						attrValue = $this.attr(o.attr),
						tmpMask = '',
                    // 'input' event fires on every keyboard event on the input
						pasteEvent = maskObj.__getPasteEvent();

                    // then we look for the 'attr' option
                    tmpMask = (typeof options == 'string') ? options : (attrValue != '') ? attrValue : null;
                    if (tmpMask) o.mask = tmpMask;

                    // then we see if it's a defined mask
                    if (maskObj.masks[tmpMask]) o = $.extend(o, maskObj.masks[tmpMask]);

                    // then it looks if the options is an object, if it is we will overwrite the actual options
                    if (typeof options == 'object' && options.constructor != Array) o = $.extend(o, options);

                    //then we look for some metadata on the input
                    if ($.metadata) o = $.extend(o, $this.metadata());

                    if (o.mask != null) {

                        if ($this.data('mask')) maskObj.unset($this);

                        var defaultValue = o.defaultValue,
							reverse = (o.type == 'reverse'),
							fixedCharsRegG = new RegExp(o.fixedChars, 'g');

                        if (o.maxLength == -1) o.maxLength = $this.attr(mlStr);

                        o = $.extend({}, o, {
                            fixedCharsReg: new RegExp(o.fixedChars),
                            fixedCharsRegG: fixedCharsRegG,
                            maskArray: o.mask.split(''),
                            maskNonFixedCharsArray: o.mask.replace(fixedCharsRegG, '').split('')
                        });

                        //sets text-align right for reverse masks
                        if (reverse && o.textAlign) $this.css('text-align', 'left');

                        // apply mask to the current value of the input
                        if ($this.val() != '') $this.val(maskObj.string($this.val(), o));

                        // apply the default value of the mask to the input
                        else if (defaultValue != '') $this.val(maskObj.string(defaultValue, o));

                        // compactibility patch for infinite mask, that is now repeat
                        if (o.type == 'infinite') o.type = 'repeat';

                        $this.data('mask', o);

                        // removes the maxLength attribute (it will be set again if you use the unset method)
                        $this.removeAttr(mlStr);

                        // setting the input events
                        $this.bind('keydown', { func: maskObj._keyDown, thisObj: maskObj }, maskObj._onMask)
							.bind('keypress', { func: maskObj._keyPress, thisObj: maskObj }, maskObj._onMask)
							.bind('keyup', { func: maskObj._keyUp, thisObj: maskObj }, maskObj._onMask)
							.bind('focus', maskObj._onFocus)
							.bind('blur', maskObj._onBlur)
							.bind('change', maskObj._onChange)
							.bind(pasteEvent, { func: maskObj._paste, thisObj: maskObj }, maskObj._delayedOnMask);
                    }
                });
            },

            //unsets the mask from el
            unset: function(el) {
                var $el = $(el),
					_this = this;
                return $el.each(function() {
                    var $this = $(this);
                    if ($this.data('mask')) {
                        var maxLength = $this.data('mask').maxLength,
							pasteEvent = _this.__getPasteEvent();

                        if (maxLength != -1) $this.attr('maxLength', maxLength);

                        $this.unbind('keydown', _this._onMask)
							.unbind('keypress', _this._onMask)
							.unbind('keyup', _this._onMask)
							.unbind('focus', _this._onFocus)
							.unbind('blur', _this._onBlur)
							.unbind('change', _this._onChange)
							.unbind(pasteEvent, _this._delayedOnMask)
							.removeData('mask');
                    }
                });
            },

            //masks a string
            string: function(str, options) {
                this.init();
                var o = {};
                if (typeof str != 'string') str = String(str);
                switch (typeof options) {
                    case 'string':
                        // then we see if it's a defined mask	
                        if (this.masks[options]) o = $.extend(o, this.masks[options]);
                        else o.mask = options;
                        break;
                    case 'object':
                        o = options;
                }
                if (!o.fixedChars) o.fixedChars = this.options.fixedChars;

                var fixedCharsReg = new RegExp(o.fixedChars),
					fixedCharsRegG = new RegExp(o.fixedChars, 'g');

                // insert signal if any
                if ((o.type == 'reverse') && o.defaultValue) {
                    if (typeof this.signals[o.defaultValue.charAt(0)] != 'undefined') {
                        var maybeASignal = str.charAt(0);
                        o.signal = (typeof this.signals[maybeASignal] != 'undefined') ? this.signals[maybeASignal] : this.signals[o.defaultValue.charAt(0)];
                        o.defaultValue = o.defaultValue.substring(1);
                    }
                }

                return this.__maskArray(str.split(''),
							o.mask.replace(fixedCharsRegG, '').split(''),
							o.mask.split(''),
							o.type,
							o.maxLength,
							o.defaultValue,
							fixedCharsReg,
							o.signal);
            },

            // all the 3 events below are here just to fix the change event on reversed masks.
            // It isn't fired in cases that the keypress event returns false (needed).
            _onFocus: function(e) {
                var $this = $(this), dataObj = $this.data('mask');
                dataObj.inputFocusValue = $this.val();
                dataObj.changed = false;
                if (dataObj.selectCharsOnFocus) $this.select();
            },

            _onBlur: function(e) {
                var $this = $(this), dataObj = $this.data('mask');
                if (dataObj.inputFocusValue != $this.val() && dataObj.type == 'reverse' && !dataObj.changed)
                    $this.trigger('change');
            },

            _onChange: function(e) {
                $(this).data('mask').changed = true;
            },

            _onMask: function(e) {
                var thisObj = e.data.thisObj,
					o = {};
                o._this = e.target;
                o.$this = $(o._this);
                // if the input is readonly it does nothing
                if (o.$this.attr('readonly')) return true;
                o.data = o.$this.data('mask');
                o[o.data.type] = true;
                o.value = o.$this.val();
                o.nKey = thisObj.__getKeyNumber(e);
                o.range = thisObj.__getRange(o._this);
                o.valueArray = o.value.split('');
                return e.data.func.call(thisObj, e, o);
            },

            // the timeout is set because on ie we can't get the value from the input without it
            _delayedOnMask: function(e) {
                e.type = 'paste';
                setTimeout(function() { e.data.thisObj._onMask(e); }, 1);
            },

            _keyDown: function(e, o) {
                // lets say keypress at desktop == keydown at iphone (theres no keypress at iphone)
                this.ignore = $.inArray(o.nKey, this.ignoreKeys) > -1 || e.ctrlKey || e.metaKey || e.altKey;
                if (this.ignore) {
                    var rep = this.keyRep[o.nKey];
                    o.data.onValid.call(o._this, rep ? rep : '', o.nKey);
                }
                return isIphone ? this._keyPress(e, o) : true;
            },

            _keyUp: function(e, o) {
                //9=TAB_KEY 16=SHIFT_KEY
                //this is a little bug, when you go to an input with tab key
                //it would remove the range selected by default, and that's not a desired behavior
                if (o.nKey == 9 || o.nKey == 16) return true;

                if (o.data.type == 'repeat') {
                    this.__autoTab(o);
                    return true;
                }

                return this._paste(e, o);
            },

            _paste: function(e, o) {
                // changes the signal at the data obj from the input
                if (o.reverse) this.__changeSignal(e.type, o);

                var $thisVal = this.__maskArray(
					o.valueArray,
					o.data.maskNonFixedCharsArray,
					o.data.maskArray,
					o.data.type,
					o.data.maxLength,
					o.data.defaultValue,
					o.data.fixedCharsReg,
					o.data.signal
				);

                o.$this.val($thisVal);
                // this makes the caret stay at first position when 
                // the user removes all values in an input and the plugin adds the default value to it (if it haves one).
                if (!o.reverse && o.data.defaultValue.length && (o.range.start == o.range.end))
                    this.__setRange(o._this, o.range.start, o.range.end);

                //fix so ie's and safari's caret won't go to the end of the input value.
                if (($.browser.msie || $.browser.safari) && !o.reverse) this.__setRange(o._this, o.range.start, o.range.end);

                if (this.ignore) return true;

                this.__autoTab(o);
                return true;
            },

            _keyPress: function(e, o) {

                if (this.ignore) return true;

                // changes the signal at the data obj from the input
                if (o.reverse) this.__changeSignal(e.type, o);

                var c = String.fromCharCode(o.nKey),
					rangeStart = o.range.start,
					rawValue = o.value,
					maskArray = o.data.maskArray;

                if (o.reverse) {
                    // the input value from the range start to the value start
                    var valueStart = rawValue.substr(0, rangeStart),
                    // the input value from the range end to the value end
						valueEnd = rawValue.substr(o.range.end, rawValue.length);

                    rawValue = valueStart + c + valueEnd;
                    //necessary, if not decremented you will be able to input just the mask.length-1 if signal!=''
                    //ex: mask:99,999.999.999 you will be able to input 99,999.999.99
                    if (o.data.signal && (rangeStart - o.data.signal.length > 0)) rangeStart -= o.data.signal.length;
                }

                var valueArray = rawValue.replace(o.data.fixedCharsRegG, '').split(''),
                // searches for fixed chars begining from the range start position, till it finds a non fixed
					extraPos = this.__extraPositionsTill(rangeStart, maskArray, o.data.fixedCharsReg);

                o.rsEp = rangeStart + extraPos;

                if (o.repeat) o.rsEp = 0;

                // if the rule for this character doesnt exist (value.length is bigger than mask.length)
                // added a verification for maxLength in the case of the repeat type mask
                if (!this.rules[maskArray[o.rsEp]] || (o.data.maxLength != -1 && valueArray.length >= o.data.maxLength && o.repeat)) {
                    // auto focus on the next input of the current form
                    o.data.onOverflow.call(o._this, c, o.nKey);
                    return false;
                }

                // if the new character is not obeying the law... :P
                else if (!this.rules[maskArray[o.rsEp]].test(c)) {
                    o.data.onInvalid.call(o._this, c, o.nKey);
                    return false;
                }

                else o.data.onValid.call(o._this, c, o.nKey);

                // fix accessibility bug
                //if(c == maskArray[rangeStart]) return this.ignorePaste = true;

                var $thisVal = this.__maskArray(
					valueArray,
					o.data.maskNonFixedCharsArray,
					maskArray,
					o.data.type,
					o.data.maxLength,
					o.data.defaultValue,
					o.data.fixedCharsReg,
					o.data.signal,
					extraPos
				);

                o.$this.val($thisVal);

                return (o.reverse) ? this._keyPressReverse(e, o) : (o.fixed) ? this._keyPressFixed(e, o) : true;
            },

            _keyPressFixed: function(e, o) {

                if (o.range.start == o.range.end) {
                    // the 0 thing is cause theres a particular behavior i wasnt liking when you put a default
                    // value on a fixed mask and you select the value from the input the range would go to the
                    // end of the string when you enter a char. with this it will overwrite the first char wich is a better behavior.
                    // opera fix, cant have range value bigger than value length, i think it loops thought the input value...
                    if ((o.rsEp == 0 && o.value.length == 0) || o.rsEp < o.value.length)
                        this.__setRange(o._this, o.rsEp, o.rsEp + 1);
                }
                else
                    this.__setRange(o._this, o.range.start, o.range.end);

                return true;
            },

            _keyPressReverse: function(e, o) {
                //fix for ie
                //this bug was pointed by Pedro Martins
                //it fixes a strange behavior that ie was having after a char was inputted in a text input that
                //had its content selected by any range 
                if ($.browser.msie && ((o.rangeStart == 0 && o.range.end == 0) || o.rangeStart != o.range.end))
                    this.__setRange(o._this, o.value.length);
                return false;
            },

            __autoTab: function(o) {
                if (o.data.autoTab
					&& (
						(
							o.$this.val().length >= o.data.maskArray.length
							&& !o.repeat
						) || (
							o.data.maxLength != -1
							&& o.valueArray.length >= o.data.maxLength
							&& o.repeat
						)
					)
				) {
                    var nextEl = this.__getNextInput(o._this, o.data.autoTab);
                    if (nextEl) {
                        o.$this.trigger('blur');
                        nextEl.focus().select();
                    }
                }
            },

            // changes the signal at the data obj from the input			
            __changeSignal: function(eventType, o) {
                if (o.data.signal !== false) {
                    var inputChar = (eventType == 'paste') ? o.value.charAt(0) : String.fromCharCode(o.nKey);
                    if (this.signals && (typeof this.signals[inputChar] != 'undefined')) {
                        o.data.signal = this.signals[inputChar];
                    }
                }
            },

            // browsers like firefox2 and before and opera doenst have the onPaste event, but the paste feature can be done with the onInput event.
            __getPasteEvent: function() {
                return ($.browser.opera || ($.browser.mozilla && parseFloat($.browser.version.substr(0, 3)) < 1.9)) ? 'input' : 'paste';
            },

            __getKeyNumber: function(e) {
                return (e.charCode || e.keyCode || e.which);
            },

            // this function is totaly specific to be used with this plugin, youll never need it
            // it gets the array representing an unmasked string and masks it depending on the type of the mask
            __maskArray: function(valueArray, maskNonFixedCharsArray, maskArray, type, maxlength, defaultValue, fixedCharsReg, signal, extraPos) {
                if (type == 'reverse') valueArray.reverse();
                valueArray = this.__removeInvalidChars(valueArray, maskNonFixedCharsArray, type == 'repeat' || type == 'infinite');
                if (defaultValue) valueArray = this.__applyDefaultValue.call(valueArray, defaultValue);
                valueArray = this.__applyMask(valueArray, maskArray, extraPos, fixedCharsReg);
                switch (type) {
                    case 'reverse':
                        valueArray.reverse();
                        return (signal || '') + valueArray.join('').substring(valueArray.length - maskArray.length);
                    case 'infinite': case 'repeat':
                        var joinedValue = valueArray.join('');
                        return (maxlength != -1 && valueArray.length >= maxlength) ? joinedValue.substring(0, maxlength) : joinedValue;
                    default:
                        return valueArray.join('').substring(0, maskArray.length);
                }
                return '';
            },

            // applyes the default value to the result string
            __applyDefaultValue: function(defaultValue) {
                var defLen = defaultValue.length, thisLen = this.length, i;
                //removes the leading chars
                for (i = thisLen - 1; i >= 0; i--) {
                    if (this[i] == defaultValue.charAt(0)) this.pop();
                    else break;
                }
                // apply the default value
                for (i = 0; i < defLen; i++) if (!this[i])
                    this[i] = defaultValue.charAt(i);

                return this;
            },

            // Removes values that doesnt match the mask from the valueArray
            // Returns the array without the invalid chars.
            __removeInvalidChars: function(valueArray, maskNonFixedCharsArray, repeatType) {
                // removes invalid chars
                for (var i = 0, y = 0; i < valueArray.length; i++) {
                    if (maskNonFixedCharsArray[y] &&
						this.rules[maskNonFixedCharsArray[y]] &&
						!this.rules[maskNonFixedCharsArray[y]].test(valueArray[i])) {
                        valueArray.splice(i, 1);
                        if (!repeatType) y--;
                        i--;
                    }
                    if (!repeatType) y++;
                }
                return valueArray;
            },

            // Apply the current input mask to the valueArray and returns it. 
            __applyMask: function(valueArray, maskArray, plus, fixedCharsReg) {
                if (typeof plus == 'undefined') plus = 0;
                // apply the current mask to the array of chars
                for (var i = 0; i < valueArray.length + plus; i++) {
                    if (maskArray[i] && fixedCharsReg.test(maskArray[i]))
                        valueArray.splice(i, 0, maskArray[i]);
                }
                return valueArray;
            },

            // searches for fixed chars begining from the range start position, till it finds a non fixed
            __extraPositionsTill: function(rangeStart, maskArray, fixedCharsReg) {
                var extraPos = 0;
                while (fixedCharsReg.test(maskArray[rangeStart])) {
                    rangeStart++;
                    extraPos++;
                }
                return extraPos;
            },

            __getNextInput: function(input, selector) {
                var formEls = input.form.elements,
					initialInputIndex = $.inArray(input, formEls) + 1,
					jInput = null,
					i;
                // look for next input on the form of the pased input
                for (i = initialInputIndex; i < formEls.length; i++) {
                    jInput = $(formEls[i]);
                    if (this.__isNextInput(jInput, selector))
                        return jInput;
                }

                var forms = document.forms,
					initialFormIndex = $.inArray(input.form, forms) + 1,
					y, tmpFormEls = null;
                // look for the next forms for the next input
                for (y = initialFormIndex; y < forms.length; y++) {
                    tmpFormEls = forms[y].elements;
                    for (i = 0; i < tmpFormEls.length; i++) {
                        jInput = $(tmpFormEls[i]);
                        if (this.__isNextInput(jInput, selector))
                            return jInput;
                    }
                }
                return null;
            },

            __isNextInput: function(formEl, selector) {
                return formEl
					&& formEl.attr('type') != 'hidden'
					&& formEl.get(0).tagName.toLowerCase() != 'fieldset'
					&& (selector === true || (typeof selector == 'string' && formEl.is(selector)));
            },

            // http://www.bazon.net/mishoo/articles.epl?art_id=1292
            __setRange: function(input, start, end) {
                if (typeof end == 'undefined') end = start;
                if (input.setSelectionRange) {
                    input.setSelectionRange(start, end);
                }
                else {
                    // assumed IE
                    var range = input.createTextRange();
                    range.collapse();
                    range.moveStart('character', start);
                    range.moveEnd('character', end - start);
                    range.select();
                }
            },

            // adaptation from http://digitarald.de/project/autocompleter/
            __getRange: function(input) {
                if (!$.browser.msie) return { start: input.selectionStart, end: input.selectionEnd };
                var pos = { start: 0, end: 0 },
					range = document.selection.createRange();
                pos.start = 0 - range.duplicate().moveStart('character', -100000);
                pos.end = pos.start + range.text.length;
                return pos;
            },

            //deprecated
            unmaskedVal: function(el) {
                return $(el).val().replace($.mask.fixedCharsRegG, '');
            }

        }
    });

    $.fn.extend({
        setMask: function(options) {
            return $.mask.set(this, options);
        },
        unsetMask: function() {
            return $.mask.unset(this);
        },
        //deprecated
        unmaskedVal: function() {
            return $.mask.unmaskedVal(this[0]);
        }
    });
})(jQuery);



// faq incentivo interno
$(document).ready(function() {
    var divAtual = null;
    $('#divBox dd').hide();

    $('#divBox dt a').click(function(e) {

        e.preventDefault();
        var divResp = $(this).attr("href");

        // REMOVE TODAS CLASS DE NEGRIDO DO ELEMENTO DT
        $("#divBox dt").each(function() {
            $(this).removeClass("teste");
        });


        // SE A DIV ESTÁ OCULTA, ACRESCENTA A CLASS AO ELEMENTO DT
        if ($(divResp).css("display") == "none") {
            $(this).parent('dt').toggleClass('teste');
        }


        if (divAtual != divResp) {
            if (divAtual != null) {
                $(divAtual).slideUp();
            }
        }

        $(divResp).slideToggle();
        divAtual = divResp;

    });

});


/*Chamada do jQuery UI datepicker plugin no formato brasileiro. */
jQuery(function($) {
    $.datepicker.regional['pt-BR'] = {
        closeText: 'Fechar',
        prevText: '&#x3c;Anterior',
        nextText: 'Pr&oacute;ximo&#x3e;',
        currentText: 'Hoje',
        monthNames: ['Janeiro', 'Fevereiro', 'Mar&ccedil;o', 'Abril', 'Maio', 'Junho',
		'Julho', 'Agosto', 'Setembro', 'Outubro', 'Novembro', 'Dezembro'],
        monthNamesShort: ['Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun',
		'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez'],
        dayNames: ['Domingo', 'Segunda-feira', 'Ter&ccedil;a-feira', 'Quarta-feira', 'Quinta-feira', 'Sexta-feira', 'Sabado'],
        dayNamesShort: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab'],
        dayNamesMin: ['Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sab'],
        weekHeader: 'Sm',
        dateFormat: 'dd/mm/yy',
        firstDay: 0,
        isRTL: false,
        showMonthAfterYear: false,
        yearSuffix: ''
    };
    $.datepicker.setDefaults($.datepicker.regional['pt-BR']);
});

/*!
* jQuery UI 1.8.4
*
* Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
* Dual licensed under the MIT or GPL Version 2 licenses.
* http://jquery.org/license
*
* http://docs.jquery.com/UI
*/
(function(c, j) {
    function k(a) { return !c(a).parents().andSelf().filter(function() { return c.curCSS(this, "visibility") === "hidden" || c.expr.filters.hidden(this) }).length } c.ui = c.ui || {}; if (!c.ui.version) {
        c.extend(c.ui, { version: "1.8.4", plugin: { add: function(a, b, d) { a = c.ui[a].prototype; for (var e in d) { a.plugins[e] = a.plugins[e] || []; a.plugins[e].push([b, d[e]]) } }, call: function(a, b, d) { if ((b = a.plugins[b]) && a.element[0].parentNode) for (var e = 0; e < b.length; e++) a.options[b[e][0]] && b[e][1].apply(a.element, d) } }, contains: function(a,
b) { return document.compareDocumentPosition ? a.compareDocumentPosition(b) & 16 : a !== b && a.contains(b) }, hasScroll: function(a, b) { if (c(a).css("overflow") === "hidden") return false; b = b && b === "left" ? "scrollLeft" : "scrollTop"; var d = false; if (a[b] > 0) return true; a[b] = 1; d = a[b] > 0; a[b] = 0; return d }, isOverAxis: function(a, b, d) { return a > b && a < b + d }, isOver: function(a, b, d, e, h, i) { return c.ui.isOverAxis(a, d, h) && c.ui.isOverAxis(b, e, i) }, keyCode: { ALT: 18, BACKSPACE: 8, CAPS_LOCK: 20, COMMA: 188, COMMAND: 91, COMMAND_LEFT: 91, COMMAND_RIGHT: 93,
    CONTROL: 17, DELETE: 46, DOWN: 40, END: 35, ENTER: 13, ESCAPE: 27, HOME: 36, INSERT: 45, LEFT: 37, MENU: 93, NUMPAD_ADD: 107, NUMPAD_DECIMAL: 110, NUMPAD_DIVIDE: 111, NUMPAD_ENTER: 108, NUMPAD_MULTIPLY: 106, NUMPAD_SUBTRACT: 109, PAGE_DOWN: 34, PAGE_UP: 33, PERIOD: 190, RIGHT: 39, SHIFT: 16, SPACE: 32, TAB: 9, UP: 38, WINDOWS: 91}
        }); c.fn.extend({ _focus: c.fn.focus, focus: function(a, b) { return typeof a === "number" ? this.each(function() { var d = this; setTimeout(function() { c(d).focus(); b && b.call(d) }, a) }) : this._focus.apply(this, arguments) }, enableSelection: function() {
            return this.attr("unselectable",
"off").css("MozUserSelect", "")
        }, disableSelection: function() { return this.attr("unselectable", "on").css("MozUserSelect", "none") }, scrollParent: function() {
            var a; a = c.browser.msie && /(static|relative)/.test(this.css("position")) || /absolute/.test(this.css("position")) ? this.parents().filter(function() { return /(relative|absolute|fixed)/.test(c.curCSS(this, "position", 1)) && /(auto|scroll)/.test(c.curCSS(this, "overflow", 1) + c.curCSS(this, "overflow-y", 1) + c.curCSS(this, "overflow-x", 1)) }).eq(0) : this.parents().filter(function() {
                return /(auto|scroll)/.test(c.curCSS(this,
"overflow", 1) + c.curCSS(this, "overflow-y", 1) + c.curCSS(this, "overflow-x", 1))
            }).eq(0); return /fixed/.test(this.css("position")) || !a.length ? c(document) : a
        }, zIndex: function(a) { if (a !== j) return this.css("zIndex", a); if (this.length) { a = c(this[0]); for (var b; a.length && a[0] !== document; ) { b = a.css("position"); if (b === "absolute" || b === "relative" || b === "fixed") { b = parseInt(a.css("zIndex")); if (!isNaN(b) && b != 0) return b } a = a.parent() } } return 0 } 
        }); c.each(["Width", "Height"], function(a, b) {
            function d(f, g, l, m) {
                c.each(e, function() {
                    g -=
parseFloat(c.curCSS(f, "padding" + this, true)) || 0; if (l) g -= parseFloat(c.curCSS(f, "border" + this + "Width", true)) || 0; if (m) g -= parseFloat(c.curCSS(f, "margin" + this, true)) || 0
                }); return g
            } var e = b === "Width" ? ["Left", "Right"] : ["Top", "Bottom"], h = b.toLowerCase(), i = { innerWidth: c.fn.innerWidth, innerHeight: c.fn.innerHeight, outerWidth: c.fn.outerWidth, outerHeight: c.fn.outerHeight }; c.fn["inner" + b] = function(f) { if (f === j) return i["inner" + b].call(this); return this.each(function() { c.style(this, h, d(this, f) + "px") }) }; c.fn["outer" +
b] = function(f, g) { if (typeof f !== "number") return i["outer" + b].call(this, f); return this.each(function() { c.style(this, h, d(this, f, true, g) + "px") }) } 
        }); c.extend(c.expr[":"], { data: function(a, b, d) { return !!c.data(a, d[3]) }, focusable: function(a) {
            var b = a.nodeName.toLowerCase(), d = c.attr(a, "tabindex"); if ("area" === b) { b = a.parentNode; d = b.name; if (!a.href || !d || b.nodeName.toLowerCase() !== "map") return false; a = c("img[usemap=#" + d + "]")[0]; return !!a && k(a) } return (/input|select|textarea|button|object/.test(b) ? !a.disabled : "a" ==
b ? a.href || !isNaN(d) : !isNaN(d)) && k(a)
        }, tabbable: function(a) { var b = c.attr(a, "tabindex"); return (isNaN(b) || b >= 0) && c(a).is(":focusable") } 
        })
    } 
})(jQuery);
(function(b, j) {
    var k = b.fn.remove; b.fn.remove = function(a, c) { return this.each(function() { if (!c) if (!a || b.filter(a, [this]).length) b("*", this).add([this]).each(function() { b(this).triggerHandler("remove") }); return k.call(b(this), a, c) }) }; b.widget = function(a, c, d) {
        var e = a.split(".")[0], f; a = a.split(".")[1]; f = e + "-" + a; if (!d) { d = c; c = b.Widget } b.expr[":"][f] = function(h) { return !!b.data(h, a) }; b[e] = b[e] || {}; b[e][a] = function(h, g) { arguments.length && this._createWidget(h, g) }; c = new c; c.options = b.extend(true, {}, c.options);
        b[e][a].prototype = b.extend(true, c, { namespace: e, widgetName: a, widgetEventPrefix: b[e][a].prototype.widgetEventPrefix || a, widgetBaseClass: f }, d); b.widget.bridge(a, b[e][a])
    }; b.widget.bridge = function(a, c) {
        b.fn[a] = function(d) {
            var e = typeof d === "string", f = Array.prototype.slice.call(arguments, 1), h = this; d = !e && f.length ? b.extend.apply(null, [true, d].concat(f)) : d; if (e && d.substring(0, 1) === "_") return h; e ? this.each(function() { var g = b.data(this, a), i = g && b.isFunction(g[d]) ? g[d].apply(g, f) : g; if (i !== g && i !== j) { h = i; return false } }) :
this.each(function() { var g = b.data(this, a); if (g) { d && g.option(d); g._init() } else b.data(this, a, new c(d, this)) }); return h
        } 
    }; b.Widget = function(a, c) { arguments.length && this._createWidget(a, c) }; b.Widget.prototype = { widgetName: "widget", widgetEventPrefix: "", options: { disabled: false }, _createWidget: function(a, c) {
        b.data(c, this.widgetName, this); this.element = b(c); this.options = b.extend(true, {}, this.options, b.metadata && b.metadata.get(c)[this.widgetName], a); var d = this; this.element.bind("remove." + this.widgetName, function() { d.destroy() });
        this._create(); this._init()
    }, _create: function() { }, _init: function() { }, destroy: function() { this.element.unbind("." + this.widgetName).removeData(this.widgetName); this.widget().unbind("." + this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass + "-disabled ui-state-disabled") }, widget: function() { return this.element }, option: function(a, c) {
        var d = a, e = this; if (arguments.length === 0) return b.extend({}, e.options); if (typeof a === "string") { if (c === j) return this.options[a]; d = {}; d[a] = c } b.each(d, function(f,
h) { e._setOption(f, h) }); return e
    }, _setOption: function(a, c) { this.options[a] = c; if (a === "disabled") this.widget()[c ? "addClass" : "removeClass"](this.widgetBaseClass + "-disabled ui-state-disabled").attr("aria-disabled", c); return this }, enable: function() { return this._setOption("disabled", false) }, disable: function() { return this._setOption("disabled", true) }, _trigger: function(a, c, d) {
        var e = this.options[a]; c = b.Event(c); c.type = (a === this.widgetEventPrefix ? a : this.widgetEventPrefix + a).toLowerCase(); d = d || {}; if (c.originalEvent) {
            a =
b.event.props.length; for (var f; a; ) { f = b.event.props[--a]; c[f] = c.originalEvent[f] } 
        } this.element.trigger(c, d); return !(b.isFunction(e) && e.call(this.element[0], c, d) === false || c.isDefaultPrevented())
    } }
    })(jQuery);
    (function(c) {
        c.widget("ui.mouse", { options: { cancel: ":input,option", distance: 1, delay: 0 }, _mouseInit: function() { var a = this; this.element.bind("mousedown." + this.widgetName, function(b) { return a._mouseDown(b) }).bind("click." + this.widgetName, function(b) { if (a._preventClickEvent) { a._preventClickEvent = false; b.stopImmediatePropagation(); return false } }); this.started = false }, _mouseDestroy: function() { this.element.unbind("." + this.widgetName) }, _mouseDown: function(a) {
            a.originalEvent = a.originalEvent || {}; if (!a.originalEvent.mouseHandled) {
                this._mouseStarted &&
this._mouseUp(a); this._mouseDownEvent = a; var b = this, e = a.which == 1, f = typeof this.options.cancel == "string" ? c(a.target).parents().add(a.target).filter(this.options.cancel).length : false; if (!e || f || !this._mouseCapture(a)) return true; this.mouseDelayMet = !this.options.delay; if (!this.mouseDelayMet) this._mouseDelayTimer = setTimeout(function() { b.mouseDelayMet = true }, this.options.delay); if (this._mouseDistanceMet(a) && this._mouseDelayMet(a)) {
                    this._mouseStarted = this._mouseStart(a) !== false; if (!this._mouseStarted) {
                        a.preventDefault();
                        return true
                    } 
                } this._mouseMoveDelegate = function(d) { return b._mouseMove(d) }; this._mouseUpDelegate = function(d) { return b._mouseUp(d) }; c(document).bind("mousemove." + this.widgetName, this._mouseMoveDelegate).bind("mouseup." + this.widgetName, this._mouseUpDelegate); c.browser.safari || a.preventDefault(); return a.originalEvent.mouseHandled = true
            } 
        }, _mouseMove: function(a) {
            if (c.browser.msie && !a.button) return this._mouseUp(a); if (this._mouseStarted) { this._mouseDrag(a); return a.preventDefault() } if (this._mouseDistanceMet(a) &&
this._mouseDelayMet(a)) (this._mouseStarted = this._mouseStart(this._mouseDownEvent, a) !== false) ? this._mouseDrag(a) : this._mouseUp(a); return !this._mouseStarted
        }, _mouseUp: function(a) { c(document).unbind("mousemove." + this.widgetName, this._mouseMoveDelegate).unbind("mouseup." + this.widgetName, this._mouseUpDelegate); if (this._mouseStarted) { this._mouseStarted = false; this._preventClickEvent = a.target == this._mouseDownEvent.target; this._mouseStop(a) } return false }, _mouseDistanceMet: function(a) {
            return Math.max(Math.abs(this._mouseDownEvent.pageX -
a.pageX), Math.abs(this._mouseDownEvent.pageY - a.pageY)) >= this.options.distance
        }, _mouseDelayMet: function() { return this.mouseDelayMet }, _mouseStart: function() { }, _mouseDrag: function() { }, _mouseStop: function() { }, _mouseCapture: function() { return true } 
        })
    })(jQuery);
    (function(d) {
        d.widget("ui.draggable", d.ui.mouse, { widgetEventPrefix: "drag", options: { addClasses: true, appendTo: "parent", axis: false, connectToSortable: false, containment: false, cursor: "auto", cursorAt: false, grid: false, handle: false, helper: "original", iframeFix: false, opacity: false, refreshPositions: false, revert: false, revertDuration: 500, scope: "default", scroll: true, scrollSensitivity: 20, scrollSpeed: 20, snap: false, snapMode: "both", snapTolerance: 20, stack: false, zIndex: false }, _create: function() {
            if (this.options.helper ==
"original" && !/^(?:r|a|f)/.test(this.element.css("position"))) this.element[0].style.position = "relative"; this.options.addClasses && this.element.addClass("ui-draggable"); this.options.disabled && this.element.addClass("ui-draggable-disabled"); this._mouseInit()
        }, destroy: function() { if (this.element.data("draggable")) { this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"); this._mouseDestroy(); return this } }, _mouseCapture: function(a) {
            var b =
this.options; if (this.helper || b.disabled || d(a.target).is(".ui-resizable-handle")) return false; this.handle = this._getHandle(a); if (!this.handle) return false; return true
        }, _mouseStart: function(a) {
            var b = this.options; this.helper = this._createHelper(a); this._cacheHelperProportions(); if (d.ui.ddmanager) d.ui.ddmanager.current = this; this._cacheMargins(); this.cssPosition = this.helper.css("position"); this.scrollParent = this.helper.scrollParent(); this.offset = this.positionAbs = this.element.offset(); this.offset = { top: this.offset.top -
this.margins.top, left: this.offset.left - this.margins.left
            }; d.extend(this.offset, { click: { left: a.pageX - this.offset.left, top: a.pageY - this.offset.top }, parent: this._getParentOffset(), relative: this._getRelativeOffset() }); this.originalPosition = this.position = this._generatePosition(a); this.originalPageX = a.pageX; this.originalPageY = a.pageY; b.cursorAt && this._adjustOffsetFromHelper(b.cursorAt); b.containment && this._setContainment(); if (this._trigger("start", a) === false) { this._clear(); return false } this._cacheHelperProportions();
            d.ui.ddmanager && !b.dropBehaviour && d.ui.ddmanager.prepareOffsets(this, a); this.helper.addClass("ui-draggable-dragging"); this._mouseDrag(a, true); return true
        }, _mouseDrag: function(a, b) {
            this.position = this._generatePosition(a); this.positionAbs = this._convertPositionTo("absolute"); if (!b) { b = this._uiHash(); if (this._trigger("drag", a, b) === false) { this._mouseUp({}); return false } this.position = b.position } if (!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left + "px"; if (!this.options.axis ||
this.options.axis != "x") this.helper[0].style.top = this.position.top + "px"; d.ui.ddmanager && d.ui.ddmanager.drag(this, a); return false
        }, _mouseStop: function(a) {
            var b = false; if (d.ui.ddmanager && !this.options.dropBehaviour) b = d.ui.ddmanager.drop(this, a); if (this.dropped) { b = this.dropped; this.dropped = false } if (!this.element[0] || !this.element[0].parentNode) return false; if (this.options.revert == "invalid" && !b || this.options.revert == "valid" && b || this.options.revert === true || d.isFunction(this.options.revert) && this.options.revert.call(this.element,
b)) { var c = this; d(this.helper).animate(this.originalPosition, parseInt(this.options.revertDuration, 10), function() { c._trigger("stop", a) !== false && c._clear() }) } else this._trigger("stop", a) !== false && this._clear(); return false
        }, cancel: function() { this.helper.is(".ui-draggable-dragging") ? this._mouseUp({}) : this._clear(); return this }, _getHandle: function(a) {
            var b = !this.options.handle || !d(this.options.handle, this.element).length ? true : false; d(this.options.handle, this.element).find("*").andSelf().each(function() {
                if (this ==
a.target) b = true
            }); return b
        }, _createHelper: function(a) { var b = this.options; a = d.isFunction(b.helper) ? d(b.helper.apply(this.element[0], [a])) : b.helper == "clone" ? this.element.clone() : this.element; a.parents("body").length || a.appendTo(b.appendTo == "parent" ? this.element[0].parentNode : b.appendTo); a[0] != this.element[0] && !/(fixed|absolute)/.test(a.css("position")) && a.css("position", "absolute"); return a }, _adjustOffsetFromHelper: function(a) {
            if (typeof a == "string") a = a.split(" "); if (d.isArray(a)) a = { left: +a[0], top: +a[1] ||
0
            }; if ("left" in a) this.offset.click.left = a.left + this.margins.left; if ("right" in a) this.offset.click.left = this.helperProportions.width - a.right + this.margins.left; if ("top" in a) this.offset.click.top = a.top + this.margins.top; if ("bottom" in a) this.offset.click.top = this.helperProportions.height - a.bottom + this.margins.top
        }, _getParentOffset: function() {
            this.offsetParent = this.helper.offsetParent(); var a = this.offsetParent.offset(); if (this.cssPosition == "absolute" && this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0],
this.offsetParent[0])) { a.left += this.scrollParent.scrollLeft(); a.top += this.scrollParent.scrollTop() } if (this.offsetParent[0] == document.body || this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == "html" && d.browser.msie) a = { top: 0, left: 0 }; return { top: a.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), left: a.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)}
        }, _getRelativeOffset: function() {
            if (this.cssPosition == "relative") {
                var a = this.element.position(); return { top: a.top -
(parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(), left: a.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()}
                } else return { top: 0, left: 0}
            }, _cacheMargins: function() { this.margins = { left: parseInt(this.element.css("marginLeft"), 10) || 0, top: parseInt(this.element.css("marginTop"), 10) || 0} }, _cacheHelperProportions: function() { this.helperProportions = { width: this.helper.outerWidth(), height: this.helper.outerHeight()} }, _setContainment: function() {
                var a = this.options; if (a.containment ==
"parent") a.containment = this.helper[0].parentNode; if (a.containment == "document" || a.containment == "window") this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, d(a.containment == "document" ? document : window).width() - this.helperProportions.width - this.margins.left, (d(a.containment == "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height - this.margins.top]; if (!/^(document|window|parent)$/.test(a.containment) &&
a.containment.constructor != Array) {
                    var b = d(a.containment)[0]; if (b) {
                        a = d(a.containment).offset(); var c = d(b).css("overflow") != "hidden"; this.containment = [a.left + (parseInt(d(b).css("borderLeftWidth"), 10) || 0) + (parseInt(d(b).css("paddingLeft"), 10) || 0) - this.margins.left, a.top + (parseInt(d(b).css("borderTopWidth"), 10) || 0) + (parseInt(d(b).css("paddingTop"), 10) || 0) - this.margins.top, a.left + (c ? Math.max(b.scrollWidth, b.offsetWidth) : b.offsetWidth) - (parseInt(d(b).css("borderLeftWidth"), 10) || 0) - (parseInt(d(b).css("paddingRight"),
10) || 0) - this.helperProportions.width - this.margins.left, a.top + (c ? Math.max(b.scrollHeight, b.offsetHeight) : b.offsetHeight) - (parseInt(d(b).css("borderTopWidth"), 10) || 0) - (parseInt(d(b).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top]
                    } 
                } else if (a.containment.constructor == Array) this.containment = a.containment
            }, _convertPositionTo: function(a, b) {
                if (!b) b = this.position; a = a == "absolute" ? 1 : -1; var c = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0],
this.offsetParent[0])) ? this.offsetParent : this.scrollParent, f = /(html|body)/i.test(c[0].tagName); return { top: b.top + this.offset.relative.top * a + this.offset.parent.top * a - (d.browser.safari && d.browser.version < 526 && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : f ? 0 : c.scrollTop()) * a), left: b.left + this.offset.relative.left * a + this.offset.parent.left * a - (d.browser.safari && d.browser.version < 526 && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() :
f ? 0 : c.scrollLeft()) * a)}
            }, _generatePosition: function(a) {
                var b = this.options, c = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, f = /(html|body)/i.test(c[0].tagName), e = a.pageX, g = a.pageY; if (this.originalPosition) {
                    if (this.containment) {
                        if (a.pageX - this.offset.click.left < this.containment[0]) e = this.containment[0] + this.offset.click.left; if (a.pageY - this.offset.click.top < this.containment[1]) g = this.containment[1] +
this.offset.click.top; if (a.pageX - this.offset.click.left > this.containment[2]) e = this.containment[2] + this.offset.click.left; if (a.pageY - this.offset.click.top > this.containment[3]) g = this.containment[3] + this.offset.click.top
                    } if (b.grid) {
                        g = this.originalPageY + Math.round((g - this.originalPageY) / b.grid[1]) * b.grid[1]; g = this.containment ? !(g - this.offset.click.top < this.containment[1] || g - this.offset.click.top > this.containment[3]) ? g : !(g - this.offset.click.top < this.containment[1]) ? g - b.grid[1] : g + b.grid[1] : g; e = this.originalPageX +
Math.round((e - this.originalPageX) / b.grid[0]) * b.grid[0]; e = this.containment ? !(e - this.offset.click.left < this.containment[0] || e - this.offset.click.left > this.containment[2]) ? e : !(e - this.offset.click.left < this.containment[0]) ? e - b.grid[0] : e + b.grid[0] : e
                    } 
                } return { top: g - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (d.browser.safari && d.browser.version < 526 && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : f ? 0 : c.scrollTop()), left: e - this.offset.click.left -
this.offset.relative.left - this.offset.parent.left + (d.browser.safari && d.browser.version < 526 && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : f ? 0 : c.scrollLeft())}
                }, _clear: function() { this.helper.removeClass("ui-draggable-dragging"); this.helper[0] != this.element[0] && !this.cancelHelperRemoval && this.helper.remove(); this.helper = null; this.cancelHelperRemoval = false }, _trigger: function(a, b, c) {
                    c = c || this._uiHash(); d.ui.plugin.call(this, a, [b, c]); if (a == "drag") this.positionAbs =
this._convertPositionTo("absolute"); return d.Widget.prototype._trigger.call(this, a, b, c)
                }, plugins: {}, _uiHash: function() { return { helper: this.helper, position: this.position, originalPosition: this.originalPosition, offset: this.positionAbs} } 
            }); d.extend(d.ui.draggable, { version: "1.8.4" }); d.ui.plugin.add("draggable", "connectToSortable", { start: function(a, b) {
                var c = d(this).data("draggable"), f = c.options, e = d.extend({}, b, { item: c.element }); c.sortables = []; d(f.connectToSortable).each(function() {
                    var g = d.data(this, "sortable");
                    if (g && !g.options.disabled) { c.sortables.push({ instance: g, shouldRevert: g.options.revert }); g._refreshItems(); g._trigger("activate", a, e) } 
                })
            }, stop: function(a, b) {
                var c = d(this).data("draggable"), f = d.extend({}, b, { item: c.element }); d.each(c.sortables, function() {
                    if (this.instance.isOver) {
                        this.instance.isOver = 0; c.cancelHelperRemoval = true; this.instance.cancelHelperRemoval = false; if (this.shouldRevert) this.instance.options.revert = true; this.instance._mouseStop(a); this.instance.options.helper = this.instance.options._helper;
                        c.options.helper == "original" && this.instance.currentItem.css({ top: "auto", left: "auto" })
                    } else { this.instance.cancelHelperRemoval = false; this.instance._trigger("deactivate", a, f) } 
                })
            }, drag: function(a, b) {
                var c = d(this).data("draggable"), f = this; d.each(c.sortables, function() {
                    this.instance.positionAbs = c.positionAbs; this.instance.helperProportions = c.helperProportions; this.instance.offset.click = c.offset.click; if (this.instance._intersectsWith(this.instance.containerCache)) {
                        if (!this.instance.isOver) {
                            this.instance.isOver =
1; this.instance.currentItem = d(f).clone().appendTo(this.instance.element).data("sortable-item", true); this.instance.options._helper = this.instance.options.helper; this.instance.options.helper = function() { return b.helper[0] }; a.target = this.instance.currentItem[0]; this.instance._mouseCapture(a, true); this.instance._mouseStart(a, true, true); this.instance.offset.click.top = c.offset.click.top; this.instance.offset.click.left = c.offset.click.left; this.instance.offset.parent.left -= c.offset.parent.left - this.instance.offset.parent.left;
                            this.instance.offset.parent.top -= c.offset.parent.top - this.instance.offset.parent.top; c._trigger("toSortable", a); c.dropped = this.instance.element; c.currentItem = c.element; this.instance.fromOutside = c
                        } this.instance.currentItem && this.instance._mouseDrag(a)
                    } else if (this.instance.isOver) {
                        this.instance.isOver = 0; this.instance.cancelHelperRemoval = true; this.instance.options.revert = false; this.instance._trigger("out", a, this.instance._uiHash(this.instance)); this.instance._mouseStop(a, true); this.instance.options.helper =
this.instance.options._helper; this.instance.currentItem.remove(); this.instance.placeholder && this.instance.placeholder.remove(); c._trigger("fromSortable", a); c.dropped = false
                    } 
                })
            } 
            }); d.ui.plugin.add("draggable", "cursor", { start: function() { var a = d("body"), b = d(this).data("draggable").options; if (a.css("cursor")) b._cursor = a.css("cursor"); a.css("cursor", b.cursor) }, stop: function() { var a = d(this).data("draggable").options; a._cursor && d("body").css("cursor", a._cursor) } }); d.ui.plugin.add("draggable", "iframeFix", { start: function() {
                var a =
d(this).data("draggable").options; d(a.iframeFix === true ? "iframe" : a.iframeFix).each(function() { d('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({ width: this.offsetWidth + "px", height: this.offsetHeight + "px", position: "absolute", opacity: "0.001", zIndex: 1E3 }).css(d(this).offset()).appendTo("body") })
            }, stop: function() { d("div.ui-draggable-iframeFix").each(function() { this.parentNode.removeChild(this) }) } 
            }); d.ui.plugin.add("draggable", "opacity", { start: function(a, b) {
                a = d(b.helper); b = d(this).data("draggable").options;
                if (a.css("opacity")) b._opacity = a.css("opacity"); a.css("opacity", b.opacity)
            }, stop: function(a, b) { a = d(this).data("draggable").options; a._opacity && d(b.helper).css("opacity", a._opacity) } 
            }); d.ui.plugin.add("draggable", "scroll", { start: function() { var a = d(this).data("draggable"); if (a.scrollParent[0] != document && a.scrollParent[0].tagName != "HTML") a.overflowOffset = a.scrollParent.offset() }, drag: function(a) {
                var b = d(this).data("draggable"), c = b.options, f = false; if (b.scrollParent[0] != document && b.scrollParent[0].tagName !=
"HTML") {
                    if (!c.axis || c.axis != "x") if (b.overflowOffset.top + b.scrollParent[0].offsetHeight - a.pageY < c.scrollSensitivity) b.scrollParent[0].scrollTop = f = b.scrollParent[0].scrollTop + c.scrollSpeed; else if (a.pageY - b.overflowOffset.top < c.scrollSensitivity) b.scrollParent[0].scrollTop = f = b.scrollParent[0].scrollTop - c.scrollSpeed; if (!c.axis || c.axis != "y") if (b.overflowOffset.left + b.scrollParent[0].offsetWidth - a.pageX < c.scrollSensitivity) b.scrollParent[0].scrollLeft = f = b.scrollParent[0].scrollLeft + c.scrollSpeed; else if (a.pageX -
b.overflowOffset.left < c.scrollSensitivity) b.scrollParent[0].scrollLeft = f = b.scrollParent[0].scrollLeft - c.scrollSpeed
                } else {
                    if (!c.axis || c.axis != "x") if (a.pageY - d(document).scrollTop() < c.scrollSensitivity) f = d(document).scrollTop(d(document).scrollTop() - c.scrollSpeed); else if (d(window).height() - (a.pageY - d(document).scrollTop()) < c.scrollSensitivity) f = d(document).scrollTop(d(document).scrollTop() + c.scrollSpeed); if (!c.axis || c.axis != "y") if (a.pageX - d(document).scrollLeft() < c.scrollSensitivity) f = d(document).scrollLeft(d(document).scrollLeft() -
c.scrollSpeed); else if (d(window).width() - (a.pageX - d(document).scrollLeft()) < c.scrollSensitivity) f = d(document).scrollLeft(d(document).scrollLeft() + c.scrollSpeed)
                } f !== false && d.ui.ddmanager && !c.dropBehaviour && d.ui.ddmanager.prepareOffsets(b, a)
            } 
            }); d.ui.plugin.add("draggable", "snap", { start: function() {
                var a = d(this).data("draggable"), b = a.options; a.snapElements = []; d(b.snap.constructor != String ? b.snap.items || ":data(draggable)" : b.snap).each(function() {
                    var c = d(this), f = c.offset(); this != a.element[0] && a.snapElements.push({ item: this,
                        width: c.outerWidth(), height: c.outerHeight(), top: f.top, left: f.left
                    })
                })
            }, drag: function(a, b) {
                for (var c = d(this).data("draggable"), f = c.options, e = f.snapTolerance, g = b.offset.left, n = g + c.helperProportions.width, m = b.offset.top, o = m + c.helperProportions.height, h = c.snapElements.length - 1; h >= 0; h--) {
                    var i = c.snapElements[h].left, k = i + c.snapElements[h].width, j = c.snapElements[h].top, l = j + c.snapElements[h].height; if (i - e < g && g < k + e && j - e < m && m < l + e || i - e < g && g < k + e && j - e < o && o < l + e || i - e < n && n < k + e && j - e < m && m < l + e || i - e < n && n < k + e && j - e < o &&
o < l + e) {
                        if (f.snapMode != "inner") { var p = Math.abs(j - o) <= e, q = Math.abs(l - m) <= e, r = Math.abs(i - n) <= e, s = Math.abs(k - g) <= e; if (p) b.position.top = c._convertPositionTo("relative", { top: j - c.helperProportions.height, left: 0 }).top - c.margins.top; if (q) b.position.top = c._convertPositionTo("relative", { top: l, left: 0 }).top - c.margins.top; if (r) b.position.left = c._convertPositionTo("relative", { top: 0, left: i - c.helperProportions.width }).left - c.margins.left; if (s) b.position.left = c._convertPositionTo("relative", { top: 0, left: k }).left - c.margins.left } var t =
p || q || r || s; if (f.snapMode != "outer") { p = Math.abs(j - m) <= e; q = Math.abs(l - o) <= e; r = Math.abs(i - g) <= e; s = Math.abs(k - n) <= e; if (p) b.position.top = c._convertPositionTo("relative", { top: j, left: 0 }).top - c.margins.top; if (q) b.position.top = c._convertPositionTo("relative", { top: l - c.helperProportions.height, left: 0 }).top - c.margins.top; if (r) b.position.left = c._convertPositionTo("relative", { top: 0, left: i }).left - c.margins.left; if (s) b.position.left = c._convertPositionTo("relative", { top: 0, left: k - c.helperProportions.width }).left - c.margins.left } if (!c.snapElements[h].snapping &&
(p || q || r || s || t)) c.options.snap.snap && c.options.snap.snap.call(c.element, a, d.extend(c._uiHash(), { snapItem: c.snapElements[h].item })); c.snapElements[h].snapping = p || q || r || s || t
                    } else { c.snapElements[h].snapping && c.options.snap.release && c.options.snap.release.call(c.element, a, d.extend(c._uiHash(), { snapItem: c.snapElements[h].item })); c.snapElements[h].snapping = false } 
                } 
            } 
            }); d.ui.plugin.add("draggable", "stack", { start: function() {
                var a = d(this).data("draggable").options; a = d.makeArray(d(a.stack)).sort(function(c, f) {
                    return (parseInt(d(c).css("zIndex"),
10) || 0) - (parseInt(d(f).css("zIndex"), 10) || 0)
                }); if (a.length) { var b = parseInt(a[0].style.zIndex) || 0; d(a).each(function(c) { this.style.zIndex = b + c }); this[0].style.zIndex = b + a.length } 
            } 
            }); d.ui.plugin.add("draggable", "zIndex", { start: function(a, b) { a = d(b.helper); b = d(this).data("draggable").options; if (a.css("zIndex")) b._zIndex = a.css("zIndex"); a.css("zIndex", b.zIndex) }, stop: function(a, b) { a = d(this).data("draggable").options; a._zIndex && d(b.helper).css("zIndex", a._zIndex) } })
        })(jQuery);
        (function(d) {
            d.widget("ui.droppable", { widgetEventPrefix: "drop", options: { accept: "*", activeClass: false, addClasses: true, greedy: false, hoverClass: false, scope: "default", tolerance: "intersect" }, _create: function() {
                var a = this.options, b = a.accept; this.isover = 0; this.isout = 1; this.accept = d.isFunction(b) ? b : function(c) { return c.is(b) }; this.proportions = { width: this.element[0].offsetWidth, height: this.element[0].offsetHeight }; d.ui.ddmanager.droppables[a.scope] = d.ui.ddmanager.droppables[a.scope] || []; d.ui.ddmanager.droppables[a.scope].push(this);
                a.addClasses && this.element.addClass("ui-droppable")
            }, destroy: function() { for (var a = d.ui.ddmanager.droppables[this.options.scope], b = 0; b < a.length; b++) a[b] == this && a.splice(b, 1); this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable"); return this }, _setOption: function(a, b) { if (a == "accept") this.accept = d.isFunction(b) ? b : function(c) { return c.is(b) }; d.Widget.prototype._setOption.apply(this, arguments) }, _activate: function(a) {
                var b = d.ui.ddmanager.current; this.options.activeClass &&
this.element.addClass(this.options.activeClass); b && this._trigger("activate", a, this.ui(b))
            }, _deactivate: function(a) { var b = d.ui.ddmanager.current; this.options.activeClass && this.element.removeClass(this.options.activeClass); b && this._trigger("deactivate", a, this.ui(b)) }, _over: function(a) {
                var b = d.ui.ddmanager.current; if (!(!b || (b.currentItem || b.element)[0] == this.element[0])) if (this.accept.call(this.element[0], b.currentItem || b.element)) {
                    this.options.hoverClass && this.element.addClass(this.options.hoverClass);
                    this._trigger("over", a, this.ui(b))
                } 
            }, _out: function(a) { var b = d.ui.ddmanager.current; if (!(!b || (b.currentItem || b.element)[0] == this.element[0])) if (this.accept.call(this.element[0], b.currentItem || b.element)) { this.options.hoverClass && this.element.removeClass(this.options.hoverClass); this._trigger("out", a, this.ui(b)) } }, _drop: function(a, b) {
                var c = b || d.ui.ddmanager.current; if (!c || (c.currentItem || c.element)[0] == this.element[0]) return false; var e = false; this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function() {
                    var g =
d.data(this, "droppable"); if (g.options.greedy && !g.options.disabled && g.options.scope == c.options.scope && g.accept.call(g.element[0], c.currentItem || c.element) && d.ui.intersect(c, d.extend(g, { offset: g.element.offset() }), g.options.tolerance)) { e = true; return false } 
                }); if (e) return false; if (this.accept.call(this.element[0], c.currentItem || c.element)) {
                    this.options.activeClass && this.element.removeClass(this.options.activeClass); this.options.hoverClass && this.element.removeClass(this.options.hoverClass); this._trigger("drop",
a, this.ui(c)); return this.element
                } return false
            }, ui: function(a) { return { draggable: a.currentItem || a.element, helper: a.helper, position: a.position, offset: a.positionAbs} } 
            }); d.extend(d.ui.droppable, { version: "1.8.4" }); d.ui.intersect = function(a, b, c) {
                if (!b.offset) return false; var e = (a.positionAbs || a.position.absolute).left, g = e + a.helperProportions.width, f = (a.positionAbs || a.position.absolute).top, h = f + a.helperProportions.height, i = b.offset.left, k = i + b.proportions.width, j = b.offset.top, l = j + b.proportions.height;
                switch (c) {
                    case "fit": return i <= e && g <= k && j <= f && h <= l; case "intersect": return i < e + a.helperProportions.width / 2 && g - a.helperProportions.width / 2 < k && j < f + a.helperProportions.height / 2 && h - a.helperProportions.height / 2 < l; case "pointer": return d.ui.isOver((a.positionAbs || a.position.absolute).top + (a.clickOffset || a.offset.click).top, (a.positionAbs || a.position.absolute).left + (a.clickOffset || a.offset.click).left, j, i, b.proportions.height, b.proportions.width); case "touch": return (f >= j && f <= l || h >= j && h <= l || f < j && h > l) && (e >=
i && e <= k || g >= i && g <= k || e < i && g > k); default: return false
                } 
            }; d.ui.ddmanager = { current: null, droppables: { "default": [] }, prepareOffsets: function(a, b) {
                var c = d.ui.ddmanager.droppables[a.options.scope] || [], e = b ? b.type : null, g = (a.currentItem || a.element).find(":data(droppable)").andSelf(), f = 0; a: for (; f < c.length; f++) if (!(c[f].options.disabled || a && !c[f].accept.call(c[f].element[0], a.currentItem || a.element))) {
                    for (var h = 0; h < g.length; h++) if (g[h] == c[f].element[0]) { c[f].proportions.height = 0; continue a } c[f].visible = c[f].element.css("display") !=
"none"; if (c[f].visible) { c[f].offset = c[f].element.offset(); c[f].proportions = { width: c[f].element[0].offsetWidth, height: c[f].element[0].offsetHeight }; e == "mousedown" && c[f]._activate.call(c[f], b) } 
                } 
            }, drop: function(a, b) {
                var c = false; d.each(d.ui.ddmanager.droppables[a.options.scope] || [], function() {
                    if (this.options) {
                        if (!this.options.disabled && this.visible && d.ui.intersect(a, this, this.options.tolerance)) c = c || this._drop.call(this, b); if (!this.options.disabled && this.visible && this.accept.call(this.element[0], a.currentItem ||
a.element)) { this.isout = 1; this.isover = 0; this._deactivate.call(this, b) } 
                    } 
                }); return c
            }, drag: function(a, b) {
                a.options.refreshPositions && d.ui.ddmanager.prepareOffsets(a, b); d.each(d.ui.ddmanager.droppables[a.options.scope] || [], function() {
                    if (!(this.options.disabled || this.greedyChild || !this.visible)) {
                        var c = d.ui.intersect(a, this, this.options.tolerance); if (c = !c && this.isover == 1 ? "isout" : c && this.isover == 0 ? "isover" : null) {
                            var e; if (this.options.greedy) {
                                var g = this.element.parents(":data(droppable):eq(0)"); if (g.length) {
                                    e =
d.data(g[0], "droppable"); e.greedyChild = c == "isover" ? 1 : 0
                                } 
                            } if (e && c == "isover") { e.isover = 0; e.isout = 1; e._out.call(e, b) } this[c] = 1; this[c == "isout" ? "isover" : "isout"] = 0; this[c == "isover" ? "_over" : "_out"].call(this, b); if (e && c == "isout") { e.isout = 0; e.isover = 1; e._over.call(e, b) } 
                        } 
                    } 
                })
            } }
            })(jQuery);
            (function(e) {
                e.widget("ui.resizable", e.ui.mouse, { widgetEventPrefix: "resize", options: { alsoResize: false, animate: false, animateDuration: "slow", animateEasing: "swing", aspectRatio: false, autoHide: false, containment: false, ghost: false, grid: false, handles: "e,s,se", helper: false, maxHeight: null, maxWidth: null, minHeight: 10, minWidth: 10, zIndex: 1E3 }, _create: function() {
                    var b = this, a = this.options; this.element.addClass("ui-resizable"); e.extend(this, { _aspectRatio: !!a.aspectRatio, aspectRatio: a.aspectRatio, originalElement: this.element,
                        _proportionallyResizeElements: [], _helper: a.helper || a.ghost || a.animate ? a.helper || "ui-resizable-helper" : null
                    }); if (this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)) {
                        /relative/.test(this.element.css("position")) && e.browser.opera && this.element.css({ position: "relative", top: "auto", left: "auto" }); this.element.wrap(e('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({ position: this.element.css("position"), width: this.element.outerWidth(), height: this.element.outerHeight(),
                            top: this.element.css("top"), left: this.element.css("left")
                        })); this.element = this.element.parent().data("resizable", this.element.data("resizable")); this.elementIsWrapper = true; this.element.css({ marginLeft: this.originalElement.css("marginLeft"), marginTop: this.originalElement.css("marginTop"), marginRight: this.originalElement.css("marginRight"), marginBottom: this.originalElement.css("marginBottom") }); this.originalElement.css({ marginLeft: 0, marginTop: 0, marginRight: 0, marginBottom: 0 }); this.originalResizeStyle =
this.originalElement.css("resize"); this.originalElement.css("resize", "none"); this._proportionallyResizeElements.push(this.originalElement.css({ position: "static", zoom: 1, display: "block" })); this.originalElement.css({ margin: this.originalElement.css("margin") }); this._proportionallyResize()
                    } this.handles = a.handles || (!e(".ui-resizable-handle", this.element).length ? "e,s,se" : { n: ".ui-resizable-n", e: ".ui-resizable-e", s: ".ui-resizable-s", w: ".ui-resizable-w", se: ".ui-resizable-se", sw: ".ui-resizable-sw", ne: ".ui-resizable-ne",
                        nw: ".ui-resizable-nw"
                    }); if (this.handles.constructor == String) { if (this.handles == "all") this.handles = "n,e,s,w,se,sw,ne,nw"; var c = this.handles.split(","); this.handles = {}; for (var d = 0; d < c.length; d++) { var f = e.trim(c[d]), g = e('<div class="ui-resizable-handle ' + ("ui-resizable-" + f) + '"></div>'); /sw|se|ne|nw/.test(f) && g.css({ zIndex: ++a.zIndex }); "se" == f && g.addClass("ui-icon ui-icon-gripsmall-diagonal-se"); this.handles[f] = ".ui-resizable-" + f; this.element.append(g) } } this._renderAxis = function(h) {
                        h = h || this.element; for (var i in this.handles) {
                            if (this.handles[i].constructor ==
String) this.handles[i] = e(this.handles[i], this.element).show(); if (this.elementIsWrapper && this.originalElement[0].nodeName.match(/textarea|input|select|button/i)) { var j = e(this.handles[i], this.element), k = 0; k = /sw|ne|nw|se|n|s/.test(i) ? j.outerHeight() : j.outerWidth(); j = ["padding", /ne|nw|n/.test(i) ? "Top" : /se|sw|s/.test(i) ? "Bottom" : /^e$/.test(i) ? "Right" : "Left"].join(""); h.css(j, k); this._proportionallyResize() } e(this.handles[i])
                        } 
                    }; this._renderAxis(this.element); this._handles = e(".ui-resizable-handle", this.element).disableSelection();
                    this._handles.mouseover(function() { if (!b.resizing) { if (this.className) var h = this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i); b.axis = h && h[1] ? h[1] : "se" } }); if (a.autoHide) { this._handles.hide(); e(this.element).addClass("ui-resizable-autohide").hover(function() { e(this).removeClass("ui-resizable-autohide"); b._handles.show() }, function() { if (!b.resizing) { e(this).addClass("ui-resizable-autohide"); b._handles.hide() } }) } this._mouseInit()
                }, destroy: function() {
                    this._mouseDestroy(); var b = function(c) { e(c).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove() };
                    if (this.elementIsWrapper) { b(this.element); var a = this.element; a.after(this.originalElement.css({ position: a.css("position"), width: a.outerWidth(), height: a.outerHeight(), top: a.css("top"), left: a.css("left") })).remove() } this.originalElement.css("resize", this.originalResizeStyle); b(this.originalElement); return this
                }, _mouseCapture: function(b) { var a = false; for (var c in this.handles) if (e(this.handles[c])[0] == b.target) a = true; return !this.options.disabled && a }, _mouseStart: function(b) {
                    var a = this.options, c = this.element.position(),
d = this.element; this.resizing = true; this.documentScroll = { top: e(document).scrollTop(), left: e(document).scrollLeft() }; if (d.is(".ui-draggable") || /absolute/.test(d.css("position"))) d.css({ position: "absolute", top: c.top, left: c.left }); e.browser.opera && /relative/.test(d.css("position")) && d.css({ position: "relative", top: "auto", left: "auto" }); this._renderProxy(); c = m(this.helper.css("left")); var f = m(this.helper.css("top")); if (a.containment) { c += e(a.containment).scrollLeft() || 0; f += e(a.containment).scrollTop() || 0 } this.offset =
this.helper.offset(); this.position = { left: c, top: f }; this.size = this._helper ? { width: d.outerWidth(), height: d.outerHeight()} : { width: d.width(), height: d.height() }; this.originalSize = this._helper ? { width: d.outerWidth(), height: d.outerHeight()} : { width: d.width(), height: d.height() }; this.originalPosition = { left: c, top: f }; this.sizeDiff = { width: d.outerWidth() - d.width(), height: d.outerHeight() - d.height() }; this.originalMousePosition = { left: b.pageX, top: b.pageY }; this.aspectRatio = typeof a.aspectRatio == "number" ? a.aspectRatio :
this.originalSize.width / this.originalSize.height || 1; a = e(".ui-resizable-" + this.axis).css("cursor"); e("body").css("cursor", a == "auto" ? this.axis + "-resize" : a); d.addClass("ui-resizable-resizing"); this._propagate("start", b); return true
                }, _mouseDrag: function(b) {
                    var a = this.helper, c = this.originalMousePosition, d = this._change[this.axis]; if (!d) return false; c = d.apply(this, [b, b.pageX - c.left || 0, b.pageY - c.top || 0]); if (this._aspectRatio || b.shiftKey) c = this._updateRatio(c, b); c = this._respectSize(c, b); this._propagate("resize",
b); a.css({ top: this.position.top + "px", left: this.position.left + "px", width: this.size.width + "px", height: this.size.height + "px" }); !this._helper && this._proportionallyResizeElements.length && this._proportionallyResize(); this._updateCache(c); this._trigger("resize", b, this.ui()); return false
                }, _mouseStop: function(b) {
                    this.resizing = false; var a = this.options, c = this; if (this._helper) {
                        var d = this._proportionallyResizeElements, f = d.length && /textarea/i.test(d[0].nodeName); d = f && e.ui.hasScroll(d[0], "left") ? 0 : c.sizeDiff.height;
                        f = { width: c.size.width - (f ? 0 : c.sizeDiff.width), height: c.size.height - d }; d = parseInt(c.element.css("left"), 10) + (c.position.left - c.originalPosition.left) || null; var g = parseInt(c.element.css("top"), 10) + (c.position.top - c.originalPosition.top) || null; a.animate || this.element.css(e.extend(f, { top: g, left: d })); c.helper.height(c.size.height); c.helper.width(c.size.width); this._helper && !a.animate && this._proportionallyResize()
                    } e("body").css("cursor", "auto"); this.element.removeClass("ui-resizable-resizing"); this._propagate("stop",
b); this._helper && this.helper.remove(); return false
                }, _updateCache: function(b) { this.offset = this.helper.offset(); if (l(b.left)) this.position.left = b.left; if (l(b.top)) this.position.top = b.top; if (l(b.height)) this.size.height = b.height; if (l(b.width)) this.size.width = b.width }, _updateRatio: function(b) {
                    var a = this.position, c = this.size, d = this.axis; if (b.height) b.width = c.height * this.aspectRatio; else if (b.width) b.height = c.width / this.aspectRatio; if (d == "sw") { b.left = a.left + (c.width - b.width); b.top = null } if (d == "nw") {
                        b.top =
a.top + (c.height - b.height); b.left = a.left + (c.width - b.width)
                    } return b
                }, _respectSize: function(b) {
                    var a = this.options, c = this.axis, d = l(b.width) && a.maxWidth && a.maxWidth < b.width, f = l(b.height) && a.maxHeight && a.maxHeight < b.height, g = l(b.width) && a.minWidth && a.minWidth > b.width, h = l(b.height) && a.minHeight && a.minHeight > b.height; if (g) b.width = a.minWidth; if (h) b.height = a.minHeight; if (d) b.width = a.maxWidth; if (f) b.height = a.maxHeight; var i = this.originalPosition.left + this.originalSize.width, j = this.position.top + this.size.height,
k = /sw|nw|w/.test(c); c = /nw|ne|n/.test(c); if (g && k) b.left = i - a.minWidth; if (d && k) b.left = i - a.maxWidth; if (h && c) b.top = j - a.minHeight; if (f && c) b.top = j - a.maxHeight; if ((a = !b.width && !b.height) && !b.left && b.top) b.top = null; else if (a && !b.top && b.left) b.left = null; return b
                }, _proportionallyResize: function() {
                    if (this._proportionallyResizeElements.length) for (var b = this.helper || this.element, a = 0; a < this._proportionallyResizeElements.length; a++) {
                        var c = this._proportionallyResizeElements[a]; if (!this.borderDif) {
                            var d = [c.css("borderTopWidth"),
c.css("borderRightWidth"), c.css("borderBottomWidth"), c.css("borderLeftWidth")], f = [c.css("paddingTop"), c.css("paddingRight"), c.css("paddingBottom"), c.css("paddingLeft")]; this.borderDif = e.map(d, function(g, h) { g = parseInt(g, 10) || 0; h = parseInt(f[h], 10) || 0; return g + h })
                        } e.browser.msie && (e(b).is(":hidden") || e(b).parents(":hidden").length) || c.css({ height: b.height() - this.borderDif[0] - this.borderDif[2] || 0, width: b.width() - this.borderDif[1] - this.borderDif[3] || 0 })
                    } 
                }, _renderProxy: function() {
                    var b = this.options; this.elementOffset =
this.element.offset(); if (this._helper) { this.helper = this.helper || e('<div style="overflow:hidden;"></div>'); var a = e.browser.msie && e.browser.version < 7, c = a ? 1 : 0; a = a ? 2 : -1; this.helper.addClass(this._helper).css({ width: this.element.outerWidth() + a, height: this.element.outerHeight() + a, position: "absolute", left: this.elementOffset.left - c + "px", top: this.elementOffset.top - c + "px", zIndex: ++b.zIndex }); this.helper.appendTo("body").disableSelection() } else this.helper = this.element
                }, _change: { e: function(b, a) {
                    return { width: this.originalSize.width +
a}
                    }, w: function(b, a) { return { left: this.originalPosition.left + a, width: this.originalSize.width - a} }, n: function(b, a, c) { return { top: this.originalPosition.top + c, height: this.originalSize.height - c} }, s: function(b, a, c) { return { height: this.originalSize.height + c} }, se: function(b, a, c) { return e.extend(this._change.s.apply(this, arguments), this._change.e.apply(this, [b, a, c])) }, sw: function(b, a, c) { return e.extend(this._change.s.apply(this, arguments), this._change.w.apply(this, [b, a, c])) }, ne: function(b, a, c) {
                        return e.extend(this._change.n.apply(this,
arguments), this._change.e.apply(this, [b, a, c]))
                    }, nw: function(b, a, c) { return e.extend(this._change.n.apply(this, arguments), this._change.w.apply(this, [b, a, c])) } 
                }, _propagate: function(b, a) { e.ui.plugin.call(this, b, [a, this.ui()]); b != "resize" && this._trigger(b, a, this.ui()) }, plugins: {}, ui: function() { return { originalElement: this.originalElement, element: this.element, helper: this.helper, position: this.position, size: this.size, originalSize: this.originalSize, originalPosition: this.originalPosition} } 
                }); e.extend(e.ui.resizable,
{ version: "1.8.4" }); e.ui.plugin.add("resizable", "alsoResize", { start: function() {
    var b = e(this).data("resizable").options, a = function(c) { e(c).each(function() { var d = e(this); d.data("resizable-alsoresize", { width: parseInt(d.width(), 10), height: parseInt(d.height(), 10), left: parseInt(d.css("left"), 10), top: parseInt(d.css("top"), 10), position: d.css("position") }) }) }; if (typeof b.alsoResize == "object" && !b.alsoResize.parentNode) if (b.alsoResize.length) { b.alsoResize = b.alsoResize[0]; a(b.alsoResize) } else e.each(b.alsoResize,
function(c) { a(c) }); else a(b.alsoResize)
}, resize: function(b, a) {
    var c = e(this).data("resizable"); b = c.options; var d = c.originalSize, f = c.originalPosition, g = { height: c.size.height - d.height || 0, width: c.size.width - d.width || 0, top: c.position.top - f.top || 0, left: c.position.left - f.left || 0 }, h = function(i, j) {
        e(i).each(function() {
            var k = e(this), q = e(this).data("resizable-alsoresize"), p = {}, r = j && j.length ? j : k.parents(a.originalElement[0]).length ? ["width", "height"] : ["width", "height", "top", "left"]; e.each(r, function(n, o) {
                if ((n =
(q[o] || 0) + (g[o] || 0)) && n >= 0) p[o] = n || null
            }); if (e.browser.opera && /relative/.test(k.css("position"))) { c._revertToRelativePosition = true; k.css({ position: "absolute", top: "auto", left: "auto" }) } k.css(p)
        })
    }; typeof b.alsoResize == "object" && !b.alsoResize.nodeType ? e.each(b.alsoResize, function(i, j) { h(i, j) }) : h(b.alsoResize)
}, stop: function() {
    var b = e(this).data("resizable"), a = b.options, c = function(d) { e(d).each(function() { var f = e(this); f.css({ position: f.data("resizable-alsoresize").position }) }) }; if (b._revertToRelativePosition) {
        b._revertToRelativePosition =
false; typeof a.alsoResize == "object" && !a.alsoResize.nodeType ? e.each(a.alsoResize, function(d) { c(d) }) : c(a.alsoResize)
    } e(this).removeData("resizable-alsoresize")
} 
}); e.ui.plugin.add("resizable", "animate", { stop: function(b) {
    var a = e(this).data("resizable"), c = a.options, d = a._proportionallyResizeElements, f = d.length && /textarea/i.test(d[0].nodeName), g = f && e.ui.hasScroll(d[0], "left") ? 0 : a.sizeDiff.height; f = { width: a.size.width - (f ? 0 : a.sizeDiff.width), height: a.size.height - g }; g = parseInt(a.element.css("left"), 10) + (a.position.left -
a.originalPosition.left) || null; var h = parseInt(a.element.css("top"), 10) + (a.position.top - a.originalPosition.top) || null; a.element.animate(e.extend(f, h && g ? { top: h, left: g} : {}), { duration: c.animateDuration, easing: c.animateEasing, step: function() {
    var i = { width: parseInt(a.element.css("width"), 10), height: parseInt(a.element.css("height"), 10), top: parseInt(a.element.css("top"), 10), left: parseInt(a.element.css("left"), 10) }; d && d.length && e(d[0]).css({ width: i.width, height: i.height }); a._updateCache(i); a._propagate("resize",
b)
} 
})
} 
}); e.ui.plugin.add("resizable", "containment", { start: function() {
    var b = e(this).data("resizable"), a = b.element, c = b.options.containment; if (a = c instanceof e ? c.get(0) : /parent/.test(c) ? a.parent().get(0) : c) {
        b.containerElement = e(a); if (/document/.test(c) || c == document) { b.containerOffset = { left: 0, top: 0 }; b.containerPosition = { left: 0, top: 0 }; b.parentData = { element: e(document), left: 0, top: 0, width: e(document).width(), height: e(document).height() || document.body.parentNode.scrollHeight} } else {
            var d = e(a), f = []; e(["Top",
"Right", "Left", "Bottom"]).each(function(i, j) { f[i] = m(d.css("padding" + j)) }); b.containerOffset = d.offset(); b.containerPosition = d.position(); b.containerSize = { height: d.innerHeight() - f[3], width: d.innerWidth() - f[1] }; c = b.containerOffset; var g = b.containerSize.height, h = b.containerSize.width; h = e.ui.hasScroll(a, "left") ? a.scrollWidth : h; g = e.ui.hasScroll(a) ? a.scrollHeight : g; b.parentData = { element: a, left: c.left, top: c.top, width: h, height: g}
        } 
    } 
}, resize: function(b) {
    var a = e(this).data("resizable"), c = a.options, d = a.containerOffset,
f = a.position; b = a._aspectRatio || b.shiftKey; var g = { top: 0, left: 0 }, h = a.containerElement; if (h[0] != document && /static/.test(h.css("position"))) g = d; if (f.left < (a._helper ? d.left : 0)) { a.size.width += a._helper ? a.position.left - d.left : a.position.left - g.left; if (b) a.size.height = a.size.width / c.aspectRatio; a.position.left = c.helper ? d.left : 0 } if (f.top < (a._helper ? d.top : 0)) { a.size.height += a._helper ? a.position.top - d.top : a.position.top; if (b) a.size.width = a.size.height * c.aspectRatio; a.position.top = a._helper ? d.top : 0 } a.offset.left =
a.parentData.left + a.position.left; a.offset.top = a.parentData.top + a.position.top; c = Math.abs((a._helper ? a.offset.left - g.left : a.offset.left - g.left) + a.sizeDiff.width); d = Math.abs((a._helper ? a.offset.top - g.top : a.offset.top - d.top) + a.sizeDiff.height); f = a.containerElement.get(0) == a.element.parent().get(0); g = /relative|absolute/.test(a.containerElement.css("position")); if (f && g) c -= a.parentData.left; if (c + a.size.width >= a.parentData.width) { a.size.width = a.parentData.width - c; if (b) a.size.height = a.size.width / a.aspectRatio } if (d +
a.size.height >= a.parentData.height) { a.size.height = a.parentData.height - d; if (b) a.size.width = a.size.height * a.aspectRatio } 
}, stop: function() {
    var b = e(this).data("resizable"), a = b.options, c = b.containerOffset, d = b.containerPosition, f = b.containerElement, g = e(b.helper), h = g.offset(), i = g.outerWidth() - b.sizeDiff.width; g = g.outerHeight() - b.sizeDiff.height; b._helper && !a.animate && /relative/.test(f.css("position")) && e(this).css({ left: h.left - d.left - c.left, width: i, height: g }); b._helper && !a.animate && /static/.test(f.css("position")) &&
e(this).css({ left: h.left - d.left - c.left, width: i, height: g })
} 
}); e.ui.plugin.add("resizable", "ghost", { start: function() { var b = e(this).data("resizable"), a = b.options, c = b.size; b.ghost = b.originalElement.clone(); b.ghost.css({ opacity: 0.25, display: "block", position: "relative", height: c.height, width: c.width, margin: 0, left: 0, top: 0 }).addClass("ui-resizable-ghost").addClass(typeof a.ghost == "string" ? a.ghost : ""); b.ghost.appendTo(b.helper) }, resize: function() {
    var b = e(this).data("resizable"); b.ghost && b.ghost.css({ position: "relative",
        height: b.size.height, width: b.size.width
    })
}, stop: function() { var b = e(this).data("resizable"); b.ghost && b.helper && b.helper.get(0).removeChild(b.ghost.get(0)) } 
}); e.ui.plugin.add("resizable", "grid", { resize: function() {
    var b = e(this).data("resizable"), a = b.options, c = b.size, d = b.originalSize, f = b.originalPosition, g = b.axis; a.grid = typeof a.grid == "number" ? [a.grid, a.grid] : a.grid; var h = Math.round((c.width - d.width) / (a.grid[0] || 1)) * (a.grid[0] || 1); a = Math.round((c.height - d.height) / (a.grid[1] || 1)) * (a.grid[1] || 1); if (/^(se|s|e)$/.test(g)) {
        b.size.width =
d.width + h; b.size.height = d.height + a
    } else if (/^(ne)$/.test(g)) { b.size.width = d.width + h; b.size.height = d.height + a; b.position.top = f.top - a } else { if (/^(sw)$/.test(g)) { b.size.width = d.width + h; b.size.height = d.height + a } else { b.size.width = d.width + h; b.size.height = d.height + a; b.position.top = f.top - a } b.position.left = f.left - h } 
} 
}); var m = function(b) { return parseInt(b, 10) || 0 }, l = function(b) { return !isNaN(parseInt(b, 10)) } 
            })(jQuery);
            (function(e) {
                e.widget("ui.selectable", e.ui.mouse, { options: { appendTo: "body", autoRefresh: true, distance: 0, filter: "*", tolerance: "touch" }, _create: function() {
                    var c = this; this.element.addClass("ui-selectable"); this.dragged = false; var f; this.refresh = function() {
                        f = e(c.options.filter, c.element[0]); f.each(function() {
                            var d = e(this), b = d.offset(); e.data(this, "selectable-item", { element: this, $element: d, left: b.left, top: b.top, right: b.left + d.outerWidth(), bottom: b.top + d.outerHeight(), startselected: false, selected: d.hasClass("ui-selected"),
                                selecting: d.hasClass("ui-selecting"), unselecting: d.hasClass("ui-unselecting")
                            })
                        })
                    }; this.refresh(); this.selectees = f.addClass("ui-selectee"); this._mouseInit(); this.helper = e("<div class='ui-selectable-helper'></div>")
                }, destroy: function() { this.selectees.removeClass("ui-selectee").removeData("selectable-item"); this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable"); this._mouseDestroy(); return this }, _mouseStart: function(c) {
                    var f = this; this.opos = [c.pageX,
c.pageY]; if (!this.options.disabled) {
                        var d = this.options; this.selectees = e(d.filter, this.element[0]); this._trigger("start", c); e(d.appendTo).append(this.helper); this.helper.css({ left: c.clientX, top: c.clientY, width: 0, height: 0 }); d.autoRefresh && this.refresh(); this.selectees.filter(".ui-selected").each(function() {
                            var b = e.data(this, "selectable-item"); b.startselected = true; if (!c.metaKey) {
                                b.$element.removeClass("ui-selected"); b.selected = false; b.$element.addClass("ui-unselecting"); b.unselecting = true; f._trigger("unselecting",
c, { unselecting: b.element })
                            } 
                        }); e(c.target).parents().andSelf().each(function() { var b = e.data(this, "selectable-item"); if (b) { var g = !c.metaKey || !b.$element.hasClass("ui-selected"); b.$element.removeClass(g ? "ui-unselecting" : "ui-selected").addClass(g ? "ui-selecting" : "ui-unselecting"); b.unselecting = !g; b.selecting = g; (b.selected = g) ? f._trigger("selecting", c, { selecting: b.element }) : f._trigger("unselecting", c, { unselecting: b.element }); return false } })
                    } 
                }, _mouseDrag: function(c) {
                    var f = this; this.dragged = true; if (!this.options.disabled) {
                        var d =
this.options, b = this.opos[0], g = this.opos[1], h = c.pageX, i = c.pageY; if (b > h) { var j = h; h = b; b = j } if (g > i) { j = i; i = g; g = j } this.helper.css({ left: b, top: g, width: h - b, height: i - g }); this.selectees.each(function() {
    var a = e.data(this, "selectable-item"); if (!(!a || a.element == f.element[0])) {
        var k = false; if (d.tolerance == "touch") k = !(a.left > h || a.right < b || a.top > i || a.bottom < g); else if (d.tolerance == "fit") k = a.left > b && a.right < h && a.top > g && a.bottom < i; if (k) {
            if (a.selected) { a.$element.removeClass("ui-selected"); a.selected = false } if (a.unselecting) {
                a.$element.removeClass("ui-unselecting");
                a.unselecting = false
            } if (!a.selecting) { a.$element.addClass("ui-selecting"); a.selecting = true; f._trigger("selecting", c, { selecting: a.element }) } 
        } else {
            if (a.selecting) if (c.metaKey && a.startselected) { a.$element.removeClass("ui-selecting"); a.selecting = false; a.$element.addClass("ui-selected"); a.selected = true } else { a.$element.removeClass("ui-selecting"); a.selecting = false; if (a.startselected) { a.$element.addClass("ui-unselecting"); a.unselecting = true } f._trigger("unselecting", c, { unselecting: a.element }) } if (a.selected) if (!c.metaKey &&
!a.startselected) { a.$element.removeClass("ui-selected"); a.selected = false; a.$element.addClass("ui-unselecting"); a.unselecting = true; f._trigger("unselecting", c, { unselecting: a.element }) } 
        } 
    } 
}); return false
                    } 
                }, _mouseStop: function(c) {
                    var f = this; this.dragged = false; e(".ui-unselecting", this.element[0]).each(function() { var d = e.data(this, "selectable-item"); d.$element.removeClass("ui-unselecting"); d.unselecting = false; d.startselected = false; f._trigger("unselected", c, { unselected: d.element }) }); e(".ui-selecting", this.element[0]).each(function() {
                        var d =
e.data(this, "selectable-item"); d.$element.removeClass("ui-selecting").addClass("ui-selected"); d.selecting = false; d.selected = true; d.startselected = true; f._trigger("selected", c, { selected: d.element })
                    }); this._trigger("stop", c); this.helper.remove(); return false
                } 
                }); e.extend(e.ui.selectable, { version: "1.8.4" })
            })(jQuery);
            (function(d) {
                d.widget("ui.sortable", d.ui.mouse, { widgetEventPrefix: "sort", options: { appendTo: "parent", axis: false, connectWith: false, containment: false, cursor: "auto", cursorAt: false, dropOnEmpty: true, forcePlaceholderSize: false, forceHelperSize: false, grid: false, handle: false, helper: "original", items: "> *", opacity: false, placeholder: false, revert: false, scroll: true, scrollSensitivity: 20, scrollSpeed: 20, scope: "default", tolerance: "intersect", zIndex: 1E3 }, _create: function() {
                    this.containerCache = {}; this.element.addClass("ui-sortable");
                    this.refresh(); this.floating = this.items.length ? /left|right/.test(this.items[0].item.css("float")) : false; this.offset = this.element.offset(); this._mouseInit()
                }, destroy: function() { this.element.removeClass("ui-sortable ui-sortable-disabled").removeData("sortable").unbind(".sortable"); this._mouseDestroy(); for (var a = this.items.length - 1; a >= 0; a--) this.items[a].item.removeData("sortable-item"); return this }, _setOption: function(a, b) {
                    if (a === "disabled") { this.options[a] = b; this.widget()[b ? "addClass" : "removeClass"]("ui-sortable-disabled") } else d.Widget.prototype._setOption.apply(this,
arguments)
                }, _mouseCapture: function(a, b) {
                    if (this.reverting) return false; if (this.options.disabled || this.options.type == "static") return false; this._refreshItems(a); var c = null, e = this; d(a.target).parents().each(function() { if (d.data(this, "sortable-item") == e) { c = d(this); return false } }); if (d.data(a.target, "sortable-item") == e) c = d(a.target); if (!c) return false; if (this.options.handle && !b) { var f = false; d(this.options.handle, c).find("*").andSelf().each(function() { if (this == a.target) f = true }); if (!f) return false } this.currentItem =
c; this._removeCurrentsFromItems(); return true
                }, _mouseStart: function(a, b, c) {
                    b = this.options; var e = this; this.currentContainer = this; this.refreshPositions(); this.helper = this._createHelper(a); this._cacheHelperProportions(); this._cacheMargins(); this.scrollParent = this.helper.scrollParent(); this.offset = this.currentItem.offset(); this.offset = { top: this.offset.top - this.margins.top, left: this.offset.left - this.margins.left }; this.helper.css("position", "absolute"); this.cssPosition = this.helper.css("position"); d.extend(this.offset,
{ click: { left: a.pageX - this.offset.left, top: a.pageY - this.offset.top }, parent: this._getParentOffset(), relative: this._getRelativeOffset() }); this.originalPosition = this._generatePosition(a); this.originalPageX = a.pageX; this.originalPageY = a.pageY; b.cursorAt && this._adjustOffsetFromHelper(b.cursorAt); this.domPosition = { prev: this.currentItem.prev()[0], parent: this.currentItem.parent()[0] }; this.helper[0] != this.currentItem[0] && this.currentItem.hide(); this._createPlaceholder(); b.containment && this._setContainment();
                    if (b.cursor) { if (d("body").css("cursor")) this._storedCursor = d("body").css("cursor"); d("body").css("cursor", b.cursor) } if (b.opacity) { if (this.helper.css("opacity")) this._storedOpacity = this.helper.css("opacity"); this.helper.css("opacity", b.opacity) } if (b.zIndex) { if (this.helper.css("zIndex")) this._storedZIndex = this.helper.css("zIndex"); this.helper.css("zIndex", b.zIndex) } if (this.scrollParent[0] != document && this.scrollParent[0].tagName != "HTML") this.overflowOffset = this.scrollParent.offset(); this._trigger("start",
a, this._uiHash()); this._preserveHelperProportions || this._cacheHelperProportions(); if (!c) for (c = this.containers.length - 1; c >= 0; c--) this.containers[c]._trigger("activate", a, e._uiHash(this)); if (d.ui.ddmanager) d.ui.ddmanager.current = this; d.ui.ddmanager && !b.dropBehaviour && d.ui.ddmanager.prepareOffsets(this, a); this.dragging = true; this.helper.addClass("ui-sortable-helper"); this._mouseDrag(a); return true
                }, _mouseDrag: function(a) {
                    this.position = this._generatePosition(a); this.positionAbs = this._convertPositionTo("absolute");
                    if (!this.lastPositionAbs) this.lastPositionAbs = this.positionAbs; if (this.options.scroll) {
                        var b = this.options, c = false; if (this.scrollParent[0] != document && this.scrollParent[0].tagName != "HTML") {
                            if (this.overflowOffset.top + this.scrollParent[0].offsetHeight - a.pageY < b.scrollSensitivity) this.scrollParent[0].scrollTop = c = this.scrollParent[0].scrollTop + b.scrollSpeed; else if (a.pageY - this.overflowOffset.top < b.scrollSensitivity) this.scrollParent[0].scrollTop = c = this.scrollParent[0].scrollTop - b.scrollSpeed; if (this.overflowOffset.left +
this.scrollParent[0].offsetWidth - a.pageX < b.scrollSensitivity) this.scrollParent[0].scrollLeft = c = this.scrollParent[0].scrollLeft + b.scrollSpeed; else if (a.pageX - this.overflowOffset.left < b.scrollSensitivity) this.scrollParent[0].scrollLeft = c = this.scrollParent[0].scrollLeft - b.scrollSpeed
                        } else {
                            if (a.pageY - d(document).scrollTop() < b.scrollSensitivity) c = d(document).scrollTop(d(document).scrollTop() - b.scrollSpeed); else if (d(window).height() - (a.pageY - d(document).scrollTop()) < b.scrollSensitivity) c = d(document).scrollTop(d(document).scrollTop() +
b.scrollSpeed); if (a.pageX - d(document).scrollLeft() < b.scrollSensitivity) c = d(document).scrollLeft(d(document).scrollLeft() - b.scrollSpeed); else if (d(window).width() - (a.pageX - d(document).scrollLeft()) < b.scrollSensitivity) c = d(document).scrollLeft(d(document).scrollLeft() + b.scrollSpeed)
                        } c !== false && d.ui.ddmanager && !b.dropBehaviour && d.ui.ddmanager.prepareOffsets(this, a)
                    } this.positionAbs = this._convertPositionTo("absolute"); if (!this.options.axis || this.options.axis != "y") this.helper[0].style.left = this.position.left +
"px"; if (!this.options.axis || this.options.axis != "x") this.helper[0].style.top = this.position.top + "px"; for (b = this.items.length - 1; b >= 0; b--) {
                        c = this.items[b]; var e = c.item[0], f = this._intersectsWithPointer(c); if (f) if (e != this.currentItem[0] && this.placeholder[f == 1 ? "next" : "prev"]()[0] != e && !d.ui.contains(this.placeholder[0], e) && (this.options.type == "semi-dynamic" ? !d.ui.contains(this.element[0], e) : true)) {
                            this.direction = f == 1 ? "down" : "up"; if (this.options.tolerance == "pointer" || this._intersectsWithSides(c)) this._rearrange(a,
c); else break; this._trigger("change", a, this._uiHash()); break
                        } 
                    } this._contactContainers(a); d.ui.ddmanager && d.ui.ddmanager.drag(this, a); this._trigger("sort", a, this._uiHash()); this.lastPositionAbs = this.positionAbs; return false
                }, _mouseStop: function(a, b) {
                    if (a) {
                        d.ui.ddmanager && !this.options.dropBehaviour && d.ui.ddmanager.drop(this, a); if (this.options.revert) {
                            var c = this; b = c.placeholder.offset(); c.reverting = true; d(this.helper).animate({ left: b.left - this.offset.parent.left - c.margins.left + (this.offsetParent[0] ==
document.body ? 0 : this.offsetParent[0].scrollLeft), top: b.top - this.offset.parent.top - c.margins.top + (this.offsetParent[0] == document.body ? 0 : this.offsetParent[0].scrollTop)
                            }, parseInt(this.options.revert, 10) || 500, function() { c._clear(a) })
                        } else this._clear(a, b); return false
                    } 
                }, cancel: function() {
                    var a = this; if (this.dragging) {
                        this._mouseUp(); this.options.helper == "original" ? this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper") : this.currentItem.show(); for (var b = this.containers.length - 1; b >= 0; b--) {
                            this.containers[b]._trigger("deactivate",
null, a._uiHash(this)); if (this.containers[b].containerCache.over) { this.containers[b]._trigger("out", null, a._uiHash(this)); this.containers[b].containerCache.over = 0 } 
                        } 
                    } this.placeholder[0].parentNode && this.placeholder[0].parentNode.removeChild(this.placeholder[0]); this.options.helper != "original" && this.helper && this.helper[0].parentNode && this.helper.remove(); d.extend(this, { helper: null, dragging: false, reverting: false, _noFinalSort: null }); this.domPosition.prev ? d(this.domPosition.prev).after(this.currentItem) :
d(this.domPosition.parent).prepend(this.currentItem); return this
                }, serialize: function(a) { var b = this._getItemsAsjQuery(a && a.connected), c = []; a = a || {}; d(b).each(function() { var e = (d(a.item || this).attr(a.attribute || "id") || "").match(a.expression || /(.+)[-=_](.+)/); if (e) c.push((a.key || e[1] + "[]") + "=" + (a.key && a.expression ? e[1] : e[2])) }); !c.length && a.key && c.push(a.key + "="); return c.join("&") }, toArray: function(a) {
                    var b = this._getItemsAsjQuery(a && a.connected), c = []; a = a || {}; b.each(function() {
                        c.push(d(a.item || this).attr(a.attribute ||
"id") || "")
                    }); return c
                }, _intersectsWith: function(a) {
                    var b = this.positionAbs.left, c = b + this.helperProportions.width, e = this.positionAbs.top, f = e + this.helperProportions.height, g = a.left, h = g + a.width, i = a.top, k = i + a.height, j = this.offset.click.top, l = this.offset.click.left; j = e + j > i && e + j < k && b + l > g && b + l < h; return this.options.tolerance == "pointer" || this.options.forcePointerForContainers || this.options.tolerance != "pointer" && this.helperProportions[this.floating ? "width" : "height"] > a[this.floating ? "width" : "height"] ? j : g < b +
this.helperProportions.width / 2 && c - this.helperProportions.width / 2 < h && i < e + this.helperProportions.height / 2 && f - this.helperProportions.height / 2 < k
                }, _intersectsWithPointer: function(a) {
                    var b = d.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, a.top, a.height); a = d.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, a.left, a.width); b = b && a; a = this._getDragVerticalDirection(); var c = this._getDragHorizontalDirection(); if (!b) return false; return this.floating ? c && c == "right" || a == "down" ? 2 : 1 : a && (a == "down" ?
2 : 1)
                }, _intersectsWithSides: function(a) { var b = d.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, a.top + a.height / 2, a.height); a = d.ui.isOverAxis(this.positionAbs.left + this.offset.click.left, a.left + a.width / 2, a.width); var c = this._getDragVerticalDirection(), e = this._getDragHorizontalDirection(); return this.floating && e ? e == "right" && a || e == "left" && !a : c && (c == "down" && b || c == "up" && !b) }, _getDragVerticalDirection: function() { var a = this.positionAbs.top - this.lastPositionAbs.top; return a != 0 && (a > 0 ? "down" : "up") },
                    _getDragHorizontalDirection: function() { var a = this.positionAbs.left - this.lastPositionAbs.left; return a != 0 && (a > 0 ? "right" : "left") }, refresh: function(a) { this._refreshItems(a); this.refreshPositions(); return this }, _connectWith: function() { var a = this.options; return a.connectWith.constructor == String ? [a.connectWith] : a.connectWith }, _getItemsAsjQuery: function(a) {
                        var b = [], c = [], e = this._connectWith(); if (e && a) for (a = e.length - 1; a >= 0; a--) for (var f = d(e[a]), g = f.length - 1; g >= 0; g--) {
                            var h = d.data(f[g], "sortable"); if (h && h !=
this && !h.options.disabled) c.push([d.isFunction(h.options.items) ? h.options.items.call(h.element) : d(h.options.items, h.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), h])
                        } c.push([d.isFunction(this.options.items) ? this.options.items.call(this.element, null, { options: this.options, item: this.currentItem }) : d(this.options.items, this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"), this]); for (a = c.length - 1; a >= 0; a--) c[a][0].each(function() { b.push(this) }); return d(b)
                    }, _removeCurrentsFromItems: function() {
                        for (var a =
this.currentItem.find(":data(sortable-item)"), b = 0; b < this.items.length; b++) for (var c = 0; c < a.length; c++) a[c] == this.items[b].item[0] && this.items.splice(b, 1)
                    }, _refreshItems: function(a) {
                        this.items = []; this.containers = [this]; var b = this.items, c = [[d.isFunction(this.options.items) ? this.options.items.call(this.element[0], a, { item: this.currentItem }) : d(this.options.items, this.element), this]], e = this._connectWith(); if (e) for (var f = e.length - 1; f >= 0; f--) for (var g = d(e[f]), h = g.length - 1; h >= 0; h--) {
                            var i = d.data(g[h], "sortable");
                            if (i && i != this && !i.options.disabled) { c.push([d.isFunction(i.options.items) ? i.options.items.call(i.element[0], a, { item: this.currentItem }) : d(i.options.items, i.element), i]); this.containers.push(i) } 
                        } for (f = c.length - 1; f >= 0; f--) { a = c[f][1]; e = c[f][0]; h = 0; for (g = e.length; h < g; h++) { i = d(e[h]); i.data("sortable-item", a); b.push({ item: i, instance: a, width: 0, height: 0, left: 0, top: 0 }) } } 
                    }, refreshPositions: function(a) {
                        if (this.offsetParent && this.helper) this.offset.parent = this._getParentOffset(); for (var b = this.items.length - 1; b >=
0; b--) { var c = this.items[b], e = this.options.toleranceElement ? d(this.options.toleranceElement, c.item) : c.item; if (!a) { c.width = e.outerWidth(); c.height = e.outerHeight() } e = e.offset(); c.left = e.left; c.top = e.top } if (this.options.custom && this.options.custom.refreshContainers) this.options.custom.refreshContainers.call(this); else for (b = this.containers.length - 1; b >= 0; b--) {
                            e = this.containers[b].element.offset(); this.containers[b].containerCache.left = e.left; this.containers[b].containerCache.top = e.top; this.containers[b].containerCache.width =
this.containers[b].element.outerWidth(); this.containers[b].containerCache.height = this.containers[b].element.outerHeight()
                        } return this
                    }, _createPlaceholder: function(a) {
                        var b = a || this, c = b.options; if (!c.placeholder || c.placeholder.constructor == String) {
                            var e = c.placeholder; c.placeholder = { element: function() { var f = d(document.createElement(b.currentItem[0].nodeName)).addClass(e || b.currentItem[0].className + " ui-sortable-placeholder").removeClass("ui-sortable-helper")[0]; if (!e) f.style.visibility = "hidden"; return f },
                                update: function(f, g) { if (!(e && !c.forcePlaceholderSize)) { g.height() || g.height(b.currentItem.innerHeight() - parseInt(b.currentItem.css("paddingTop") || 0, 10) - parseInt(b.currentItem.css("paddingBottom") || 0, 10)); g.width() || g.width(b.currentItem.innerWidth() - parseInt(b.currentItem.css("paddingLeft") || 0, 10) - parseInt(b.currentItem.css("paddingRight") || 0, 10)) } } }
                            } b.placeholder = d(c.placeholder.element.call(b.element, b.currentItem)); b.currentItem.after(b.placeholder); c.placeholder.update(b, b.placeholder)
                        }, _contactContainers: function(a) {
                            for (var b =
null, c = null, e = this.containers.length - 1; e >= 0; e--) if (!d.ui.contains(this.currentItem[0], this.containers[e].element[0])) if (this._intersectsWith(this.containers[e].containerCache)) { if (!(b && d.ui.contains(this.containers[e].element[0], b.element[0]))) { b = this.containers[e]; c = e } } else if (this.containers[e].containerCache.over) { this.containers[e]._trigger("out", a, this._uiHash(this)); this.containers[e].containerCache.over = 0 } if (b) if (this.containers.length === 1) {
                                this.containers[c]._trigger("over", a, this._uiHash(this));
                                this.containers[c].containerCache.over = 1
                            } else if (this.currentContainer != this.containers[c]) {
                                b = 1E4; e = null; for (var f = this.positionAbs[this.containers[c].floating ? "left" : "top"], g = this.items.length - 1; g >= 0; g--) if (d.ui.contains(this.containers[c].element[0], this.items[g].item[0])) { var h = this.items[g][this.containers[c].floating ? "left" : "top"]; if (Math.abs(h - f) < b) { b = Math.abs(h - f); e = this.items[g] } } if (e || this.options.dropOnEmpty) {
                                    this.currentContainer = this.containers[c]; e ? this._rearrange(a, e, null, true) : this._rearrange(a,
null, this.containers[c].element, true); this._trigger("change", a, this._uiHash()); this.containers[c]._trigger("change", a, this._uiHash(this)); this.options.placeholder.update(this.currentContainer, this.placeholder); this.containers[c]._trigger("over", a, this._uiHash(this)); this.containers[c].containerCache.over = 1
                                } 
                            } 
                        }, _createHelper: function(a) {
                            var b = this.options; a = d.isFunction(b.helper) ? d(b.helper.apply(this.element[0], [a, this.currentItem])) : b.helper == "clone" ? this.currentItem.clone() : this.currentItem; a.parents("body").length ||
d(b.appendTo != "parent" ? b.appendTo : this.currentItem[0].parentNode)[0].appendChild(a[0]); if (a[0] == this.currentItem[0]) this._storedCSS = { width: this.currentItem[0].style.width, height: this.currentItem[0].style.height, position: this.currentItem.css("position"), top: this.currentItem.css("top"), left: this.currentItem.css("left") }; if (a[0].style.width == "" || b.forceHelperSize) a.width(this.currentItem.width()); if (a[0].style.height == "" || b.forceHelperSize) a.height(this.currentItem.height()); return a
                        }, _adjustOffsetFromHelper: function(a) {
                            if (typeof a ==
"string") a = a.split(" "); if (d.isArray(a)) a = { left: +a[0], top: +a[1] || 0 }; if ("left" in a) this.offset.click.left = a.left + this.margins.left; if ("right" in a) this.offset.click.left = this.helperProportions.width - a.right + this.margins.left; if ("top" in a) this.offset.click.top = a.top + this.margins.top; if ("bottom" in a) this.offset.click.top = this.helperProportions.height - a.bottom + this.margins.top
                        }, _getParentOffset: function() {
                            this.offsetParent = this.helper.offsetParent(); var a = this.offsetParent.offset(); if (this.cssPosition ==
"absolute" && this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) { a.left += this.scrollParent.scrollLeft(); a.top += this.scrollParent.scrollTop() } if (this.offsetParent[0] == document.body || this.offsetParent[0].tagName && this.offsetParent[0].tagName.toLowerCase() == "html" && d.browser.msie) a = { top: 0, left: 0 }; return { top: a.top + (parseInt(this.offsetParent.css("borderTopWidth"), 10) || 0), left: a.left + (parseInt(this.offsetParent.css("borderLeftWidth"), 10) || 0)}
                        }, _getRelativeOffset: function() {
                            if (this.cssPosition ==
"relative") { var a = this.currentItem.position(); return { top: a.top - (parseInt(this.helper.css("top"), 10) || 0) + this.scrollParent.scrollTop(), left: a.left - (parseInt(this.helper.css("left"), 10) || 0) + this.scrollParent.scrollLeft()} } else return { top: 0, left: 0}
                        }, _cacheMargins: function() { this.margins = { left: parseInt(this.currentItem.css("marginLeft"), 10) || 0, top: parseInt(this.currentItem.css("marginTop"), 10) || 0} }, _cacheHelperProportions: function() { this.helperProportions = { width: this.helper.outerWidth(), height: this.helper.outerHeight()} },
                        _setContainment: function() {
                            var a = this.options; if (a.containment == "parent") a.containment = this.helper[0].parentNode; if (a.containment == "document" || a.containment == "window") this.containment = [0 - this.offset.relative.left - this.offset.parent.left, 0 - this.offset.relative.top - this.offset.parent.top, d(a.containment == "document" ? document : window).width() - this.helperProportions.width - this.margins.left, (d(a.containment == "document" ? document : window).height() || document.body.parentNode.scrollHeight) - this.helperProportions.height -
this.margins.top]; if (!/^(document|window|parent)$/.test(a.containment)) {
                                var b = d(a.containment)[0]; a = d(a.containment).offset(); var c = d(b).css("overflow") != "hidden"; this.containment = [a.left + (parseInt(d(b).css("borderLeftWidth"), 10) || 0) + (parseInt(d(b).css("paddingLeft"), 10) || 0) - this.margins.left, a.top + (parseInt(d(b).css("borderTopWidth"), 10) || 0) + (parseInt(d(b).css("paddingTop"), 10) || 0) - this.margins.top, a.left + (c ? Math.max(b.scrollWidth, b.offsetWidth) : b.offsetWidth) - (parseInt(d(b).css("borderLeftWidth"),
10) || 0) - (parseInt(d(b).css("paddingRight"), 10) || 0) - this.helperProportions.width - this.margins.left, a.top + (c ? Math.max(b.scrollHeight, b.offsetHeight) : b.offsetHeight) - (parseInt(d(b).css("borderTopWidth"), 10) || 0) - (parseInt(d(b).css("paddingBottom"), 10) || 0) - this.helperProportions.height - this.margins.top]
                            } 
                        }, _convertPositionTo: function(a, b) {
                            if (!b) b = this.position; a = a == "absolute" ? 1 : -1; var c = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) ?
this.offsetParent : this.scrollParent, e = /(html|body)/i.test(c[0].tagName); return { top: b.top + this.offset.relative.top * a + this.offset.parent.top * a - (d.browser.safari && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() : e ? 0 : c.scrollTop()) * a), left: b.left + this.offset.relative.left * a + this.offset.parent.left * a - (d.browser.safari && this.cssPosition == "fixed" ? 0 : (this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : e ? 0 : c.scrollLeft()) * a)}
                        }, _generatePosition: function(a) {
                            var b =
this.options, c = this.cssPosition == "absolute" && !(this.scrollParent[0] != document && d.ui.contains(this.scrollParent[0], this.offsetParent[0])) ? this.offsetParent : this.scrollParent, e = /(html|body)/i.test(c[0].tagName); if (this.cssPosition == "relative" && !(this.scrollParent[0] != document && this.scrollParent[0] != this.offsetParent[0])) this.offset.relative = this._getRelativeOffset(); var f = a.pageX, g = a.pageY; if (this.originalPosition) {
                                if (this.containment) {
                                    if (a.pageX - this.offset.click.left < this.containment[0]) f = this.containment[0] +
this.offset.click.left; if (a.pageY - this.offset.click.top < this.containment[1]) g = this.containment[1] + this.offset.click.top; if (a.pageX - this.offset.click.left > this.containment[2]) f = this.containment[2] + this.offset.click.left; if (a.pageY - this.offset.click.top > this.containment[3]) g = this.containment[3] + this.offset.click.top
                                } if (b.grid) {
                                    g = this.originalPageY + Math.round((g - this.originalPageY) / b.grid[1]) * b.grid[1]; g = this.containment ? !(g - this.offset.click.top < this.containment[1] || g - this.offset.click.top > this.containment[3]) ?
g : !(g - this.offset.click.top < this.containment[1]) ? g - b.grid[1] : g + b.grid[1] : g; f = this.originalPageX + Math.round((f - this.originalPageX) / b.grid[0]) * b.grid[0]; f = this.containment ? !(f - this.offset.click.left < this.containment[0] || f - this.offset.click.left > this.containment[2]) ? f : !(f - this.offset.click.left < this.containment[0]) ? f - b.grid[0] : f + b.grid[0] : f
                                } 
                            } return { top: g - this.offset.click.top - this.offset.relative.top - this.offset.parent.top + (d.browser.safari && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollTop() :
e ? 0 : c.scrollTop()), left: f - this.offset.click.left - this.offset.relative.left - this.offset.parent.left + (d.browser.safari && this.cssPosition == "fixed" ? 0 : this.cssPosition == "fixed" ? -this.scrollParent.scrollLeft() : e ? 0 : c.scrollLeft())}
                            }, _rearrange: function(a, b, c, e) {
                                c ? c[0].appendChild(this.placeholder[0]) : b.item[0].parentNode.insertBefore(this.placeholder[0], this.direction == "down" ? b.item[0] : b.item[0].nextSibling); this.counter = this.counter ? ++this.counter : 1; var f = this, g = this.counter; window.setTimeout(function() {
                                    g ==
f.counter && f.refreshPositions(!e)
                                }, 0)
                            }, _clear: function(a, b) {
                                this.reverting = false; var c = []; !this._noFinalSort && this.currentItem[0].parentNode && this.placeholder.before(this.currentItem); this._noFinalSort = null; if (this.helper[0] == this.currentItem[0]) { for (var e in this._storedCSS) if (this._storedCSS[e] == "auto" || this._storedCSS[e] == "static") this._storedCSS[e] = ""; this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper") } else this.currentItem.show(); this.fromOutside && !b && c.push(function(f) {
                                    this._trigger("receive",
f, this._uiHash(this.fromOutside))
                                }); if ((this.fromOutside || this.domPosition.prev != this.currentItem.prev().not(".ui-sortable-helper")[0] || this.domPosition.parent != this.currentItem.parent()[0]) && !b) c.push(function(f) { this._trigger("update", f, this._uiHash()) }); if (!d.ui.contains(this.element[0], this.currentItem[0])) {
                                    b || c.push(function(f) { this._trigger("remove", f, this._uiHash()) }); for (e = this.containers.length - 1; e >= 0; e--) if (d.ui.contains(this.containers[e].element[0], this.currentItem[0]) && !b) {
                                        c.push(function(f) {
                                            return function(g) {
                                                f._trigger("receive",
g, this._uiHash(this))
                                            } 
                                        } .call(this, this.containers[e])); c.push(function(f) { return function(g) { f._trigger("update", g, this._uiHash(this)) } } .call(this, this.containers[e]))
                                    } 
                                } for (e = this.containers.length - 1; e >= 0; e--) {
                                    b || c.push(function(f) { return function(g) { f._trigger("deactivate", g, this._uiHash(this)) } } .call(this, this.containers[e])); if (this.containers[e].containerCache.over) {
                                        c.push(function(f) { return function(g) { f._trigger("out", g, this._uiHash(this)) } } .call(this, this.containers[e])); this.containers[e].containerCache.over =
0
                                    } 
                                } this._storedCursor && d("body").css("cursor", this._storedCursor); this._storedOpacity && this.helper.css("opacity", this._storedOpacity); if (this._storedZIndex) this.helper.css("zIndex", this._storedZIndex == "auto" ? "" : this._storedZIndex); this.dragging = false; if (this.cancelHelperRemoval) { if (!b) { this._trigger("beforeStop", a, this._uiHash()); for (e = 0; e < c.length; e++) c[e].call(this, a); this._trigger("stop", a, this._uiHash()) } return false } b || this._trigger("beforeStop", a, this._uiHash()); this.placeholder[0].parentNode.removeChild(this.placeholder[0]);
                                this.helper[0] != this.currentItem[0] && this.helper.remove(); this.helper = null; if (!b) { for (e = 0; e < c.length; e++) c[e].call(this, a); this._trigger("stop", a, this._uiHash()) } this.fromOutside = false; return true
                            }, _trigger: function() { d.Widget.prototype._trigger.apply(this, arguments) === false && this.cancel() }, _uiHash: function(a) { var b = a || this; return { helper: b.helper, placeholder: b.placeholder || d([]), position: b.position, originalPosition: b.originalPosition, offset: b.positionAbs, item: b.currentItem, sender: a ? a.element : null} } 
                        });
                        d.extend(d.ui.sortable, { version: "1.8.4" })
                    })(jQuery);
                    jQuery.effects || function(f, j) {
                        function l(c) {
                            var a; if (c && c.constructor == Array && c.length == 3) return c; if (a = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c)) return [parseInt(a[1], 10), parseInt(a[2], 10), parseInt(a[3], 10)]; if (a = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c)) return [parseFloat(a[1]) * 2.55, parseFloat(a[2]) * 2.55, parseFloat(a[3]) * 2.55]; if (a = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c)) return [parseInt(a[1],
16), parseInt(a[2], 16), parseInt(a[3], 16)]; if (a = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c)) return [parseInt(a[1] + a[1], 16), parseInt(a[2] + a[2], 16), parseInt(a[3] + a[3], 16)]; if (/rgba\(0, 0, 0, 0\)/.exec(c)) return m.transparent; return m[f.trim(c).toLowerCase()]
                        } function r(c, a) { var b; do { b = f.curCSS(c, a); if (b != "" && b != "transparent" || f.nodeName(c, "body")) break; a = "backgroundColor" } while (c = c.parentNode); return l(b) } function n() {
                            var c = document.defaultView ? document.defaultView.getComputedStyle(this, null) : this.currentStyle,
a = {}, b, d; if (c && c.length && c[0] && c[c[0]]) for (var e = c.length; e--; ) { b = c[e]; if (typeof c[b] == "string") { d = b.replace(/\-(\w)/g, function(g, h) { return h.toUpperCase() }); a[d] = c[b] } } else for (b in c) if (typeof c[b] === "string") a[b] = c[b]; return a
                        } function o(c) { var a, b; for (a in c) { b = c[a]; if (b == null || f.isFunction(b) || a in s || /scrollbar/.test(a) || !/color/i.test(a) && isNaN(parseFloat(b))) delete c[a] } return c } function t(c, a) { var b = { _: 0 }, d; for (d in a) if (c[d] != a[d]) b[d] = a[d]; return b } function k(c, a, b, d) {
                            if (typeof c == "object") {
                                d =
a; b = null; a = c; c = a.effect
                            } if (f.isFunction(a)) { d = a; b = null; a = {} } if (typeof a == "number" || f.fx.speeds[a]) { d = b; b = a; a = {} } if (f.isFunction(b)) { d = b; b = null } a = a || {}; b = b || a.duration; b = f.fx.off ? 0 : typeof b == "number" ? b : f.fx.speeds[b] || f.fx.speeds._default; d = d || a.complete; return [c, a, b, d]
                        } f.effects = {}; f.each(["backgroundColor", "borderBottomColor", "borderLeftColor", "borderRightColor", "borderTopColor", "color", "outlineColor"], function(c, a) {
                            f.fx.step[a] = function(b) {
                                if (!b.colorInit) {
                                    b.start = r(b.elem, a); b.end = l(b.end); b.colorInit =
true
                                } b.elem.style[a] = "rgb(" + Math.max(Math.min(parseInt(b.pos * (b.end[0] - b.start[0]) + b.start[0], 10), 255), 0) + "," + Math.max(Math.min(parseInt(b.pos * (b.end[1] - b.start[1]) + b.start[1], 10), 255), 0) + "," + Math.max(Math.min(parseInt(b.pos * (b.end[2] - b.start[2]) + b.start[2], 10), 255), 0) + ")"
                            } 
                        }); var m = { aqua: [0, 255, 255], azure: [240, 255, 255], beige: [245, 245, 220], black: [0, 0, 0], blue: [0, 0, 255], brown: [165, 42, 42], cyan: [0, 255, 255], darkblue: [0, 0, 139], darkcyan: [0, 139, 139], darkgrey: [169, 169, 169], darkgreen: [0, 100, 0], darkkhaki: [189,
183, 107], darkmagenta: [139, 0, 139], darkolivegreen: [85, 107, 47], darkorange: [255, 140, 0], darkorchid: [153, 50, 204], darkred: [139, 0, 0], darksalmon: [233, 150, 122], darkviolet: [148, 0, 211], fuchsia: [255, 0, 255], gold: [255, 215, 0], green: [0, 128, 0], indigo: [75, 0, 130], khaki: [240, 230, 140], lightblue: [173, 216, 230], lightcyan: [224, 255, 255], lightgreen: [144, 238, 144], lightgrey: [211, 211, 211], lightpink: [255, 182, 193], lightyellow: [255, 255, 224], lime: [0, 255, 0], magenta: [255, 0, 255], maroon: [128, 0, 0], navy: [0, 0, 128], olive: [128, 128, 0], orange: [255,
165, 0], pink: [255, 192, 203], purple: [128, 0, 128], violet: [128, 0, 128], red: [255, 0, 0], silver: [192, 192, 192], white: [255, 255, 255], yellow: [255, 255, 0], transparent: [255, 255, 255]
                        }, p = ["add", "remove", "toggle"], s = { border: 1, borderBottom: 1, borderColor: 1, borderLeft: 1, borderRight: 1, borderTop: 1, borderWidth: 1, margin: 1, padding: 1 }; f.effects.animateClass = function(c, a, b, d) {
                            if (f.isFunction(b)) { d = b; b = null } return this.each(function() {
                                var e = f(this), g = e.attr("style") || " ", h = o(n.call(this)), q, u = e.attr("className"); f.each(p, function(v,
i) { c[i] && e[i + "Class"](c[i]) }); q = o(n.call(this)); e.attr("className", u); e.animate(t(h, q), a, b, function() { f.each(p, function(v, i) { c[i] && e[i + "Class"](c[i]) }); if (typeof e.attr("style") == "object") { e.attr("style").cssText = ""; e.attr("style").cssText = g } else e.attr("style", g); d && d.apply(this, arguments) })
                            })
                        }; f.fn.extend({ _addClass: f.fn.addClass, addClass: function(c, a, b, d) { return a ? f.effects.animateClass.apply(this, [{ add: c }, a, b, d]) : this._addClass(c) }, _removeClass: f.fn.removeClass, removeClass: function(c, a, b, d) {
                            return a ?
f.effects.animateClass.apply(this, [{ remove: c }, a, b, d]) : this._removeClass(c)
                        }, _toggleClass: f.fn.toggleClass, toggleClass: function(c, a, b, d, e) { return typeof a == "boolean" || a === j ? b ? f.effects.animateClass.apply(this, [a ? { add: c} : { remove: c }, b, d, e]) : this._toggleClass(c, a) : f.effects.animateClass.apply(this, [{ toggle: c }, a, b, d]) }, switchClass: function(c, a, b, d, e) { return f.effects.animateClass.apply(this, [{ add: a, remove: c }, b, d, e]) } 
                        }); f.extend(f.effects, { version: "1.8.4", save: function(c, a) {
                            for (var b = 0; b < a.length; b++) a[b] !==
null && c.data("ec.storage." + a[b], c[0].style[a[b]])
                        }, restore: function(c, a) { for (var b = 0; b < a.length; b++) a[b] !== null && c.css(a[b], c.data("ec.storage." + a[b])) }, setMode: function(c, a) { if (a == "toggle") a = c.is(":hidden") ? "show" : "hide"; return a }, getBaseline: function(c, a) { var b; switch (c[0]) { case "top": b = 0; break; case "middle": b = 0.5; break; case "bottom": b = 1; break; default: b = c[0] / a.height } switch (c[1]) { case "left": c = 0; break; case "center": c = 0.5; break; case "right": c = 1; break; default: c = c[1] / a.width } return { x: c, y: b} }, createWrapper: function(c) {
                            if (c.parent().is(".ui-effects-wrapper")) return c.parent();
                            var a = { width: c.outerWidth(true), height: c.outerHeight(true), "float": c.css("float") }, b = f("<div></div>").addClass("ui-effects-wrapper").css({ fontSize: "100%", background: "transparent", border: "none", margin: 0, padding: 0 }); c.wrap(b); b = c.parent(); if (c.css("position") == "static") { b.css({ position: "relative" }); c.css({ position: "relative" }) } else {
                                f.extend(a, { position: c.css("position"), zIndex: c.css("z-index") }); f.each(["top", "left", "bottom", "right"], function(d, e) { a[e] = c.css(e); if (isNaN(parseInt(a[e], 10))) a[e] = "auto" });
                                c.css({ position: "relative", top: 0, left: 0 })
                            } return b.css(a).show()
                        }, removeWrapper: function(c) { if (c.parent().is(".ui-effects-wrapper")) return c.parent().replaceWith(c); return c }, setTransition: function(c, a, b, d) { d = d || {}; f.each(a, function(e, g) { unit = c.cssUnit(g); if (unit[0] > 0) d[g] = unit[0] * b + unit[1] }); return d } 
                        }); f.fn.extend({ effect: function(c) { var a = k.apply(this, arguments); a = { options: a[1], duration: a[2], callback: a[3] }; var b = f.effects[c]; return b && !f.fx.off ? b.call(this, a) : this }, _show: f.fn.show, show: function(c) {
                            if (!c ||
typeof c == "number" || f.fx.speeds[c]) return this._show.apply(this, arguments); else { var a = k.apply(this, arguments); a[1].mode = "show"; return this.effect.apply(this, a) } 
                        }, _hide: f.fn.hide, hide: function(c) { if (!c || typeof c == "number" || f.fx.speeds[c]) return this._hide.apply(this, arguments); else { var a = k.apply(this, arguments); a[1].mode = "hide"; return this.effect.apply(this, a) } }, __toggle: f.fn.toggle, toggle: function(c) {
                            if (!c || typeof c == "number" || f.fx.speeds[c] || typeof c == "boolean" || f.isFunction(c)) return this.__toggle.apply(this,
arguments); else { var a = k.apply(this, arguments); a[1].mode = "toggle"; return this.effect.apply(this, a) } 
                        }, cssUnit: function(c) { var a = this.css(c), b = []; f.each(["em", "px", "%", "pt"], function(d, e) { if (a.indexOf(e) > 0) b = [parseFloat(a), e] }); return b } 
                        }); f.easing.jswing = f.easing.swing; f.extend(f.easing, { def: "easeOutQuad", swing: function(c, a, b, d, e) { return f.easing[f.easing.def](c, a, b, d, e) }, easeInQuad: function(c, a, b, d, e) { return d * (a /= e) * a + b }, easeOutQuad: function(c, a, b, d, e) { return -d * (a /= e) * (a - 2) + b }, easeInOutQuad: function(c,
a, b, d, e) { if ((a /= e / 2) < 1) return d / 2 * a * a + b; return -d / 2 * (--a * (a - 2) - 1) + b }, easeInCubic: function(c, a, b, d, e) { return d * (a /= e) * a * a + b }, easeOutCubic: function(c, a, b, d, e) { return d * ((a = a / e - 1) * a * a + 1) + b }, easeInOutCubic: function(c, a, b, d, e) { if ((a /= e / 2) < 1) return d / 2 * a * a * a + b; return d / 2 * ((a -= 2) * a * a + 2) + b }, easeInQuart: function(c, a, b, d, e) { return d * (a /= e) * a * a * a + b }, easeOutQuart: function(c, a, b, d, e) { return -d * ((a = a / e - 1) * a * a * a - 1) + b }, easeInOutQuart: function(c, a, b, d, e) {
    if ((a /= e / 2) < 1) return d / 2 * a * a * a * a + b; return -d / 2 * ((a -= 2) * a * a * a - 2) +
b
}, easeInQuint: function(c, a, b, d, e) { return d * (a /= e) * a * a * a * a + b }, easeOutQuint: function(c, a, b, d, e) { return d * ((a = a / e - 1) * a * a * a * a + 1) + b }, easeInOutQuint: function(c, a, b, d, e) { if ((a /= e / 2) < 1) return d / 2 * a * a * a * a * a + b; return d / 2 * ((a -= 2) * a * a * a * a + 2) + b }, easeInSine: function(c, a, b, d, e) { return -d * Math.cos(a / e * (Math.PI / 2)) + d + b }, easeOutSine: function(c, a, b, d, e) { return d * Math.sin(a / e * (Math.PI / 2)) + b }, easeInOutSine: function(c, a, b, d, e) { return -d / 2 * (Math.cos(Math.PI * a / e) - 1) + b }, easeInExpo: function(c, a, b, d, e) {
    return a == 0 ? b : d * Math.pow(2,
10 * (a / e - 1)) + b
}, easeOutExpo: function(c, a, b, d, e) { return a == e ? b + d : d * (-Math.pow(2, -10 * a / e) + 1) + b }, easeInOutExpo: function(c, a, b, d, e) { if (a == 0) return b; if (a == e) return b + d; if ((a /= e / 2) < 1) return d / 2 * Math.pow(2, 10 * (a - 1)) + b; return d / 2 * (-Math.pow(2, -10 * --a) + 2) + b }, easeInCirc: function(c, a, b, d, e) { return -d * (Math.sqrt(1 - (a /= e) * a) - 1) + b }, easeOutCirc: function(c, a, b, d, e) { return d * Math.sqrt(1 - (a = a / e - 1) * a) + b }, easeInOutCirc: function(c, a, b, d, e) {
    if ((a /= e / 2) < 1) return -d / 2 * (Math.sqrt(1 - a * a) - 1) + b; return d / 2 * (Math.sqrt(1 - (a -= 2) *
a) + 1) + b
}, easeInElastic: function(c, a, b, d, e) { c = 1.70158; var g = 0, h = d; if (a == 0) return b; if ((a /= e) == 1) return b + d; g || (g = e * 0.3); if (h < Math.abs(d)) { h = d; c = g / 4 } else c = g / (2 * Math.PI) * Math.asin(d / h); return -(h * Math.pow(2, 10 * (a -= 1)) * Math.sin((a * e - c) * 2 * Math.PI / g)) + b }, easeOutElastic: function(c, a, b, d, e) { c = 1.70158; var g = 0, h = d; if (a == 0) return b; if ((a /= e) == 1) return b + d; g || (g = e * 0.3); if (h < Math.abs(d)) { h = d; c = g / 4 } else c = g / (2 * Math.PI) * Math.asin(d / h); return h * Math.pow(2, -10 * a) * Math.sin((a * e - c) * 2 * Math.PI / g) + d + b }, easeInOutElastic: function(c,
a, b, d, e) { c = 1.70158; var g = 0, h = d; if (a == 0) return b; if ((a /= e / 2) == 2) return b + d; g || (g = e * 0.3 * 1.5); if (h < Math.abs(d)) { h = d; c = g / 4 } else c = g / (2 * Math.PI) * Math.asin(d / h); if (a < 1) return -0.5 * h * Math.pow(2, 10 * (a -= 1)) * Math.sin((a * e - c) * 2 * Math.PI / g) + b; return h * Math.pow(2, -10 * (a -= 1)) * Math.sin((a * e - c) * 2 * Math.PI / g) * 0.5 + d + b }, easeInBack: function(c, a, b, d, e, g) { if (g == j) g = 1.70158; return d * (a /= e) * a * ((g + 1) * a - g) + b }, easeOutBack: function(c, a, b, d, e, g) { if (g == j) g = 1.70158; return d * ((a = a / e - 1) * a * ((g + 1) * a + g) + 1) + b }, easeInOutBack: function(c,
a, b, d, e, g) { if (g == j) g = 1.70158; if ((a /= e / 2) < 1) return d / 2 * a * a * (((g *= 1.525) + 1) * a - g) + b; return d / 2 * ((a -= 2) * a * (((g *= 1.525) + 1) * a + g) + 2) + b }, easeInBounce: function(c, a, b, d, e) { return d - f.easing.easeOutBounce(c, e - a, 0, d, e) + b }, easeOutBounce: function(c, a, b, d, e) { return (a /= e) < 1 / 2.75 ? d * 7.5625 * a * a + b : a < 2 / 2.75 ? d * (7.5625 * (a -= 1.5 / 2.75) * a + 0.75) + b : a < 2.5 / 2.75 ? d * (7.5625 * (a -= 2.25 / 2.75) * a + 0.9375) + b : d * (7.5625 * (a -= 2.625 / 2.75) * a + 0.984375) + b }, easeInOutBounce: function(c, a, b, d, e) {
    if (a < e / 2) return f.easing.easeInBounce(c, a * 2, 0, d, e) * 0.5 +
b; return f.easing.easeOutBounce(c, a * 2 - e, 0, d, e) * 0.5 + d * 0.5 + b
} 
                        })
                    } (jQuery);
                    (function(b) {
                        b.effects.blind = function(c) {
                            return this.queue(function() {
                                var a = b(this), g = ["position", "top", "left"], f = b.effects.setMode(a, c.options.mode || "hide"), d = c.options.direction || "vertical"; b.effects.save(a, g); a.show(); var e = b.effects.createWrapper(a).css({ overflow: "hidden" }), h = d == "vertical" ? "height" : "width"; d = d == "vertical" ? e.height() : e.width(); f == "show" && e.css(h, 0); var i = {}; i[h] = f == "show" ? d : 0; e.animate(i, c.duration, c.options.easing, function() {
                                    f == "hide" && a.hide(); b.effects.restore(a, g); b.effects.removeWrapper(a);
                                    c.callback && c.callback.apply(a[0], arguments); a.dequeue()
                                })
                            })
                        } 
                    })(jQuery);
                    (function(e) {
                        e.effects.bounce = function(b) {
                            return this.queue(function() {
                                var a = e(this), l = ["position", "top", "left"], h = e.effects.setMode(a, b.options.mode || "effect"), d = b.options.direction || "up", c = b.options.distance || 20, m = b.options.times || 5, i = b.duration || 250; /show|hide/.test(h) && l.push("opacity"); e.effects.save(a, l); a.show(); e.effects.createWrapper(a); var f = d == "up" || d == "down" ? "top" : "left"; d = d == "up" || d == "left" ? "pos" : "neg"; c = b.options.distance || (f == "top" ? a.outerHeight({ margin: true }) / 3 : a.outerWidth({ margin: true }) /
3); if (h == "show") a.css("opacity", 0).css(f, d == "pos" ? -c : c); if (h == "hide") c /= m * 2; h != "hide" && m--; if (h == "show") { var g = { opacity: 1 }; g[f] = (d == "pos" ? "+=" : "-=") + c; a.animate(g, i / 2, b.options.easing); c /= 2; m-- } for (g = 0; g < m; g++) { var j = {}, k = {}; j[f] = (d == "pos" ? "-=" : "+=") + c; k[f] = (d == "pos" ? "+=" : "-=") + c; a.animate(j, i / 2, b.options.easing).animate(k, i / 2, b.options.easing); c = h == "hide" ? c * 2 : c / 2 } if (h == "hide") {
                                    g = { opacity: 0 }; g[f] = (d == "pos" ? "-=" : "+=") + c; a.animate(g, i / 2, b.options.easing, function() {
                                        a.hide(); e.effects.restore(a, l); e.effects.removeWrapper(a);
                                        b.callback && b.callback.apply(this, arguments)
                                    })
                                } else { j = {}; k = {}; j[f] = (d == "pos" ? "-=" : "+=") + c; k[f] = (d == "pos" ? "+=" : "-=") + c; a.animate(j, i / 2, b.options.easing).animate(k, i / 2, b.options.easing, function() { e.effects.restore(a, l); e.effects.removeWrapper(a); b.callback && b.callback.apply(this, arguments) }) } a.queue("fx", function() { a.dequeue() }); a.dequeue()
                            })
                        } 
                    })(jQuery);
                    (function(b) {
                        b.effects.clip = function(e) {
                            return this.queue(function() {
                                var a = b(this), i = ["position", "top", "left", "height", "width"], f = b.effects.setMode(a, e.options.mode || "hide"), c = e.options.direction || "vertical"; b.effects.save(a, i); a.show(); var d = b.effects.createWrapper(a).css({ overflow: "hidden" }); d = a[0].tagName == "IMG" ? d : a; var g = { size: c == "vertical" ? "height" : "width", position: c == "vertical" ? "top" : "left" }; c = c == "vertical" ? d.height() : d.width(); if (f == "show") { d.css(g.size, 0); d.css(g.position, c / 2) } var h = {}; h[g.size] =
f == "show" ? c : 0; h[g.position] = f == "show" ? 0 : c / 2; d.animate(h, { queue: false, duration: e.duration, easing: e.options.easing, complete: function() { f == "hide" && a.hide(); b.effects.restore(a, i); b.effects.removeWrapper(a); e.callback && e.callback.apply(a[0], arguments); a.dequeue() } })
                            })
                        } 
                    })(jQuery);
                    (function(c) {
                        c.effects.drop = function(d) {
                            return this.queue(function() {
                                var a = c(this), h = ["position", "top", "left", "opacity"], e = c.effects.setMode(a, d.options.mode || "hide"), b = d.options.direction || "left"; c.effects.save(a, h); a.show(); c.effects.createWrapper(a); var f = b == "up" || b == "down" ? "top" : "left"; b = b == "up" || b == "left" ? "pos" : "neg"; var g = d.options.distance || (f == "top" ? a.outerHeight({ margin: true }) / 2 : a.outerWidth({ margin: true }) / 2); if (e == "show") a.css("opacity", 0).css(f, b == "pos" ? -g : g); var i = { opacity: e == "show" ? 1 :
0
                                }; i[f] = (e == "show" ? b == "pos" ? "+=" : "-=" : b == "pos" ? "-=" : "+=") + g; a.animate(i, { queue: false, duration: d.duration, easing: d.options.easing, complete: function() { e == "hide" && a.hide(); c.effects.restore(a, h); c.effects.removeWrapper(a); d.callback && d.callback.apply(this, arguments); a.dequeue() } })
                            })
                        } 
                    })(jQuery);
                    (function(j) {
                        j.effects.explode = function(a) {
                            return this.queue(function() {
                                var c = a.options.pieces ? Math.round(Math.sqrt(a.options.pieces)) : 3, d = a.options.pieces ? Math.round(Math.sqrt(a.options.pieces)) : 3; a.options.mode = a.options.mode == "toggle" ? j(this).is(":visible") ? "hide" : "show" : a.options.mode; var b = j(this).show().css("visibility", "hidden"), g = b.offset(); g.top -= parseInt(b.css("marginTop"), 10) || 0; g.left -= parseInt(b.css("marginLeft"), 10) || 0; for (var h = b.outerWidth(true), i = b.outerHeight(true), e = 0; e < c; e++) for (var f =
0; f < d; f++) b.clone().appendTo("body").wrap("<div></div>").css({ position: "absolute", visibility: "visible", left: -f * (h / d), top: -e * (i / c) }).parent().addClass("ui-effects-explode").css({ position: "absolute", overflow: "hidden", width: h / d, height: i / c, left: g.left + f * (h / d) + (a.options.mode == "show" ? (f - Math.floor(d / 2)) * (h / d) : 0), top: g.top + e * (i / c) + (a.options.mode == "show" ? (e - Math.floor(c / 2)) * (i / c) : 0), opacity: a.options.mode == "show" ? 0 : 1 }).animate({ left: g.left + f * (h / d) + (a.options.mode == "show" ? 0 : (f - Math.floor(d / 2)) * (h / d)), top: g.top +
e * (i / c) + (a.options.mode == "show" ? 0 : (e - Math.floor(c / 2)) * (i / c)), opacity: a.options.mode == "show" ? 1 : 0
}, a.duration || 500); setTimeout(function() { a.options.mode == "show" ? b.css({ visibility: "visible" }) : b.css({ visibility: "visible" }).hide(); a.callback && a.callback.apply(b[0]); b.dequeue(); j("div.ui-effects-explode").remove() }, a.duration || 500)
                            })
                        } 
                    })(jQuery);
                    (function(b) { b.effects.fade = function(a) { return this.queue(function() { var c = b(this), d = b.effects.setMode(c, a.options.mode || "hide"); c.animate({ opacity: d }, { queue: false, duration: a.duration, easing: a.options.easing, complete: function() { a.callback && a.callback.apply(this, arguments); c.dequeue() } }) }) } })(jQuery);
                    (function(c) {
                        c.effects.fold = function(a) {
                            return this.queue(function() {
                                var b = c(this), j = ["position", "top", "left"], d = c.effects.setMode(b, a.options.mode || "hide"), g = a.options.size || 15, h = !!a.options.horizFirst, k = a.duration ? a.duration / 2 : c.fx.speeds._default / 2; c.effects.save(b, j); b.show(); var e = c.effects.createWrapper(b).css({ overflow: "hidden" }), f = d == "show" != h, l = f ? ["width", "height"] : ["height", "width"]; f = f ? [e.width(), e.height()] : [e.height(), e.width()]; var i = /([0-9]+)%/.exec(g); if (i) g = parseInt(i[1], 10) / 100 *
f[d == "hide" ? 0 : 1]; if (d == "show") e.css(h ? { height: 0, width: g} : { height: g, width: 0 }); h = {}; i = {}; h[l[0]] = d == "show" ? f[0] : g; i[l[1]] = d == "show" ? f[1] : 0; e.animate(h, k, a.options.easing).animate(i, k, a.options.easing, function() { d == "hide" && b.hide(); c.effects.restore(b, j); c.effects.removeWrapper(b); a.callback && a.callback.apply(b[0], arguments); b.dequeue() })
                            })
                        } 
                    })(jQuery);
                    (function(b) {
                        b.effects.highlight = function(c) {
                            return this.queue(function() {
                                var a = b(this), e = ["backgroundImage", "backgroundColor", "opacity"], d = b.effects.setMode(a, c.options.mode || "show"), f = { backgroundColor: a.css("backgroundColor") }; if (d == "hide") f.opacity = 0; b.effects.save(a, e); a.show().css({ backgroundImage: "none", backgroundColor: c.options.color || "#ffff99" }).animate(f, { queue: false, duration: c.duration, easing: c.options.easing, complete: function() {
                                    d == "hide" && a.hide(); b.effects.restore(a, e); d == "show" && !b.support.opacity &&
this.style.removeAttribute("filter"); c.callback && c.callback.apply(this, arguments); a.dequeue()
                                } 
                                })
                            })
                        } 
                    })(jQuery);
                    (function(d) {
                        d.effects.pulsate = function(a) {
                            return this.queue(function() {
                                var b = d(this), c = d.effects.setMode(b, a.options.mode || "show"); times = (a.options.times || 5) * 2 - 1; duration = a.duration ? a.duration / 2 : d.fx.speeds._default / 2; isVisible = b.is(":visible"); animateTo = 0; if (!isVisible) { b.css("opacity", 0).show(); animateTo = 1 } if (c == "hide" && isVisible || c == "show" && !isVisible) times--; for (c = 0; c < times; c++) { b.animate({ opacity: animateTo }, duration, a.options.easing); animateTo = (animateTo + 1) % 2 } b.animate({ opacity: animateTo }, duration,
a.options.easing, function() { animateTo == 0 && b.hide(); a.callback && a.callback.apply(this, arguments) }); b.queue("fx", function() { b.dequeue() }).dequeue()
                            })
                        } 
                    })(jQuery);
                    (function(c) {
                        c.effects.puff = function(b) { return this.queue(function() { var a = c(this), e = c.effects.setMode(a, b.options.mode || "hide"), g = parseInt(b.options.percent, 10) || 150, h = g / 100, i = { height: a.height(), width: a.width() }; c.extend(b.options, { fade: true, mode: e, percent: e == "hide" ? g : 100, from: e == "hide" ? i : { height: i.height * h, width: i.width * h} }); a.effect("scale", b.options, b.duration, b.callback); a.dequeue() }) }; c.effects.scale = function(b) {
                            return this.queue(function() {
                                var a = c(this), e = c.extend(true, {}, b.options), g = c.effects.setMode(a,
b.options.mode || "effect"), h = parseInt(b.options.percent, 10) || (parseInt(b.options.percent, 10) == 0 ? 0 : g == "hide" ? 0 : 100), i = b.options.direction || "both", f = b.options.origin; if (g != "effect") { e.origin = f || ["middle", "center"]; e.restore = true } f = { height: a.height(), width: a.width() }; a.from = b.options.from || (g == "show" ? { height: 0, width: 0} : f); h = { y: i != "horizontal" ? h / 100 : 1, x: i != "vertical" ? h / 100 : 1 }; a.to = { height: f.height * h.y, width: f.width * h.x }; if (b.options.fade) {
                                    if (g == "show") { a.from.opacity = 0; a.to.opacity = 1 } if (g == "hide") {
                                        a.from.opacity =
1; a.to.opacity = 0
                                    } 
                                } e.from = a.from; e.to = a.to; e.mode = g; a.effect("size", e, b.duration, b.callback); a.dequeue()
                            })
                        }; c.effects.size = function(b) {
                            return this.queue(function() {
                                var a = c(this), e = ["position", "top", "left", "width", "height", "overflow", "opacity"], g = ["position", "top", "left", "overflow", "opacity"], h = ["width", "height", "overflow"], i = ["fontSize"], f = ["borderTopWidth", "borderBottomWidth", "paddingTop", "paddingBottom"], k = ["borderLeftWidth", "borderRightWidth", "paddingLeft", "paddingRight"], p = c.effects.setMode(a,
b.options.mode || "effect"), n = b.options.restore || false, m = b.options.scale || "both", l = b.options.origin, j = { height: a.height(), width: a.width() }; a.from = b.options.from || j; a.to = b.options.to || j; if (l) { l = c.effects.getBaseline(l, j); a.from.top = (j.height - a.from.height) * l.y; a.from.left = (j.width - a.from.width) * l.x; a.to.top = (j.height - a.to.height) * l.y; a.to.left = (j.width - a.to.width) * l.x } var d = { from: { y: a.from.height / j.height, x: a.from.width / j.width }, to: { y: a.to.height / j.height, x: a.to.width / j.width} }; if (m == "box" || m == "both") {
                                    if (d.from.y !=
d.to.y) { e = e.concat(f); a.from = c.effects.setTransition(a, f, d.from.y, a.from); a.to = c.effects.setTransition(a, f, d.to.y, a.to) } if (d.from.x != d.to.x) { e = e.concat(k); a.from = c.effects.setTransition(a, k, d.from.x, a.from); a.to = c.effects.setTransition(a, k, d.to.x, a.to) } 
                                } if (m == "content" || m == "both") if (d.from.y != d.to.y) { e = e.concat(i); a.from = c.effects.setTransition(a, i, d.from.y, a.from); a.to = c.effects.setTransition(a, i, d.to.y, a.to) } c.effects.save(a, n ? e : g); a.show(); c.effects.createWrapper(a); a.css("overflow", "hidden").css(a.from);
                                if (m == "content" || m == "both") {
                                    f = f.concat(["marginTop", "marginBottom"]).concat(i); k = k.concat(["marginLeft", "marginRight"]); h = e.concat(f).concat(k); a.find("*[width]").each(function() {
                                        child = c(this); n && c.effects.save(child, h); var o = { height: child.height(), width: child.width() }; child.from = { height: o.height * d.from.y, width: o.width * d.from.x }; child.to = { height: o.height * d.to.y, width: o.width * d.to.x }; if (d.from.y != d.to.y) {
                                            child.from = c.effects.setTransition(child, f, d.from.y, child.from); child.to = c.effects.setTransition(child,
f, d.to.y, child.to)
                                        } if (d.from.x != d.to.x) { child.from = c.effects.setTransition(child, k, d.from.x, child.from); child.to = c.effects.setTransition(child, k, d.to.x, child.to) } child.css(child.from); child.animate(child.to, b.duration, b.options.easing, function() { n && c.effects.restore(child, h) })
                                    })
                                } a.animate(a.to, { queue: false, duration: b.duration, easing: b.options.easing, complete: function() {
                                    a.to.opacity === 0 && a.css("opacity", a.from.opacity); p == "hide" && a.hide(); c.effects.restore(a, n ? e : g); c.effects.removeWrapper(a); b.callback &&
b.callback.apply(this, arguments); a.dequeue()
                                } 
                                })
                            })
                        } 
                    })(jQuery);
                    (function(d) {
                        d.effects.shake = function(a) {
                            return this.queue(function() {
                                var b = d(this), j = ["position", "top", "left"]; d.effects.setMode(b, a.options.mode || "effect"); var c = a.options.direction || "left", e = a.options.distance || 20, l = a.options.times || 3, f = a.duration || a.options.duration || 140; d.effects.save(b, j); b.show(); d.effects.createWrapper(b); var g = c == "up" || c == "down" ? "top" : "left", h = c == "up" || c == "left" ? "pos" : "neg"; c = {}; var i = {}, k = {}; c[g] = (h == "pos" ? "-=" : "+=") + e; i[g] = (h == "pos" ? "+=" : "-=") + e * 2; k[g] = (h == "pos" ? "-=" : "+=") +
e * 2; b.animate(c, f, a.options.easing); for (e = 1; e < l; e++) b.animate(i, f, a.options.easing).animate(k, f, a.options.easing); b.animate(i, f, a.options.easing).animate(c, f / 2, a.options.easing, function() { d.effects.restore(b, j); d.effects.removeWrapper(b); a.callback && a.callback.apply(this, arguments) }); b.queue("fx", function() { b.dequeue() }); b.dequeue()
                            })
                        } 
                    })(jQuery);
                    (function(c) {
                        c.effects.slide = function(d) {
                            return this.queue(function() {
                                var a = c(this), h = ["position", "top", "left"], e = c.effects.setMode(a, d.options.mode || "show"), b = d.options.direction || "left"; c.effects.save(a, h); a.show(); c.effects.createWrapper(a).css({ overflow: "hidden" }); var f = b == "up" || b == "down" ? "top" : "left"; b = b == "up" || b == "left" ? "pos" : "neg"; var g = d.options.distance || (f == "top" ? a.outerHeight({ margin: true }) : a.outerWidth({ margin: true })); if (e == "show") a.css(f, b == "pos" ? -g : g); var i = {}; i[f] = (e == "show" ? b == "pos" ?
"+=" : "-=" : b == "pos" ? "-=" : "+=") + g; a.animate(i, { queue: false, duration: d.duration, easing: d.options.easing, complete: function() { e == "hide" && a.hide(); c.effects.restore(a, h); c.effects.removeWrapper(a); d.callback && d.callback.apply(this, arguments); a.dequeue() } })
                            })
                        } 
                    })(jQuery);
                    (function(e) {
                        e.effects.transfer = function(a) {
                            return this.queue(function() {
                                var b = e(this), c = e(a.options.to), d = c.offset(); c = { top: d.top, left: d.left, height: c.innerHeight(), width: c.innerWidth() }; d = b.offset(); var f = e('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(a.options.className).css({ top: d.top, left: d.left, height: b.innerHeight(), width: b.innerWidth(), position: "absolute" }).animate(c, a.duration, a.options.easing, function() {
                                    f.remove(); a.callback && a.callback.apply(b[0], arguments);
                                    b.dequeue()
                                })
                            })
                        } 
                    })(jQuery);
                    (function(c) {
                        c.widget("ui.accordion", { options: { active: 0, animated: "slide", autoHeight: true, clearStyle: false, collapsible: false, event: "click", fillSpace: false, header: "> li > :first-child,> :not(li):even", icons: { header: "ui-icon-triangle-1-e", headerSelected: "ui-icon-triangle-1-s" }, navigation: false, navigationFilter: function() { return this.href.toLowerCase() === location.href.toLowerCase() } }, _create: function() {
                            var a = this, b = a.options; a.running = 0; a.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix");
                            a.headers = a.element.find(b.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion", function() { b.disabled || c(this).addClass("ui-state-hover") }).bind("mouseleave.accordion", function() { b.disabled || c(this).removeClass("ui-state-hover") }).bind("focus.accordion", function() { b.disabled || c(this).addClass("ui-state-focus") }).bind("blur.accordion", function() { b.disabled || c(this).removeClass("ui-state-focus") }); a.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");
                            if (b.navigation) { var d = a.element.find("a").filter(b.navigationFilter).eq(0); if (d.length) { var f = d.closest(".ui-accordion-header"); a.active = f.length ? f : d.closest(".ui-accordion-content").prev() } } a.active = a._findActive(a.active || b.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all ui-corner-top"); a.active.next().addClass("ui-accordion-content-active"); a._createIcons(); a.resize(); a.element.attr("role", "tablist"); a.headers.attr("role", "tab").bind("keydown.accordion", function(g) { return a._keydown(g) }).next().attr("role",
"tabpanel"); a.headers.not(a.active || "").attr({ "aria-expanded": "false", tabIndex: -1 }).next().hide(); a.active.length ? a.active.attr({ "aria-expanded": "true", tabIndex: 0 }) : a.headers.eq(0).attr("tabIndex", 0); c.browser.safari || a.headers.find("a").attr("tabIndex", -1); b.event && a.headers.bind(b.event.split(" ").join(".accordion ") + ".accordion", function(g) { a._clickHandler.call(a, g, this); g.preventDefault() })
                        }, _createIcons: function() {
                            var a = this.options; if (a.icons) {
                                c("<span></span>").addClass("ui-icon " + a.icons.header).prependTo(this.headers);
                                this.active.children(".ui-icon").toggleClass(a.icons.header).toggleClass(a.icons.headerSelected); this.element.addClass("ui-accordion-icons")
                            } 
                        }, _destroyIcons: function() { this.headers.children(".ui-icon").remove(); this.element.removeClass("ui-accordion-icons") }, destroy: function() {
                            var a = this.options; this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"); this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("tabIndex");
                            this.headers.find("a").removeAttr("tabIndex"); this._destroyIcons(); var b = this.headers.next().css("display", "").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled"); if (a.autoHeight || a.fillHeight) b.css("height", ""); return c.Widget.prototype.destroy.call(this)
                        }, _setOption: function(a, b) {
                            c.Widget.prototype._setOption.apply(this, arguments); a == "active" && this.activate(b); if (a == "icons") {
                                this._destroyIcons();
                                b && this._createIcons()
                            } if (a == "disabled") this.headers.add(this.headers.next())[b ? "addClass" : "removeClass"]("ui-accordion-disabled ui-state-disabled")
                        }, _keydown: function(a) {
                            if (!(this.options.disabled || a.altKey || a.ctrlKey)) {
                                var b = c.ui.keyCode, d = this.headers.length, f = this.headers.index(a.target), g = false; switch (a.keyCode) {
                                    case b.RIGHT: case b.DOWN: g = this.headers[(f + 1) % d]; break; case b.LEFT: case b.UP: g = this.headers[(f - 1 + d) % d]; break; case b.SPACE: case b.ENTER: this._clickHandler({ target: a.target }, a.target);
                                        a.preventDefault()
                                } if (g) { c(a.target).attr("tabIndex", -1); c(g).attr("tabIndex", 0); g.focus(); return false } return true
                            } 
                        }, resize: function() {
                            var a = this.options, b; if (a.fillSpace) {
                                if (c.browser.msie) { var d = this.element.parent().css("overflow"); this.element.parent().css("overflow", "hidden") } b = this.element.parent().height(); c.browser.msie && this.element.parent().css("overflow", d); this.headers.each(function() { b -= c(this).outerHeight(true) }); this.headers.next().each(function() {
                                    c(this).height(Math.max(0, b - c(this).innerHeight() +
c(this).height()))
                                }).css("overflow", "auto")
                            } else if (a.autoHeight) { b = 0; this.headers.next().each(function() { b = Math.max(b, c(this).height("").height()) }).height(b) } return this
                        }, activate: function(a) { this.options.active = a; a = this._findActive(a)[0]; this._clickHandler({ target: a }, a); return this }, _findActive: function(a) { return a ? typeof a === "number" ? this.headers.filter(":eq(" + a + ")") : this.headers.not(this.headers.not(a)) : a === false ? c([]) : this.headers.filter(":eq(0)") }, _clickHandler: function(a, b) {
                            var d = this.options;
                            if (!d.disabled) if (a.target) {
                                a = c(a.currentTarget || b); b = a[0] === this.active[0]; d.active = d.collapsible && b ? false : this.headers.index(a); if (!(this.running || !d.collapsible && b)) {
                                    this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header); if (!b) {
                                        a.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected);
                                        a.next().addClass("ui-accordion-content-active")
                                    } h = a.next(); f = this.active.next(); g = { options: d, newHeader: b && d.collapsible ? c([]) : a, oldHeader: this.active, newContent: b && d.collapsible ? c([]) : h, oldContent: f }; d = this.headers.index(this.active[0]) > this.headers.index(a[0]); this.active = b ? c([]) : a; this._toggle(h, f, g, b, d)
                                } 
                            } else if (d.collapsible) {
                                this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header);
                                this.active.next().addClass("ui-accordion-content-active"); var f = this.active.next(), g = { options: d, newHeader: c([]), oldHeader: d.active, newContent: c([]), oldContent: f }, h = this.active = c([]); this._toggle(h, f, g)
                            } 
                        }, _toggle: function(a, b, d, f, g) {
                            var h = this, e = h.options; h.toShow = a; h.toHide = b; h.data = d; var j = function() { if (h) return h._completed.apply(h, arguments) }; h._trigger("changestart", null, h.data); h.running = b.size() === 0 ? a.size() : b.size(); if (e.animated) {
                                d = {}; d = e.collapsible && f ? { toShow: c([]), toHide: b, complete: j,
                                    down: g, autoHeight: e.autoHeight || e.fillSpace} : { toShow: a, toHide: b, complete: j, down: g, autoHeight: e.autoHeight || e.fillSpace }; if (!e.proxied) e.proxied = e.animated; if (!e.proxiedDuration) e.proxiedDuration = e.duration; e.animated = c.isFunction(e.proxied) ? e.proxied(d) : e.proxied; e.duration = c.isFunction(e.proxiedDuration) ? e.proxiedDuration(d) : e.proxiedDuration; f = c.ui.accordion.animations; var i = e.duration, k = e.animated; if (k && !f[k] && !c.easing[k]) k = "slide"; f[k] || (f[k] = function(l) { this.slide(l, { easing: k, duration: i || 700 }) });
                                    f[k](d)
                                } else { if (e.collapsible && f) a.toggle(); else { b.hide(); a.show() } j(true) } b.prev().attr({ "aria-expanded": "false", tabIndex: -1 }).blur(); a.prev().attr({ "aria-expanded": "true", tabIndex: 0 }).focus()
                            }, _completed: function(a) { this.running = a ? 0 : --this.running; if (!this.running) { this.options.clearStyle && this.toShow.add(this.toHide).css({ height: "", overflow: "" }); this.toHide.removeClass("ui-accordion-content-active"); this._trigger("change", null, this.data) } } 
                        }); c.extend(c.ui.accordion, { version: "1.8.4", animations: { slide: function(a,
b) {
                            a = c.extend({ easing: "swing", duration: 300 }, a, b); if (a.toHide.size()) if (a.toShow.size()) {
                                var d = a.toShow.css("overflow"), f = 0, g = {}, h = {}, e; b = a.toShow; e = b[0].style.width; b.width(parseInt(b.parent().width(), 10) - parseInt(b.css("paddingLeft"), 10) - parseInt(b.css("paddingRight"), 10) - (parseInt(b.css("borderLeftWidth"), 10) || 0) - (parseInt(b.css("borderRightWidth"), 10) || 0)); c.each(["height", "paddingTop", "paddingBottom"], function(j, i) {
                                    h[i] = "hide"; j = ("" + c.css(a.toShow[0], i)).match(/^([\d+-.]+)(.*)$/); g[i] = { value: j[1],
                                        unit: j[2] || "px"}
                                    }); a.toShow.css({ height: 0, overflow: "hidden" }).show(); a.toHide.filter(":hidden").each(a.complete).end().filter(":visible").animate(h, { step: function(j, i) { if (i.prop == "height") f = i.end - i.start === 0 ? 0 : (i.now - i.start) / (i.end - i.start); a.toShow[0].style[i.prop] = f * g[i.prop].value + g[i.prop].unit }, duration: a.duration, easing: a.easing, complete: function() { a.autoHeight || a.toShow.css("height", ""); a.toShow.css({ width: e, overflow: d }); a.complete() } })
                                } else a.toHide.animate({ height: "hide", paddingTop: "hide",
                                    paddingBottom: "hide"
                                }, a); else a.toShow.animate({ height: "show", paddingTop: "show", paddingBottom: "show" }, a)
                            }, bounceslide: function(a) { this.slide(a, { easing: a.down ? "easeOutBounce" : "swing", duration: a.down ? 1E3 : 200 }) } }
                        })
                    })(jQuery);
                    (function(e) {
                        e.widget("ui.autocomplete", { options: { appendTo: "body", delay: 300, minLength: 1, position: { my: "left top", at: "left bottom", collision: "none" }, source: null }, _create: function() {
                            var a = this, b = this.element[0].ownerDocument; this.element.addClass("ui-autocomplete-input").attr("autocomplete", "off").attr({ role: "textbox", "aria-autocomplete": "list", "aria-haspopup": "true" }).bind("keydown.autocomplete", function(c) {
                                if (!a.options.disabled) {
                                    var d = e.ui.keyCode; switch (c.keyCode) {
                                        case d.PAGE_UP: a._move("previousPage",
c); break; case d.PAGE_DOWN: a._move("nextPage", c); break; case d.UP: a._move("previous", c); c.preventDefault(); break; case d.DOWN: a._move("next", c); c.preventDefault(); break; case d.ENTER: case d.NUMPAD_ENTER: a.menu.element.is(":visible") && c.preventDefault(); case d.TAB: if (!a.menu.active) return; a.menu.select(c); break; case d.ESCAPE: a.element.val(a.term); a.close(c); break; default: clearTimeout(a.searching); a.searching = setTimeout(function() { if (a.term != a.element.val()) { a.selectedItem = null; a.search(null, c) } }, a.options.delay);
                                            break
                                    } 
                                } 
                            }).bind("focus.autocomplete", function() { if (!a.options.disabled) { a.selectedItem = null; a.previous = a.element.val() } }).bind("blur.autocomplete", function(c) { if (!a.options.disabled) { clearTimeout(a.searching); a.closing = setTimeout(function() { a.close(c); a._change(c) }, 150) } }); this._initSource(); this.response = function() { return a._response.apply(a, arguments) }; this.menu = e("<ul></ul>").addClass("ui-autocomplete").appendTo(e(this.options.appendTo || "body", b)[0]).mousedown(function(c) {
                                var d = a.menu.element[0];
                                c.target === d && setTimeout(function() { e(document).one("mousedown", function(f) { f.target !== a.element[0] && f.target !== d && !e.ui.contains(d, f.target) && a.close() }) }, 1); setTimeout(function() { clearTimeout(a.closing) }, 13)
                            }).menu({ focus: function(c, d) { d = d.item.data("item.autocomplete"); false !== a._trigger("focus", null, { item: d }) && /^key/.test(c.originalEvent.type) && a.element.val(d.value) }, selected: function(c, d) {
                                d = d.item.data("item.autocomplete"); var f = a.previous; if (a.element[0] !== b.activeElement) {
                                    a.element.focus();
                                    a.previous = f
                                } false !== a._trigger("select", c, { item: d }) && a.element.val(d.value); a.close(c); a.selectedItem = d
                            }, blur: function() { a.menu.element.is(":visible") && a.element.val() !== a.term && a.element.val(a.term) } 
                            }).zIndex(this.element.zIndex() + 1).css({ top: 0, left: 0 }).hide().data("menu"); e.fn.bgiframe && this.menu.element.bgiframe()
                        }, destroy: function() {
                            this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup"); this.menu.element.remove();
                            e.Widget.prototype.destroy.call(this)
                        }, _setOption: function(a, b) { e.Widget.prototype._setOption.apply(this, arguments); a === "source" && this._initSource(); if (a === "appendTo") this.menu.element.appendTo(e(b || "body", this.element[0].ownerDocument)[0]) }, _initSource: function() {
                            var a, b; if (e.isArray(this.options.source)) { a = this.options.source; this.source = function(c, d) { d(e.ui.autocomplete.filter(a, c.term)) } } else if (typeof this.options.source === "string") {
                                b = this.options.source; this.source = function(c, d) {
                                    e.getJSON(b,
c, d)
                                } 
                            } else this.source = this.options.source
                        }, search: function(a, b) { a = a != null ? a : this.element.val(); if (a.length < this.options.minLength) return this.close(b); clearTimeout(this.closing); if (this._trigger("search") !== false) return this._search(a) }, _search: function(a) { this.term = this.element.addClass("ui-autocomplete-loading").val(); this.source({ term: a }, this.response) }, _response: function(a) { if (a.length) { a = this._normalize(a); this._suggest(a); this._trigger("open") } else this.close(); this.element.removeClass("ui-autocomplete-loading") },
                            close: function(a) { clearTimeout(this.closing); if (this.menu.element.is(":visible")) { this._trigger("close", a); this.menu.element.hide(); this.menu.deactivate() } }, _change: function(a) { this.previous !== this.element.val() && this._trigger("change", a, { item: this.selectedItem }) }, _normalize: function(a) { if (a.length && a[0].label && a[0].value) return a; return e.map(a, function(b) { if (typeof b === "string") return { label: b, value: b }; return e.extend({ label: b.label || b.value, value: b.value || b.label }, b) }) }, _suggest: function(a) {
                                var b =
this.menu.element.empty().zIndex(this.element.zIndex() + 1), c; this._renderMenu(b, a); this.menu.deactivate(); this.menu.refresh(); this.menu.element.show().position(e.extend({ of: this.element }, this.options.position)); a = b.width("").outerWidth(); c = this.element.outerWidth(); b.outerWidth(Math.max(a, c))
                            }, _renderMenu: function(a, b) { var c = this; e.each(b, function(d, f) { c._renderItem(a, f) }) }, _renderItem: function(a, b) { return e("<li></li>").data("item.autocomplete", b).append(e("<a></a>").text(b.label)).appendTo(a) }, _move: function(a,
b) { if (this.menu.element.is(":visible")) if (this.menu.first() && /^previous/.test(a) || this.menu.last() && /^next/.test(a)) { this.element.val(this.term); this.menu.deactivate() } else this.menu[a](b); else this.search(null, b) }, widget: function() { return this.menu.element } 
                        }); e.extend(e.ui.autocomplete, { escapeRegex: function(a) { return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g, "\\$&") }, filter: function(a, b) {
                            var c = new RegExp(e.ui.autocomplete.escapeRegex(b), "i"); return e.grep(a, function(d) {
                                return c.test(d.label || d.value ||
d)
                            })
                        } 
                        })
                    })(jQuery);
                    (function(e) {
                        e.widget("ui.menu", { _create: function() { var a = this; this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({ role: "listbox", "aria-activedescendant": "ui-active-menuitem" }).click(function(b) { if (e(b.target).closest(".ui-menu-item a").length) { b.preventDefault(); a.select(b) } }); this.refresh() }, refresh: function() {
                            var a = this; this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role", "menuitem").children("a").addClass("ui-corner-all").attr("tabindex", -1).mouseenter(function(b) {
                                a.activate(b,
e(this).parent())
                            }).mouseleave(function() { a.deactivate() })
                        }, activate: function(a, b) { this.deactivate(); if (this.hasScroll()) { var c = b.offset().top - this.element.offset().top, d = this.element.attr("scrollTop"), f = this.element.height(); if (c < 0) this.element.attr("scrollTop", d + c); else c > f && this.element.attr("scrollTop", d + c - f + b.height()) } this.active = b.eq(0).children("a").addClass("ui-state-hover").attr("id", "ui-active-menuitem").end(); this._trigger("focus", a, { item: b }) }, deactivate: function() {
                            if (this.active) {
                                this.active.children("a").removeClass("ui-state-hover").removeAttr("id");
                                this._trigger("blur"); this.active = null
                            } 
                        }, next: function(a) { this.move("next", ".ui-menu-item:first", a) }, previous: function(a) { this.move("prev", ".ui-menu-item:last", a) }, first: function() { return this.active && !this.active.prevAll(".ui-menu-item").length }, last: function() { return this.active && !this.active.nextAll(".ui-menu-item").length }, move: function(a, b, c) {
                            if (this.active) { a = this.active[a + "All"](".ui-menu-item").eq(0); a.length ? this.activate(c, a) : this.activate(c, this.element.children(b)) } else this.activate(c,
this.element.children(b))
                        }, nextPage: function(a) { if (this.hasScroll()) if (!this.active || this.last()) this.activate(a, this.element.children(":first")); else { var b = this.active.offset().top, c = this.element.height(), d = this.element.children("li").filter(function() { var f = e(this).offset().top - b - c + e(this).height(); return f < 10 && f > -10 }); d.length || (d = this.element.children(":last")); this.activate(a, d) } else this.activate(a, this.element.children(!this.active || this.last() ? ":first" : ":last")) }, previousPage: function(a) {
                            if (this.hasScroll()) if (!this.active ||
this.first()) this.activate(a, this.element.children(":last")); else { var b = this.active.offset().top, c = this.element.height(); result = this.element.children("li").filter(function() { var d = e(this).offset().top - b + c - e(this).height(); return d < 10 && d > -10 }); result.length || (result = this.element.children(":first")); this.activate(a, result) } else this.activate(a, this.element.children(!this.active || this.first() ? ":last" : ":first"))
                        }, hasScroll: function() { return this.element.height() < this.element.attr("scrollHeight") }, select: function(a) {
                            this._trigger("selected",
a, { item: this.active })
                        } 
                        })
                    })(jQuery);
                    (function(a) {
                        var g, i = function(b) { a(":ui-button", b.target.form).each(function() { var c = a(this).data("button"); setTimeout(function() { c.refresh() }, 1) }) }, h = function(b) { var c = b.name, d = b.form, e = a([]); if (c) e = d ? a(d).find("[name='" + c + "']") : a("[name='" + c + "']", b.ownerDocument).filter(function() { return !this.form }); return e }; a.widget("ui.button", { options: { text: true, label: null, icons: { primary: null, secondary: null} }, _create: function() {
                            this.element.closest("form").unbind("reset.button").bind("reset.button", i); this._determineButtonType();
                            this.hasTitle = !!this.buttonElement.attr("title"); var b = this, c = this.options, d = this.type === "checkbox" || this.type === "radio", e = "ui-state-hover" + (!d ? " ui-state-active" : ""); if (c.label === null) c.label = this.buttonElement.html(); if (this.element.is(":disabled")) c.disabled = true; this.buttonElement.addClass("ui-button ui-widget ui-state-default ui-corner-all").attr("role", "button").bind("mouseenter.button", function() { if (!c.disabled) { a(this).addClass("ui-state-hover"); this === g && a(this).addClass("ui-state-active") } }).bind("mouseleave.button",
function() { c.disabled || a(this).removeClass(e) }).bind("focus.button", function() { a(this).addClass("ui-state-focus") }).bind("blur.button", function() { a(this).removeClass("ui-state-focus") }); d && this.element.bind("change.button", function() { b.refresh() }); if (this.type === "checkbox") this.buttonElement.bind("click.button", function() { if (c.disabled) return false; a(this).toggleClass("ui-state-active"); b.buttonElement.attr("aria-pressed", b.element[0].checked) }); else if (this.type === "radio") this.buttonElement.bind("click.button",
function() { if (c.disabled) return false; a(this).addClass("ui-state-active"); b.buttonElement.attr("aria-pressed", true); var f = b.element[0]; h(f).not(f).map(function() { return a(this).button("widget")[0] }).removeClass("ui-state-active").attr("aria-pressed", false) }); else {
                                this.buttonElement.bind("mousedown.button", function() { if (c.disabled) return false; a(this).addClass("ui-state-active"); g = this; a(document).one("mouseup", function() { g = null }) }).bind("mouseup.button", function() { if (c.disabled) return false; a(this).removeClass("ui-state-active") }).bind("keydown.button",
function(f) { if (c.disabled) return false; if (f.keyCode == a.ui.keyCode.SPACE || f.keyCode == a.ui.keyCode.ENTER) a(this).addClass("ui-state-active") }).bind("keyup.button", function() { a(this).removeClass("ui-state-active") }); this.buttonElement.is("a") && this.buttonElement.keyup(function(f) { f.keyCode === a.ui.keyCode.SPACE && a(this).click() })
                            } this._setOption("disabled", c.disabled)
                        }, _determineButtonType: function() {
                            this.type = this.element.is(":checkbox") ? "checkbox" : this.element.is(":radio") ? "radio" : this.element.is("input") ?
"input" : "button"; if (this.type === "checkbox" || this.type === "radio") { this.buttonElement = this.element.parents().last().find("label[for=" + this.element.attr("id") + "]"); this.element.addClass("ui-helper-hidden-accessible"); var b = this.element.is(":checked"); b && this.buttonElement.addClass("ui-state-active"); this.buttonElement.attr("aria-pressed", b) } else this.buttonElement = this.element
                        }, widget: function() { return this.buttonElement }, destroy: function() {
                            this.element.removeClass("ui-helper-hidden-accessible"); this.buttonElement.removeClass("ui-button ui-widget ui-state-default ui-corner-all ui-state-hover ui-state-active  ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only").removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());
                            this.hasTitle || this.buttonElement.removeAttr("title"); a.Widget.prototype.destroy.call(this)
                        }, _setOption: function(b, c) { a.Widget.prototype._setOption.apply(this, arguments); if (b === "disabled") c ? this.element.attr("disabled", true) : this.element.removeAttr("disabled"); this._resetButton() }, refresh: function() {
                            var b = this.element.is(":disabled"); b !== this.options.disabled && this._setOption("disabled", b); if (this.type === "radio") h(this.element[0]).each(function() {
                                a(this).is(":checked") ? a(this).button("widget").addClass("ui-state-active").attr("aria-pressed",
true) : a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed", false)
                            }); else if (this.type === "checkbox") this.element.is(":checked") ? this.buttonElement.addClass("ui-state-active").attr("aria-pressed", true) : this.buttonElement.removeClass("ui-state-active").attr("aria-pressed", false)
                        }, _resetButton: function() {
                            if (this.type === "input") this.options.label && this.element.val(this.options.label); else {
                                var b = this.buttonElement.removeClass("ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only"),
c = a("<span></span>").addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(), d = this.options.icons, e = d.primary && d.secondary; if (d.primary || d.secondary) {
                                    b.addClass("ui-button-text-icon" + (e ? "s" : d.primary ? "-primary" : "-secondary")); d.primary && b.prepend("<span class='ui-button-icon-primary ui-icon " + d.primary + "'></span>"); d.secondary && b.append("<span class='ui-button-icon-secondary ui-icon " + d.secondary + "'></span>"); if (!this.options.text) {
                                        b.addClass(e ? "ui-button-icons-only" : "ui-button-icon-only").removeClass("ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary");
                                        this.hasTitle || b.attr("title", c)
                                    } 
                                } else b.addClass("ui-button-text-only")
                            } 
                        } 
                        }); a.widget("ui.buttonset", { _create: function() { this.element.addClass("ui-buttonset"); this._init() }, _init: function() { this.refresh() }, _setOption: function(b, c) { b === "disabled" && this.buttons.button("option", b, c); a.Widget.prototype._setOption.apply(this, arguments) }, refresh: function() { this.buttons = this.element.find(":button, :submit, :reset, :checkbox, :radio, a, :data(button)").filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function() { return a(this).button("widget")[0] }).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass("ui-corner-left").end().filter(":last").addClass("ui-corner-right").end().end() },
                            destroy: function() { this.element.removeClass("ui-buttonset"); this.buttons.map(function() { return a(this).button("widget")[0] }).removeClass("ui-corner-left ui-corner-right").end().button("destroy"); a.Widget.prototype.destroy.call(this) } 
                        })
                    })(jQuery);
                    (function(d, G) {
                        function L() {
                            this.debug = false; this._curInst = null; this._keyEvent = false; this._disabledInputs = []; this._inDialog = this._datepickerShowing = false; this._mainDivId = "ui-datepicker-div"; this._inlineClass = "ui-datepicker-inline"; this._appendClass = "ui-datepicker-append"; this._triggerClass = "ui-datepicker-trigger"; this._dialogClass = "ui-datepicker-dialog"; this._disableClass = "ui-datepicker-disabled"; this._unselectableClass = "ui-datepicker-unselectable"; this._currentClass = "ui-datepicker-current-day"; this._dayOverClass =
"ui-datepicker-days-cell-over"; this.regional = []; this.regional[""] = { closeText: "Done", prevText: "Prev", nextText: "Next", currentText: "Today", monthNames: ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"], monthNamesShort: ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"], dayNames: ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"], dayNamesShort: ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"], dayNamesMin: ["Su",
"Mo", "Tu", "We", "Th", "Fr", "Sa"], weekHeader: "Wk", dateFormat: "mm/dd/yy", firstDay: 0, isRTL: false, showMonthAfterYear: false, yearSuffix: ""
}; this._defaults = { showOn: "focus", showAnim: "fadeIn", showOptions: {}, defaultDate: null, appendText: "", buttonText: "...", buttonImage: "", buttonImageOnly: false, hideIfNoPrevNext: false, navigationAsDateFormat: false, gotoCurrent: false, changeMonth: false, changeYear: false, yearRange: "c-10:c+10", showOtherMonths: false, selectOtherMonths: false, showWeek: false, calculateWeek: this.iso8601Week, shortYearCutoff: "+10",
    minDate: null, maxDate: null, duration: "fast", beforeShowDay: null, beforeShow: null, onSelect: null, onChangeMonthYear: null, onClose: null, numberOfMonths: 1, showCurrentAtPos: 0, stepMonths: 1, stepBigMonths: 12, altField: "", altFormat: "", constrainInput: true, showButtonPanel: false, autoSize: false
}; d.extend(this._defaults, this.regional[""]); this.dpDiv = d('<div id="' + this._mainDivId + '" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all ui-helper-hidden-accessible"></div>')
                        } function E(a, b) {
                            d.extend(a,
b); for (var c in b) if (b[c] == null || b[c] == G) a[c] = b[c]; return a
                        } d.extend(d.ui, { datepicker: { version: "1.8.4"} }); var y = (new Date).getTime(); d.extend(L.prototype, { markerClassName: "hasDatepicker", log: function() { this.debug && console.log.apply("", arguments) }, _widgetDatepicker: function() { return this.dpDiv }, setDefaults: function(a) { E(this._defaults, a || {}); return this }, _attachDatepicker: function(a, b) {
                            var c = null; for (var e in this._defaults) {
                                var f = a.getAttribute("date:" + e); if (f) {
                                    c = c || {}; try { c[e] = eval(f) } catch (h) {
                                        c[e] =
f
                                    } 
                                } 
                            } e = a.nodeName.toLowerCase(); f = e == "div" || e == "span"; if (!a.id) { this.uuid += 1; a.id = "dp" + this.uuid } var i = this._newInst(d(a), f); i.settings = d.extend({}, b || {}, c || {}); if (e == "input") this._connectDatepicker(a, i); else f && this._inlineDatepicker(a, i)
                        }, _newInst: function(a, b) { return { id: a[0].id.replace(/([^A-Za-z0-9_])/g, "\\\\$1"), input: a, selectedDay: 0, selectedMonth: 0, selectedYear: 0, drawMonth: 0, drawYear: 0, inline: b, dpDiv: !b ? this.dpDiv : d('<div class="' + this._inlineClass + ' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')} },
                            _connectDatepicker: function(a, b) { var c = d(a); b.append = d([]); b.trigger = d([]); if (!c.hasClass(this.markerClassName)) { this._attachments(c, b); c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker", function(e, f, h) { b.settings[f] = h }).bind("getData.datepicker", function(e, f) { return this._get(b, f) }); this._autoSize(b); d.data(a, "datepicker", b) } }, _attachments: function(a, b) {
                                var c = this._get(b, "appendText"), e = this._get(b, "isRTL"); b.append &&
b.append.remove(); if (c) { b.append = d('<span class="' + this._appendClass + '">' + c + "</span>"); a[e ? "before" : "after"](b.append) } a.unbind("focus", this._showDatepicker); b.trigger && b.trigger.remove(); c = this._get(b, "showOn"); if (c == "focus" || c == "both") a.focus(this._showDatepicker); if (c == "button" || c == "both") {
                                    c = this._get(b, "buttonText"); var f = this._get(b, "buttonImage"); b.trigger = d(this._get(b, "buttonImageOnly") ? d("<img/>").addClass(this._triggerClass).attr({ src: f, alt: c, title: c }) : d('<button type="button"></button>').addClass(this._triggerClass).html(f ==
"" ? c : d("<img/>").attr({ src: f, alt: c, title: c }))); a[e ? "before" : "after"](b.trigger); b.trigger.click(function() { d.datepicker._datepickerShowing && d.datepicker._lastInput == a[0] ? d.datepicker._hideDatepicker() : d.datepicker._showDatepicker(a[0]); return false })
                                } 
                            }, _autoSize: function(a) {
                                if (this._get(a, "autoSize") && !a.inline) {
                                    var b = new Date(2009, 11, 20), c = this._get(a, "dateFormat"); if (c.match(/[DM]/)) {
                                        var e = function(f) { for (var h = 0, i = 0, g = 0; g < f.length; g++) if (f[g].length > h) { h = f[g].length; i = g } return i }; b.setMonth(e(this._get(a,
c.match(/MM/) ? "monthNames" : "monthNamesShort"))); b.setDate(e(this._get(a, c.match(/DD/) ? "dayNames" : "dayNamesShort")) + 20 - b.getDay())
                                    } a.input.attr("size", this._formatDate(a, b).length)
                                } 
                            }, _inlineDatepicker: function(a, b) {
                                var c = d(a); if (!c.hasClass(this.markerClassName)) {
                                    c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker", function(e, f, h) { b.settings[f] = h }).bind("getData.datepicker", function(e, f) { return this._get(b, f) }); d.data(a, "datepicker", b); this._setDate(b, this._getDefaultDate(b),
true); this._updateDatepicker(b); this._updateAlternate(b)
                                } 
                            }, _dialogDatepicker: function(a, b, c, e, f) {
                                a = this._dialogInst; if (!a) { this.uuid += 1; this._dialogInput = d('<input type="text" id="' + ("dp" + this.uuid) + '" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>'); this._dialogInput.keydown(this._doKeyDown); d("body").append(this._dialogInput); a = this._dialogInst = this._newInst(this._dialogInput, false); a.settings = {}; d.data(this._dialogInput[0], "datepicker", a) } E(a.settings, e || {}); b = b && b.constructor ==
Date ? this._formatDate(a, b) : b; this._dialogInput.val(b); this._pos = f ? f.length ? f : [f.pageX, f.pageY] : null; if (!this._pos) this._pos = [document.documentElement.clientWidth / 2 - 100 + (document.documentElement.scrollLeft || document.body.scrollLeft), document.documentElement.clientHeight / 2 - 150 + (document.documentElement.scrollTop || document.body.scrollTop)]; this._dialogInput.css("left", this._pos[0] + 20 + "px").css("top", this._pos[1] + "px"); a.settings.onSelect = c; this._inDialog = true; this.dpDiv.addClass(this._dialogClass); this._showDatepicker(this._dialogInput[0]);
                                d.blockUI && d.blockUI(this.dpDiv); d.data(this._dialogInput[0], "datepicker", a); return this
                            }, _destroyDatepicker: function(a) { var b = d(a), c = d.data(a, "datepicker"); if (b.hasClass(this.markerClassName)) { var e = a.nodeName.toLowerCase(); d.removeData(a, "datepicker"); if (e == "input") { c.append.remove(); c.trigger.remove(); b.removeClass(this.markerClassName).unbind("focus", this._showDatepicker).unbind("keydown", this._doKeyDown).unbind("keypress", this._doKeyPress).unbind("keyup", this._doKeyUp) } else if (e == "div" || e == "span") b.removeClass(this.markerClassName).empty() } },
                            _enableDatepicker: function(a) { var b = d(a), c = d.data(a, "datepicker"); if (b.hasClass(this.markerClassName)) { var e = a.nodeName.toLowerCase(); if (e == "input") { a.disabled = false; c.trigger.filter("button").each(function() { this.disabled = false }).end().filter("img").css({ opacity: "1.0", cursor: "" }) } else if (e == "div" || e == "span") b.children("." + this._inlineClass).children().removeClass("ui-state-disabled"); this._disabledInputs = d.map(this._disabledInputs, function(f) { return f == a ? null : f }) } }, _disableDatepicker: function(a) {
                                var b =
d(a), c = d.data(a, "datepicker"); if (b.hasClass(this.markerClassName)) { var e = a.nodeName.toLowerCase(); if (e == "input") { a.disabled = true; c.trigger.filter("button").each(function() { this.disabled = true }).end().filter("img").css({ opacity: "0.5", cursor: "default" }) } else if (e == "div" || e == "span") b.children("." + this._inlineClass).children().addClass("ui-state-disabled"); this._disabledInputs = d.map(this._disabledInputs, function(f) { return f == a ? null : f }); this._disabledInputs[this._disabledInputs.length] = a } 
                            }, _isDisabledDatepicker: function(a) {
                                if (!a) return false;
                                for (var b = 0; b < this._disabledInputs.length; b++) if (this._disabledInputs[b] == a) return true; return false
                            }, _getInst: function(a) { try { return d.data(a, "datepicker") } catch (b) { throw "Missing instance data for this datepicker"; } }, _optionDatepicker: function(a, b, c) {
                                var e = this._getInst(a); if (arguments.length == 2 && typeof b == "string") return b == "defaults" ? d.extend({}, d.datepicker._defaults) : e ? b == "all" ? d.extend({}, e.settings) : this._get(e, b) : null; var f = b || {}; if (typeof b == "string") { f = {}; f[b] = c } if (e) {
                                    this._curInst == e &&
this._hideDatepicker(); var h = this._getDateDatepicker(a, true); E(e.settings, f); this._attachments(d(a), e); this._autoSize(e); this._setDateDatepicker(a, h); this._updateDatepicker(e)
                                } 
                            }, _changeDatepicker: function(a, b, c) { this._optionDatepicker(a, b, c) }, _refreshDatepicker: function(a) { (a = this._getInst(a)) && this._updateDatepicker(a) }, _setDateDatepicker: function(a, b) { if (a = this._getInst(a)) { this._setDate(a, b); this._updateDatepicker(a); this._updateAlternate(a) } }, _getDateDatepicker: function(a, b) {
                                (a = this._getInst(a)) &&
!a.inline && this._setDateFromField(a, b); return a ? this._getDate(a) : null
                            }, _doKeyDown: function(a) {
                                var b = d.datepicker._getInst(a.target), c = true, e = b.dpDiv.is(".ui-datepicker-rtl"); b._keyEvent = true; if (d.datepicker._datepickerShowing) switch (a.keyCode) {
                                    case 9: d.datepicker._hideDatepicker(); c = false; break; case 13: c = d("td." + d.datepicker._dayOverClass, b.dpDiv).add(d("td." + d.datepicker._currentClass, b.dpDiv)); c[0] ? d.datepicker._selectDay(a.target, b.selectedMonth, b.selectedYear, c[0]) : d.datepicker._hideDatepicker();
                                        return false; case 27: d.datepicker._hideDatepicker(); break; case 33: d.datepicker._adjustDate(a.target, a.ctrlKey ? -d.datepicker._get(b, "stepBigMonths") : -d.datepicker._get(b, "stepMonths"), "M"); break; case 34: d.datepicker._adjustDate(a.target, a.ctrlKey ? +d.datepicker._get(b, "stepBigMonths") : +d.datepicker._get(b, "stepMonths"), "M"); break; case 35: if (a.ctrlKey || a.metaKey) d.datepicker._clearDate(a.target); c = a.ctrlKey || a.metaKey; break; case 36: if (a.ctrlKey || a.metaKey) d.datepicker._gotoToday(a.target); c = a.ctrlKey ||
a.metaKey; break; case 37: if (a.ctrlKey || a.metaKey) d.datepicker._adjustDate(a.target, e ? +1 : -1, "D"); c = a.ctrlKey || a.metaKey; if (a.originalEvent.altKey) d.datepicker._adjustDate(a.target, a.ctrlKey ? -d.datepicker._get(b, "stepBigMonths") : -d.datepicker._get(b, "stepMonths"), "M"); break; case 38: if (a.ctrlKey || a.metaKey) d.datepicker._adjustDate(a.target, -7, "D"); c = a.ctrlKey || a.metaKey; break; case 39: if (a.ctrlKey || a.metaKey) d.datepicker._adjustDate(a.target, e ? -1 : +1, "D"); c = a.ctrlKey || a.metaKey; if (a.originalEvent.altKey) d.datepicker._adjustDate(a.target,
a.ctrlKey ? +d.datepicker._get(b, "stepBigMonths") : +d.datepicker._get(b, "stepMonths"), "M"); break; case 40: if (a.ctrlKey || a.metaKey) d.datepicker._adjustDate(a.target, +7, "D"); c = a.ctrlKey || a.metaKey; break; default: c = false
                                } else if (a.keyCode == 36 && a.ctrlKey) d.datepicker._showDatepicker(this); else c = false; if (c) { a.preventDefault(); a.stopPropagation() } 
                            }, _doKeyPress: function(a) {
                                var b = d.datepicker._getInst(a.target); if (d.datepicker._get(b, "constrainInput")) {
                                    b = d.datepicker._possibleChars(d.datepicker._get(b, "dateFormat"));
                                    var c = String.fromCharCode(a.charCode == G ? a.keyCode : a.charCode); return a.ctrlKey || c < " " || !b || b.indexOf(c) > -1
                                } 
                            }, _doKeyUp: function(a) { a = d.datepicker._getInst(a.target); if (a.input.val() != a.lastVal) try { if (d.datepicker.parseDate(d.datepicker._get(a, "dateFormat"), a.input ? a.input.val() : null, d.datepicker._getFormatConfig(a))) { d.datepicker._setDateFromField(a); d.datepicker._updateAlternate(a); d.datepicker._updateDatepicker(a) } } catch (b) { d.datepicker.log(b) } return true }, _showDatepicker: function(a) {
                                a = a.target ||
a; if (a.nodeName.toLowerCase() != "input") a = d("input", a.parentNode)[0]; if (!(d.datepicker._isDisabledDatepicker(a) || d.datepicker._lastInput == a)) {
                                    var b = d.datepicker._getInst(a); d.datepicker._curInst && d.datepicker._curInst != b && d.datepicker._curInst.dpDiv.stop(true, true); var c = d.datepicker._get(b, "beforeShow"); E(b.settings, c ? c.apply(a, [a, b]) : {}); b.lastVal = null; d.datepicker._lastInput = a; d.datepicker._setDateFromField(b); if (d.datepicker._inDialog) a.value = ""; if (!d.datepicker._pos) {
                                        d.datepicker._pos = d.datepicker._findPos(a);
                                        d.datepicker._pos[1] += a.offsetHeight
                                    } var e = false; d(a).parents().each(function() { e |= d(this).css("position") == "fixed"; return !e }); if (e && d.browser.opera) { d.datepicker._pos[0] -= document.documentElement.scrollLeft; d.datepicker._pos[1] -= document.documentElement.scrollTop } c = { left: d.datepicker._pos[0], top: d.datepicker._pos[1] }; d.datepicker._pos = null; b.dpDiv.css({ position: "absolute", display: "block", top: "-1000px" }); d.datepicker._updateDatepicker(b); c = d.datepicker._checkOffset(b, c, e); b.dpDiv.css({ position: d.datepicker._inDialog &&
d.blockUI ? "static" : e ? "fixed" : "absolute", display: "none", left: c.left + "px", top: c.top + "px"
                                    }); if (!b.inline) {
                                        c = d.datepicker._get(b, "showAnim"); var f = d.datepicker._get(b, "duration"), h = function() { d.datepicker._datepickerShowing = true; var i = d.datepicker._getBorders(b.dpDiv); b.dpDiv.find("iframe.ui-datepicker-cover").css({ left: -i[0], top: -i[1], width: b.dpDiv.outerWidth(), height: b.dpDiv.outerHeight() }) }; b.dpDiv.zIndex(d(a).zIndex() + 1); d.effects && d.effects[c] ? b.dpDiv.show(c, d.datepicker._get(b, "showOptions"), f,
h) : b.dpDiv[c || "show"](c ? f : null, h); if (!c || !f) h(); b.input.is(":visible") && !b.input.is(":disabled") && b.input.focus(); d.datepicker._curInst = b
                                    } 
                                } 
                            }, _updateDatepicker: function(a) {
                                var b = this, c = d.datepicker._getBorders(a.dpDiv); a.dpDiv.empty().append(this._generateHTML(a)).find("iframe.ui-datepicker-cover").css({ left: -c[0], top: -c[1], width: a.dpDiv.outerWidth(), height: a.dpDiv.outerHeight() }).end().find("button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a").bind("mouseout", function() {
                                    d(this).removeClass("ui-state-hover");
                                    this.className.indexOf("ui-datepicker-prev") != -1 && d(this).removeClass("ui-datepicker-prev-hover"); this.className.indexOf("ui-datepicker-next") != -1 && d(this).removeClass("ui-datepicker-next-hover")
                                }).bind("mouseover", function() {
                                    if (!b._isDisabledDatepicker(a.inline ? a.dpDiv.parent()[0] : a.input[0])) {
                                        d(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"); d(this).addClass("ui-state-hover"); this.className.indexOf("ui-datepicker-prev") != -1 && d(this).addClass("ui-datepicker-prev-hover");
                                        this.className.indexOf("ui-datepicker-next") != -1 && d(this).addClass("ui-datepicker-next-hover")
                                    } 
                                }).end().find("." + this._dayOverClass + " a").trigger("mouseover").end(); c = this._getNumberOfMonths(a); var e = c[1]; e > 1 ? a.dpDiv.addClass("ui-datepicker-multi-" + e).css("width", 17 * e + "em") : a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""); a.dpDiv[(c[0] != 1 || c[1] != 1 ? "add" : "remove") + "Class"]("ui-datepicker-multi"); a.dpDiv[(this._get(a, "isRTL") ? "add" : "remove") + "Class"]("ui-datepicker-rtl");
                                a == d.datepicker._curInst && d.datepicker._datepickerShowing && a.input && a.input.is(":visible") && !a.input.is(":disabled") && a.input.focus()
                            }, _getBorders: function(a) { var b = function(c) { return { thin: 1, medium: 2, thick: 3}[c] || c }; return [parseFloat(b(a.css("border-left-width"))), parseFloat(b(a.css("border-top-width")))] }, _checkOffset: function(a, b, c) {
                                var e = a.dpDiv.outerWidth(), f = a.dpDiv.outerHeight(), h = a.input ? a.input.outerWidth() : 0, i = a.input ? a.input.outerHeight() : 0, g = document.documentElement.clientWidth + d(document).scrollLeft(),
k = document.documentElement.clientHeight + d(document).scrollTop(); b.left -= this._get(a, "isRTL") ? e - h : 0; b.left -= c && b.left == a.input.offset().left ? d(document).scrollLeft() : 0; b.top -= c && b.top == a.input.offset().top + i ? d(document).scrollTop() : 0; b.left -= Math.min(b.left, b.left + e > g && g > e ? Math.abs(b.left + e - g) : 0); b.top -= Math.min(b.top, b.top + f > k && k > f ? Math.abs(f + i) : 0); return b
                            }, _findPos: function(a) {
                                for (var b = this._get(this._getInst(a), "isRTL"); a && (a.type == "hidden" || a.nodeType != 1); ) a = a[b ? "previousSibling" : "nextSibling"];
                                a = d(a).offset(); return [a.left, a.top]
                            }, _hideDatepicker: function(a) {
                                var b = this._curInst; if (!(!b || a && b != d.data(a, "datepicker"))) if (this._datepickerShowing) {
                                    a = this._get(b, "showAnim"); var c = this._get(b, "duration"), e = function() { d.datepicker._tidyDialog(b); this._curInst = null }; d.effects && d.effects[a] ? b.dpDiv.hide(a, d.datepicker._get(b, "showOptions"), c, e) : b.dpDiv[a == "slideDown" ? "slideUp" : a == "fadeIn" ? "fadeOut" : "hide"](a ? c : null, e); a || e(); if (a = this._get(b, "onClose")) a.apply(b.input ? b.input[0] : null, [b.input ? b.input.val() :
"", b]); this._datepickerShowing = false; this._lastInput = null; if (this._inDialog) { this._dialogInput.css({ position: "absolute", left: "0", top: "-100px" }); if (d.blockUI) { d.unblockUI(); d("body").append(this.dpDiv) } } this._inDialog = false
                                } 
                            }, _tidyDialog: function(a) { a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar") }, _checkExternalClick: function(a) {
                                if (d.datepicker._curInst) {
                                    a = d(a.target); a[0].id != d.datepicker._mainDivId && a.parents("#" + d.datepicker._mainDivId).length == 0 && !a.hasClass(d.datepicker.markerClassName) &&
!a.hasClass(d.datepicker._triggerClass) && d.datepicker._datepickerShowing && !(d.datepicker._inDialog && d.blockUI) && d.datepicker._hideDatepicker()
                                } 
                            }, _adjustDate: function(a, b, c) { a = d(a); var e = this._getInst(a[0]); if (!this._isDisabledDatepicker(a[0])) { this._adjustInstDate(e, b + (c == "M" ? this._get(e, "showCurrentAtPos") : 0), c); this._updateDatepicker(e) } }, _gotoToday: function(a) {
                                a = d(a); var b = this._getInst(a[0]); if (this._get(b, "gotoCurrent") && b.currentDay) {
                                    b.selectedDay = b.currentDay; b.drawMonth = b.selectedMonth = b.currentMonth;
                                    b.drawYear = b.selectedYear = b.currentYear
                                } else { var c = new Date; b.selectedDay = c.getDate(); b.drawMonth = b.selectedMonth = c.getMonth(); b.drawYear = b.selectedYear = c.getFullYear() } this._notifyChange(b); this._adjustDate(a)
                            }, _selectMonthYear: function(a, b, c) { a = d(a); var e = this._getInst(a[0]); e._selectingMonthYear = false; e["selected" + (c == "M" ? "Month" : "Year")] = e["draw" + (c == "M" ? "Month" : "Year")] = parseInt(b.options[b.selectedIndex].value, 10); this._notifyChange(e); this._adjustDate(a) }, _clickMonthYear: function(a) {
                                var b =
this._getInst(d(a)[0]); b.input && b._selectingMonthYear && setTimeout(function() { b.input.focus() }, 0); b._selectingMonthYear = !b._selectingMonthYear
                            }, _selectDay: function(a, b, c, e) { var f = d(a); if (!(d(e).hasClass(this._unselectableClass) || this._isDisabledDatepicker(f[0]))) { f = this._getInst(f[0]); f.selectedDay = f.currentDay = d("a", e).html(); f.selectedMonth = f.currentMonth = b; f.selectedYear = f.currentYear = c; this._selectDate(a, this._formatDate(f, f.currentDay, f.currentMonth, f.currentYear)) } }, _clearDate: function(a) {
                                a =
d(a); this._getInst(a[0]); this._selectDate(a, "")
                            }, _selectDate: function(a, b) { a = this._getInst(d(a)[0]); b = b != null ? b : this._formatDate(a); a.input && a.input.val(b); this._updateAlternate(a); var c = this._get(a, "onSelect"); if (c) c.apply(a.input ? a.input[0] : null, [b, a]); else a.input && a.input.trigger("change"); if (a.inline) this._updateDatepicker(a); else { this._hideDatepicker(); this._lastInput = a.input[0]; typeof a.input[0] != "object" && a.input.focus(); this._lastInput = null } }, _updateAlternate: function(a) {
                                var b = this._get(a,
"altField"); if (b) { var c = this._get(a, "altFormat") || this._get(a, "dateFormat"), e = this._getDate(a), f = this.formatDate(c, e, this._getFormatConfig(a)); d(b).each(function() { d(this).val(f) }) } 
                            }, noWeekends: function(a) { a = a.getDay(); return [a > 0 && a < 6, ""] }, iso8601Week: function(a) { a = new Date(a.getTime()); a.setDate(a.getDate() + 4 - (a.getDay() || 7)); var b = a.getTime(); a.setMonth(0); a.setDate(1); return Math.floor(Math.round((b - a) / 864E5) / 7) + 1 }, parseDate: function(a, b, c) {
                                if (a == null || b == null) throw "Invalid arguments"; b = typeof b ==
"object" ? b.toString() : b + ""; if (b == "") return null; for (var e = (c ? c.shortYearCutoff : null) || this._defaults.shortYearCutoff, f = (c ? c.dayNamesShort : null) || this._defaults.dayNamesShort, h = (c ? c.dayNames : null) || this._defaults.dayNames, i = (c ? c.monthNamesShort : null) || this._defaults.monthNamesShort, g = (c ? c.monthNames : null) || this._defaults.monthNames, k = c = -1, l = -1, u = -1, j = false, o = function(p) { (p = z + 1 < a.length && a.charAt(z + 1) == p) && z++; return p }, m = function(p) {
    o(p); p = new RegExp("^\\d{1," + (p == "@" ? 14 : p == "!" ? 20 : p == "y" ? 4 : p == "o" ?
3 : 2) + "}"); p = b.substring(s).match(p); if (!p) throw "Missing number at position " + s; s += p[0].length; return parseInt(p[0], 10)
}, n = function(p, w, H) { p = o(p) ? H : w; for (w = 0; w < p.length; w++) if (b.substr(s, p[w].length) == p[w]) { s += p[w].length; return w + 1 } throw "Unknown name at position " + s; }, r = function() { if (b.charAt(s) != a.charAt(z)) throw "Unexpected literal at position " + s; s++ }, s = 0, z = 0; z < a.length; z++) if (j) if (a.charAt(z) == "'" && !o("'")) j = false; else r(); else switch (a.charAt(z)) {
                                    case "d": l = m("d"); break; case "D": n("D", f, h); break;
                                    case "o": u = m("o"); break; case "m": k = m("m"); break; case "M": k = n("M", i, g); break; case "y": c = m("y"); break; case "@": var v = new Date(m("@")); c = v.getFullYear(); k = v.getMonth() + 1; l = v.getDate(); break; case "!": v = new Date((m("!") - this._ticksTo1970) / 1E4); c = v.getFullYear(); k = v.getMonth() + 1; l = v.getDate(); break; case "'": if (o("'")) r(); else j = true; break; default: r()
                                } if (c == -1) c = (new Date).getFullYear(); else if (c < 100) c += (new Date).getFullYear() - (new Date).getFullYear() % 100 + (c <= e ? 0 : -100); if (u > -1) {
                                    k = 1; l = u; do {
                                        e = this._getDaysInMonth(c,
k - 1); if (l <= e) break; k++; l -= e
                                    } while (1)
                                } v = this._daylightSavingAdjust(new Date(c, k - 1, l)); if (v.getFullYear() != c || v.getMonth() + 1 != k || v.getDate() != l) throw "Invalid date"; return v
                            }, ATOM: "yy-mm-dd", COOKIE: "D, dd M yy", ISO_8601: "yy-mm-dd", RFC_822: "D, d M y", RFC_850: "DD, dd-M-y", RFC_1036: "D, d M y", RFC_1123: "D, d M yy", RFC_2822: "D, d M yy", RSS: "D, d M y", TICKS: "!", TIMESTAMP: "@", W3C: "yy-mm-dd", _ticksTo1970: (718685 + Math.floor(492.5) - Math.floor(19.7) + Math.floor(4.925)) * 24 * 60 * 60 * 1E7, formatDate: function(a, b, c) {
                                if (!b) return "";
                                var e = (c ? c.dayNamesShort : null) || this._defaults.dayNamesShort, f = (c ? c.dayNames : null) || this._defaults.dayNames, h = (c ? c.monthNamesShort : null) || this._defaults.monthNamesShort; c = (c ? c.monthNames : null) || this._defaults.monthNames; var i = function(o) { (o = j + 1 < a.length && a.charAt(j + 1) == o) && j++; return o }, g = function(o, m, n) { m = "" + m; if (i(o)) for (; m.length < n; ) m = "0" + m; return m }, k = function(o, m, n, r) { return i(o) ? r[m] : n[m] }, l = "", u = false; if (b) for (var j = 0; j < a.length; j++) if (u) if (a.charAt(j) == "'" && !i("'")) u = false; else l += a.charAt(j);
                                else switch (a.charAt(j)) { case "d": l += g("d", b.getDate(), 2); break; case "D": l += k("D", b.getDay(), e, f); break; case "o": l += g("o", (b.getTime() - (new Date(b.getFullYear(), 0, 0)).getTime()) / 864E5, 3); break; case "m": l += g("m", b.getMonth() + 1, 2); break; case "M": l += k("M", b.getMonth(), h, c); break; case "y": l += i("y") ? b.getFullYear() : (b.getYear() % 100 < 10 ? "0" : "") + b.getYear() % 100; break; case "@": l += b.getTime(); break; case "!": l += b.getTime() * 1E4 + this._ticksTo1970; break; case "'": if (i("'")) l += "'"; else u = true; break; default: l += a.charAt(j) } return l
                            },
                            _possibleChars: function(a) { for (var b = "", c = false, e = function(h) { (h = f + 1 < a.length && a.charAt(f + 1) == h) && f++; return h }, f = 0; f < a.length; f++) if (c) if (a.charAt(f) == "'" && !e("'")) c = false; else b += a.charAt(f); else switch (a.charAt(f)) { case "d": case "m": case "y": case "@": b += "0123456789"; break; case "D": case "M": return null; case "'": if (e("'")) b += "'"; else c = true; break; default: b += a.charAt(f) } return b }, _get: function(a, b) { return a.settings[b] !== G ? a.settings[b] : this._defaults[b] }, _setDateFromField: function(a, b) {
                                if (a.input.val() !=
a.lastVal) { var c = this._get(a, "dateFormat"), e = a.lastVal = a.input ? a.input.val() : null, f, h; f = h = this._getDefaultDate(a); var i = this._getFormatConfig(a); try { f = this.parseDate(c, e, i) || h } catch (g) { this.log(g); e = b ? "" : e } a.selectedDay = f.getDate(); a.drawMonth = a.selectedMonth = f.getMonth(); a.drawYear = a.selectedYear = f.getFullYear(); a.currentDay = e ? f.getDate() : 0; a.currentMonth = e ? f.getMonth() : 0; a.currentYear = e ? f.getFullYear() : 0; this._adjustInstDate(a) } 
                            }, _getDefaultDate: function(a) {
                                return this._restrictMinMax(a, this._determineDate(a,
this._get(a, "defaultDate"), new Date))
                            }, _determineDate: function(a, b, c) {
                                var e = function(h) { var i = new Date; i.setDate(i.getDate() + h); return i }, f = function(h) {
                                    try { return d.datepicker.parseDate(d.datepicker._get(a, "dateFormat"), h, d.datepicker._getFormatConfig(a)) } catch (i) { } var g = (h.toLowerCase().match(/^c/) ? d.datepicker._getDate(a) : null) || new Date, k = g.getFullYear(), l = g.getMonth(); g = g.getDate(); for (var u = /([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g, j = u.exec(h); j; ) {
                                        switch (j[2] || "d") {
                                            case "d": case "D": g += parseInt(j[1],
10); break; case "w": case "W": g += parseInt(j[1], 10) * 7; break; case "m": case "M": l += parseInt(j[1], 10); g = Math.min(g, d.datepicker._getDaysInMonth(k, l)); break; case "y": case "Y": k += parseInt(j[1], 10); g = Math.min(g, d.datepicker._getDaysInMonth(k, l)); break
                                        } j = u.exec(h)
                                    } return new Date(k, l, g)
                                }; if (b = (b = b == null ? c : typeof b == "string" ? f(b) : typeof b == "number" ? isNaN(b) ? c : e(b) : b) && b.toString() == "Invalid Date" ? c : b) { b.setHours(0); b.setMinutes(0); b.setSeconds(0); b.setMilliseconds(0) } return this._daylightSavingAdjust(b)
                            }, _daylightSavingAdjust: function(a) {
                                if (!a) return null;
                                a.setHours(a.getHours() > 12 ? a.getHours() + 2 : 0); return a
                            }, _setDate: function(a, b, c) { var e = !b, f = a.selectedMonth, h = a.selectedYear; b = this._restrictMinMax(a, this._determineDate(a, b, new Date)); a.selectedDay = a.currentDay = b.getDate(); a.drawMonth = a.selectedMonth = a.currentMonth = b.getMonth(); a.drawYear = a.selectedYear = a.currentYear = b.getFullYear(); if ((f != a.selectedMonth || h != a.selectedYear) && !c) this._notifyChange(a); this._adjustInstDate(a); if (a.input) a.input.val(e ? "" : this._formatDate(a)) }, _getDate: function(a) {
                                return !a.currentYear ||
a.input && a.input.val() == "" ? null : this._daylightSavingAdjust(new Date(a.currentYear, a.currentMonth, a.currentDay))
                            }, _generateHTML: function(a) {
                                var b = new Date; b = this._daylightSavingAdjust(new Date(b.getFullYear(), b.getMonth(), b.getDate())); var c = this._get(a, "isRTL"), e = this._get(a, "showButtonPanel"), f = this._get(a, "hideIfNoPrevNext"), h = this._get(a, "navigationAsDateFormat"), i = this._getNumberOfMonths(a), g = this._get(a, "showCurrentAtPos"), k = this._get(a, "stepMonths"), l = i[0] != 1 || i[1] != 1, u = this._daylightSavingAdjust(!a.currentDay ?
new Date(9999, 9, 9) : new Date(a.currentYear, a.currentMonth, a.currentDay)), j = this._getMinMaxDate(a, "min"), o = this._getMinMaxDate(a, "max"); g = a.drawMonth - g; var m = a.drawYear; if (g < 0) { g += 12; m-- } if (o) { var n = this._daylightSavingAdjust(new Date(o.getFullYear(), o.getMonth() - i[0] * i[1] + 1, o.getDate())); for (n = j && n < j ? j : n; this._daylightSavingAdjust(new Date(m, g, 1)) > n; ) { g--; if (g < 0) { g = 11; m-- } } } a.drawMonth = g; a.drawYear = m; n = this._get(a, "prevText"); n = !h ? n : this.formatDate(n, this._daylightSavingAdjust(new Date(m, g - k, 1)), this._getFormatConfig(a));
                                n = this._canAdjustMonth(a, -1, m, g) ? '<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_' + y + ".datepicker._adjustDate('#" + a.id + "', -" + k + ", 'M');\" title=\"" + n + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "e" : "w") + '">' + n + "</span></a>" : f ? "" : '<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="' + n + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "e" : "w") + '">' + n + "</span></a>"; var r = this._get(a, "nextText"); r = !h ? r : this.formatDate(r, this._daylightSavingAdjust(new Date(m,
g + k, 1)), this._getFormatConfig(a)); f = this._canAdjustMonth(a, +1, m, g) ? '<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_' + y + ".datepicker._adjustDate('#" + a.id + "', +" + k + ", 'M');\" title=\"" + r + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "w" : "e") + '">' + r + "</span></a>" : f ? "" : '<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="' + r + '"><span class="ui-icon ui-icon-circle-triangle-' + (c ? "w" : "e") + '">' + r + "</span></a>"; k = this._get(a, "currentText"); r = this._get(a, "gotoCurrent") &&
a.currentDay ? u : b; k = !h ? k : this.formatDate(k, r, this._getFormatConfig(a)); h = !a.inline ? '<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_' + y + '.datepicker._hideDatepicker();">' + this._get(a, "closeText") + "</button>" : ""; e = e ? '<div class="ui-datepicker-buttonpane ui-widget-content">' + (c ? h : "") + (this._isInRange(a, r) ? '<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_' +
y + ".datepicker._gotoToday('#" + a.id + "');\">" + k + "</button>" : "") + (c ? "" : h) + "</div>" : ""; h = parseInt(this._get(a, "firstDay"), 10); h = isNaN(h) ? 0 : h; k = this._get(a, "showWeek"); r = this._get(a, "dayNames"); this._get(a, "dayNamesShort"); var s = this._get(a, "dayNamesMin"), z = this._get(a, "monthNames"), v = this._get(a, "monthNamesShort"), p = this._get(a, "beforeShowDay"), w = this._get(a, "showOtherMonths"), H = this._get(a, "selectOtherMonths"); this._get(a, "calculateWeek"); for (var M = this._getDefaultDate(a), I = "", C = 0; C < i[0]; C++) {
                                    for (var N =
"", D = 0; D < i[1]; D++) {
                                        var J = this._daylightSavingAdjust(new Date(m, g, a.selectedDay)), t = " ui-corner-all", x = ""; if (l) { x += '<div class="ui-datepicker-group'; if (i[1] > 1) switch (D) { case 0: x += " ui-datepicker-group-first"; t = " ui-corner-" + (c ? "right" : "left"); break; case i[1] - 1: x += " ui-datepicker-group-last"; t = " ui-corner-" + (c ? "left" : "right"); break; default: x += " ui-datepicker-group-middle"; t = ""; break } x += '">' } x += '<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix' + t + '">' + (/all|left/.test(t) && C == 0 ? c ?
f : n : "") + (/all|right/.test(t) && C == 0 ? c ? n : f : "") + this._generateMonthYearHeader(a, g, m, j, o, C > 0 || D > 0, z, v) + '</div><table class="ui-datepicker-calendar"><thead><tr>'; var A = k ? '<th class="ui-datepicker-week-col">' + this._get(a, "weekHeader") + "</th>" : ""; for (t = 0; t < 7; t++) { var q = (t + h) % 7; A += "<th" + ((t + h + 6) % 7 >= 5 ? ' class="ui-datepicker-week-end"' : "") + '><span title="' + r[q] + '">' + s[q] + "</span></th>" } x += A + "</tr></thead><tbody>"; A = this._getDaysInMonth(m, g); if (m == a.selectedYear && g == a.selectedMonth) a.selectedDay = Math.min(a.selectedDay,
A); t = (this._getFirstDayOfMonth(m, g) - h + 7) % 7; A = l ? 6 : Math.ceil((t + A) / 7); q = this._daylightSavingAdjust(new Date(m, g, 1 - t)); for (var O = 0; O < A; O++) {
                                            x += "<tr>"; var P = !k ? "" : '<td class="ui-datepicker-week-col">' + this._get(a, "calculateWeek")(q) + "</td>"; for (t = 0; t < 7; t++) {
                                                var F = p ? p.apply(a.input ? a.input[0] : null, [q]) : [true, ""], B = q.getMonth() != g, K = B && !H || !F[0] || j && q < j || o && q > o; P += '<td class="' + ((t + h + 6) % 7 >= 5 ? " ui-datepicker-week-end" : "") + (B ? " ui-datepicker-other-month" : "") + (q.getTime() == J.getTime() && g == a.selectedMonth &&
a._keyEvent || M.getTime() == q.getTime() && M.getTime() == J.getTime() ? " " + this._dayOverClass : "") + (K ? " " + this._unselectableClass + " ui-state-disabled" : "") + (B && !w ? "" : " " + F[1] + (q.getTime() == u.getTime() ? " " + this._currentClass : "") + (q.getTime() == b.getTime() ? " ui-datepicker-today" : "")) + '"' + ((!B || w) && F[2] ? ' title="' + F[2] + '"' : "") + (K ? "" : ' onclick="DP_jQuery_' + y + ".datepicker._selectDay('#" + a.id + "'," + q.getMonth() + "," + q.getFullYear() + ', this);return false;"') + ">" + (B && !w ? "&#xa0;" : K ? '<span class="ui-state-default">' + q.getDate() +
"</span>" : '<a class="ui-state-default' + (q.getTime() == b.getTime() ? " ui-state-highlight" : "") + (q.getTime() == J.getTime() ? " ui-state-active" : "") + (B ? " ui-priority-secondary" : "") + '" href="#">' + q.getDate() + "</a>") + "</td>"; q.setDate(q.getDate() + 1); q = this._daylightSavingAdjust(q)
                                            } x += P + "</tr>"
                                        } g++; if (g > 11) { g = 0; m++ } x += "</tbody></table>" + (l ? "</div>" + (i[0] > 0 && D == i[1] - 1 ? '<div class="ui-datepicker-row-break"></div>' : "") : ""); N += x
                                    } I += N
                                } I += e + (d.browser.msie && parseInt(d.browser.version, 10) < 7 && !a.inline ? '<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>' :
""); a._keyEvent = false; return I
                            }, _generateMonthYearHeader: function(a, b, c, e, f, h, i, g) {
                                var k = this._get(a, "changeMonth"), l = this._get(a, "changeYear"), u = this._get(a, "showMonthAfterYear"), j = '<div class="ui-datepicker-title">', o = ""; if (h || !k) o += '<span class="ui-datepicker-month">' + i[b] + "</span>"; else {
                                    i = e && e.getFullYear() == c; var m = f && f.getFullYear() == c; o += '<select class="ui-datepicker-month" onchange="DP_jQuery_' + y + ".datepicker._selectMonthYear('#" + a.id + "', this, 'M');\" onclick=\"DP_jQuery_" + y + ".datepicker._clickMonthYear('#" +
a.id + "');\">"; for (var n = 0; n < 12; n++) if ((!i || n >= e.getMonth()) && (!m || n <= f.getMonth())) o += '<option value="' + n + '"' + (n == b ? ' selected="selected"' : "") + ">" + g[n] + "</option>"; o += "</select>"
                                } u || (j += o + (h || !(k && l) ? "&#xa0;" : "")); if (h || !l) j += '<span class="ui-datepicker-year">' + c + "</span>"; else {
                                    g = this._get(a, "yearRange").split(":"); var r = (new Date).getFullYear(); i = function(s) { s = s.match(/c[+-].*/) ? c + parseInt(s.substring(1), 10) : s.match(/[+-].*/) ? r + parseInt(s, 10) : parseInt(s, 10); return isNaN(s) ? r : s }; b = i(g[0]); g = Math.max(b,
i(g[1] || "")); b = e ? Math.max(b, e.getFullYear()) : b; g = f ? Math.min(g, f.getFullYear()) : g; for (j += '<select class="ui-datepicker-year" onchange="DP_jQuery_' + y + ".datepicker._selectMonthYear('#" + a.id + "', this, 'Y');\" onclick=\"DP_jQuery_" + y + ".datepicker._clickMonthYear('#" + a.id + "');\">"; b <= g; b++) j += '<option value="' + b + '"' + (b == c ? ' selected="selected"' : "") + ">" + b + "</option>"; j += "</select>"
                                } j += this._get(a, "yearSuffix"); if (u) j += (h || !(k && l) ? "&#xa0;" : "") + o; j += "</div>"; return j
                            }, _adjustInstDate: function(a, b, c) {
                                var e =
a.drawYear + (c == "Y" ? b : 0), f = a.drawMonth + (c == "M" ? b : 0); b = Math.min(a.selectedDay, this._getDaysInMonth(e, f)) + (c == "D" ? b : 0); e = this._restrictMinMax(a, this._daylightSavingAdjust(new Date(e, f, b))); a.selectedDay = e.getDate(); a.drawMonth = a.selectedMonth = e.getMonth(); a.drawYear = a.selectedYear = e.getFullYear(); if (c == "M" || c == "Y") this._notifyChange(a)
                            }, _restrictMinMax: function(a, b) { var c = this._getMinMaxDate(a, "min"); a = this._getMinMaxDate(a, "max"); b = c && b < c ? c : b; return b = a && b > a ? a : b }, _notifyChange: function(a) {
                                var b = this._get(a,
"onChangeMonthYear"); if (b) b.apply(a.input ? a.input[0] : null, [a.selectedYear, a.selectedMonth + 1, a])
                            }, _getNumberOfMonths: function(a) { a = this._get(a, "numberOfMonths"); return a == null ? [1, 1] : typeof a == "number" ? [1, a] : a }, _getMinMaxDate: function(a, b) { return this._determineDate(a, this._get(a, b + "Date"), null) }, _getDaysInMonth: function(a, b) { return 32 - (new Date(a, b, 32)).getDate() }, _getFirstDayOfMonth: function(a, b) { return (new Date(a, b, 1)).getDay() }, _canAdjustMonth: function(a, b, c, e) {
                                var f = this._getNumberOfMonths(a);
                                c = this._daylightSavingAdjust(new Date(c, e + (b < 0 ? b : f[0] * f[1]), 1)); b < 0 && c.setDate(this._getDaysInMonth(c.getFullYear(), c.getMonth())); return this._isInRange(a, c)
                            }, _isInRange: function(a, b) { var c = this._getMinMaxDate(a, "min"); a = this._getMinMaxDate(a, "max"); return (!c || b.getTime() >= c.getTime()) && (!a || b.getTime() <= a.getTime()) }, _getFormatConfig: function(a) {
                                var b = this._get(a, "shortYearCutoff"); b = typeof b != "string" ? b : (new Date).getFullYear() % 100 + parseInt(b, 10); return { shortYearCutoff: b, dayNamesShort: this._get(a,
"dayNamesShort"), dayNames: this._get(a, "dayNames"), monthNamesShort: this._get(a, "monthNamesShort"), monthNames: this._get(a, "monthNames")}
                                }, _formatDate: function(a, b, c, e) { if (!b) { a.currentDay = a.selectedDay; a.currentMonth = a.selectedMonth; a.currentYear = a.selectedYear } b = b ? typeof b == "object" ? b : this._daylightSavingAdjust(new Date(e, c, b)) : this._daylightSavingAdjust(new Date(a.currentYear, a.currentMonth, a.currentDay)); return this.formatDate(this._get(a, "dateFormat"), b, this._getFormatConfig(a)) } 
                            }); d.fn.datepicker =
function(a) {
    if (!d.datepicker.initialized) { d(document).mousedown(d.datepicker._checkExternalClick).find("body").append(d.datepicker.dpDiv); d.datepicker.initialized = true } var b = Array.prototype.slice.call(arguments, 1); if (typeof a == "string" && (a == "isDisabled" || a == "getDate" || a == "widget")) return d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this[0]].concat(b)); if (a == "option" && arguments.length == 2 && typeof arguments[1] == "string") return d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this[0]].concat(b));
    return this.each(function() { typeof a == "string" ? d.datepicker["_" + a + "Datepicker"].apply(d.datepicker, [this].concat(b)) : d.datepicker._attachDatepicker(this, a) })
}; d.datepicker = new L; d.datepicker.initialized = false; d.datepicker.uuid = (new Date).getTime(); d.datepicker.version = "1.8.4"; window["DP_jQuery_" + y] = d
                        })(jQuery);
                        (function(c, j) {
                            c.widget("ui.dialog", { options: { autoOpen: true, buttons: {}, closeOnEscape: true, closeText: "close", dialogClass: "", draggable: true, hide: null, height: "auto", maxHeight: false, maxWidth: false, minHeight: 150, minWidth: 150, modal: false, position: { my: "center", at: "center", of: window, collision: "fit", using: function(a) { var b = c(this).css(a).offset().top; b < 0 && c(this).css("top", a.top - b) } }, resizable: true, show: null, stack: true, title: "", width: 300, zIndex: 1E3 }, _create: function() {
                                this.originalTitle = this.element.attr("title");
                                if (typeof this.originalTitle !== "string") this.originalTitle = ""; var a = this, b = a.options, d = b.title || a.originalTitle || "&#160;", f = c.ui.dialog.getTitleId(a.element), g = (a.uiDialog = c("<div></div>")).appendTo(document.body).hide().addClass("ui-dialog ui-widget ui-widget-content ui-corner-all " + b.dialogClass).css({ zIndex: b.zIndex }).attr("tabIndex", -1).css("outline", 0).keydown(function(i) { if (b.closeOnEscape && i.keyCode && i.keyCode === c.ui.keyCode.ESCAPE) { a.close(i); i.preventDefault() } }).attr({ role: "dialog", "aria-labelledby": f }).mousedown(function(i) {
                                    a.moveToTop(false,
i)
                                }); a.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g); var e = (a.uiDialogTitlebar = c("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g), h = c('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role", "button").hover(function() { h.addClass("ui-state-hover") }, function() { h.removeClass("ui-state-hover") }).focus(function() { h.addClass("ui-state-focus") }).blur(function() { h.removeClass("ui-state-focus") }).click(function(i) {
                                    a.close(i);
                                    return false
                                }).appendTo(e); (a.uiDialogTitlebarCloseText = c("<span></span>")).addClass("ui-icon ui-icon-closethick").text(b.closeText).appendTo(h); c("<span></span>").addClass("ui-dialog-title").attr("id", f).html(d).prependTo(e); if (c.isFunction(b.beforeclose) && !c.isFunction(b.beforeClose)) b.beforeClose = b.beforeclose; e.find("*").add(e).disableSelection(); b.draggable && c.fn.draggable && a._makeDraggable(); b.resizable && c.fn.resizable && a._makeResizable(); a._createButtons(b.buttons); a._isOpen = false; c.fn.bgiframe &&
g.bgiframe()
                            }, _init: function() { this.options.autoOpen && this.open() }, destroy: function() { var a = this; a.overlay && a.overlay.destroy(); a.uiDialog.hide(); a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"); a.uiDialog.remove(); a.originalTitle && a.element.attr("title", a.originalTitle); return a }, widget: function() { return this.uiDialog }, close: function(a) {
                                var b = this, d; if (false !== b._trigger("beforeClose", a)) {
                                    b.overlay && b.overlay.destroy(); b.uiDialog.unbind("keypress.ui-dialog");
                                    b._isOpen = false; if (b.options.hide) b.uiDialog.hide(b.options.hide, function() { b._trigger("close", a) }); else { b.uiDialog.hide(); b._trigger("close", a) } c.ui.dialog.overlay.resize(); if (b.options.modal) { d = 0; c(".ui-dialog").each(function() { if (this !== b.uiDialog[0]) d = Math.max(d, c(this).css("z-index")) }); c.ui.dialog.maxZ = d } return b
                                } 
                            }, isOpen: function() { return this._isOpen }, moveToTop: function(a, b) {
                                var d = this, f = d.options; if (f.modal && !a || !f.stack && !f.modal) return d._trigger("focus", b); if (f.zIndex > c.ui.dialog.maxZ) c.ui.dialog.maxZ =
f.zIndex; if (d.overlay) { c.ui.dialog.maxZ += 1; d.overlay.$el.css("z-index", c.ui.dialog.overlay.maxZ = c.ui.dialog.maxZ) } a = { scrollTop: d.element.attr("scrollTop"), scrollLeft: d.element.attr("scrollLeft") }; c.ui.dialog.maxZ += 1; d.uiDialog.css("z-index", c.ui.dialog.maxZ); d.element.attr(a); d._trigger("focus", b); return d
                            }, open: function() {
                                if (!this._isOpen) {
                                    var a = this, b = a.options, d = a.uiDialog; a.overlay = b.modal ? new c.ui.dialog.overlay(a) : null; d.next().length && d.appendTo("body"); a._size(); a._position(b.position); d.show(b.show);
                                    a.moveToTop(true); b.modal && d.bind("keypress.ui-dialog", function(f) { if (f.keyCode === c.ui.keyCode.TAB) { var g = c(":tabbable", this), e = g.filter(":first"); g = g.filter(":last"); if (f.target === g[0] && !f.shiftKey) { e.focus(1); return false } else if (f.target === e[0] && f.shiftKey) { g.focus(1); return false } } }); c(a.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus(); a._trigger("open"); a._isOpen = true; return a
                                } 
                            }, _createButtons: function(a) {
                                var b = this, d = false,
f = c("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"), g = c("<div></div>").addClass("ui-dialog-buttonset").appendTo(f); b.uiDialog.find(".ui-dialog-buttonpane").remove(); typeof a === "object" && a !== null && c.each(a, function() { return !(d = true) }); if (d) { c.each(a, function(e, h) { e = c('<button type="button"></button>').text(e).click(function() { h.apply(b.element[0], arguments) }).appendTo(g); c.fn.button && e.button() }); f.appendTo(b.uiDialog) } 
                            }, _makeDraggable: function() {
                                function a(e) {
                                    return { position: e.position,
                                        offset: e.offset}
                                    } var b = this, d = b.options, f = c(document), g; b.uiDialog.draggable({ cancel: ".ui-dialog-content, .ui-dialog-titlebar-close", handle: ".ui-dialog-titlebar", containment: "document", start: function(e, h) { g = d.height === "auto" ? "auto" : c(this).height(); c(this).height(c(this).height()).addClass("ui-dialog-dragging"); b._trigger("dragStart", e, a(h)) }, drag: function(e, h) { b._trigger("drag", e, a(h)) }, stop: function(e, h) {
                                        d.position = [h.position.left - f.scrollLeft(), h.position.top - f.scrollTop()]; c(this).removeClass("ui-dialog-dragging").height(g);
                                        b._trigger("dragStop", e, a(h)); c.ui.dialog.overlay.resize()
                                    } 
                                    })
                                }, _makeResizable: function(a) {
                                    function b(e) { return { originalPosition: e.originalPosition, originalSize: e.originalSize, position: e.position, size: e.size} } a = a === j ? this.options.resizable : a; var d = this, f = d.options, g = d.uiDialog.css("position"); a = typeof a === "string" ? a : "n,e,s,w,se,sw,ne,nw"; d.uiDialog.resizable({ cancel: ".ui-dialog-content", containment: "document", alsoResize: d.element, maxWidth: f.maxWidth, maxHeight: f.maxHeight, minWidth: f.minWidth, minHeight: d._minHeight(),
                                        handles: a, start: function(e, h) { c(this).addClass("ui-dialog-resizing"); d._trigger("resizeStart", e, b(h)) }, resize: function(e, h) { d._trigger("resize", e, b(h)) }, stop: function(e, h) { c(this).removeClass("ui-dialog-resizing"); f.height = c(this).height(); f.width = c(this).width(); d._trigger("resizeStop", e, b(h)); c.ui.dialog.overlay.resize() } 
                                    }).css("position", g).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")
                                }, _minHeight: function() {
                                    var a = this.options; return a.height === "auto" ? a.minHeight : Math.min(a.minHeight,
a.height)
                                }, _position: function(a) {
                                    var b = [], d = [0, 0], f; if (a) { if (typeof a === "string" || typeof a === "object" && "0" in a) { b = a.split ? a.split(" ") : [a[0], a[1]]; if (b.length === 1) b[1] = b[0]; c.each(["left", "top"], function(g, e) { if (+b[g] === b[g]) { d[g] = b[g]; b[g] = e } }); a = { my: b.join(" "), at: b.join(" "), offset: d.join(" ")} } a = c.extend({}, c.ui.dialog.prototype.options.position, a) } else a = c.ui.dialog.prototype.options.position; (f = this.uiDialog.is(":visible")) || this.uiDialog.show(); this.uiDialog.css({ top: 0, left: 0 }).position(a);
                                    f || this.uiDialog.hide()
                                }, _setOption: function(a, b) {
                                    var d = this, f = d.uiDialog, g = f.is(":data(resizable)"), e = false; switch (a) {
                                        case "beforeclose": a = "beforeClose"; break; case "buttons": d._createButtons(b); e = true; break; case "closeText": d.uiDialogTitlebarCloseText.text("" + b); break; case "dialogClass": f.removeClass(d.options.dialogClass).addClass("ui-dialog ui-widget ui-widget-content ui-corner-all " + b); break; case "disabled": b ? f.addClass("ui-dialog-disabled") : f.removeClass("ui-dialog-disabled"); break; case "draggable": b ?
d._makeDraggable() : f.draggable("destroy"); break; case "height": e = true; break; case "maxHeight": g && f.resizable("option", "maxHeight", b); e = true; break; case "maxWidth": g && f.resizable("option", "maxWidth", b); e = true; break; case "minHeight": g && f.resizable("option", "minHeight", b); e = true; break; case "minWidth": g && f.resizable("option", "minWidth", b); e = true; break; case "position": d._position(b); break; case "resizable": g && !b && f.resizable("destroy"); g && typeof b === "string" && f.resizable("option", "handles", b); !g && b !== false &&
d._makeResizable(b); break; case "title": c(".ui-dialog-title", d.uiDialogTitlebar).html("" + (b || "&#160;")); break; case "width": e = true; break
                                    } c.Widget.prototype._setOption.apply(d, arguments); e && d._size()
                                }, _size: function() {
                                    var a = this.options, b; this.element.css({ width: "auto", minHeight: 0, height: 0 }); if (a.minWidth > a.width) a.width = a.minWidth; b = this.uiDialog.css({ height: "auto", width: a.width }).height(); this.element.css(a.height === "auto" ? { minHeight: Math.max(a.minHeight - b, 0), height: "auto"} : { minHeight: 0, height: Math.max(a.height -
b, 0)
                                    }).show(); this.uiDialog.is(":data(resizable)") && this.uiDialog.resizable("option", "minHeight", this._minHeight())
                                } 
                            }); c.extend(c.ui.dialog, { version: "1.8.4", uuid: 0, maxZ: 0, getTitleId: function(a) { a = a.attr("id"); if (!a) { this.uuid += 1; a = this.uuid } return "ui-dialog-title-" + a }, overlay: function(a) { this.$el = c.ui.dialog.overlay.create(a) } }); c.extend(c.ui.dialog.overlay, { instances: [], oldInstances: [], maxZ: 0, events: c.map("focus,mousedown,mouseup,keydown,keypress,click".split(","), function(a) { return a + ".dialog-overlay" }).join(" "),
                                create: function(a) {
                                    if (this.instances.length === 0) { setTimeout(function() { c.ui.dialog.overlay.instances.length && c(document).bind(c.ui.dialog.overlay.events, function(d) { return c(d.target).zIndex() >= c.ui.dialog.overlay.maxZ }) }, 1); c(document).bind("keydown.dialog-overlay", function(d) { if (a.options.closeOnEscape && d.keyCode && d.keyCode === c.ui.keyCode.ESCAPE) { a.close(d); d.preventDefault() } }); c(window).bind("resize.dialog-overlay", c.ui.dialog.overlay.resize) } var b = (this.oldInstances.pop() || c("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({ width: this.width(),
                                        height: this.height()
                                    }); c.fn.bgiframe && b.bgiframe(); this.instances.push(b); return b
                                }, destroy: function(a) { this.oldInstances.push(this.instances.splice(c.inArray(a, this.instances), 1)[0]); this.instances.length === 0 && c([document, window]).unbind(".dialog-overlay"); a.remove(); var b = 0; c.each(this.instances, function() { b = Math.max(b, this.css("z-index")) }); this.maxZ = b }, height: function() {
                                    var a, b; if (c.browser.msie && c.browser.version < 7) {
                                        a = Math.max(document.documentElement.scrollHeight, document.body.scrollHeight);
                                        b = Math.max(document.documentElement.offsetHeight, document.body.offsetHeight); return a < b ? c(window).height() + "px" : a + "px"
                                    } else return c(document).height() + "px"
                                }, width: function() { var a, b; if (c.browser.msie && c.browser.version < 7) { a = Math.max(document.documentElement.scrollWidth, document.body.scrollWidth); b = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth); return a < b ? c(window).width() + "px" : a + "px" } else return c(document).width() + "px" }, resize: function() {
                                    var a = c([]); c.each(c.ui.dialog.overlay.instances,
function() { a = a.add(this) }); a.css({ width: 0, height: 0 }).css({ width: c.ui.dialog.overlay.width(), height: c.ui.dialog.overlay.height() })
                                } 
                            }); c.extend(c.ui.dialog.overlay.prototype, { destroy: function() { c.ui.dialog.overlay.destroy(this.$el) } })
                        })(jQuery);
                        (function(c) {
                            c.ui = c.ui || {}; var m = /left|center|right/, n = /top|center|bottom/, p = c.fn.position, q = c.fn.offset; c.fn.position = function(a) {
                                if (!a || !a.of) return p.apply(this, arguments); a = c.extend({}, a); var b = c(a.of), d = (a.collision || "flip").split(" "), e = a.offset ? a.offset.split(" ") : [0, 0], g, h, i; if (a.of.nodeType === 9) { g = b.width(); h = b.height(); i = { top: 0, left: 0} } else if (a.of.scrollTo && a.of.document) { g = b.width(); h = b.height(); i = { top: b.scrollTop(), left: b.scrollLeft()} } else if (a.of.preventDefault) {
                                    a.at = "left top"; g = h =
0; i = { top: a.of.pageY, left: a.of.pageX}
                                } else { g = b.outerWidth(); h = b.outerHeight(); i = b.offset() } c.each(["my", "at"], function() { var f = (a[this] || "").split(" "); if (f.length === 1) f = m.test(f[0]) ? f.concat(["center"]) : n.test(f[0]) ? ["center"].concat(f) : ["center", "center"]; f[0] = m.test(f[0]) ? f[0] : "center"; f[1] = n.test(f[1]) ? f[1] : "center"; a[this] = f }); if (d.length === 1) d[1] = d[0]; e[0] = parseInt(e[0], 10) || 0; if (e.length === 1) e[1] = e[0]; e[1] = parseInt(e[1], 10) || 0; if (a.at[0] === "right") i.left += g; else if (a.at[0] === "center") i.left +=
g / 2; if (a.at[1] === "bottom") i.top += h; else if (a.at[1] === "center") i.top += h / 2; i.left += e[0]; i.top += e[1]; return this.each(function() {
    var f = c(this), k = f.outerWidth(), l = f.outerHeight(), j = c.extend({}, i); if (a.my[0] === "right") j.left -= k; else if (a.my[0] === "center") j.left -= k / 2; if (a.my[1] === "bottom") j.top -= l; else if (a.my[1] === "center") j.top -= l / 2; j.left = parseInt(j.left); j.top = parseInt(j.top); c.each(["left", "top"], function(o, r) {
        c.ui.position[d[o]] && c.ui.position[d[o]][r](j, { targetWidth: g, targetHeight: h, elemWidth: k,
            elemHeight: l, offset: e, my: a.my, at: a.at
        })
    }); c.fn.bgiframe && f.bgiframe(); f.offset(c.extend(j, { using: a.using }))
})
                            }; c.ui.position = { fit: { left: function(a, b) { var d = c(window); b = a.left + b.elemWidth - d.width() - d.scrollLeft(); a.left = b > 0 ? a.left - b : Math.max(0, a.left) }, top: function(a, b) { var d = c(window); b = a.top + b.elemHeight - d.height() - d.scrollTop(); a.top = b > 0 ? a.top - b : Math.max(0, a.top) } }, flip: { left: function(a, b) {
                                if (b.at[0] !== "center") {
                                    var d = c(window); d = a.left + b.elemWidth - d.width() - d.scrollLeft(); var e = b.my[0] === "left" ?
-b.elemWidth : b.my[0] === "right" ? b.elemWidth : 0, g = -2 * b.offset[0]; a.left += a.left < 0 ? e + b.targetWidth + g : d > 0 ? e - b.targetWidth + g : 0
                                } 
                            }, top: function(a, b) { if (b.at[1] !== "center") { var d = c(window); d = a.top + b.elemHeight - d.height() - d.scrollTop(); var e = b.my[1] === "top" ? -b.elemHeight : b.my[1] === "bottom" ? b.elemHeight : 0, g = b.at[1] === "top" ? b.targetHeight : -b.targetHeight, h = -2 * b.offset[1]; a.top += a.top < 0 ? e + b.targetHeight + h : d > 0 ? e + g + h : 0 } } }
                            }; if (!c.offset.setOffset) {
                                c.offset.setOffset = function(a, b) {
                                    if (/static/.test(c.curCSS(a, "position"))) a.style.position =
"relative"; var d = c(a), e = d.offset(), g = parseInt(c.curCSS(a, "top", true), 10) || 0, h = parseInt(c.curCSS(a, "left", true), 10) || 0; e = { top: b.top - e.top + g, left: b.left - e.left + h }; "using" in b ? b.using.call(a, e) : d.css(e)
                                }; c.fn.offset = function(a) { var b = this[0]; if (!b || !b.ownerDocument) return null; if (a) return this.each(function() { c.offset.setOffset(this, a) }); return q.call(this) } 
                            } 
                        })(jQuery);
                        (function(b, c) {
                            b.widget("ui.progressbar", { options: { value: 0 }, min: 0, max: 100, _create: function() { this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({ role: "progressbar", "aria-valuemin": this.min, "aria-valuemax": this.max, "aria-valuenow": this._value() }); this.valueDiv = b("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element); this._refreshValue() }, destroy: function() {
                                this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");
                                this.valueDiv.remove(); b.Widget.prototype.destroy.apply(this, arguments)
                            }, value: function(a) { if (a === c) return this._value(); this._setOption("value", a); return this }, _setOption: function(a, d) { if (a === "value") { this.options.value = d; this._refreshValue(); this._trigger("change") } b.Widget.prototype._setOption.apply(this, arguments) }, _value: function() { var a = this.options.value; if (typeof a !== "number") a = 0; return Math.min(this.max, Math.max(this.min, a)) }, _refreshValue: function() {
                                var a = this.value(); this.valueDiv.toggleClass("ui-corner-right",
a === this.max).width(a + "%"); this.element.attr("aria-valuenow", a)
                            } 
                            }); b.extend(b.ui.progressbar, { version: "1.8.4" })
                        })(jQuery);
                        (function(d) {
                            d.widget("ui.slider", d.ui.mouse, { widgetEventPrefix: "slide", options: { animate: false, distance: 0, max: 100, min: 0, orientation: "horizontal", range: false, step: 1, value: 0, values: null }, _create: function() {
                                var a = this, b = this.options; this._mouseSliding = this._keySliding = false; this._animateOff = true; this._handleIndex = null; this._detectOrientation(); this._mouseInit(); this.element.addClass("ui-slider ui-slider-" + this.orientation + " ui-widget ui-widget-content ui-corner-all"); b.disabled && this.element.addClass("ui-slider-disabled ui-disabled");
                                this.range = d([]); if (b.range) { if (b.range === true) { this.range = d("<div></div>"); if (!b.values) b.values = [this._valueMin(), this._valueMin()]; if (b.values.length && b.values.length !== 2) b.values = [b.values[0], b.values[0]] } else this.range = d("<div></div>"); this.range.appendTo(this.element).addClass("ui-slider-range"); if (b.range === "min" || b.range === "max") this.range.addClass("ui-slider-range-" + b.range); this.range.addClass("ui-widget-header") } d(".ui-slider-handle", this.element).length === 0 && d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle");
                                if (b.values && b.values.length) for (; d(".ui-slider-handle", this.element).length < b.values.length; ) d("<a href='#'></a>").appendTo(this.element).addClass("ui-slider-handle"); this.handles = d(".ui-slider-handle", this.element).addClass("ui-state-default ui-corner-all"); this.handle = this.handles.eq(0); this.handles.add(this.range).filter("a").click(function(c) { c.preventDefault() }).hover(function() { b.disabled || d(this).addClass("ui-state-hover") }, function() { d(this).removeClass("ui-state-hover") }).focus(function() {
                                    if (b.disabled) d(this).blur();
                                    else { d(".ui-slider .ui-state-focus").removeClass("ui-state-focus"); d(this).addClass("ui-state-focus") } 
                                }).blur(function() { d(this).removeClass("ui-state-focus") }); this.handles.each(function(c) { d(this).data("index.ui-slider-handle", c) }); this.handles.keydown(function(c) {
                                    var e = true, f = d(this).data("index.ui-slider-handle"), h, g, i; if (!a.options.disabled) {
                                        switch (c.keyCode) {
                                            case d.ui.keyCode.HOME: case d.ui.keyCode.END: case d.ui.keyCode.PAGE_UP: case d.ui.keyCode.PAGE_DOWN: case d.ui.keyCode.UP: case d.ui.keyCode.RIGHT: case d.ui.keyCode.DOWN: case d.ui.keyCode.LEFT: e =
false; if (!a._keySliding) { a._keySliding = true; d(this).addClass("ui-state-active"); h = a._start(c, f); if (h === false) return } break
                                        } i = a.options.step; h = a.options.values && a.options.values.length ? (g = a.values(f)) : (g = a.value()); switch (c.keyCode) {
                                            case d.ui.keyCode.HOME: g = a._valueMin(); break; case d.ui.keyCode.END: g = a._valueMax(); break; case d.ui.keyCode.PAGE_UP: g = a._trimAlignValue(h + (a._valueMax() - a._valueMin()) / 5); break; case d.ui.keyCode.PAGE_DOWN: g = a._trimAlignValue(h - (a._valueMax() - a._valueMin()) / 5); break; case d.ui.keyCode.UP: case d.ui.keyCode.RIGHT: if (h ===
a._valueMax()) return; g = a._trimAlignValue(h + i); break; case d.ui.keyCode.DOWN: case d.ui.keyCode.LEFT: if (h === a._valueMin()) return; g = a._trimAlignValue(h - i); break
                                        } a._slide(c, f, g); return e
                                    } 
                                }).keyup(function(c) { var e = d(this).data("index.ui-slider-handle"); if (a._keySliding) { a._keySliding = false; a._stop(c, e); a._change(c, e); d(this).removeClass("ui-state-active") } }); this._refreshValue(); this._animateOff = false
                            }, destroy: function() {
                                this.handles.remove(); this.range.remove(); this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider");
                                this._mouseDestroy(); return this
                            }, _mouseCapture: function(a) {
                                var b = this.options, c, e, f, h, g; if (b.disabled) return false; this.elementSize = { width: this.element.outerWidth(), height: this.element.outerHeight() }; this.elementOffset = this.element.offset(); c = this._normValueFromMouse({ x: a.pageX, y: a.pageY }); e = this._valueMax() - this._valueMin() + 1; h = this; this.handles.each(function(i) { var j = Math.abs(c - h.values(i)); if (e > j) { e = j; f = d(this); g = i } }); if (b.range === true && this.values(1) === b.min) { g += 1; f = d(this.handles[g]) } if (this._start(a,
g) === false) return false; this._mouseSliding = true; h._handleIndex = g; f.addClass("ui-state-active").focus(); b = f.offset(); this._clickOffset = !d(a.target).parents().andSelf().is(".ui-slider-handle") ? { left: 0, top: 0} : { left: a.pageX - b.left - f.width() / 2, top: a.pageY - b.top - f.height() / 2 - (parseInt(f.css("borderTopWidth"), 10) || 0) - (parseInt(f.css("borderBottomWidth"), 10) || 0) + (parseInt(f.css("marginTop"), 10) || 0) }; this._slide(a, g, c); return this._animateOff = true
                            }, _mouseStart: function() { return true }, _mouseDrag: function(a) {
                                var b =
this._normValueFromMouse({ x: a.pageX, y: a.pageY }); this._slide(a, this._handleIndex, b); return false
                            }, _mouseStop: function(a) { this.handles.removeClass("ui-state-active"); this._mouseSliding = false; this._stop(a, this._handleIndex); this._change(a, this._handleIndex); this._clickOffset = this._handleIndex = null; return this._animateOff = false }, _detectOrientation: function() { this.orientation = this.options.orientation === "vertical" ? "vertical" : "horizontal" }, _normValueFromMouse: function(a) {
                                var b; if (this.orientation === "horizontal") {
                                    b =
this.elementSize.width; a = a.x - this.elementOffset.left - (this._clickOffset ? this._clickOffset.left : 0)
                                } else { b = this.elementSize.height; a = a.y - this.elementOffset.top - (this._clickOffset ? this._clickOffset.top : 0) } b = a / b; if (b > 1) b = 1; if (b < 0) b = 0; if (this.orientation === "vertical") b = 1 - b; a = this._valueMax() - this._valueMin(); return this._trimAlignValue(this._valueMin() + b * a)
                            }, _start: function(a, b) {
                                var c = { handle: this.handles[b], value: this.value() }; if (this.options.values && this.options.values.length) {
                                    c.value = this.values(b);
                                    c.values = this.values()
                                } return this._trigger("start", a, c)
                            }, _slide: function(a, b, c) {
                                var e; if (this.options.values && this.options.values.length) { e = this.values(b ? 0 : 1); if (this.options.values.length === 2 && this.options.range === true && (b === 0 && c > e || b === 1 && c < e)) c = e; if (c !== this.values(b)) { e = this.values(); e[b] = c; a = this._trigger("slide", a, { handle: this.handles[b], value: c, values: e }); this.values(b ? 0 : 1); a !== false && this.values(b, c, true) } } else if (c !== this.value()) {
                                    a = this._trigger("slide", a, { handle: this.handles[b], value: c });
                                    a !== false && this.value(c)
                                } 
                            }, _stop: function(a, b) { var c = { handle: this.handles[b], value: this.value() }; if (this.options.values && this.options.values.length) { c.value = this.values(b); c.values = this.values() } this._trigger("stop", a, c) }, _change: function(a, b) { if (!this._keySliding && !this._mouseSliding) { var c = { handle: this.handles[b], value: this.value() }; if (this.options.values && this.options.values.length) { c.value = this.values(b); c.values = this.values() } this._trigger("change", a, c) } }, value: function(a) {
                                if (arguments.length) {
                                    this.options.value =
this._trimAlignValue(a); this._refreshValue(); this._change(null, 0)
                                } return this._value()
                            }, values: function(a, b) {
                                var c, e, f; if (arguments.length > 1) { this.options.values[a] = this._trimAlignValue(b); this._refreshValue(); this._change(null, a) } if (arguments.length) if (d.isArray(arguments[0])) { c = this.options.values; e = arguments[0]; for (f = 0; f < c.length; f += 1) { c[f] = this._trimAlignValue(e[f]); this._change(null, f) } this._refreshValue() } else return this.options.values && this.options.values.length ? this._values(a) : this.value();
                                else return this._values()
                            }, _setOption: function(a, b) {
                                var c, e = 0; if (d.isArray(this.options.values)) e = this.options.values.length; d.Widget.prototype._setOption.apply(this, arguments); switch (a) {
                                    case "disabled": if (b) { this.handles.filter(".ui-state-focus").blur(); this.handles.removeClass("ui-state-hover"); this.handles.attr("disabled", "disabled"); this.element.addClass("ui-disabled") } else { this.handles.removeAttr("disabled"); this.element.removeClass("ui-disabled") } break; case "orientation": this._detectOrientation();
                                        this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-" + this.orientation); this._refreshValue(); break; case "value": this._animateOff = true; this._refreshValue(); this._change(null, 0); this._animateOff = false; break; case "values": this._animateOff = true; this._refreshValue(); for (c = 0; c < e; c += 1) this._change(null, c); this._animateOff = false; break
                                } 
                            }, _value: function() { var a = this.options.value; return a = this._trimAlignValue(a) }, _values: function(a) {
                                var b, c; if (arguments.length) {
                                    b = this.options.values[a];
                                    return b = this._trimAlignValue(b)
                                } else { b = this.options.values.slice(); for (c = 0; c < b.length; c += 1) b[c] = this._trimAlignValue(b[c]); return b } 
                            }, _trimAlignValue: function(a) { if (a < this._valueMin()) return this._valueMin(); if (a > this._valueMax()) return this._valueMax(); var b = this.options.step > 0 ? this.options.step : 1, c = a % b; a = a - c; if (Math.abs(c) * 2 >= b) a += c > 0 ? b : -b; return parseFloat(a.toFixed(5)) }, _valueMin: function() { return this.options.min }, _valueMax: function() { return this.options.max }, _refreshValue: function() {
                                var a =
this.options.range, b = this.options, c = this, e = !this._animateOff ? b.animate : false, f, h = {}, g, i, j, l; if (this.options.values && this.options.values.length) this.handles.each(function(k) {
    f = (c.values(k) - c._valueMin()) / (c._valueMax() - c._valueMin()) * 100; h[c.orientation === "horizontal" ? "left" : "bottom"] = f + "%"; d(this).stop(1, 1)[e ? "animate" : "css"](h, b.animate); if (c.options.range === true) if (c.orientation === "horizontal") {
        if (k === 0) c.range.stop(1, 1)[e ? "animate" : "css"]({ left: f + "%" }, b.animate); if (k === 1) c.range[e ? "animate" : "css"]({ width: f -
g + "%"
        }, { queue: false, duration: b.animate })
    } else { if (k === 0) c.range.stop(1, 1)[e ? "animate" : "css"]({ bottom: f + "%" }, b.animate); if (k === 1) c.range[e ? "animate" : "css"]({ height: f - g + "%" }, { queue: false, duration: b.animate }) } g = f
}); else {
                                    i = this.value(); j = this._valueMin(); l = this._valueMax(); f = l !== j ? (i - j) / (l - j) * 100 : 0; h[c.orientation === "horizontal" ? "left" : "bottom"] = f + "%"; this.handle.stop(1, 1)[e ? "animate" : "css"](h, b.animate); if (a === "min" && this.orientation === "horizontal") this.range.stop(1, 1)[e ? "animate" : "css"]({ width: f + "%" },
b.animate); if (a === "max" && this.orientation === "horizontal") this.range[e ? "animate" : "css"]({ width: 100 - f + "%" }, { queue: false, duration: b.animate }); if (a === "min" && this.orientation === "vertical") this.range.stop(1, 1)[e ? "animate" : "css"]({ height: f + "%" }, b.animate); if (a === "max" && this.orientation === "vertical") this.range[e ? "animate" : "css"]({ height: 100 - f + "%" }, { queue: false, duration: b.animate })
                                } 
                            } 
                            }); d.extend(d.ui.slider, { version: "1.8.4" })
                        })(jQuery);
                        (function(d, p) {
                            function u() { return ++v } function w() { return ++x } var v = 0, x = 0; d.widget("ui.tabs", { options: { add: null, ajaxOptions: null, cache: false, cookie: null, collapsible: false, disable: null, disabled: [], enable: null, event: "click", fx: null, idPrefix: "ui-tabs-", load: null, panelTemplate: "<div></div>", remove: null, select: null, show: null, spinner: "<em>Loading&#8230;</em>", tabTemplate: "<li><a href='#{href}'><span>#{label}</span></a></li>" }, _create: function() { this._tabify(true) }, _setOption: function(a, e) {
                                if (a == "selected") this.options.collapsible &&
e == this.options.selected || this.select(e); else { this.options[a] = e; this._tabify() } 
                            }, _tabId: function(a) { return a.title && a.title.replace(/\s/g, "_").replace(/[^A-Za-z0-9\-_:\.]/g, "") || this.options.idPrefix + u() }, _sanitizeSelector: function(a) { return a.replace(/:/g, "\\:") }, _cookie: function() { var a = this.cookie || (this.cookie = this.options.cookie.name || "ui-tabs-" + w()); return d.cookie.apply(null, [a].concat(d.makeArray(arguments))) }, _ui: function(a, e) { return { tab: a, panel: e, index: this.anchors.index(a)} }, _cleanup: function() {
                                this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function() {
                                    var a =
d(this); a.html(a.data("label.tabs")).removeData("label.tabs")
                                })
                            }, _tabify: function(a) {
                                function e(g, f) { g.css("display", ""); !d.support.opacity && f.opacity && g[0].style.removeAttribute("filter") } var b = this, c = this.options, h = /^#.+/; this.list = this.element.find("ol,ul").eq(0); this.lis = d("li:has(a[href])", this.list); this.anchors = this.lis.map(function() { return d("a", this)[0] }); this.panels = d([]); this.anchors.each(function(g, f) {
                                    var j = d(f).attr("href"), l = j.split("#")[0], q; if (l && (l === location.toString().split("#")[0] ||
(q = d("base")[0]) && l === q.href)) { j = f.hash; f.href = j } if (h.test(j)) b.panels = b.panels.add(b._sanitizeSelector(j)); else if (j !== "#") { d.data(f, "href.tabs", j); d.data(f, "load.tabs", j.replace(/#.*$/, "")); j = b._tabId(f); f.href = "#" + j; f = d("#" + j); if (!f.length) { f = d(c.panelTemplate).attr("id", j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(b.panels[g - 1] || b.list); f.data("destroy.tabs", true) } b.panels = b.panels.add(f) } else c.disabled.push(g)
                                }); if (a) {
                                    this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all");
                                    this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"); this.lis.addClass("ui-state-default ui-corner-top"); this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom"); if (c.selected === p) {
                                        location.hash && this.anchors.each(function(g, f) { if (f.hash == location.hash) { c.selected = g; return false } }); if (typeof c.selected !== "number" && c.cookie) c.selected = parseInt(b._cookie(), 10); if (typeof c.selected !== "number" && this.lis.filter(".ui-tabs-selected").length) c.selected =
this.lis.index(this.lis.filter(".ui-tabs-selected")); c.selected = c.selected || (this.lis.length ? 0 : -1)
                                    } else if (c.selected === null) c.selected = -1; c.selected = c.selected >= 0 && this.anchors[c.selected] || c.selected < 0 ? c.selected : 0; c.disabled = d.unique(c.disabled.concat(d.map(this.lis.filter(".ui-state-disabled"), function(g) { return b.lis.index(g) }))).sort(); d.inArray(c.selected, c.disabled) != -1 && c.disabled.splice(d.inArray(c.selected, c.disabled), 1); this.panels.addClass("ui-tabs-hide"); this.lis.removeClass("ui-tabs-selected ui-state-active");
                                    if (c.selected >= 0 && this.anchors.length) { this.panels.eq(c.selected).removeClass("ui-tabs-hide"); this.lis.eq(c.selected).addClass("ui-tabs-selected ui-state-active"); b.element.queue("tabs", function() { b._trigger("show", null, b._ui(b.anchors[c.selected], b.panels[c.selected])) }); this.load(c.selected) } d(window).bind("unload", function() { b.lis.add(b.anchors).unbind(".tabs"); b.lis = b.anchors = b.panels = null })
                                } else c.selected = this.lis.index(this.lis.filter(".ui-tabs-selected")); this.element[c.collapsible ? "addClass" :
"removeClass"]("ui-tabs-collapsible"); c.cookie && this._cookie(c.selected, c.cookie); a = 0; for (var i; i = this.lis[a]; a++) d(i)[d.inArray(a, c.disabled) != -1 && !d(i).hasClass("ui-tabs-selected") ? "addClass" : "removeClass"]("ui-state-disabled"); c.cache === false && this.anchors.removeData("cache.tabs"); this.lis.add(this.anchors).unbind(".tabs"); if (c.event !== "mouseover") {
                                    var k = function(g, f) { f.is(":not(.ui-state-disabled)") && f.addClass("ui-state-" + g) }, n = function(g, f) { f.removeClass("ui-state-" + g) }; this.lis.bind("mouseover.tabs",
function() { k("hover", d(this)) }); this.lis.bind("mouseout.tabs", function() { n("hover", d(this)) }); this.anchors.bind("focus.tabs", function() { k("focus", d(this).closest("li")) }); this.anchors.bind("blur.tabs", function() { n("focus", d(this).closest("li")) })
                                } var m, o; if (c.fx) if (d.isArray(c.fx)) { m = c.fx[0]; o = c.fx[1] } else m = o = c.fx; var r = o ? function(g, f) {
                                    d(g).closest("li").addClass("ui-tabs-selected ui-state-active"); f.hide().removeClass("ui-tabs-hide").animate(o, o.duration || "normal", function() {
                                        e(f, o); b._trigger("show",
null, b._ui(g, f[0]))
                                    })
                                } : function(g, f) { d(g).closest("li").addClass("ui-tabs-selected ui-state-active"); f.removeClass("ui-tabs-hide"); b._trigger("show", null, b._ui(g, f[0])) }, s = m ? function(g, f) { f.animate(m, m.duration || "normal", function() { b.lis.removeClass("ui-tabs-selected ui-state-active"); f.addClass("ui-tabs-hide"); e(f, m); b.element.dequeue("tabs") }) } : function(g, f) { b.lis.removeClass("ui-tabs-selected ui-state-active"); f.addClass("ui-tabs-hide"); b.element.dequeue("tabs") }; this.anchors.bind(c.event + ".tabs",
function() {
    var g = this, f = d(g).closest("li"), j = b.panels.filter(":not(.ui-tabs-hide)"), l = d(b._sanitizeSelector(g.hash)); if (f.hasClass("ui-tabs-selected") && !c.collapsible || f.hasClass("ui-state-disabled") || f.hasClass("ui-state-processing") || b._trigger("select", null, b._ui(this, l[0])) === false) { this.blur(); return false } c.selected = b.anchors.index(this); b.abort(); if (c.collapsible) if (f.hasClass("ui-tabs-selected")) {
        c.selected = -1; c.cookie && b._cookie(c.selected, c.cookie); b.element.queue("tabs", function() {
            s(g,
j)
        }).dequeue("tabs"); this.blur(); return false
    } else if (!j.length) { c.cookie && b._cookie(c.selected, c.cookie); b.element.queue("tabs", function() { r(g, l) }); b.load(b.anchors.index(this)); this.blur(); return false } c.cookie && b._cookie(c.selected, c.cookie); if (l.length) { j.length && b.element.queue("tabs", function() { s(g, j) }); b.element.queue("tabs", function() { r(g, l) }); b.load(b.anchors.index(this)) } else throw "jQuery UI Tabs: Mismatching fragment identifier."; d.browser.msie && this.blur()
}); this.anchors.bind("click.tabs",
function() { return false })
                            }, _getIndex: function(a) { if (typeof a == "string") a = this.anchors.index(this.anchors.filter("[href$=" + a + "]")); return a }, destroy: function() {
                                var a = this.options; this.abort(); this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs"); this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"); this.anchors.each(function() {
                                    var e = d.data(this, "href.tabs"); if (e) this.href =
e; var b = d(this).unbind(".tabs"); d.each(["href", "load", "cache"], function(c, h) { b.removeData(h + ".tabs") })
                                }); this.lis.unbind(".tabs").add(this.panels).each(function() { d.data(this, "destroy.tabs") ? d(this).remove() : d(this).removeClass("ui-state-default ui-corner-top ui-tabs-selected ui-state-active ui-state-hover ui-state-focus ui-state-disabled ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide") }); a.cookie && this._cookie(null, a.cookie); return this
                            }, add: function(a, e, b) {
                                if (b === p) b = this.anchors.length;
                                var c = this, h = this.options; e = d(h.tabTemplate.replace(/#\{href\}/g, a).replace(/#\{label\}/g, e)); a = !a.indexOf("#") ? a.replace("#", "") : this._tabId(d("a", e)[0]); e.addClass("ui-state-default ui-corner-top").data("destroy.tabs", true); var i = d("#" + a); i.length || (i = d(h.panelTemplate).attr("id", a).data("destroy.tabs", true)); i.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"); if (b >= this.lis.length) { e.appendTo(this.list); i.appendTo(this.list[0].parentNode) } else {
                                    e.insertBefore(this.lis[b]);
                                    i.insertBefore(this.panels[b])
                                } h.disabled = d.map(h.disabled, function(k) { return k >= b ? ++k : k }); this._tabify(); if (this.anchors.length == 1) { h.selected = 0; e.addClass("ui-tabs-selected ui-state-active"); i.removeClass("ui-tabs-hide"); this.element.queue("tabs", function() { c._trigger("show", null, c._ui(c.anchors[0], c.panels[0])) }); this.load(0) } this._trigger("add", null, this._ui(this.anchors[b], this.panels[b])); return this
                            }, remove: function(a) {
                                a = this._getIndex(a); var e = this.options, b = this.lis.eq(a).remove(), c = this.panels.eq(a).remove();
                                if (b.hasClass("ui-tabs-selected") && this.anchors.length > 1) this.select(a + (a + 1 < this.anchors.length ? 1 : -1)); e.disabled = d.map(d.grep(e.disabled, function(h) { return h != a }), function(h) { return h >= a ? --h : h }); this._tabify(); this._trigger("remove", null, this._ui(b.find("a")[0], c[0])); return this
                            }, enable: function(a) {
                                a = this._getIndex(a); var e = this.options; if (d.inArray(a, e.disabled) != -1) {
                                    this.lis.eq(a).removeClass("ui-state-disabled"); e.disabled = d.grep(e.disabled, function(b) { return b != a }); this._trigger("enable", null,
this._ui(this.anchors[a], this.panels[a])); return this
                                } 
                            }, disable: function(a) { a = this._getIndex(a); var e = this.options; if (a != e.selected) { this.lis.eq(a).addClass("ui-state-disabled"); e.disabled.push(a); e.disabled.sort(); this._trigger("disable", null, this._ui(this.anchors[a], this.panels[a])) } return this }, select: function(a) { a = this._getIndex(a); if (a == -1) if (this.options.collapsible && this.options.selected != -1) a = this.options.selected; else return this; this.anchors.eq(a).trigger(this.options.event + ".tabs"); return this },
                                load: function(a) {
                                    a = this._getIndex(a); var e = this, b = this.options, c = this.anchors.eq(a)[0], h = d.data(c, "load.tabs"); this.abort(); if (!h || this.element.queue("tabs").length !== 0 && d.data(c, "cache.tabs")) this.element.dequeue("tabs"); else {
                                        this.lis.eq(a).addClass("ui-state-processing"); if (b.spinner) { var i = d("span", c); i.data("label.tabs", i.html()).html(b.spinner) } this.xhr = d.ajax(d.extend({}, b.ajaxOptions, { url: h, success: function(k, n) {
                                            d(e._sanitizeSelector(c.hash)).html(k); e._cleanup(); b.cache && d.data(c, "cache.tabs",
true); e._trigger("load", null, e._ui(e.anchors[a], e.panels[a])); try { b.ajaxOptions.success(k, n) } catch (m) { } 
                                        }, error: function(k, n) { e._cleanup(); e._trigger("load", null, e._ui(e.anchors[a], e.panels[a])); try { b.ajaxOptions.error(k, n, a, c) } catch (m) { } } 
                                        })); e.element.dequeue("tabs"); return this
                                    } 
                                }, abort: function() { this.element.queue([]); this.panels.stop(false, true); this.element.queue("tabs", this.element.queue("tabs").splice(-2, 2)); if (this.xhr) { this.xhr.abort(); delete this.xhr } this._cleanup(); return this }, url: function(a,
e) { this.anchors.eq(a).removeData("cache.tabs").data("load.tabs", e); return this }, length: function() { return this.anchors.length } 
                            }); d.extend(d.ui.tabs, { version: "1.8.4" }); d.extend(d.ui.tabs.prototype, { rotation: null, rotate: function(a, e) {
                                var b = this, c = this.options, h = b._rotate || (b._rotate = function(i) { clearTimeout(b.rotation); b.rotation = setTimeout(function() { var k = c.selected; b.select(++k < b.anchors.length ? k : 0) }, a); i && i.stopPropagation() }); e = b._unrotate || (b._unrotate = !e ? function(i) { i.clientX && b.rotate(null) } :
function() { t = c.selected; h() }); if (a) { this.element.bind("tabsshow", h); this.anchors.bind(c.event + ".tabs", e); h() } else { clearTimeout(b.rotation); this.element.unbind("tabsshow", h); this.anchors.unbind(c.event + ".tabs", e); delete this._rotate; delete this._unrotate } return this
                            } 
                            })
                        })(jQuery);

/*
 ### jQuery Star Rating Plugin v3.13 - 2009-03-26 ###
 * Home: http://www.fyneworks.com/jquery/star-rating/
 * Code: http://code.google.com/p/jquery-star-rating-plugin/
 *
	* Dual licensed under the MIT and GPL licenses:
 *   http://www.opensource.org/licenses/mit-license.php
 *   http://www.gnu.org/licenses/gpl.html
 ###
*/
eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}(';5(29.1j)(7($){5($.1L.1J)1I{1t.1H("1K",J,H)}1M(e){};$.n.3=7(i){5(4.Q==0)k 4;5(A I[0]==\'1h\'){5(4.Q>1){8 j=I;k 4.W(7(){$.n.3.y($(4),j)})};$.n.3[I[0]].y(4,$.1T(I).1U(1)||[]);k 4};8 i=$.12({},$.n.3.1s,i||{});$.n.3.K++;4.2a(\'.9-3-1f\').o(\'9-3-1f\').W(7(){8 a,l=$(4);8 b=(4.23||\'21-3\').1v(/\\[|\\]/g,\'Z\').1v(/^\\Z+|\\Z+$/g,\'\');8 c=$(4.1X||1t.1W);8 d=c.6(\'3\');5(!d||d.18!=$.n.3.K)d={z:0,18:$.n.3.K};8 e=d[b];5(e)a=e.6(\'3\');5(e&&a)a.z++;x{a=$.12({},i||{},($.1b?l.1b():($.1S?l.6():s))||{},{z:0,F:[],v:[]});a.w=d.z++;e=$(\'<1R V="9-3-1Q"/>\');l.1P(e);e.o(\'3-15-T-17\');5(l.S(\'R\'))a.m=H;e.1c(a.E=$(\'<P V="3-E"><a 14="\'+a.E+\'">\'+a.1d+\'</a></P>\').1g(7(){$(4).3(\'O\');$(4).o(\'9-3-N\')}).1i(7(){$(4).3(\'u\');$(4).G(\'9-3-N\')}).1l(7(){$(4).3(\'r\')}).6(\'3\',a))};8 f=$(\'<P V="9-3 q-\'+a.w+\'"><a 14="\'+(4.14||4.1p)+\'">\'+4.1p+\'</a></P>\');e.1c(f);5(4.11)f.S(\'11\',4.11);5(4.1r)f.o(4.1r);5(a.1F)a.t=2;5(A a.t==\'1u\'&&a.t>0){8 g=($.n.10?f.10():0)||a.1w;8 h=(a.z%a.t),Y=1y.1z(g/a.t);f.10(Y).1A(\'a\').1B({\'1C-1D\':\'-\'+(h*Y)+\'1E\'})};5(a.m)f.o(\'9-3-1o\');x f.o(\'9-3-1G\').1g(7(){$(4).3(\'1n\');$(4).3(\'D\')}).1i(7(){$(4).3(\'u\');$(4).3(\'C\')}).1l(7(){$(4).3(\'r\')});5(4.L)a.p=f;l.1q();l.1N(7(){$(4).3(\'r\')});f.6(\'3.l\',l.6(\'3.9\',f));a.F[a.F.Q]=f[0];a.v[a.v.Q]=l[0];a.q=d[b]=e;a.1O=c;l.6(\'3\',a);e.6(\'3\',a);f.6(\'3\',a);c.6(\'3\',d)});$(\'.3-15-T-17\').3(\'u\').G(\'3-15-T-17\');k 4};$.12($.n.3,{K:0,D:7(){8 a=4.6(\'3\');5(!a)k 4;5(!a.D)k 4;8 b=$(4).6(\'3.l\')||$(4.U==\'13\'?4:s);5(a.D)a.D.y(b[0],[b.M(),$(\'a\',b.6(\'3.9\'))[0]])},C:7(){8 a=4.6(\'3\');5(!a)k 4;5(!a.C)k 4;8 b=$(4).6(\'3.l\')||$(4.U==\'13\'?4:s);5(a.C)a.C.y(b[0],[b.M(),$(\'a\',b.6(\'3.9\'))[0]])},1n:7(){8 a=4.6(\'3\');5(!a)k 4;5(a.m)k;4.3(\'O\');4.1a().19().X(\'.q-\'+a.w).o(\'9-3-N\')},O:7(){8 a=4.6(\'3\');5(!a)k 4;5(a.m)k;a.q.1V().X(\'.q-\'+a.w).G(\'9-3-1k\').G(\'9-3-N\')},u:7(){8 a=4.6(\'3\');5(!a)k 4;4.3(\'O\');5(a.p){a.p.6(\'3.l\').S(\'L\',\'L\');a.p.1a().19().X(\'.q-\'+a.w).o(\'9-3-1k\')}x $(a.v).1m(\'L\');a.E[a.m||a.1Y?\'1q\':\'1Z\']();4.20()[a.m?\'o\':\'G\'](\'9-3-1o\')},r:7(a,b){8 c=4.6(\'3\');5(!c)k 4;5(c.m)k;c.p=s;5(A a!=\'B\'){5(A a==\'1u\')k $(c.F[a]).3(\'r\',B,b);5(A a==\'1h\')$.W(c.F,7(){5($(4).6(\'3.l\').M()==a)$(4).3(\'r\',B,b)})}x c.p=4[0].U==\'13\'?4.6(\'3.9\'):(4.22(\'.q-\'+c.w)?4:s);4.6(\'3\',c);4.3(\'u\');8 d=$(c.p?c.p.6(\'3.l\'):s);5((b||b==B)&&c.1e)c.1e.y(d[0],[d.M(),$(\'a\',c.p)[0]])},m:7(a,b){8 c=4.6(\'3\');5(!c)k 4;c.m=a||a==B?H:J;5(b)$(c.v).S("R","R");x $(c.v).1m("R");4.6(\'3\',c);4.3(\'u\')},1x:7(){4.3(\'m\',H,H)},24:7(){4.3(\'m\',J,J)}});$.n.3.1s={E:\'25 26\',1d:\'\',t:0,1w:16};$(7(){$(\'l[27=28].9\').3()})})(1j);',62,135,'|||rating|this|if|data|function|var|star|||||||||||return|input|readOnly|fn|addClass|current|rater|select|null|split|draw|inputs|serial|else|apply|count|typeof|undefined|blur|focus|cancel|stars|removeClass|true|arguments|false|calls|checked|val|hover|drain|div|length|disabled|attr|be|tagName|class|each|filter|spw|_|width|id|extend|INPUT|title|to||drawn|call|andSelf|prevAll|metadata|append|cancelValue|callback|applied|mouseover|string|mouseout|jQuery|on|click|removeAttr|fill|readonly|value|hide|className|options|document|number|replace|starWidth|disable|Math|floor|find|css|margin|left|px|half|live|execCommand|try|msie|BackgroundImageCache|browser|catch|change|context|before|control|span|meta|makeArray|slice|children|body|form|required|show|siblings|unnamed|is|name|enable|Cancel|Rating|type|radio|window|not'.split('|'),0,{}))

                        /**
                        * jQuery.ScrollTo - Easy element scrolling using jQuery.
                        * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
                        * Dual licensed under MIT and GPL.
                        * Date: 5/25/2009
                        * @author Ariel Flesler
                        * @version 1.4.2
                        *
                        * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
                        */
                        ; (function(d) { var k = d.scrollTo = function(a, i, e) { d(window).scrollTo(a, i, e) }; k.defaults = { axis: 'xy', duration: parseFloat(d.fn.jquery) >= 1.3 ? 0 : 1 }; k.window = function(a) { return d(window)._scrollable() }; d.fn._scrollable = function() { return this.map(function() { var a = this, i = !a.nodeName || d.inArray(a.nodeName.toLowerCase(), ['iframe', '#document', 'html', 'body']) != -1; if (!i) return a; var e = (a.contentWindow || a).document || a.ownerDocument || a; return d.browser.safari || e.compatMode == 'BackCompat' ? e.body : e.documentElement }) }; d.fn.scrollTo = function(n, j, b) { if (typeof j == 'object') { b = j; j = 0 } if (typeof b == 'function') b = { onAfter: b }; if (n == 'max') n = 9e9; b = d.extend({}, k.defaults, b); j = j || b.speed || b.duration; b.queue = b.queue && b.axis.length > 1; if (b.queue) j /= 2; b.offset = p(b.offset); b.over = p(b.over); return this._scrollable().each(function() { var q = this, r = d(q), f = n, s, g = {}, u = r.is('html,body'); switch (typeof f) { case 'number': case 'string': if (/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)) { f = p(f); break } f = d(f, this); case 'object': if (f.is || f.style) s = (f = d(f)).offset() } d.each(b.axis.split(''), function(a, i) { var e = i == 'x' ? 'Left' : 'Top', h = e.toLowerCase(), c = 'scroll' + e, l = q[c], m = k.max(q, i); if (s) { g[c] = s[h] + (u ? 0 : l - r.offset()[h]); if (b.margin) { g[c] -= parseInt(f.css('margin' + e)) || 0; g[c] -= parseInt(f.css('border' + e + 'Width')) || 0 } g[c] += b.offset[h] || 0; if (b.over[h]) g[c] += f[i == 'x' ? 'width' : 'height']() * b.over[h] } else { var o = f[h]; g[c] = o.slice && o.slice(-1) == '%' ? parseFloat(o) / 100 * m : o } if (/^\d+$/.test(g[c])) g[c] = g[c] <= 0 ? 0 : Math.min(g[c], m); if (!a && b.queue) { if (l != g[c]) t(b.onAfterFirst); delete g[c] } }); t(b.onAfter); function t(a) { r.animate(g, j, b.easing, a && function() { a.call(this, n, b) }) } }).end() }; k.max = function(a, i) { var e = i == 'x' ? 'Width' : 'Height', h = 'scroll' + e; if (!d(a).is('html,body')) return a[h] - d(a)[e.toLowerCase()](); var c = 'client' + e, l = a.ownerDocument.documentElement, m = a.ownerDocument.body; return Math.max(l[h], m[h]) - Math.min(l[c], m[c]) }; function p(a) { return typeof a == 'object' ? a : { top: a, left: a} } })(jQuery);

                        //ScrollPane
(function(A) { A.jScrollPane = { active: [] }; A.fn.jScrollPane = function(C) { C = A.extend({}, A.fn.jScrollPane.defaults, C); var B = function() { return false }; return this.each(function() { var O = A(this); O.css("overflow", "hidden"); var X = this; if (A(this).parent().is(".jScrollPaneContainer")) { var Ac = C.maintainPosition ? O.position().top : 0; var L = A(this).parent(); var d = L.innerWidth(); var Ad = L.outerHeight(); var M = Ad; A(">.jScrollPaneTrack, >.jScrollArrowUp, >.jScrollArrowDown", L).remove(); O.css({ top: 0 }) } else { var Ac = 0; this.originalPadding = O.css("paddingTop") + " " + O.css("paddingRight") + " " + O.css("paddingBottom") + " " + O.css("paddingLeft"); this.originalSidePaddingTotal = (parseInt(O.css("paddingLeft")) || 0) + (parseInt(O.css("paddingRight")) || 0); var d = O.innerWidth(); var Ad = O.innerHeight(); var M = Ad; O.wrap(A("<div></div>").attr({ className: "jScrollPaneContainer" }).css({ height: Ad + "px", width: d + "px" })); A(document).bind("emchange", function(Ae, Af, p) { O.jScrollPane(C) }) } if (C.reinitialiseOnImageLoad) { var N = A.data(X, "jScrollPaneImagesToLoad") || A("img", O); var G = []; if (N.length) { N.each(function(p, Ae) { A(this).bind("load", function() { if (A.inArray(p, G) == -1) { G.push(Ae); N = A.grep(N, function(Ag, Af) { return Ag != Ae }); A.data(X, "jScrollPaneImagesToLoad", N); C.reinitialiseOnImageLoad = false; O.jScrollPane(C) } }).each(function(Af, Ag) { if (this.complete || this.complete === undefined) { this.src = this.src } }) }) } } var o = this.originalSidePaddingTotal; var l = { height: "auto", width: d - C.scrollbarWidth - C.scrollbarMargin - o + "px" }; if (C.scrollbarOnLeft) { l.paddingLeft = C.scrollbarMargin + C.scrollbarWidth + "px" } else { l.paddingRight = C.scrollbarMargin + "px" } O.css(l); var m = O.outerHeight(); var i = Ad / m; if (i < 0.99) { var H = O.parent(); H.append(A("<div></div>").attr({ className: "jScrollPaneTrack" }).css({ width: C.scrollbarWidth + "px" }).append(A("<div></div>").attr({ className: "jScrollPaneDrag" }).css({ width: C.scrollbarWidth + "px" }).append(A("<div></div>").attr({ className: "jScrollPaneDragTop" }).css({ width: C.scrollbarWidth + "px" }), A("<div></div>").attr({ className: "jScrollPaneDragBottom" }).css({ width: C.scrollbarWidth + "px" })))); var z = A(">.jScrollPaneTrack", H); var P = A(">.jScrollPaneTrack .jScrollPaneDrag", H); if (C.showArrows) { var g; var Ab; var S; var r; var j = function() { if (r > 4 || r % 4 == 0) { y(u + Ab * b) } r++ }; var K = function(p) { A("html").unbind("mouseup", K); g.removeClass("jScrollActiveArrowButton"); clearInterval(S) }; var Z = function() { A("html").bind("mouseup", K); g.addClass("jScrollActiveArrowButton"); r = 0; j(); S = setInterval(j, 100) }; H.append(A("<a></a>").attr({ href: "javascript:;", className: "jScrollArrowUp" }).css({ width: C.scrollbarWidth + "px" }).html("Scroll up").bind("mousedown", function() { g = A(this); Ab = -1; Z(); this.blur(); return false }).bind("click", B), A("<a></a>").attr({ href: "javascript:;", className: "jScrollArrowDown" }).css({ width: C.scrollbarWidth + "px" }).html("Scroll down").bind("mousedown", function() { g = A(this); Ab = 1; Z(); this.blur(); return false }).bind("click", B)); var Q = A(">.jScrollArrowUp", H); var J = A(">.jScrollArrowDown", H); if (C.arrowSize) { M = Ad - C.arrowSize - C.arrowSize; z.css({ height: M + "px", top: C.arrowSize + "px" }) } else { var s = Q.height(); C.arrowSize = s; M = Ad - s - J.height(); z.css({ height: M + "px", top: s + "px" }) } } var w = A(this).css({ position: "absolute", overflow: "visible" }); var D; var Y; var b; var u = 0; var V = i * Ad / 2; var a = function(Ae, Ag) { var Af = Ag == "X" ? "Left" : "Top"; return Ae["page" + Ag] || (Ae["client" + Ag] + (document.documentElement["scroll" + Af] || document.body["scroll" + Af])) || 0 }; var f = function() { return false }; var v = function() { n(); D = P.offset(false); D.top -= u; Y = M - P[0].offsetHeight; b = 2 * C.wheelSpeed * Y / m }; var E = function(p) { v(); V = a(p, "Y") - u - D.top; A("html").bind("mouseup", T).bind("mousemove", h); if (A.browser.msie) { A("html").bind("dragstart", f).bind("selectstart", f) } return false }; var T = function() { A("html").unbind("mouseup", T).unbind("mousemove", h); V = i * Ad / 2; if (A.browser.msie) { A("html").unbind("dragstart", f).unbind("selectstart", f) } }; var y = function(Ae) { Ae = Ae < 0 ? 0 : (Ae > Y ? Y : Ae); u = Ae; P.css({ top: Ae + "px" }); var Af = Ae / Y; w.css({ top: ((Ad - m) * Af) + "px" }); O.trigger("scroll"); if (C.showArrows) { Q[Ae == 0 ? "addClass" : "removeClass"]("disabled"); J[Ae == Y ? "addClass" : "removeClass"]("disabled") } }; var h = function(p) { y(a(p, "Y") - D.top - V) }; var q = Math.max(Math.min(i * (Ad - C.arrowSize * 2), C.dragMaxHeight), C.dragMinHeight); P.css({ height: q + "px" }).bind("mousedown", E); var k; var R; var I; var t = function() { if (R > 8 || R % 4 == 0) { y((u - ((u - I) / 2))) } R++ }; var Aa = function() { clearInterval(k); A("html").unbind("mouseup", Aa).unbind("mousemove", e) }; var e = function(p) { I = a(p, "Y") - D.top - V }; var U = function(p) { v(); e(p); R = 0; A("html").bind("mouseup", Aa).bind("mousemove", e); k = setInterval(t, 100); t() }; z.bind("mousedown", U); H.bind("mousewheel", function(Ae, Ag) { v(); n(); var Af = u; y(u - Ag * b); var p = Af != u; return !p }); var F; var W; function c() { var p = (F - u) / C.animateStep; if (p > 1 || p < -1) { y(u + p) } else { y(F); n() } } var n = function() { if (W) { clearInterval(W); delete F } }; var x = function(Af, p) { if (typeof Af == "string") { $e = A(Af, O); if (!$e.length) { return } Af = $e.offset().top - O.offset().top } H.scrollTop(0); n(); var Ae = -Af / (Ad - m) * Y; if (p || !C.animateTo) { y(Ae) } else { F = Ae; W = setInterval(c, C.animateInterval) } }; O[0].scrollTo = x; O[0].scrollBy = function(Ae) { var p = -parseInt(w.css("top")) || 0; x(p + Ae) }; v(); x(-Ac, true); A("*", this).bind("focus", function(Ah) { var Ag = A(this); var Aj = 0; while (Ag[0] != O[0]) { Aj += Ag.position().top; Ag = Ag.offsetParent() } var p = -parseInt(w.css("top")) || 0; var Ai = p + Ad; var Af = Aj > p && Aj < Ai; if (!Af) { var Ae = Aj - C.scrollbarMargin; if (Aj > p) { Ae += A(this).height() + 15 + C.scrollbarMargin - Ad } x(Ae) } }); if (location.hash) { x(location.hash) } A(document).bind("click", function(Ae) { $target = A(Ae.target); if ($target.is("a")) { var p = $target.attr("href"); if (p.substr(0, 1) == "#") { x(p) } } }); A.jScrollPane.active.push(O[0]) } else { O.css({ height: Ad + "px", width: d - this.originalSidePaddingTotal + "px", padding: this.originalPadding }); O.parent().unbind("mousewheel") } }) }; A.fn.jScrollPane.defaults = { scrollbarWidth: 10, scrollbarMargin: 5, wheelSpeed: 18, showArrows: false, arrowSize: 0, animateTo: false, dragMinHeight: 1, dragMaxHeight: 99999, animateInterval: 100, animateStep: 3, maintainPosition: true, scrollbarOnLeft: false, reinitialiseOnImageLoad: false }; A(window).bind("unload", function() { var C = A.jScrollPane.active; for (var B = 0; B < C.length; B++) { C[B].scrollTo = C[B].scrollBy = null } }) })(jQuery);

// PageRequestManager Extension
var PageRequestManagerEx =
{
    _initialized: false,

    init: function() {
        if (!PageRequestManagerEx._initialized) {
            var _callQueue = new Array();
            var _executingElement = null;
            var _prm = Sys.WebForms.PageRequestManager.getInstance();

            _prm.add_initializeRequest(initializeRequest);
            _prm.add_endRequest(endRequest);

            //PageRequestManagerEx._initialized = true;
        }

        function initializeRequest(sender, args) {
            if (_prm.get_isInAsyncPostBack()) {
                //if we are here that means there already a call pending.

                //Get the element which cause the postback
                var postBackElement = args.get_postBackElement();

                //We need to check this otherwise it will abort the request which we made from the
                //end request
                if (_executingElement != postBackElement) {
                    //Does not match which means it is another control
                    //which request the update, so cancel it temporary and 
                    //add it in the call queue
                    args.set_cancel(true);
                    Array.enqueue(_callQueue, postBackElement);
                }

                //Reset it as we are done with our matching
                _executingElement = null;
            }
        }

        function endRequest(sender, args) {
            //Check if we have a pending call
            if (_callQueue.length > 0) {
                //Get the first item from the call queue and setting it
                //as current executing item
                _executingElement = Array.dequeue(_callQueue);

                //Now Post the from which will also fire the initializeRequest
                _prm._doPostBack(_executingElement.id, '');
            }
        }
    }
}

if (typeof (Sys) != 'undefined') {
    Sys.Application.notifyScriptLoaded();
}                        

