/impl/conf/language/MessageResourcesEmail.properties |
---|
3,15 → 3,15 |
# MAIL MESSAGE RESOURCES |
# |
################################################################################ |
module.Email=Serviço de Email |
pop.no.messages=Não tem mensagens na sua caixa de correio |
pop.title=Ir para <a target="_blank" href="http://mail.estgp.pt/exchange/{0}">WEBMAIL</a> |
pop.last.messages=Últimas mensagens de Email |
module.Email=Servi\u00e7o de Email |
pop.no.messages=N\u00e3o tem mensagens na sua caixa de correio |
pop.title=Ir para <a target="_blank" href="http://mail.google.com/a/estgp.pt/{0}">WEBMAIL</a> |
pop.last.messages=\u00daltimas mensagens de Email |
pop.text=Mensagem |
pop.from=De |
pop.to=Para |
pop.subject=Assunto |
pop.loading=Carregando mensagens de Email... |
pop.date=Recebido |
pop.not.configured=A caixa POP do seu servidor de Email não está configurado. A sigla POP refere-se ao protocolo de leitura de mensagens em servidores de email externos. Por favor configure o seu servidor de POP nos seus dados de perfil<br>(exemplo na ESTG:<br> pop = mail.estgp.pt) |
pop.danger.messages=Existem mensagens na sua caixa de correio da escola que estão incorrectamente formatadas e que podem prejudicar a vizualização deste sítio. Por favor remova-as da sua caixa para que as restantes possam ser aqui apresentadas. |
pop.not.configured=A caixa POP do seu servidor de Email n\u00e3o est\u00e1 configurado. A sigla POP refere-se ao protocolo de leitura de mensagens em servidores de email externos. Por favor configure o seu servidor de POP nos seus dados de perfil<br>(exemplo na ESTG:<br> pop = mail.estgp.pt) |
pop.danger.messages=Existem mensagens na sua caixa de correio da escola que est\u00e3o incorrectamente formatadas e que podem prejudicar a vizualiza\u00e7\u00e3o deste s\u00edtio. Por favor remova-as da sua caixa para que as restantes possam ser aqui apresentadas. |
/impl/conf/language/MessageResourcesCourse.properties |
---|
87,6 → 87,6 |
course.menu.casos=Casos de sucesso |
course.menu.parceiros=Parceiros |
course.menu.faq=FAQ |
course.menu.publicacoes=Publicações |
status=Curso Activo |
/impl/conf/language/MessageResourcesCourseUnits.properties |
---|
8,21 → 8,22 |
courseunit={0} |
course.nav.without.arrow={0} |
courseunit.security.not.implemented=Não implementado por razões de segurança |
courseunit.security.not.implemented=N\u00e3o implementado por raz\u00f5es de seguran\u00e7a |
courseunit.removed=Unidade Removida com sucesso |
courseunit.menu.unit.old.units=Anos anteriores |
courseunit.menu.unit.other.units=Outros Anos |
courseunit.menu.unit=Unidade |
courseunit.teachers=Corpo Docente |
courseunit.objectives=Objectivos da Unidade |
courseunit.programfile.invalid=O programa encontra-se submetido pela administração mas não está validado pela Comissão de Curso |
courseunit.programfile.invalid=O programa encontra-se submetido pela administra\u00e7\u00e3o mas n\u00e3o est\u00e1 validado pela Comiss\u00e3o de Curso |
courseunit.programfilepath=Programa Curricular |
courseunit.programfilepath.not.available=O Programa Curricular não está disponivel |
courseunit.objectives.not.available=Os objectivos não estão disponiveis |
courseunit.summaries=Sumários |
courseunit.programfilepath.not.available=O Programa Curricular n\u00e3o est\u00e1 disponivel |
courseunit.objectives.not.available=Os objectivos n\u00e3o est\u00e3o disponiveis |
courseunit.summaries=Sum\u00e1rios |
courseunit.summary.present.students=alunos presentes (valor de amostragem) |
courseunit.summaries.zero.placed=Não existem sumários disponiveis |
courseunit.summaries.zero.placed=N\u00e3o existem sum\u00e1rios disponiveis |
courseunit.program.description=Programa Curricular de {0} |
courseunit.pathIntranet=Pasta de ficheiros na intranet |
courseunit.program.archive=Arquivo |
33,7 → 34,7 |
courseunit.objectives.todo=Peenchimento dos objectivos da unidade |
courseunit.program.todo=Upload do programa da unidade |
courseunit.program.objectives.todo=Programa e/ou Objectivos |
courseunit.question.todo=Dúvida |
courseunit.question.todo=D\u00favida |
courseunit.assignement.todo=Trabalho por entregar |
course.unit.works=Trabalhos |
courseunit.works=Trabalhos |
42,9 → 43,9 |
courseunit.search.unit=Procurar Unidade Curricular |
courseunit.name=Nome |
courseunit.code=Código |
courseunit.code=C\u00f3digo |
courseunit.semestre=Semestre |
courseunit.importYear=Ano de Importação |
courseunit.importYear=Ano de Importa\u00e7\u00e3o |
courseunit.course=Curso |
54,32 → 55,32 |
courseunit.assignement=Trabalho: {0} |
courseunit.teacher.situation=Situação de Professores |
courseunit.teacher.situation=Situa\u00e7\u00e3o de Professores |
courseunit.teacher.situation.withTeachers=Com Professor |
courseunit.teacher.situation.withNoTeachers=Sem Professor |
courseunit.teacher.situation.all=Todos |
courseunit.S1=1º Semestre |
courseunit.S2=2ª Semestre |
courseunit.S1=1\u00ba Semestre |
courseunit.S2=2\u00aa Semestre |
courseunit.ALL=Todos os Semestres |
courseunit.assignement.delivered.date=Data de Entrega |
courseunit.assignement.delivered.date.first.version=Data de Entrega da Primeira Versão |
courseunit.assignement.delivered.versions=Total de Versões Entregues |
courseunit.assignement.delivered.date.first.version=Data de Entrega da Primeira Vers\u00e3o |
courseunit.assignement.delivered.versions=Total de Vers\u00f5es Entregues |
courseunit.assignement.deliver.date=Data Limite de Entrega |
courseunit.assignement.deliver.type=Tipo de entrega |
courseunit.assignement.deliver.type.zipfile=Ficheiro Comprimido (ZIP) |
courseunit.assignement.deliver.type.file=Ficheiro Electrónico |
courseunit.assignement.deliver.type.file=Ficheiro Electr\u00f3nico |
courseunit.assignement.deliver.grade=Nota |
courseunit.assignement.deliver.show.obs=Adicionar observações |
courseunit.assignement.deliver.show.obs=Adicionar observa\u00e7\u00f5es |
courseunit.assignement.deliver.obs=obs |
courseunit.assignement.deliver.type.nofile=Entrega não controlada pelo sistema |
courseunit.assignement.deliver.type.nofile=Entrega n\u00e3o controlada pelo sistema |
courseunit.assignement.deliver.late.permission=Permitir entregas atrasadas |
courseunit.assignement.delivers=Número de Entregas |
courseunit.assignement.deliver.version=Versão Entregue |
courseunit.assignement.delivers=N\u00famero de Entregas |
courseunit.assignement.deliver.version=Vers\u00e3o Entregue |
courseunit.assignement.deliver=Entregar Trabalho |
courseunit.search=Procurar Unidade Curricular |
courseunitwork.confirm.delete=Atenção: Todas as entregas de alunos serão também removidas. Pode Invalidar o trabalho para este não ficar visivel aos alunos e desta forma mantém a informação relativa a entregas. De certeza que pretende apagar o Trabalho selecionado? |
courseunitwork.confirm.delete=Aten\u00e7\u00e3o: Todas as entregas de alunos ser\u00e3o tamb\u00e9m removidas. Pode Invalidar o trabalho para este n\u00e3o ficar visivel aos alunos e desta forma mant\u00e9m a informa\u00e7\u00e3o relativa a entregas. De certeza que pretende apagar o Trabalho selecionado? |
courseunit.assignement.deliver.sucess=Trabalho {0} entregue com sucesso |
errors.courseunit.assignement.deliver.file=O Ficheiro que escolheu não existe ou estão vazio |
errors.courseunit.assignement.deliver.file=O Ficheiro que escolheu n\u00e3o existe ou est\u00e3o vazio |
errors.courseunit.assignement.deliver.zip=Por favor escolha um ficheiro comprimido em formato ZIP |
errors.courseunit.assignement.file.type=Por favor escolha um ficheiro comprimido em formato ZIP |
courseunit.students=Estudantes |
91,69 → 92,69 |
courseunit.assignement.deliver.time.ok=Entregue a Horas |
courseunit.assignement.deliver.time.late=Entrega atrasada |
courseunit.assignement.deliver.time.no=Por Entregar |
courseunit.menu.home=Início |
courseunit.menu.put.question=Colocar dúvida |
courseunit.menu.put.announcement=Colocar Anúncio |
courseunit.menu.home=In\u00edcio |
courseunit.menu.put.question=Colocar d\u00favida |
courseunit.menu.put.announcement=Colocar An\u00fancio |
courseunit.menu.assignements=Trabalhos |
courseunit.menu.blog=Blog da Unidade |
courseunit.menu.files=Ficheiros |
courseunit.menu.presences=Assiduidade |
courseunit.menu.contents=Conteúdos |
courseunit.menu.grades=Avaliação |
courseunit.menu.contents=Conte\u00fados |
courseunit.menu.grades=Avalia\u00e7\u00e3o |
replace=Substituir |
courseunit.assignement.file=Enunciado |
error.courseunit.student.not.found=Estudante não encontrado |
error.courseunit.teacher.not.found=Professor não encontrado |
error.courseunit.student.not.found=Estudante n\u00e3o encontrado |
error.courseunit.teacher.not.found=Professor n\u00e3o encontrado |
backups=Cópias de Segurança |
courseunits.backups=Criar cópia de Segurança de todos das Unidades Curriculares em todos os cursos |
courseunits.backups.actual.year=Criar cópia de Segurança (apenas do ano corrente) de todos das Unidades Curriculares em todos os cursos |
backups=C\u00f3pias de Seguran\u00e7a |
courseunits.backups=Criar c\u00f3pia de Seguran\u00e7a de todos das Unidades Curriculares em todos os cursos |
courseunits.backups.actual.year=Criar c\u00f3pia de Seguran\u00e7a (apenas do ano corrente) de todos das Unidades Curriculares em todos os cursos |
courseunits.actual.year.backup=Backup do ano corrente |
courseunits.all.backup=Backup de todos os anos (Este serviço pode demorar alguns minutos a executar) |
courseunits.all.backup=Backup de todos os anos (Este servi\u00e7o pode demorar alguns minutos a executar) |
courseunits.units.warning=Caro {0}, caso alguma das unidades curriculares lhe esteja indevidamente atribuida por favor dirija-se ao Centro Informático para que a situação seja corrijida. |
courseunits.units.warning=Caro {0}, caso alguma das unidades curriculares lhe esteja indevidamente atribuida por favor dirija-se ao Centro Inform\u00e1tico para que a situa\u00e7\u00e3o seja corrijida. |
courseunit.responsable=Professor responsável |
courseunit.responsable=Professor respons\u00e1vel |
courseunits.contentsGrants=Permissões de Consulta dos Ficheiros de Conteúdos |
courseunits.contentsGrants=Permiss\u00f5es de Consulta dos Ficheiros de Conte\u00fados |
courseunits.contentsGrants.PUBLIC=PUBLICAS |
courseunits.contentsGrants.PRIVATE=PRIVADOS A ESTUDANTES E DOCENTES DA UNIDADE |
courseunits.contentsGrants.INTERNAL=COMUNIDADE ACADÉMICA |
courseunits.contentsGrants.INTERNAL=COMUNIDADE ACAD\u00c9MICA |
courseunit.program.objectivos=Objetivos da aprendizagem (conhecimentos, aptidões e competências) a desenvolver pelos estudantes, operacionalização dos objetivos e medição do seu grau de cumprimento) |
courseunit.program.conteudosProgramaticos=Conteúdos |
courseunit.program.prerequisitos=Pré-requisitos |
courseunit.program.demonstracaoCoerenciaConteudosObjectivos=Demonstração da coerência dos conteúdos programáticos com os objectivos da unidade curricular |
courseunit.program.objectivos=Objetivos da aprendizagem (conhecimentos, aptid\u00f5es e compet\u00eancias) a desenvolver pelos estudantes, operacionaliza\u00e7\u00e3o dos objetivos e medi\u00e7\u00e3o do seu grau de cumprimento) |
courseunit.program.conteudosProgramaticos=Conte\u00fados |
courseunit.program.prerequisitos=Pr\u00e9-requisitos |
courseunit.program.demonstracaoCoerenciaConteudosObjectivos=Demonstra\u00e7\u00e3o da coer\u00eancia dos conte\u00fados program\u00e1ticos com os objectivos da unidade curricular |
courseunit.program.metodologiasEnsino=Metodologias de ensino e Aprendizagem |
courseunit.program.demonstracaoDaCoerenciaMetodologiasObjectivos=Demonstração da coerência das metodologias de ensino com os objectivos da aprendizagem da unidade curricular |
courseunit.program.lingua1=Língua de ensino |
courseunit.program.lingua2=Língua de ensino 2 |
courseunit.program.avaliacao=Avaliação <br/>[indicar os componentes d sistema de avaliação, tipo, matéria e peso de cada componente na classificação final] |
courseunit.program.alunosOrdinariosPorFrequencia=Avaliação por frequência |
courseunit.program.alunosOrdinariosPorExame=Avaliação por Exame |
courseunit.program.demonstracaoDaCoerenciaMetodologiasObjectivos=Demonstra\u00e7\u00e3o da coer\u00eancia das metodologias de ensino com os objectivos da aprendizagem da unidade curricular |
courseunit.program.lingua1=L\u00edngua de ensino |
courseunit.program.lingua2=L\u00edngua de ensino 2 |
courseunit.program.avaliacao=Avalia\u00e7\u00e3o <br/>[indicar os componentes d sistema de avalia\u00e7\u00e3o, tipo, mat\u00e9ria e peso de cada componente na classifica\u00e7\u00e3o final] |
courseunit.program.alunosOrdinariosPorFrequencia=Avalia\u00e7\u00e3o por frequ\u00eancia |
courseunit.program.alunosOrdinariosPorExame=Avalia\u00e7\u00e3o por Exame |
courseunit.program.bibliografia=Bibliografia |
courseunit.program.bibliografiaPrincipal=Bibliografia Principal |
courseunit.program.bibliografiaComplementar=Bibliografia Complementar |
courseunit.program.avaliacao.especial=Alunos em mobilidade e alunos com estatuto especial |
courseunit.program.alunosMobilidadeAlunosComEstatutoEspecialPorFrequencia=Avaliação por frequência |
courseunit.program.alunosMobilidadeAlunosComEstatutoEspecialPorExame=Avaliação por Exame |
courseunit.program.alunosMobilidadeAlunosComEstatutoEspecialPorFrequencia=Avalia\u00e7\u00e3o por frequ\u00eancia |
courseunit.program.alunosMobilidadeAlunosComEstatutoEspecialPorExame=Avalia\u00e7\u00e3o por Exame |
courseunit.program.ects.title=ECTS/tempo de trabalho (horas) |
courseunit.program.ects=ECTS |
courseunit.program.ects.cargaHorariaTotal=Total |
/impl/conf/WEB-INF/struts/tiles-assessments.xml |
---|
New file |
0,0 → 1,60 |
<?xml version="1.0" encoding="UTF-8" ?> |
<!--<!DOCTYPE tiles-definitions PUBLIC--> |
<!--"-//Apache Software Foundation//DTD Tiles Configuration 1.1//EN"--> |
<!--"http://struts.apache.org/dtds/tiles-config_1_1.dtd">--> |
<tiles-definitions> |
<definition name="page.submit.assessment.from.serviceZone" extends="page.separators.serviceZone"> |
<put name="title" value="Prova"/> |
<put name="topnav" value="/user/serviceZone/topnavCreateAssessment.jsp"/> |
<put name="body" value="/user/assessments/submitAssessment.jsp"/> |
</definition> |
<definition name="page.list.assessments.from.serviceZone" extends="page.separators.serviceZone"> |
<put name="title" value="Prova"/> |
<put name="topnav" value="/user/serviceZone/topnavListAssessment.jsp"/> |
<put name="body" value="/user/assessments/listAssessments.jsp"/> |
</definition> |
<definition name="page.submit.schedule.from.serviceZone" extends="page.separators.serviceZone"> |
<put name="title" value="Prova"/> |
<put name="topnav" value="/user/serviceZone/topnavScheduleAssessment.jsp"/> |
<put name="body" value="/user/assessments/scheduleAssessment.jsp"/> |
</definition> |
<definition name="page.submit.editSchedule.from.serviceZone" extends="page.separators.serviceZone"> |
<put name="title" value="Prova"/> |
<put name="topnav" value="/user/serviceZone/topnavEditScheduleAssessment.jsp"/> |
<put name="body" value="/user/assessments/editScheduleAssessment.jsp"/> |
</definition> |
<definition name="page.submit.assessment.response.from.home" extends="page.separators.home"> |
<put name="title" value="Prova"/> |
<put name="topnav" value="/user/home/topnavResponseAssessment.jsp"/> |
<put name="body" value="/user/assessments/submitAssessmentResponse.jsp"/> |
</definition> |
<definition name="page.configure.correct.assessment.from.serviceZone" extends="page.separators.home"> |
<put name="title" value="Prova"/> |
<put name="topnav" value="/user/serviceZone/topnavConfigureCorrectAssessment.jsp"/> |
<put name="body" value="/user/assessments/switchCorrectAssessment.jsp"/> |
</definition> |
<definition name="page.list.questionsOrResponsesCorrect.from.serviceZone" extends="page.separators.home"> |
<put name="title" value="Prova"/> |
<put name="topnav" value="/user/serviceZone/topnavAssessmentToCorrect.jsp"/> |
<put name="body" value="/user/assessments/listQuestionsOrResponsesToCorrect.jsp"/> |
</definition> |
<definition name="page.submit.correct.assessment.response.from.serviceZone" extends="page.separators.home"> |
<put name="title" value="Prova"/> |
<put name="topnav" value="/user/serviceZone/topnavCorrectAssessmentResponse.jsp"/> |
<put name="body" value="/user/assessments/submitCorrectAssessmentResponse.jsp"/> |
</definition> |
<definition name="page.submit.correct.question.responses.from.serviceZone" extends="page.separators.home"> |
<put name="title" value="Prova"/> |
<put name="topnav" value="/user/serviceZone/topnavCorrectAssessmentQuestionResponses.jsp"/> |
<put name="body" value="/user/assessments/submitCorrectQuestionResponses.jsp"/> |
</definition> |
</tiles-definitions> |
/impl/conf/WEB-INF/struts/struts-assessment.xml |
---|
New file |
0,0 → 1,141 |
<?xml version="1.0" encoding="UTF-8"?> |
<!--<!DOCTYPE struts-config PUBLIC--> |
<!--"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"--> |
<!--"http://struts.apache.org/dtds/struts-config_1_3.dtd">--> |
<struts-config> |
<form-beans> |
<form-bean type="pt.estgp.estgweb.web.form.assessments.AssessmentsForm" name="AssessmentsForm"/> |
</form-beans> |
<global-exceptions> |
</global-exceptions> |
<global-forwards> |
</global-forwards> |
<action-mappings> |
<action path="/user/submitAssessmentFromServiceZone" |
type="pt.estgp.estgweb.web.controllers.assessments.AssessmentController" |
name="AssessmentsForm" |
scope="request" |
parameter="dispatch" |
input="page.submit.assessment.from.serviceZone" |
validate="true"> |
<forward name="serviceZone" path="page.separators.serviceZone"/> |
</action> |
<action path="/user/scheduleAssessmentFromServiceZone" |
type="pt.estgp.estgweb.web.controllers.assessments.AssessmentController" |
name="AssessmentsForm" |
scope="request" |
parameter="dispatch" |
input="page.submit.schedule.from.serviceZone" |
validate="true"> |
<forward name="serviceZone" path="page.separators.serviceZone"/> |
</action> |
<action path="/user/editScheduleAssessmentFromServiceZone" |
type="pt.estgp.estgweb.web.controllers.assessments.AssessmentController" |
name="AssessmentsForm" |
scope="request" |
parameter="dispatch" |
input="page.submit.editSchedule.from.serviceZone" |
validate="false"> |
<forward name="serviceZone" path="page.separators.serviceZone"/> |
</action> |
<action path="/user/startAssessmentResponseFromHome" forward="/user/assessmentsControllerFromServiceZone.do?dispatch=loadResponse&from=Home"/> |
<action path="/user/submitAssessmentResponseFromHome" |
type="pt.estgp.estgweb.web.controllers.assessments.AssessmentController" |
name="AssessmentsForm" |
scope="request" |
parameter="dispatch" |
input="page.submit.assessment.response.from.home" |
validate="false"> |
<forward name="home" path="page.separators.home"/> |
</action> |
<action path="/user/submitConfigureCorrectAssessmentFromServiceZone" |
type="pt.estgp.estgweb.web.controllers.assessments.AssessmentController" |
name="AssessmentsForm" |
scope="request" |
parameter="dispatch" |
input="page.configure.correct.assessment.from.serviceZone" |
validate="false"> |
<forward name="listQuestionsOrResponsesToCorrect" path="page.list.questionsOrResponsesCorrect.from.serviceZone"/> |
</action> |
<action path="/user/chooseQuestionOrAssessmentToCorrectFromServiceZone" |
type="pt.estgp.estgweb.web.controllers.assessments.AssessmentController" |
name="AssessmentsForm" |
scope="request" |
parameter="dispatch" |
input="page.list.questionsOrResponsesCorrect.from.serviceZone" |
validate="false"> |
<!--<forward name="listQuestionsOrResponsesToCorrect" path="page.list.questionsOrResponsesCorrect.from.serviceZone"/>--> |
</action> |
<!--SUBMETER CORRECCAO A UMA PROVA INDIVIDUAL--> |
<action path="/user/startSubmitCorrectAssessmentResponseFromServiceZone" forward="/user/assessmentsControllerFromServiceZone.do?dispatch=loadCorrectResponse&from=ServiceZone"/> |
<action path="/user/submitCorrectAssessmentResponseFromServiceZone" |
type="pt.estgp.estgweb.web.controllers.assessments.AssessmentController" |
name="AssessmentsForm" |
scope="request" |
parameter="dispatch" |
input="page.submit.correct.assessment.response.from.serviceZone" |
validate="false"> |
<forward name="serviceZone" path="page.separators.serviceZone"/> |
<forward name="listQuestionsOrResponsesToCorrect" path="page.list.questionsOrResponsesCorrect.from.serviceZone"/> |
</action> |
<!--SUBMETER CORRECCAO ÀS RESPOSTAS DE UMA QUESTÃO INDIVIDUAL--> |
<action path="/user/startSubmitCorrectQuestionResponsesFromServiceZone" forward="/user/assessmentsControllerFromServiceZone.do?dispatch=loadQuestionResponses&from=ServiceZone"/> |
<action path="/user/submitCorrectQuestionResponsesFromServiceZone" |
type="pt.estgp.estgweb.web.controllers.assessments.AssessmentController" |
name="AssessmentsForm" |
scope="request" |
parameter="dispatch" |
input="page.submit.correct.question.responses.from.serviceZone" |
validate="false"> |
<forward name="serviceZone" path="page.separators.serviceZone"/> |
<forward name="listQuestionsOrResponsesToCorrect" path="page.list.questionsOrResponsesCorrect.from.serviceZone"/> |
</action> |
<!--<action path="/user/startLoadSurveyNodeGraphs" forward="page.load.survey.node.graphs"/>--> |
<!--<action path="/user/startListSurveyStats" forward="/user/surveysControllerFromServiceZone.do?dispatch=listStats"/>--> |
<action path="/user/generateEvaluationsPdfFromServiceZone" forward="/user/assessmentsControllerFromServiceZone.do?dispatch=generateEvaluationsPdf&from=ServiceZone"/> |
<action path="/user/startCorrectAssessmentFromServiceZone" forward="/user/assessmentsControllerFromServiceZone.do?dispatch=startCorrect&from=ServiceZone"/> |
<action path="/user/startScheduleAssessmentFromServiceZone" forward="/user/assessmentsControllerFromServiceZone.do?dispatch=schedule&from=ServiceZone"/> |
<action path="/user/startEditScheduleAssessmentFromServiceZone" forward="/user/assessmentsControllerFromServiceZone.do?dispatch=editSchedule&from=ServiceZone"/> |
<action path="/user/startCloneAssessmentFromServiceZone" forward="/user/assessmentsControllerFromServiceZone.do?dispatch=clone&from=ServiceZone"/> |
<action path="/user/startEditAssessmentFromServiceZone" forward="/user/assessmentsControllerFromServiceZone.do?dispatch=edit&from=ServiceZone"/> |
<action path="/user/startListAssessmentsFromServiceZone" forward="page.list.assessments.from.serviceZone"/> |
<action path="/user/startSubmitAssessmentFromServiceZone" forward="/user/assessmentsControllerFromServiceZone.do?dispatch=create&from=ServiceZone"/> |
<action path="/user/assessmentsControllerFromServiceZone" |
type="pt.estgp.estgweb.web.controllers.assessments.AssessmentController" |
name="AssessmentsForm" |
scope="request" |
parameter="dispatch" |
input="page.submit.assessment.from.serviceZone" |
validate="false"> |
<forward name="listAssessments" path="page.list.assessments.from.serviceZone"/> |
<forward name="loadQuestionResponses" path="page.submit.correct.question.responses.from.serviceZone"/> |
<forward name="loadCorrectResponse" path="page.submit.correct.assessment.response.from.serviceZone"/> |
<forward name="startCorrect" path="page.configure.correct.assessment.from.serviceZone"/> |
<forward name="response" path="page.submit.assessment.response.from.home"/> |
<!--<forward name="stats" path="page.list.survey.stats"/>--> |
<forward name="schedule" path="page.submit.schedule.from.serviceZone"/> |
<forward name="editSchedule" path="page.submit.editSchedule.from.serviceZone"/> |
<forward name="serviceZone" path="page.separators.serviceZone"/> |
<forward name="from.add.role" path="page.submit.assessment.from.serviceZone"/> |
</action> |
</action-mappings> |
</struts-config> |
/impl/conf/WEB-INF/web.xml |
---|
355,6 → 355,35 |
<!--TLDS--> |
<jsp-config> |
<taglib> |
<taglib-uri>/WEB-INF/tlds/jomm.tld</taglib-uri> |
<taglib-location>/WEB-INF/tlds/jomm.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/WEB-INF/tlds/baco.tld</taglib-uri> |
<taglib-location>/WEB-INF/tlds/baco.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/WEB-INF/tlds/struts-bean.tld</taglib-uri> |
<taglib-location>/WEB-INF/tlds/struts-bean.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/WEB-INF/tlds/struts-html.tld</taglib-uri> |
<taglib-location>/WEB-INF/tlds/struts-html.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/WEB-INF/tlds/struts-logic.tld</taglib-uri> |
<taglib-location>/WEB-INF/tlds/struts-logic.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/WEB-INF/tlds/struts-nested.tld</taglib-uri> |
<taglib-location>/WEB-INF/tlds/struts-nested.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/WEB-INF/tlds/struts-tiles.tld</taglib-uri> |
<taglib-location>/WEB-INF/tlds/struts-tiles.tld</taglib-location> |
</taglib> |
<taglib> |
<taglib-uri>/WEB-INF/jomm.tld</taglib-uri> |
<taglib-location>/WEB-INF/tlds/jomm.tld</taglib-location> |
</taglib> |
/impl/conf/app.properties |
---|
442,7 → 442,8 |
pop.container.use=true |
#pop.container.use=false |
pop.web.interface=http://mail.estgp.pt/exchange |
pop.server=mail.estgp.pt |
#pop.server=mail.estgp.pt |
pop.server=pop.gmail.com |
pop.use.default.server=true |
pop.use.username.and.password.first.authentication=true |
pop.max.messages=15 |
575,4 → 576,4 |
assessments.correctA.0=anonymous |
assessments.correctA.1=notAnonymous |
assessments.correction.selection.0=question |
assessments.correction.selection.1=assessment |
assessments.correction.selection.1=assessment |
/impl/src/java/pt/estgp/estgweb/services/email/SendEmailService.java |
---|
56,14 → 56,17 |
{ |
valid=true; |
message.addRecipient(email.getType(),new InternetAddress(recipient)); |
logger.info("Adding recipient to transport:"+recipient); |
} |
} |
if(valid) |
{ |
String content = TemplateUtils.getOrLoadTemplate(Globals.TEMPLATE_EMAIL_PATH + "/" + email.getEmailTemplateName()); |
// Format the mail message |
String fullMessage = MessageFormat.format(content, email.getArguments().toArray()); |
logger.info("FROM:" + email.getFrom()); |
message.setFrom(new InternetAddress(email.getFrom())); |
message.setSubject(email.getSubject()); |
message.setText(fullMessage,"utf-8"); |
74,7 → 77,9 |
else |
message.setHeader("Content-Type","text/plain; charset=\"utf-8\""); |
message.setHeader("Content-Transfer-Encoding", "quoted-printable"); |
logger.info("Sending email to transport:"+fullMessage); |
Transport.send(message); |
} |
} |
167,7 → 172,16 |
if(Email.validEmail(u.getOutEmail())) |
recipients.add(u.getOutEmail()); |
} |
logger.info("subject: " + subject); |
logger.info("user: " + user.getEmail()); |
logger.info("template: " + template); |
logger.info("arguments:"); |
for(String arg: arguments) |
logger.info(arg); |
logger.info("recipients:"); |
for(String rec: recipients) |
logger.info(rec); |
logger.info("arguments end"); |
return new Email(subject ,recipients,user.getEmail(),template,arguments,Message.RecipientType.BCC); |
} |
/impl/src/java/pt/estgp/estgweb/services/email/ReadEmailService.java |
---|
9,6 → 9,7 |
import pt.estgp.estgweb.services.email.impl.DefaultPopEmail; |
import pt.estgp.estgweb.services.email.impl.DefaultAddress; |
import com.sun.mail.pop3.POP3SSLStore; |
import javax.mail.*; |
import javax.mail.internet.InternetAddress; |
import java.util.List; |
19,6 → 20,8 |
import java.io.BufferedReader; |
import java.io.InputStreamReader; |
import java.io.IOException; |
import java.util.Arrays; |
import java.util.Comparator; |
import org.apache.log4j.Logger; |
import jomm.utils.DesUtils; |
33,10 → 36,44 |
public class ReadEmailService implements IService |
{ |
private static final boolean POP_SECURE = true; //todo mudar isto |
private static final String POP_MAIL_DATE_KEY = "POP_MAIL_DATE_KEY"; |
private static final String POP_MAIL_MESSAGES_KEY = "POP_MAIL_MESSAGES_KEY"; |
private static final Logger logger = Logger.getLogger(ReadEmailService.class); |
private Store getStoreSSL(String username,String password,String host) |
{ |
Session session = null; |
Store store = null; |
Folder folder; |
String SSL_FACTORY = "javax.net.ssl.SSLSocketFactory"; |
Properties pop3Props = new Properties(); |
pop3Props.setProperty("mail.pop3.socketFactory.class", SSL_FACTORY); |
pop3Props.setProperty("mail.pop3.socketFactory.fallback", "false"); |
pop3Props.setProperty("mail.pop3.port", "995"); |
pop3Props.setProperty("mail.pop3.socketFactory.port", "995"); |
URLName url = new URLName("pop3", host, 995, "", |
username, password); |
session = Session.getInstance(pop3Props, null); |
store = new POP3SSLStore(session, url); |
return store; |
} |
private Store getStore(Properties props) throws NoSuchProviderException |
{ |
Session session = Session.getDefaultInstance(props, null); |
Store store = session.getStore("pop3"); |
return store; |
} |
public List<IPopEmail> run(UserSession userSession) |
{ |
if (!((UserImpl) userSession.getUser()).hasPopConfigured()) |
55,7 → 92,7 |
String host = userSession.getUser().getPop3server(); |
String username = userSession.getUser().getPop3username(); |
String password = DesUtils.getInstance().decrypt(userSession.getUser().getPop3password()); |
String password = DesUtils.getInstance().decrypt(userSession.getUser().getPop3password()); //DesUtils.getInstance().decrypt(userSession.getUser().getPop3password()); |
String provider = "pop3"; |
if (host == null || username == null || password == null || host.trim().length() == 0 || password.trim().length() == 0 || username.trim().length() == 0) |
{ |
63,10 → 100,19 |
} |
try |
{ |
Session session = Session.getDefaultInstance(props, null); |
Store store = session.getStore(provider); |
store.connect(host, username, password); |
Folder inbox = store.getFolder("INBOX"); |
Store store; |
if(POP_SECURE) |
{ |
store = getStoreSSL(username, password, host); |
store.connect(); |
} |
else |
{ |
store = getStore(props); |
store.connect(host, username, password); |
} |
Folder inbox = store.getFolder("Inbox"); |
if (inbox == null) |
{ |
logger.warn("No INBOX for user:" + userSession.getUser().getId()); |
75,13 → 121,41 |
inbox.open(Folder.READ_ONLY); |
List<IPopEmail> popMessages = new ArrayList<IPopEmail>(); |
int count = inbox.getMessageCount(); |
final String usernameF = username; |
Message[] arrayMessages = inbox.getMessages(); |
Comparator<Message> messageComparator = new Comparator<Message>() { |
public int compare(Message m1, Message m2) { |
try { |
if (m1.getSentDate() == null || m2.getSentDate() == null) |
return 0; |
return m2.getSentDate().compareTo(m1.getSentDate()); |
} catch (MessagingException ex) { |
logger.error(ex,ex); |
} |
return 0; |
} |
}; |
for (int i = count; i > count - Globals.POP_MAX_MESSAGES && i > 0; i--) |
Arrays.sort(arrayMessages, messageComparator); |
if(usernameF.startsWith("jmachado")) |
for(Message m : arrayMessages) |
{ |
System.out.println("folder " + m.getFolder().getName() + " - " + m.getFolder().getType() + " - " + m.getSubject()); |
} |
System.out.println("arrayMessages.length " + arrayMessages.length); |
for (int i = 0; i < Globals.POP_MAX_MESSAGES && i < arrayMessages.length ; i++) |
{ |
try |
{ |
Message message = inbox.getMessage(i); |
System.out.println("i" + i); |
Message message = arrayMessages[i]; |
System.out.println("folder " + message.getFolder().getName()); |
DefaultPopEmail popEmail = new DefaultPopEmail(); |
String date = DatesUtils.getStringFromDate(message.getSentDate()); |
popEmail.setDate(date); |
/impl/src/java/pt/estgp/estgweb/services/profile/CurriculumService.java |
---|
1,22 → 1,20 |
package pt.estgp.estgweb.services.profile; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import pt.estgp.estgweb.services.data.RepositoryService; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import pt.estgp.estgweb.domain.views.*; |
import jomm.utils.FilesUtils; |
import org.apache.log4j.Logger; |
import pt.estgp.estgweb.domain.*; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.domain.enums.RecordEnum; |
import pt.estgp.estgweb.domain.dao.DaoFactory; |
import pt.estgp.estgweb.domain.dao.impl.CourseUnitDaoImpl; |
import pt.estgp.estgweb.domain.views.*; |
import pt.estgp.estgweb.filters.chains.ResourceAccessControlEnum; |
import pt.estgp.estgweb.services.data.RepositoryService; |
import pt.estgp.estgweb.services.expceptions.ServiceException; |
import pt.estgp.estgweb.utils.DatesUtils; |
import org.apache.log4j.Logger; |
import pt.utl.ist.berserk.logic.serviceManager.IService; |
import java.io.InputStream; |
import java.util.*; |
import jomm.utils.FilesUtils; |
/* |
* @author Goncalo Luiz gedl [AT] rnl [DOT] ist [DOT] utl [DOT] pt |
* |
136,11 → 134,19 |
userView.setContributorRecords(RecordView.getViews(new ArrayList<Record>(u.getContributorRecords()))); |
} |
Set<CourseUnit> responsableCourseUnits = null; |
Set<CourseUnit> courseUnits = null; |
if(u instanceof Teacher) |
{ |
Teacher teacher = (Teacher) u; |
courseUnits = new HashSet<CourseUnit>(DaoFactory.getCourseUnitDaoImpl().loadTeachedImportYearUnits(teacher.getId(), DatesUtils.getImportYear())); |
responsableCourseUnits = new HashSet<CourseUnit>(DaoFactory.getCourseUnitDaoImpl().loadResponsableImportYearUnits(teacher.getId(), DatesUtils.getImportYear())); |
userView.setResponsableCourseUnits(new ArrayList<CourseUnitView>()); |
for(CourseUnit c: responsableCourseUnits) |
{ |
CourseUnitView courseUnitView = new CourseUnitView(c); |
userView.getResponsableCourseUnits().add(courseUnitView); |
} |
} |
else if(u instanceof Student) |
{ |
/impl/src/java/pt/estgp/estgweb/services/users/LoadUsersService.java |
---|
78,10 → 78,7 |
public List<UserView> loadTeachers() throws ServiceException |
{ |
List<Teacher> users = DaoFactory.getTeacherDaoImpl().getAll(); |
if(users == null) |
return null; |
return UserView.getTeacherViews(users); |
return run(Teacher.class); |
} |
/impl/src/java/pt/estgp/estgweb/domain/views/UserView.java |
---|
71,6 → 71,8 |
private List<CourseUnitView> courseUnits; |
private List<CourseUnitGradeView> grades; |
private List<CourseUnitView> responsableCourseUnits; |
public UserView() |
{} |
123,6 → 125,14 |
} |
} |
public List<CourseUnitView> getResponsableCourseUnits() { |
return responsableCourseUnits; |
} |
public void setResponsableCourseUnits(List<CourseUnitView> responsableCourseUnits) { |
this.responsableCourseUnits = responsableCourseUnits; |
} |
public boolean isAutoBlockMode() { |
return autoBlockMode; |
} |
/impl/src/java/pt/estgp/estgweb/domain/dao/impl/CourseUnitDaoImpl.java |
---|
101,6 → 101,12 |
.add(eq("st.id", teacherId)).addOrder(Order.asc("importYear")).addOrder(Order.asc("name")).list(); |
} |
public List<CourseUnitImpl> loadResponsableImportYearUnits(long teacherId, String importYear) |
{ |
return createCriteria().add(eq("importYear", importYear)) |
.add(eq("responsableTeacher.id", teacherId)).addOrder(Order.asc("importYear")).addOrder(Order.asc("name")).list(); |
} |
public List<CourseUnit> loadTeachedImportYearSemestreUnits(long teacherId, String importYear, String semestre) |
{ |
Criteria c =createCriteria() |
/impl/src/java/pt/estgp/estgweb/web/tags/CanManageTag.java |
---|
70,7 → 70,9 |
IInternal iInternal = (IInternal) owned; |
if(userSession.getUser() == null && iInternal.isInternal()) |
System.out.println("userSession: " + userSession); |
System.out.println("iInternal: " + iInternal); |
if((userSession==null || userSession.getUser() == null) && iInternal.isInternal()) |
{ |
return false; |
} |
78,10 → 80,10 |
{ |
boolean valid = Boolean.parseBoolean(this.valid); |
IValid iValid = (IValid) owned; |
return owned != null && userSession.getUser() != null && (iValid.isValid() == valid && owned.isOwnedBy(userSession.getUser(),false) || (userSession.getUser()).isSuperuserOrAdmin()); |
return owned != null && userSession != null && userSession.getUser() != null && (iValid.isValid() == valid && owned.isOwnedBy(userSession.getUser(),false) || (userSession.getUser()).isSuperuserOrAdmin()); |
} |
else |
return owned != null && userSession.getUser() != null && (owned.isOwnedBy(userSession.getUser(),false) || (userSession.getUser()).isSuperuserOrAdmin()); |
return owned != null && userSession != null && userSession.getUser() != null && (owned.isOwnedBy(userSession.getUser(),false) || (userSession.getUser()).isSuperuserOrAdmin()); |
} |
/impl/src/java/pt/estgp/estgweb/web/form/commons/TeachersForm.java |
---|
53,6 → 53,7 |
String[] names = new String[]{"serializable"}; |
Object[] args = new Object[]{Teacher.class}; |
teachers = (List<UserView>) sm.execute(RequestUtils.getRequester(request, response), "LoadUsers", args, names); |
} |
catch (Throwable e) |
{ |
/impl/src/hbm/pt/estgp/estgweb/domain/GenericUser.hbm.xml |
---|
122,6 → 122,10 |
<property name="unitCheck" type="boolean"/> |
<property name="academicDegree" type="string"/> |
<property name="localRemovedTeachedUnits" type="string"/> |
<set name="responsibleUnits" lazy="true" order-by="name"> |
<key column="responsableTeacher"/> |
<one-to-many class="pt.estgp.estgweb.domain.CourseUnit"/> |
</set> |
<set name="teachedUnits" lazy="true" order-by="courseUnitId" table="teachedunits"> |
<key column="teacherId"/> |
<many-to-many class="pt.estgp.estgweb.domain.CourseUnit" column="courseUnitId"/> |
/impl/src/web/admin/profile/profilePersonalData.jsp |
---|
1,4 → 1,6 |
<%@ page import="java.util.List" %> |
<%@ page import="pt.estgp.estgweb.web.form.profile.ProfileForm" %> |
<%@ page import="pt.estgp.estgweb.domain.StudentImpl" %> |
<%@ page import="pt.estgp.estgweb.domain.TeacherImpl" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-bean.tld" prefix="bean" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-logic.tld" prefix="logic" %> |
23,6 → 25,7 |
} |
request.setAttribute("fromAction", fromAction); |
boolean regular = false; |
//separator=${separator} |
%> |
<html:form action="/user/profile${fromAction}?${from}"> |
34,6 → 37,35 |
<baco:isAdmin> |
<tr> |
<th>TIPO DE UTILIZADOR</th> |
<td> |
<% |
pt.estgp.estgweb.web.form.profile.ProfileForm pf = (pt.estgp.estgweb.web.form.profile.ProfileForm) request.getAttribute("ProfileForm"); |
if(pf.getUserView().getUser() instanceof pt.estgp.estgweb.domain.StudentImpl) |
{ |
%> |
CLASSE ESTUDANTE |
<% |
} |
else if(pf.getUserView().getUser() instanceof pt.estgp.estgweb.domain.TeacherImpl) |
{ |
%> |
CLASSE PROFESSOR |
<% |
} |
else |
{ |
regular = true; |
%> |
<label class="warning">CLASSE NORMAL</label> |
<% |
} |
%> |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="profile.autoBlockMode"/> |
</th> |
71,12 → 103,14 |
</tr> |
</baco:isAdmin> |
<baco:isNotAdmin> |
<tr> |
<th> |
<bean:message key="profile.siges.code"/> |
</th> |
<td> |
<html:text styleClass="text" property="userView.code" maxlength="250" readonly="true"/> |
</td> |
</tr> |
<tr> |
113,7 → 147,22 |
<bean:message key="profile.siges.code"/> |
</th> |
<td> |
<html:text styleClass="text" property="userView.code" maxlength="250"/> |
<% |
if(regular) |
{ |
%> |
<html:text styleClass="text" property="userView.code" maxlength="250" readonly="true"/> <br/>ESTE UTILIZADOR É NORMAL NAO TEM CODIGO SIGES |
<% |
} |
else |
{ |
%> |
<html:text styleClass="text" property="userView.code" maxlength="250"/> |
<% |
} |
%> |
</td> |
</tr> |
<tr> |
/impl/src/web/admin/courseunits/courseunit.jsp |
---|
3,6 → 3,7 |
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.IServiceManager" %> |
<%@ page import="pt.utl.ist.berserk.logic.serviceManager.ServiceManager" %> |
<%@ page import="java.util.List" %> |
<%@ page import="java.util.Collections" %> |
<%@ page contentType="text/html;charset=UTF-8" language="java" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-html.tld" prefix="html" %> |
<%@ taglib uri="/WEB-INF/tlds/struts-nested.tld" prefix="nested" %> |
19,6 → 20,18 |
request.setAttribute("Courses", courseViews); |
List<pt.estgp.estgweb.domain.views.UserView> teachers =(List<pt.estgp.estgweb.domain.views.UserView>) sm.execute(RequestUtils.getRequester(request, response), "LoadTeachers", args, names); |
/*Collections.sort(teachers,new Comparator<pt.estgp.estgweb.domain.views.UserView>(){ |
@Override |
public int compare(pt.estgp.estgweb.domain.views.UserView o1, pt.estgp.estgweb.domain.views.UserView o2) { |
if(o1.getName()!=null && o2.getName() != null) |
return o1.getName().compareTo(o2.getName()); |
if(o1.getName()==null) |
return 1; |
return -1; |
} |
});*/ |
request.setAttribute("Teachers", teachers); |
%> |
88,6 → 101,14 |
</html:select> |
</td> |
</tr> |
<tr> |
<th> |
<bean:message key="courseunit.pathIntranet"/> |
</th> |
<td> |
<html:text styleClass="text" readonly="true" property="courseUnitView.pathIntranet"/> (Para preencher gerar pastas nos serviços) |
</td> |
</tr> |
<tr> |
<th> |
96,7 → 117,7 |
<td> |
<html:select property="courseUnitView.responsableId"> |
<html:option value="0"></html:option> |
<logic:iterate id="teacher" name="Teachers" type="pt.estgp.estgweb.domain.views.UserView"> |
<logic:iterate id="teacher" name="CourseUnitsForm" property="teachers" type="pt.estgp.estgweb.domain.views.UserView"> |
<html:option value="${teacher.id}">(${teacher.code}) ${teacher.name}</html:option> |
</logic:iterate> |
</html:select> |
160,29 → 181,41 |
<input type="button" value="<bean:message key="add"/>" |
onclick="if(this.form.studentCode.value=='0' || this.form.studentCode.value==''){alert('Por favor coloque o numero de aluno antes de adicionar');}else{set(this.form,'addStudent');this.form.submit();}"> |
<logic:greaterThan name="CourseUnitView" property="studentsSize" value="0"> |
<table class="dataTable removeButton"> |
<table id="myTable" class="tablesorter dataTable removeButton"> |
<thead> |
<tr> |
<th>Código Siges</th> |
<th>Username</th> |
<th>Nome</th> |
<th>Email</th> |
<th>Telefone</th> |
</tr> |
</thead> |
<tbody> |
<logic:iterate id="userView" name="CourseUnitView" property="studentsOrderedByNumber" type="pt.estgp.estgweb.domain.views.UserView"> |
<tr> |
<th> |
<td> |
${userView.code} |
</th> |
<th> |
</td> |
<td> |
${userView.username} |
</th> |
<th> |
</td> |
<td> |
${userView.name} |
</th> |
<th> |
</td> |
<td> |
${userView.email} |
</th> |
<th> |
${userView.address} |
</th> |
</td> |
<td> |
${userView.phonenumber} |
</td> |
<td><input type="button" class="removeButton" |
onclick="CourseUnitsForm.id.value='${userView.code}';set(this.form,'removeStudent');this.form.submit();"> |
</td> |
</tr> |
</logic:iterate> |
</tbody> |
</table> |
</logic:greaterThan> |
</logic:greaterThan> |
/impl/src/web/admin/announcements/submitMessage.jsp |
---|
24,6 → 24,7 |
%> |
<p class="warning">Atenção caro utilizador. Para este serviço enviar mensagens com sucesso os seus endereços de correio que definidos no seu perfil têm de ser válidos</p> |
<html:form action="/user/submitMessage" enctype="multipart/form-data" onsubmit="this.form.text.value=myEditor.saveHTML()"> |
<input type="hidden" name="dispatch" value="sendMessage" > |
/impl/src/web/js/jquery/desc.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+ application/octet-stream |
/impl/src/web/js/jquery/style.css |
---|
New file |
0,0 → 1,39 |
/* tables */ |
table.tablesorter { |
font-family:arial; |
background-color: #CDCDCD; |
margin:10px 0pt 15px; |
font-size: 8pt; |
width: 100%; |
text-align: left; |
} |
table.tablesorter thead tr th, table.tablesorter tfoot tr th { |
background-color: #e6EEEE; |
border: 1px solid #FFF; |
font-size: 8pt; |
padding: 4px; |
} |
table.tablesorter thead tr .header { |
background-image: url(bg.gif); |
background-repeat: no-repeat; |
background-position: center right; |
cursor: pointer; |
} |
table.tablesorter tbody td { |
color: #3D3D3D; |
padding: 4px; |
background-color: #FFF; |
vertical-align: top; |
} |
table.tablesorter tbody tr.odd td { |
background-color:#F0F0F6; |
} |
table.tablesorter thead tr .headerSortUp { |
background-image: url(asc.gif); |
} |
table.tablesorter thead tr .headerSortDown { |
background-image: url(desc.gif); |
} |
table.tablesorter thead tr .headerSortDown, table.tablesorter thead tr .headerSortUp { |
background-color: #8dbdd8; |
} |
/impl/src/web/js/jquery/asc.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+ application/octet-stream |
/impl/src/web/js/jquery/bg.gif |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+ application/octet-stream |
/impl/src/web/js/jquery.tablesorter.js |
---|
New file |
0,0 → 1,1031 |
/* |
* |
* TableSorter 2.0 - Client-side table sorting with ease! |
* Version 2.0.5b |
* @requires jQuery v1.2.3 |
* |
* Copyright (c) 2007 Christian Bach |
* Examples and docs at: http://tablesorter.com |
* Dual licensed under the MIT and GPL licenses: |
* http://www.opensource.org/licenses/mit-license.php |
* http://www.gnu.org/licenses/gpl.html |
* |
*/ |
/** |
* |
* @description Create a sortable table with multi-column sorting capabilitys |
* |
* @example $('table').tablesorter(); |
* @desc Create a simple tablesorter interface. |
* |
* @example $('table').tablesorter({ sortList:[[0,0],[1,0]] }); |
* @desc Create a tablesorter interface and sort on the first and secound column column headers. |
* |
* @example $('table').tablesorter({ headers: { 0: { sorter: false}, 1: {sorter: false} } }); |
* |
* @desc Create a tablesorter interface and disableing the first and second column headers. |
* |
* |
* @example $('table').tablesorter({ headers: { 0: {sorter:"integer"}, 1: {sorter:"currency"} } }); |
* |
* @desc Create a tablesorter interface and set a column parser for the first |
* and second column. |
* |
* |
* @param Object |
* settings An object literal containing key/value pairs to provide |
* optional settings. |
* |
* |
* @option String cssHeader (optional) A string of the class name to be appended |
* to sortable tr elements in the thead of the table. Default value: |
* "header" |
* |
* @option String cssAsc (optional) A string of the class name to be appended to |
* sortable tr elements in the thead on a ascending sort. Default value: |
* "headerSortUp" |
* |
* @option String cssDesc (optional) A string of the class name to be appended |
* to sortable tr elements in the thead on a descending sort. Default |
* value: "headerSortDown" |
* |
* @option String sortInitialOrder (optional) A string of the inital sorting |
* order can be asc or desc. Default value: "asc" |
* |
* @option String sortMultisortKey (optional) A string of the multi-column sort |
* key. Default value: "shiftKey" |
* |
* @option String textExtraction (optional) A string of the text-extraction |
* method to use. For complex html structures inside td cell set this |
* option to "complex", on large tables the complex option can be slow. |
* Default value: "simple" |
* |
* @option Object headers (optional) An array containing the forces sorting |
* rules. This option let's you specify a default sorting rule. Default |
* value: null |
* |
* @option Array sortList (optional) An array containing the forces sorting |
* rules. This option let's you specify a default sorting rule. Default |
* value: null |
* |
* @option Array sortForce (optional) An array containing forced sorting rules. |
* This option let's you specify a default sorting rule, which is |
* prepended to user-selected rules. Default value: null |
* |
* @option Boolean sortLocaleCompare (optional) Boolean flag indicating whatever |
* to use String.localeCampare method or not. Default set to true. |
* |
* |
* @option Array sortAppend (optional) An array containing forced sorting rules. |
* This option let's you specify a default sorting rule, which is |
* appended to user-selected rules. Default value: null |
* |
* @option Boolean widthFixed (optional) Boolean flag indicating if tablesorter |
* should apply fixed widths to the table columns. This is usefull when |
* using the pager companion plugin. This options requires the dimension |
* jquery plugin. Default value: false |
* |
* @option Boolean cancelSelection (optional) Boolean flag indicating if |
* tablesorter should cancel selection of the table headers text. |
* Default value: true |
* |
* @option Boolean debug (optional) Boolean flag indicating if tablesorter |
* should display debuging information usefull for development. |
* |
* @type jQuery |
* |
* @name tablesorter |
* |
* @cat Plugins/Tablesorter |
* |
* @author Christian Bach/christian.bach@polyester.se |
*/ |
(function ($) { |
$.extend({ |
tablesorter: new |
function () { |
var parsers = [], |
widgets = []; |
this.defaults = { |
cssHeader: "header", |
cssAsc: "headerSortUp", |
cssDesc: "headerSortDown", |
cssChildRow: "expand-child", |
sortInitialOrder: "asc", |
sortMultiSortKey: "shiftKey", |
sortForce: null, |
sortAppend: null, |
sortLocaleCompare: true, |
textExtraction: "simple", |
parsers: {}, widgets: [], |
widgetZebra: { |
css: ["even", "odd"] |
}, headers: {}, widthFixed: false, |
cancelSelection: true, |
sortList: [], |
headerList: [], |
dateFormat: "us", |
decimal: '/\.|\,/g', |
onRenderHeader: null, |
selectorHeaders: 'thead th', |
debug: false |
}; |
/* debuging utils */ |
function benchmark(s, d) { |
log(s + "," + (new Date().getTime() - d.getTime()) + "ms"); |
} |
this.benchmark = benchmark; |
function log(s) { |
if (typeof console != "undefined" && typeof console.debug != "undefined") { |
console.log(s); |
} else { |
alert(s); |
} |
} |
/* parsers utils */ |
function buildParserCache(table, $headers) { |
if (table.config.debug) { |
var parsersDebug = ""; |
} |
if (table.tBodies.length == 0) return; // In the case of empty tables |
var rows = table.tBodies[0].rows; |
if (rows[0]) { |
var list = [], |
cells = rows[0].cells, |
l = cells.length; |
for (var i = 0; i < l; i++) { |
var p = false; |
if ($.metadata && ($($headers[i]).metadata() && $($headers[i]).metadata().sorter)) { |
p = getParserById($($headers[i]).metadata().sorter); |
} else if ((table.config.headers[i] && table.config.headers[i].sorter)) { |
p = getParserById(table.config.headers[i].sorter); |
} |
if (!p) { |
p = detectParserForColumn(table, rows, -1, i); |
} |
if (table.config.debug) { |
parsersDebug += "column:" + i + " parser:" + p.id + "\n"; |
} |
list.push(p); |
} |
} |
if (table.config.debug) { |
log(parsersDebug); |
} |
return list; |
}; |
function detectParserForColumn(table, rows, rowIndex, cellIndex) { |
var l = parsers.length, |
node = false, |
nodeValue = false, |
keepLooking = true; |
while (nodeValue == '' && keepLooking) { |
rowIndex++; |
if (rows[rowIndex]) { |
node = getNodeFromRowAndCellIndex(rows, rowIndex, cellIndex); |
nodeValue = trimAndGetNodeText(table.config, node); |
if (table.config.debug) { |
log('Checking if value was empty on row:' + rowIndex); |
} |
} else { |
keepLooking = false; |
} |
} |
for (var i = 1; i < l; i++) { |
if (parsers[i].is(nodeValue, table, node)) { |
return parsers[i]; |
} |
} |
// 0 is always the generic parser (text) |
return parsers[0]; |
} |
function getNodeFromRowAndCellIndex(rows, rowIndex, cellIndex) { |
return rows[rowIndex].cells[cellIndex]; |
} |
function trimAndGetNodeText(config, node) { |
return $.trim(getElementText(config, node)); |
} |
function getParserById(name) { |
var l = parsers.length; |
for (var i = 0; i < l; i++) { |
if (parsers[i].id.toLowerCase() == name.toLowerCase()) { |
return parsers[i]; |
} |
} |
return false; |
} |
/* utils */ |
function buildCache(table) { |
if (table.config.debug) { |
var cacheTime = new Date(); |
} |
var totalRows = (table.tBodies[0] && table.tBodies[0].rows.length) || 0, |
totalCells = (table.tBodies[0].rows[0] && table.tBodies[0].rows[0].cells.length) || 0, |
parsers = table.config.parsers, |
cache = { |
row: [], |
normalized: [] |
}; |
for (var i = 0; i < totalRows; ++i) { |
/** Add the table data to main data array */ |
var c = $(table.tBodies[0].rows[i]), |
cols = []; |
// if this is a child row, add it to the last row's children and |
// continue to the next row |
if (c.hasClass(table.config.cssChildRow)) { |
cache.row[cache.row.length - 1] = cache.row[cache.row.length - 1].add(c); |
// go to the next for loop |
continue; |
} |
cache.row.push(c); |
for (var j = 0; j < totalCells; ++j) { |
cols.push(parsers[j].format(getElementText(table.config, c[0].cells[j]), table, c[0].cells[j])); |
} |
cols.push(cache.normalized.length); // add position for rowCache |
cache.normalized.push(cols); |
cols = null; |
}; |
if (table.config.debug) { |
benchmark("Building cache for " + totalRows + " rows:", cacheTime); |
} |
return cache; |
}; |
function getElementText(config, node) { |
var text = ""; |
if (!node) return ""; |
if (!config.supportsTextContent) config.supportsTextContent = node.textContent || false; |
if (config.textExtraction == "simple") { |
if (config.supportsTextContent) { |
text = node.textContent; |
} else { |
if (node.childNodes[0] && node.childNodes[0].hasChildNodes()) { |
text = node.childNodes[0].innerHTML; |
} else { |
text = node.innerHTML; |
} |
} |
} else { |
if (typeof(config.textExtraction) == "function") { |
text = config.textExtraction(node); |
} else { |
text = $(node).text(); |
} |
} |
return text; |
} |
function appendToTable(table, cache) { |
if (table.config.debug) { |
var appendTime = new Date() |
} |
var c = cache, |
r = c.row, |
n = c.normalized, |
totalRows = n.length, |
checkCell = (n[0].length - 1), |
tableBody = $(table.tBodies[0]), |
rows = []; |
for (var i = 0; i < totalRows; i++) { |
var pos = n[i][checkCell]; |
rows.push(r[pos]); |
if (!table.config.appender) { |
//var o = ; |
var l = r[pos].length; |
for (var j = 0; j < l; j++) { |
tableBody[0].appendChild(r[pos][j]); |
} |
// |
} |
} |
if (table.config.appender) { |
table.config.appender(table, rows); |
} |
rows = null; |
if (table.config.debug) { |
benchmark("Rebuilt table:", appendTime); |
} |
// apply table widgets |
applyWidget(table); |
// trigger sortend |
setTimeout(function () { |
$(table).trigger("sortEnd"); |
}, 0); |
}; |
function buildHeaders(table) { |
if (table.config.debug) { |
var time = new Date(); |
} |
var meta = ($.metadata) ? true : false; |
var header_index = computeTableHeaderCellIndexes(table); |
$tableHeaders = $(table.config.selectorHeaders, table).each(function (index) { |
this.column = header_index[this.parentNode.rowIndex + "-" + this.cellIndex]; |
// this.column = index; |
this.order = formatSortingOrder(table.config.sortInitialOrder); |
this.count = this.order; |
if (checkHeaderMetadata(this) || checkHeaderOptions(table, index)) this.sortDisabled = true; |
if (checkHeaderOptionsSortingLocked(table, index)) this.order = this.lockedOrder = checkHeaderOptionsSortingLocked(table, index); |
if (!this.sortDisabled) { |
var $th = $(this).addClass(table.config.cssHeader); |
if (table.config.onRenderHeader) table.config.onRenderHeader.apply($th); |
} |
// add cell to headerList |
table.config.headerList[index] = this; |
}); |
if (table.config.debug) { |
benchmark("Built headers:", time); |
log($tableHeaders); |
} |
return $tableHeaders; |
}; |
// from: |
// http://www.javascripttoolbox.com/lib/table/examples.php |
// http://www.javascripttoolbox.com/temp/table_cellindex.html |
function computeTableHeaderCellIndexes(t) { |
var matrix = []; |
var lookup = {}; |
var thead = t.getElementsByTagName('THEAD')[0]; |
var trs = thead.getElementsByTagName('TR'); |
for (var i = 0; i < trs.length; i++) { |
var cells = trs[i].cells; |
for (var j = 0; j < cells.length; j++) { |
var c = cells[j]; |
var rowIndex = c.parentNode.rowIndex; |
var cellId = rowIndex + "-" + c.cellIndex; |
var rowSpan = c.rowSpan || 1; |
var colSpan = c.colSpan || 1 |
var firstAvailCol; |
if (typeof(matrix[rowIndex]) == "undefined") { |
matrix[rowIndex] = []; |
} |
// Find first available column in the first row |
for (var k = 0; k < matrix[rowIndex].length + 1; k++) { |
if (typeof(matrix[rowIndex][k]) == "undefined") { |
firstAvailCol = k; |
break; |
} |
} |
lookup[cellId] = firstAvailCol; |
for (var k = rowIndex; k < rowIndex + rowSpan; k++) { |
if (typeof(matrix[k]) == "undefined") { |
matrix[k] = []; |
} |
var matrixrow = matrix[k]; |
for (var l = firstAvailCol; l < firstAvailCol + colSpan; l++) { |
matrixrow[l] = "x"; |
} |
} |
} |
} |
return lookup; |
} |
function checkCellColSpan(table, rows, row) { |
var arr = [], |
r = table.tHead.rows, |
c = r[row].cells; |
for (var i = 0; i < c.length; i++) { |
var cell = c[i]; |
if (cell.colSpan > 1) { |
arr = arr.concat(checkCellColSpan(table, headerArr, row++)); |
} else { |
if (table.tHead.length == 1 || (cell.rowSpan > 1 || !r[row + 1])) { |
arr.push(cell); |
} |
// headerArr[row] = (i+row); |
} |
} |
return arr; |
}; |
function checkHeaderMetadata(cell) { |
if (($.metadata) && ($(cell).metadata().sorter === false)) { |
return true; |
}; |
return false; |
} |
function checkHeaderOptions(table, i) { |
if ((table.config.headers[i]) && (table.config.headers[i].sorter === false)) { |
return true; |
}; |
return false; |
} |
function checkHeaderOptionsSortingLocked(table, i) { |
if ((table.config.headers[i]) && (table.config.headers[i].lockedOrder)) return table.config.headers[i].lockedOrder; |
return false; |
} |
function applyWidget(table) { |
var c = table.config.widgets; |
var l = c.length; |
for (var i = 0; i < l; i++) { |
getWidgetById(c[i]).format(table); |
} |
} |
function getWidgetById(name) { |
var l = widgets.length; |
for (var i = 0; i < l; i++) { |
if (widgets[i].id.toLowerCase() == name.toLowerCase()) { |
return widgets[i]; |
} |
} |
}; |
function formatSortingOrder(v) { |
if (typeof(v) != "Number") { |
return (v.toLowerCase() == "desc") ? 1 : 0; |
} else { |
return (v == 1) ? 1 : 0; |
} |
} |
function isValueInArray(v, a) { |
var l = a.length; |
for (var i = 0; i < l; i++) { |
if (a[i][0] == v) { |
return true; |
} |
} |
return false; |
} |
function setHeadersCss(table, $headers, list, css) { |
// remove all header information |
$headers.removeClass(css[0]).removeClass(css[1]); |
var h = []; |
$headers.each(function (offset) { |
if (!this.sortDisabled) { |
h[this.column] = $(this); |
} |
}); |
var l = list.length; |
for (var i = 0; i < l; i++) { |
h[list[i][0]].addClass(css[list[i][1]]); |
} |
} |
function fixColumnWidth(table, $headers) { |
var c = table.config; |
if (c.widthFixed) { |
var colgroup = $('<colgroup>'); |
$("tr:first td", table.tBodies[0]).each(function () { |
colgroup.append($('<col>').css('width', $(this).width())); |
}); |
$(table).prepend(colgroup); |
}; |
} |
function updateHeaderSortCount(table, sortList) { |
var c = table.config, |
l = sortList.length; |
for (var i = 0; i < l; i++) { |
var s = sortList[i], |
o = c.headerList[s[0]]; |
o.count = s[1]; |
o.count++; |
} |
} |
/* sorting methods */ |
function multisort(table, sortList, cache) { |
if (table.config.debug) { |
var sortTime = new Date(); |
} |
var dynamicExp = "var sortWrapper = function(a,b) {", |
l = sortList.length; |
// TODO: inline functions. |
for (var i = 0; i < l; i++) { |
var c = sortList[i][0]; |
var order = sortList[i][1]; |
// var s = (getCachedSortType(table.config.parsers,c) == "text") ? |
// ((order == 0) ? "sortText" : "sortTextDesc") : ((order == 0) ? |
// "sortNumeric" : "sortNumericDesc"); |
// var s = (table.config.parsers[c].type == "text") ? ((order == 0) |
// ? makeSortText(c) : makeSortTextDesc(c)) : ((order == 0) ? |
// makeSortNumeric(c) : makeSortNumericDesc(c)); |
var s = (table.config.parsers[c].type == "text") ? ((order == 0) ? makeSortFunction("text", "asc", c) : makeSortFunction("text", "desc", c)) : ((order == 0) ? makeSortFunction("numeric", "asc", c) : makeSortFunction("numeric", "desc", c)); |
var e = "e" + i; |
dynamicExp += "var " + e + " = " + s; // + "(a[" + c + "],b[" + c |
// + "]); "; |
dynamicExp += "if(" + e + ") { return " + e + "; } "; |
dynamicExp += "else { "; |
} |
// if value is the same keep orignal order |
var orgOrderCol = cache.normalized[0].length - 1; |
dynamicExp += "return a[" + orgOrderCol + "]-b[" + orgOrderCol + "];"; |
for (var i = 0; i < l; i++) { |
dynamicExp += "}; "; |
} |
dynamicExp += "return 0; "; |
dynamicExp += "}; "; |
if (table.config.debug) { |
benchmark("Evaling expression:" + dynamicExp, new Date()); |
} |
eval(dynamicExp); |
cache.normalized.sort(sortWrapper); |
if (table.config.debug) { |
benchmark("Sorting on " + sortList.toString() + " and dir " + order + " time:", sortTime); |
} |
return cache; |
}; |
function makeSortFunction(type, direction, index) { |
var a = "a[" + index + "]", |
b = "b[" + index + "]"; |
if (type == 'text' && direction == 'asc') { |
return "(" + a + " == " + b + " ? 0 : (" + a + " === null ? Number.POSITIVE_INFINITY : (" + b + " === null ? Number.NEGATIVE_INFINITY : (" + a + " < " + b + ") ? -1 : 1 )));"; |
} else if (type == 'text' && direction == 'desc') { |
return "(" + a + " == " + b + " ? 0 : (" + a + " === null ? Number.POSITIVE_INFINITY : (" + b + " === null ? Number.NEGATIVE_INFINITY : (" + b + " < " + a + ") ? -1 : 1 )));"; |
} else if (type == 'numeric' && direction == 'asc') { |
return "(" + a + " === null && " + b + " === null) ? 0 :(" + a + " === null ? Number.POSITIVE_INFINITY : (" + b + " === null ? Number.NEGATIVE_INFINITY : " + a + " - " + b + "));"; |
} else if (type == 'numeric' && direction == 'desc') { |
return "(" + a + " === null && " + b + " === null) ? 0 :(" + a + " === null ? Number.POSITIVE_INFINITY : (" + b + " === null ? Number.NEGATIVE_INFINITY : " + b + " - " + a + "));"; |
} |
}; |
function makeSortText(i) { |
return "((a[" + i + "] < b[" + i + "]) ? -1 : ((a[" + i + "] > b[" + i + "]) ? 1 : 0));"; |
}; |
function makeSortTextDesc(i) { |
return "((b[" + i + "] < a[" + i + "]) ? -1 : ((b[" + i + "] > a[" + i + "]) ? 1 : 0));"; |
}; |
function makeSortNumeric(i) { |
return "a[" + i + "]-b[" + i + "];"; |
}; |
function makeSortNumericDesc(i) { |
return "b[" + i + "]-a[" + i + "];"; |
}; |
function sortText(a, b) { |
if (table.config.sortLocaleCompare) return a.localeCompare(b); |
return ((a < b) ? -1 : ((a > b) ? 1 : 0)); |
}; |
function sortTextDesc(a, b) { |
if (table.config.sortLocaleCompare) return b.localeCompare(a); |
return ((b < a) ? -1 : ((b > a) ? 1 : 0)); |
}; |
function sortNumeric(a, b) { |
return a - b; |
}; |
function sortNumericDesc(a, b) { |
return b - a; |
}; |
function getCachedSortType(parsers, i) { |
return parsers[i].type; |
}; /* public methods */ |
this.construct = function (settings) { |
return this.each(function () { |
// if no thead or tbody quit. |
if (!this.tHead || !this.tBodies) return; |
// declare |
var $this, $document, $headers, cache, config, shiftDown = 0, |
sortOrder; |
// new blank config object |
this.config = {}; |
// merge and extend. |
config = $.extend(this.config, $.tablesorter.defaults, settings); |
// store common expression for speed |
$this = $(this); |
// save the settings where they read |
$.data(this, "tablesorter", config); |
// build headers |
$headers = buildHeaders(this); |
// try to auto detect column type, and store in tables config |
this.config.parsers = buildParserCache(this, $headers); |
// build the cache for the tbody cells |
cache = buildCache(this); |
// get the css class names, could be done else where. |
var sortCSS = [config.cssDesc, config.cssAsc]; |
// fixate columns if the users supplies the fixedWidth option |
fixColumnWidth(this); |
// apply event handling to headers |
// this is to big, perhaps break it out? |
$headers.click( |
function (e) { |
var totalRows = ($this[0].tBodies[0] && $this[0].tBodies[0].rows.length) || 0; |
if (!this.sortDisabled && totalRows > 0) { |
// Only call sortStart if sorting is |
// enabled. |
$this.trigger("sortStart"); |
// store exp, for speed |
var $cell = $(this); |
// get current column index |
var i = this.column; |
// get current column sort order |
this.order = this.count++ % 2; |
// always sort on the locked order. |
if(this.lockedOrder) this.order = this.lockedOrder; |
// user only whants to sort on one |
// column |
if (!e[config.sortMultiSortKey]) { |
// flush the sort list |
config.sortList = []; |
if (config.sortForce != null) { |
var a = config.sortForce; |
for (var j = 0; j < a.length; j++) { |
if (a[j][0] != i) { |
config.sortList.push(a[j]); |
} |
} |
} |
// add column to sort list |
config.sortList.push([i, this.order]); |
// multi column sorting |
} else { |
// the user has clicked on an all |
// ready sortet column. |
if (isValueInArray(i, config.sortList)) { |
// revers the sorting direction |
// for all tables. |
for (var j = 0; j < config.sortList.length; j++) { |
var s = config.sortList[j], |
o = config.headerList[s[0]]; |
if (s[0] == i) { |
o.count = s[1]; |
o.count++; |
s[1] = o.count % 2; |
} |
} |
} else { |
// add column to sort list array |
config.sortList.push([i, this.order]); |
} |
}; |
setTimeout(function () { |
// set css for headers |
setHeadersCss($this[0], $headers, config.sortList, sortCSS); |
appendToTable( |
$this[0], multisort( |
$this[0], config.sortList, cache) |
); |
}, 1); |
// stop normal event by returning false |
return false; |
} |
// cancel selection |
}).mousedown(function () { |
if (config.cancelSelection) { |
this.onselectstart = function () { |
return false |
}; |
return false; |
} |
}); |
// apply easy methods that trigger binded events |
$this.bind("update", function () { |
var me = this; |
setTimeout(function () { |
// rebuild parsers. |
me.config.parsers = buildParserCache( |
me, $headers); |
// rebuild the cache map |
cache = buildCache(me); |
}, 1); |
}).bind("updateCell", function (e, cell) { |
var config = this.config; |
// get position from the dom. |
var pos = [(cell.parentNode.rowIndex - 1), cell.cellIndex]; |
// update cache |
cache.normalized[pos[0]][pos[1]] = config.parsers[pos[1]].format( |
getElementText(config, cell), cell); |
}).bind("sorton", function (e, list) { |
$(this).trigger("sortStart"); |
config.sortList = list; |
// update and store the sortlist |
var sortList = config.sortList; |
// update header count index |
updateHeaderSortCount(this, sortList); |
// set css for headers |
setHeadersCss(this, $headers, sortList, sortCSS); |
// sort the table and append it to the dom |
appendToTable(this, multisort(this, sortList, cache)); |
}).bind("appendCache", function () { |
appendToTable(this, cache); |
}).bind("applyWidgetId", function (e, id) { |
getWidgetById(id).format(this); |
}).bind("applyWidgets", function () { |
// apply widgets |
applyWidget(this); |
}); |
if ($.metadata && ($(this).metadata() && $(this).metadata().sortlist)) { |
config.sortList = $(this).metadata().sortlist; |
} |
// if user has supplied a sort list to constructor. |
if (config.sortList.length > 0) { |
$this.trigger("sorton", [config.sortList]); |
} |
// apply widgets |
applyWidget(this); |
}); |
}; |
this.addParser = function (parser) { |
var l = parsers.length, |
a = true; |
for (var i = 0; i < l; i++) { |
if (parsers[i].id.toLowerCase() == parser.id.toLowerCase()) { |
a = false; |
} |
} |
if (a) { |
parsers.push(parser); |
}; |
}; |
this.addWidget = function (widget) { |
widgets.push(widget); |
}; |
this.formatFloat = function (s) { |
var i = parseFloat(s); |
return (isNaN(i)) ? 0 : i; |
}; |
this.formatInt = function (s) { |
var i = parseInt(s); |
return (isNaN(i)) ? 0 : i; |
}; |
this.isDigit = function (s, config) { |
// replace all an wanted chars and match. |
return /^[-+]?\d*$/.test($.trim(s.replace(/[,.']/g, ''))); |
}; |
this.clearTableBody = function (table) { |
if ($.browser.msie) { |
function empty() { |
while (this.firstChild) |
this.removeChild(this.firstChild); |
} |
empty.apply(table.tBodies[0]); |
} else { |
table.tBodies[0].innerHTML = ""; |
} |
}; |
} |
}); |
// extend plugin scope |
$.fn.extend({ |
tablesorter: $.tablesorter.construct |
}); |
// make shortcut |
var ts = $.tablesorter; |
// add default parsers |
ts.addParser({ |
id: "text", |
is: function (s) { |
return true; |
}, format: function (s) { |
return $.trim(s.toLocaleLowerCase()); |
}, type: "text" |
}); |
ts.addParser({ |
id: "digit", |
is: function (s, table) { |
var c = table.config; |
return $.tablesorter.isDigit(s, c); |
}, format: function (s) { |
return $.tablesorter.formatFloat(s); |
}, type: "numeric" |
}); |
ts.addParser({ |
id: "currency", |
is: function (s) { |
return /^[£$€?.]/.test(s); |
}, format: function (s) { |
return $.tablesorter.formatFloat(s.replace(new RegExp(/[£$€]/g), "")); |
}, type: "numeric" |
}); |
ts.addParser({ |
id: "ipAddress", |
is: function (s) { |
return /^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/.test(s); |
}, format: function (s) { |
var a = s.split("."), |
r = "", |
l = a.length; |
for (var i = 0; i < l; i++) { |
var item = a[i]; |
if (item.length == 2) { |
r += "0" + item; |
} else { |
r += item; |
} |
} |
return $.tablesorter.formatFloat(r); |
}, type: "numeric" |
}); |
ts.addParser({ |
id: "url", |
is: function (s) { |
return /^(https?|ftp|file):\/\/$/.test(s); |
}, format: function (s) { |
return jQuery.trim(s.replace(new RegExp(/(https?|ftp|file):\/\//), '')); |
}, type: "text" |
}); |
ts.addParser({ |
id: "isoDate", |
is: function (s) { |
return /^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(s); |
}, format: function (s) { |
return $.tablesorter.formatFloat((s != "") ? new Date(s.replace( |
new RegExp(/-/g), "/")).getTime() : "0"); |
}, type: "numeric" |
}); |
ts.addParser({ |
id: "percent", |
is: function (s) { |
return /\%$/.test($.trim(s)); |
}, format: function (s) { |
return $.tablesorter.formatFloat(s.replace(new RegExp(/%/g), "")); |
}, type: "numeric" |
}); |
ts.addParser({ |
id: "usLongDate", |
is: function (s) { |
return s.match(new RegExp(/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/)); |
}, format: function (s) { |
return $.tablesorter.formatFloat(new Date(s).getTime()); |
}, type: "numeric" |
}); |
ts.addParser({ |
id: "shortDate", |
is: function (s) { |
return /\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/.test(s); |
}, format: function (s, table) { |
var c = table.config; |
s = s.replace(/\-/g, "/"); |
if (c.dateFormat == "us") { |
// reformat the string in ISO format |
s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$1/$2"); |
} else if (c.dateFormat == "uk") { |
// reformat the string in ISO format |
s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/, "$3/$2/$1"); |
} else if (c.dateFormat == "dd/mm/yy" || c.dateFormat == "dd-mm-yy") { |
s = s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/, "$1/$2/$3"); |
} |
return $.tablesorter.formatFloat(new Date(s).getTime()); |
}, type: "numeric" |
}); |
ts.addParser({ |
id: "time", |
is: function (s) { |
return /^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(am|pm)))$/.test(s); |
}, format: function (s) { |
return $.tablesorter.formatFloat(new Date("2000/01/01 " + s).getTime()); |
}, type: "numeric" |
}); |
ts.addParser({ |
id: "metadata", |
is: function (s) { |
return false; |
}, format: function (s, table, cell) { |
var c = table.config, |
p = (!c.parserMetadataName) ? 'sortValue' : c.parserMetadataName; |
return $(cell).metadata()[p]; |
}, type: "numeric" |
}); |
// add default widgets |
ts.addWidget({ |
id: "zebra", |
format: function (table) { |
if (table.config.debug) { |
var time = new Date(); |
} |
var $tr, row = -1, |
odd; |
// loop through the visible rows |
$("tr:visible", table.tBodies[0]).each(function (i) { |
$tr = $(this); |
// style children rows the same way the parent |
// row was styled |
if (!$tr.hasClass(table.config.cssChildRow)) row++; |
odd = (row % 2 == 0); |
$tr.removeClass( |
table.config.widgetZebra.css[odd ? 0 : 1]).addClass( |
table.config.widgetZebra.css[odd ? 1 : 0]) |
}); |
if (table.config.debug) { |
$.tablesorter.benchmark("Applying Zebra widget", time); |
} |
} |
}); |
})(jQuery); |
/impl/src/web/js/__jquery.tablesorter.zip |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes: |
Added: svn:mime-type |
+ application/octet-stream |
/impl/src/web/js/jquery-latest.js |
---|
New file |
0,0 → 1,154 |
/*! |
* jQuery JavaScript Library v1.4.2 |
* http://jquery.com/ |
* |
* Copyright 2010, John Resig |
* Dual licensed under the MIT or GPL Version 2 licenses. |
* http://jquery.org/license |
* |
* Includes Sizzle.js |
* http://sizzlejs.com/ |
* Copyright 2010, The Dojo Foundation |
* Released under the MIT, BSD, and GPL Licenses. |
* |
* Date: Sat Feb 13 22:33:48 2010 -0500 |
*/ |
(function(A,w){function ma(){if(!c.isReady){try{s.documentElement.doScroll("left")}catch(a){setTimeout(ma,1);return}c.ready()}}function Qa(a,b){b.src?c.ajax({url:b.src,async:false,dataType:"script"}):c.globalEval(b.text||b.textContent||b.innerHTML||"");b.parentNode&&b.parentNode.removeChild(b)}function X(a,b,d,f,e,j){var i=a.length;if(typeof b==="object"){for(var o in b)X(a,o,b[o],f,e,d);return a}if(d!==w){f=!j&&f&&c.isFunction(d);for(o=0;o<i;o++)e(a[o],b,f?d.call(a[o],o,e(a[o],b)):d,j);return a}return i? |
e(a[0],b):w}function J(){return(new Date).getTime()}function Y(){return false}function Z(){return true}function na(a,b,d){d[0].type=a;return c.event.handle.apply(b,d)}function oa(a){var b,d=[],f=[],e=arguments,j,i,o,k,n,r;i=c.data(this,"events");if(!(a.liveFired===this||!i||!i.live||a.button&&a.type==="click")){a.liveFired=this;var u=i.live.slice(0);for(k=0;k<u.length;k++){i=u[k];i.origType.replace(O,"")===a.type?f.push(i.selector):u.splice(k--,1)}j=c(a.target).closest(f,a.currentTarget);n=0;for(r= |
j.length;n<r;n++)for(k=0;k<u.length;k++){i=u[k];if(j[n].selector===i.selector){o=j[n].elem;f=null;if(i.preType==="mouseenter"||i.preType==="mouseleave")f=c(a.relatedTarget).closest(i.selector)[0];if(!f||f!==o)d.push({elem:o,handleObj:i})}}n=0;for(r=d.length;n<r;n++){j=d[n];a.currentTarget=j.elem;a.data=j.handleObj.data;a.handleObj=j.handleObj;if(j.handleObj.origHandler.apply(j.elem,e)===false){b=false;break}}return b}}function pa(a,b){return"live."+(a&&a!=="*"?a+".":"")+b.replace(/\./g,"`").replace(/ /g, |
"&")}function qa(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function ra(a,b){var d=0;b.each(function(){if(this.nodeName===(a[d]&&a[d].nodeName)){var f=c.data(a[d++]),e=c.data(this,f);if(f=f&&f.events){delete e.handle;e.events={};for(var j in f)for(var i in f[j])c.event.add(this,j,f[j][i],f[j][i].data)}}})}function sa(a,b,d){var f,e,j;b=b&&b[0]?b[0].ownerDocument||b[0]:s;if(a.length===1&&typeof a[0]==="string"&&a[0].length<512&&b===s&&!ta.test(a[0])&&(c.support.checkClone||!ua.test(a[0]))){e= |
true;if(j=c.fragments[a[0]])if(j!==1)f=j}if(!f){f=b.createDocumentFragment();c.clean(a,b,f,d)}if(e)c.fragments[a[0]]=j?f:1;return{fragment:f,cacheable:e}}function K(a,b){var d={};c.each(va.concat.apply([],va.slice(0,b)),function(){d[this]=a});return d}function wa(a){return"scrollTo"in a&&a.document?a:a.nodeType===9?a.defaultView||a.parentWindow:false}var c=function(a,b){return new c.fn.init(a,b)},Ra=A.jQuery,Sa=A.$,s=A.document,T,Ta=/^[^<]*(<[\w\W]+>)[^>]*$|^#([\w-]+)$/,Ua=/^.[^:#\[\.,]*$/,Va=/\S/, |
Wa=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,Xa=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,P=navigator.userAgent,xa=false,Q=[],L,$=Object.prototype.toString,aa=Object.prototype.hasOwnProperty,ba=Array.prototype.push,R=Array.prototype.slice,ya=Array.prototype.indexOf;c.fn=c.prototype={init:function(a,b){var d,f;if(!a)return this;if(a.nodeType){this.context=this[0]=a;this.length=1;return this}if(a==="body"&&!b){this.context=s;this[0]=s.body;this.selector="body";this.length=1;return this}if(typeof a==="string")if((d=Ta.exec(a))&& |
(d[1]||!b))if(d[1]){f=b?b.ownerDocument||b:s;if(a=Xa.exec(a))if(c.isPlainObject(b)){a=[s.createElement(a[1])];c.fn.attr.call(a,b,true)}else a=[f.createElement(a[1])];else{a=sa([d[1]],[f]);a=(a.cacheable?a.fragment.cloneNode(true):a.fragment).childNodes}return c.merge(this,a)}else{if(b=s.getElementById(d[2])){if(b.id!==d[2])return T.find(a);this.length=1;this[0]=b}this.context=s;this.selector=a;return this}else if(!b&&/^\w+$/.test(a)){this.selector=a;this.context=s;a=s.getElementsByTagName(a);return c.merge(this, |
a)}else return!b||b.jquery?(b||T).find(a):c(b).find(a);else if(c.isFunction(a))return T.ready(a);if(a.selector!==w){this.selector=a.selector;this.context=a.context}return c.makeArray(a,this)},selector:"",jquery:"1.4.2",length:0,size:function(){return this.length},toArray:function(){return R.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this.slice(a)[0]:this[a]},pushStack:function(a,b,d){var f=c();c.isArray(a)?ba.apply(f,a):c.merge(f,a);f.prevObject=this;f.context=this.context;if(b=== |
"find")f.selector=this.selector+(this.selector?" ":"")+d;else if(b)f.selector=this.selector+"."+b+"("+d+")";return f},each:function(a,b){return c.each(this,a,b)},ready:function(a){c.bindReady();if(c.isReady)a.call(s,c);else Q&&Q.push(a);return this},eq:function(a){return a===-1?this.slice(a):this.slice(a,+a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(R.apply(this,arguments),"slice",R.call(arguments).join(","))},map:function(a){return this.pushStack(c.map(this, |
function(b,d){return a.call(b,d,b)}))},end:function(){return this.prevObject||c(null)},push:ba,sort:[].sort,splice:[].splice};c.fn.init.prototype=c.fn;c.extend=c.fn.extend=function(){var a=arguments[0]||{},b=1,d=arguments.length,f=false,e,j,i,o;if(typeof a==="boolean"){f=a;a=arguments[1]||{};b=2}if(typeof a!=="object"&&!c.isFunction(a))a={};if(d===b){a=this;--b}for(;b<d;b++)if((e=arguments[b])!=null)for(j in e){i=a[j];o=e[j];if(a!==o)if(f&&o&&(c.isPlainObject(o)||c.isArray(o))){i=i&&(c.isPlainObject(i)|| |
c.isArray(i))?i:c.isArray(o)?[]:{};a[j]=c.extend(f,i,o)}else if(o!==w)a[j]=o}return a};c.extend({noConflict:function(a){A.$=Sa;if(a)A.jQuery=Ra;return c},isReady:false,ready:function(){if(!c.isReady){if(!s.body)return setTimeout(c.ready,13);c.isReady=true;if(Q){for(var a,b=0;a=Q[b++];)a.call(s,c);Q=null}c.fn.triggerHandler&&c(s).triggerHandler("ready")}},bindReady:function(){if(!xa){xa=true;if(s.readyState==="complete")return c.ready();if(s.addEventListener){s.addEventListener("DOMContentLoaded", |
L,false);A.addEventListener("load",c.ready,false)}else if(s.attachEvent){s.attachEvent("onreadystatechange",L);A.attachEvent("onload",c.ready);var a=false;try{a=A.frameElement==null}catch(b){}s.documentElement.doScroll&&a&&ma()}}},isFunction:function(a){return $.call(a)==="[object Function]"},isArray:function(a){return $.call(a)==="[object Array]"},isPlainObject:function(a){if(!a||$.call(a)!=="[object Object]"||a.nodeType||a.setInterval)return false;if(a.constructor&&!aa.call(a,"constructor")&&!aa.call(a.constructor.prototype, |
"isPrototypeOf"))return false;var b;for(b in a);return b===w||aa.call(a,b)},isEmptyObject:function(a){for(var b in a)return false;return true},error:function(a){throw a;},parseJSON:function(a){if(typeof a!=="string"||!a)return null;a=c.trim(a);if(/^[\],:{}\s]*$/.test(a.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,"")))return A.JSON&&A.JSON.parse?A.JSON.parse(a):(new Function("return "+ |
a))();else c.error("Invalid JSON: "+a)},noop:function(){},globalEval:function(a){if(a&&Va.test(a)){var b=s.getElementsByTagName("head")[0]||s.documentElement,d=s.createElement("script");d.type="text/javascript";if(c.support.scriptEval)d.appendChild(s.createTextNode(a));else d.text=a;b.insertBefore(d,b.firstChild);b.removeChild(d)}},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,b,d){var f,e=0,j=a.length,i=j===w||c.isFunction(a);if(d)if(i)for(f in a){if(b.apply(a[f], |
d)===false)break}else for(;e<j;){if(b.apply(a[e++],d)===false)break}else if(i)for(f in a){if(b.call(a[f],f,a[f])===false)break}else for(d=a[0];e<j&&b.call(d,e,d)!==false;d=a[++e]);return a},trim:function(a){return(a||"").replace(Wa,"")},makeArray:function(a,b){b=b||[];if(a!=null)a.length==null||typeof a==="string"||c.isFunction(a)||typeof a!=="function"&&a.setInterval?ba.call(b,a):c.merge(b,a);return b},inArray:function(a,b){if(b.indexOf)return b.indexOf(a);for(var d=0,f=b.length;d<f;d++)if(b[d]=== |
a)return d;return-1},merge:function(a,b){var d=a.length,f=0;if(typeof b.length==="number")for(var e=b.length;f<e;f++)a[d++]=b[f];else for(;b[f]!==w;)a[d++]=b[f++];a.length=d;return a},grep:function(a,b,d){for(var f=[],e=0,j=a.length;e<j;e++)!d!==!b(a[e],e)&&f.push(a[e]);return f},map:function(a,b,d){for(var f=[],e,j=0,i=a.length;j<i;j++){e=b(a[j],j,d);if(e!=null)f[f.length]=e}return f.concat.apply([],f)},guid:1,proxy:function(a,b,d){if(arguments.length===2)if(typeof b==="string"){d=a;a=d[b];b=w}else if(b&& |
!c.isFunction(b)){d=b;b=w}if(!b&&a)b=function(){return a.apply(d||this,arguments)};if(a)b.guid=a.guid=a.guid||b.guid||c.guid++;return b},uaMatch:function(a){a=a.toLowerCase();a=/(webkit)[ \/]([\w.]+)/.exec(a)||/(opera)(?:.*version)?[ \/]([\w.]+)/.exec(a)||/(msie) ([\w.]+)/.exec(a)||!/compatible/.test(a)&&/(mozilla)(?:.*? rv:([\w.]+))?/.exec(a)||[];return{browser:a[1]||"",version:a[2]||"0"}},browser:{}});P=c.uaMatch(P);if(P.browser){c.browser[P.browser]=true;c.browser.version=P.version}if(c.browser.webkit)c.browser.safari= |
true;if(ya)c.inArray=function(a,b){return ya.call(b,a)};T=c(s);if(s.addEventListener)L=function(){s.removeEventListener("DOMContentLoaded",L,false);c.ready()};else if(s.attachEvent)L=function(){if(s.readyState==="complete"){s.detachEvent("onreadystatechange",L);c.ready()}};(function(){c.support={};var a=s.documentElement,b=s.createElement("script"),d=s.createElement("div"),f="script"+J();d.style.display="none";d.innerHTML=" <link/><table></table><a href='/a' style='color:red;float:left;opacity:.55;'>a</a><input type='checkbox'/>"; |
var e=d.getElementsByTagName("*"),j=d.getElementsByTagName("a")[0];if(!(!e||!e.length||!j)){c.support={leadingWhitespace:d.firstChild.nodeType===3,tbody:!d.getElementsByTagName("tbody").length,htmlSerialize:!!d.getElementsByTagName("link").length,style:/red/.test(j.getAttribute("style")),hrefNormalized:j.getAttribute("href")==="/a",opacity:/^0.55$/.test(j.style.opacity),cssFloat:!!j.style.cssFloat,checkOn:d.getElementsByTagName("input")[0].value==="on",optSelected:s.createElement("select").appendChild(s.createElement("option")).selected, |
parentNode:d.removeChild(d.appendChild(s.createElement("div"))).parentNode===null,deleteExpando:true,checkClone:false,scriptEval:false,noCloneEvent:true,boxModel:null};b.type="text/javascript";try{b.appendChild(s.createTextNode("window."+f+"=1;"))}catch(i){}a.insertBefore(b,a.firstChild);if(A[f]){c.support.scriptEval=true;delete A[f]}try{delete b.test}catch(o){c.support.deleteExpando=false}a.removeChild(b);if(d.attachEvent&&d.fireEvent){d.attachEvent("onclick",function k(){c.support.noCloneEvent= |
false;d.detachEvent("onclick",k)});d.cloneNode(true).fireEvent("onclick")}d=s.createElement("div");d.innerHTML="<input type='radio' name='radiotest' checked='checked'/>";a=s.createDocumentFragment();a.appendChild(d.firstChild);c.support.checkClone=a.cloneNode(true).cloneNode(true).lastChild.checked;c(function(){var k=s.createElement("div");k.style.width=k.style.paddingLeft="1px";s.body.appendChild(k);c.boxModel=c.support.boxModel=k.offsetWidth===2;s.body.removeChild(k).style.display="none"});a=function(k){var n= |
s.createElement("div");k="on"+k;var r=k in n;if(!r){n.setAttribute(k,"return;");r=typeof n[k]==="function"}return r};c.support.submitBubbles=a("submit");c.support.changeBubbles=a("change");a=b=d=e=j=null}})();c.props={"for":"htmlFor","class":"className",readonly:"readOnly",maxlength:"maxLength",cellspacing:"cellSpacing",rowspan:"rowSpan",colspan:"colSpan",tabindex:"tabIndex",usemap:"useMap",frameborder:"frameBorder"};var G="jQuery"+J(),Ya=0,za={};c.extend({cache:{},expando:G,noData:{embed:true,object:true, |
applet:true},data:function(a,b,d){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var f=a[G],e=c.cache;if(!f&&typeof b==="string"&&d===w)return null;f||(f=++Ya);if(typeof b==="object"){a[G]=f;e[f]=c.extend(true,{},b)}else if(!e[f]){a[G]=f;e[f]={}}a=e[f];if(d!==w)a[b]=d;return typeof b==="string"?a[b]:a}},removeData:function(a,b){if(!(a.nodeName&&c.noData[a.nodeName.toLowerCase()])){a=a==A?za:a;var d=a[G],f=c.cache,e=f[d];if(b){if(e){delete e[b];c.isEmptyObject(e)&&c.removeData(a)}}else{if(c.support.deleteExpando)delete a[c.expando]; |
else a.removeAttribute&&a.removeAttribute(c.expando);delete f[d]}}}});c.fn.extend({data:function(a,b){if(typeof a==="undefined"&&this.length)return c.data(this[0]);else if(typeof a==="object")return this.each(function(){c.data(this,a)});var d=a.split(".");d[1]=d[1]?"."+d[1]:"";if(b===w){var f=this.triggerHandler("getData"+d[1]+"!",[d[0]]);if(f===w&&this.length)f=c.data(this[0],a);return f===w&&d[1]?this.data(d[0]):f}else return this.trigger("setData"+d[1]+"!",[d[0],b]).each(function(){c.data(this, |
a,b)})},removeData:function(a){return this.each(function(){c.removeData(this,a)})}});c.extend({queue:function(a,b,d){if(a){b=(b||"fx")+"queue";var f=c.data(a,b);if(!d)return f||[];if(!f||c.isArray(d))f=c.data(a,b,c.makeArray(d));else f.push(d);return f}},dequeue:function(a,b){b=b||"fx";var d=c.queue(a,b),f=d.shift();if(f==="inprogress")f=d.shift();if(f){b==="fx"&&d.unshift("inprogress");f.call(a,function(){c.dequeue(a,b)})}}});c.fn.extend({queue:function(a,b){if(typeof a!=="string"){b=a;a="fx"}if(b=== |
w)return c.queue(this[0],a);return this.each(function(){var d=c.queue(this,a,b);a==="fx"&&d[0]!=="inprogress"&&c.dequeue(this,a)})},dequeue:function(a){return this.each(function(){c.dequeue(this,a)})},delay:function(a,b){a=c.fx?c.fx.speeds[a]||a:a;b=b||"fx";return this.queue(b,function(){var d=this;setTimeout(function(){c.dequeue(d,b)},a)})},clearQueue:function(a){return this.queue(a||"fx",[])}});var Aa=/[\n\t]/g,ca=/\s+/,Za=/\r/g,$a=/href|src|style/,ab=/(button|input)/i,bb=/(button|input|object|select|textarea)/i, |
cb=/^(a|area)$/i,Ba=/radio|checkbox/;c.fn.extend({attr:function(a,b){return X(this,a,b,true,c.attr)},removeAttr:function(a){return this.each(function(){c.attr(this,a,"");this.nodeType===1&&this.removeAttribute(a)})},addClass:function(a){if(c.isFunction(a))return this.each(function(n){var r=c(this);r.addClass(a.call(this,n,r.attr("class")))});if(a&&typeof a==="string")for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1)if(e.className){for(var j=" "+e.className+" ", |
i=e.className,o=0,k=b.length;o<k;o++)if(j.indexOf(" "+b[o]+" ")<0)i+=" "+b[o];e.className=c.trim(i)}else e.className=a}return this},removeClass:function(a){if(c.isFunction(a))return this.each(function(k){var n=c(this);n.removeClass(a.call(this,k,n.attr("class")))});if(a&&typeof a==="string"||a===w)for(var b=(a||"").split(ca),d=0,f=this.length;d<f;d++){var e=this[d];if(e.nodeType===1&&e.className)if(a){for(var j=(" "+e.className+" ").replace(Aa," "),i=0,o=b.length;i<o;i++)j=j.replace(" "+b[i]+" ", |
" ");e.className=c.trim(j)}else e.className=""}return this},toggleClass:function(a,b){var d=typeof a,f=typeof b==="boolean";if(c.isFunction(a))return this.each(function(e){var j=c(this);j.toggleClass(a.call(this,e,j.attr("class"),b),b)});return this.each(function(){if(d==="string")for(var e,j=0,i=c(this),o=b,k=a.split(ca);e=k[j++];){o=f?o:!i.hasClass(e);i[o?"addClass":"removeClass"](e)}else if(d==="undefined"||d==="boolean"){this.className&&c.data(this,"__className__",this.className);this.className= |
this.className||a===false?"":c.data(this,"__className__")||""}})},hasClass:function(a){a=" "+a+" ";for(var b=0,d=this.length;b<d;b++)if((" "+this[b].className+" ").replace(Aa," ").indexOf(a)>-1)return true;return false},val:function(a){if(a===w){var b=this[0];if(b){if(c.nodeName(b,"option"))return(b.attributes.value||{}).specified?b.value:b.text;if(c.nodeName(b,"select")){var d=b.selectedIndex,f=[],e=b.options;b=b.type==="select-one";if(d<0)return null;var j=b?d:0;for(d=b?d+1:e.length;j<d;j++){var i= |
e[j];if(i.selected){a=c(i).val();if(b)return a;f.push(a)}}return f}if(Ba.test(b.type)&&!c.support.checkOn)return b.getAttribute("value")===null?"on":b.value;return(b.value||"").replace(Za,"")}return w}var o=c.isFunction(a);return this.each(function(k){var n=c(this),r=a;if(this.nodeType===1){if(o)r=a.call(this,k,n.val());if(typeof r==="number")r+="";if(c.isArray(r)&&Ba.test(this.type))this.checked=c.inArray(n.val(),r)>=0;else if(c.nodeName(this,"select")){var u=c.makeArray(r);c("option",this).each(function(){this.selected= |
c.inArray(c(this).val(),u)>=0});if(!u.length)this.selectedIndex=-1}else this.value=r}})}});c.extend({attrFn:{val:true,css:true,html:true,text:true,data:true,width:true,height:true,offset:true},attr:function(a,b,d,f){if(!a||a.nodeType===3||a.nodeType===8)return w;if(f&&b in c.attrFn)return c(a)[b](d);f=a.nodeType!==1||!c.isXMLDoc(a);var e=d!==w;b=f&&c.props[b]||b;if(a.nodeType===1){var j=$a.test(b);if(b in a&&f&&!j){if(e){b==="type"&&ab.test(a.nodeName)&&a.parentNode&&c.error("type property can't be changed"); |
a[b]=d}if(c.nodeName(a,"form")&&a.getAttributeNode(b))return a.getAttributeNode(b).nodeValue;if(b==="tabIndex")return(b=a.getAttributeNode("tabIndex"))&&b.specified?b.value:bb.test(a.nodeName)||cb.test(a.nodeName)&&a.href?0:w;return a[b]}if(!c.support.style&&f&&b==="style"){if(e)a.style.cssText=""+d;return a.style.cssText}e&&a.setAttribute(b,""+d);a=!c.support.hrefNormalized&&f&&j?a.getAttribute(b,2):a.getAttribute(b);return a===null?w:a}return c.style(a,b,d)}});var O=/\.(.*)$/,db=function(a){return a.replace(/[^\w\s\.\|`]/g, |
function(b){return"\\"+b})};c.event={add:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){if(a.setInterval&&a!==A&&!a.frameElement)a=A;var e,j;if(d.handler){e=d;d=e.handler}if(!d.guid)d.guid=c.guid++;if(j=c.data(a)){var i=j.events=j.events||{},o=j.handle;if(!o)j.handle=o=function(){return typeof c!=="undefined"&&!c.event.triggered?c.event.handle.apply(o.elem,arguments):w};o.elem=a;b=b.split(" ");for(var k,n=0,r;k=b[n++];){j=e?c.extend({},e):{handler:d,data:f};if(k.indexOf(".")>-1){r=k.split("."); |
k=r.shift();j.namespace=r.slice(0).sort().join(".")}else{r=[];j.namespace=""}j.type=k;j.guid=d.guid;var u=i[k],z=c.event.special[k]||{};if(!u){u=i[k]=[];if(!z.setup||z.setup.call(a,f,r,o)===false)if(a.addEventListener)a.addEventListener(k,o,false);else a.attachEvent&&a.attachEvent("on"+k,o)}if(z.add){z.add.call(a,j);if(!j.handler.guid)j.handler.guid=d.guid}u.push(j);c.event.global[k]=true}a=null}}},global:{},remove:function(a,b,d,f){if(!(a.nodeType===3||a.nodeType===8)){var e,j=0,i,o,k,n,r,u,z=c.data(a), |
C=z&&z.events;if(z&&C){if(b&&b.type){d=b.handler;b=b.type}if(!b||typeof b==="string"&&b.charAt(0)==="."){b=b||"";for(e in C)c.event.remove(a,e+b)}else{for(b=b.split(" ");e=b[j++];){n=e;i=e.indexOf(".")<0;o=[];if(!i){o=e.split(".");e=o.shift();k=new RegExp("(^|\\.)"+c.map(o.slice(0).sort(),db).join("\\.(?:.*\\.)?")+"(\\.|$)")}if(r=C[e])if(d){n=c.event.special[e]||{};for(B=f||0;B<r.length;B++){u=r[B];if(d.guid===u.guid){if(i||k.test(u.namespace)){f==null&&r.splice(B--,1);n.remove&&n.remove.call(a,u)}if(f!= |
null)break}}if(r.length===0||f!=null&&r.length===1){if(!n.teardown||n.teardown.call(a,o)===false)Ca(a,e,z.handle);delete C[e]}}else for(var B=0;B<r.length;B++){u=r[B];if(i||k.test(u.namespace)){c.event.remove(a,n,u.handler,B);r.splice(B--,1)}}}if(c.isEmptyObject(C)){if(b=z.handle)b.elem=null;delete z.events;delete z.handle;c.isEmptyObject(z)&&c.removeData(a)}}}}},trigger:function(a,b,d,f){var e=a.type||a;if(!f){a=typeof a==="object"?a[G]?a:c.extend(c.Event(e),a):c.Event(e);if(e.indexOf("!")>=0){a.type= |
e=e.slice(0,-1);a.exclusive=true}if(!d){a.stopPropagation();c.event.global[e]&&c.each(c.cache,function(){this.events&&this.events[e]&&c.event.trigger(a,b,this.handle.elem)})}if(!d||d.nodeType===3||d.nodeType===8)return w;a.result=w;a.target=d;b=c.makeArray(b);b.unshift(a)}a.currentTarget=d;(f=c.data(d,"handle"))&&f.apply(d,b);f=d.parentNode||d.ownerDocument;try{if(!(d&&d.nodeName&&c.noData[d.nodeName.toLowerCase()]))if(d["on"+e]&&d["on"+e].apply(d,b)===false)a.result=false}catch(j){}if(!a.isPropagationStopped()&& |
f)c.event.trigger(a,b,f,true);else if(!a.isDefaultPrevented()){f=a.target;var i,o=c.nodeName(f,"a")&&e==="click",k=c.event.special[e]||{};if((!k._default||k._default.call(d,a)===false)&&!o&&!(f&&f.nodeName&&c.noData[f.nodeName.toLowerCase()])){try{if(f[e]){if(i=f["on"+e])f["on"+e]=null;c.event.triggered=true;f[e]()}}catch(n){}if(i)f["on"+e]=i;c.event.triggered=false}}},handle:function(a){var b,d,f,e;a=arguments[0]=c.event.fix(a||A.event);a.currentTarget=this;b=a.type.indexOf(".")<0&&!a.exclusive; |
if(!b){d=a.type.split(".");a.type=d.shift();f=new RegExp("(^|\\.)"+d.slice(0).sort().join("\\.(?:.*\\.)?")+"(\\.|$)")}e=c.data(this,"events");d=e[a.type];if(e&&d){d=d.slice(0);e=0;for(var j=d.length;e<j;e++){var i=d[e];if(b||f.test(i.namespace)){a.handler=i.handler;a.data=i.data;a.handleObj=i;i=i.handler.apply(this,arguments);if(i!==w){a.result=i;if(i===false){a.preventDefault();a.stopPropagation()}}if(a.isImmediatePropagationStopped())break}}}return a.result},props:"altKey attrChange attrName bubbles button cancelable charCode clientX clientY ctrlKey currentTarget data detail eventPhase fromElement handler keyCode layerX layerY metaKey newValue offsetX offsetY originalTarget pageX pageY prevValue relatedNode relatedTarget screenX screenY shiftKey srcElement target toElement view wheelDelta which".split(" "), |
fix:function(a){if(a[G])return a;var b=a;a=c.Event(b);for(var d=this.props.length,f;d;){f=this.props[--d];a[f]=b[f]}if(!a.target)a.target=a.srcElement||s;if(a.target.nodeType===3)a.target=a.target.parentNode;if(!a.relatedTarget&&a.fromElement)a.relatedTarget=a.fromElement===a.target?a.toElement:a.fromElement;if(a.pageX==null&&a.clientX!=null){b=s.documentElement;d=s.body;a.pageX=a.clientX+(b&&b.scrollLeft||d&&d.scrollLeft||0)-(b&&b.clientLeft||d&&d.clientLeft||0);a.pageY=a.clientY+(b&&b.scrollTop|| |
d&&d.scrollTop||0)-(b&&b.clientTop||d&&d.clientTop||0)}if(!a.which&&(a.charCode||a.charCode===0?a.charCode:a.keyCode))a.which=a.charCode||a.keyCode;if(!a.metaKey&&a.ctrlKey)a.metaKey=a.ctrlKey;if(!a.which&&a.button!==w)a.which=a.button&1?1:a.button&2?3:a.button&4?2:0;return a},guid:1E8,proxy:c.proxy,special:{ready:{setup:c.bindReady,teardown:c.noop},live:{add:function(a){c.event.add(this,a.origType,c.extend({},a,{handler:oa}))},remove:function(a){var b=true,d=a.origType.replace(O,"");c.each(c.data(this, |
"events").live||[],function(){if(d===this.origType.replace(O,""))return b=false});b&&c.event.remove(this,a.origType,oa)}},beforeunload:{setup:function(a,b,d){if(this.setInterval)this.onbeforeunload=d;return false},teardown:function(a,b){if(this.onbeforeunload===b)this.onbeforeunload=null}}}};var Ca=s.removeEventListener?function(a,b,d){a.removeEventListener(b,d,false)}:function(a,b,d){a.detachEvent("on"+b,d)};c.Event=function(a){if(!this.preventDefault)return new c.Event(a);if(a&&a.type){this.originalEvent= |
a;this.type=a.type}else this.type=a;this.timeStamp=J();this[G]=true};c.Event.prototype={preventDefault:function(){this.isDefaultPrevented=Z;var a=this.originalEvent;if(a){a.preventDefault&&a.preventDefault();a.returnValue=false}},stopPropagation:function(){this.isPropagationStopped=Z;var a=this.originalEvent;if(a){a.stopPropagation&&a.stopPropagation();a.cancelBubble=true}},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=Z;this.stopPropagation()},isDefaultPrevented:Y,isPropagationStopped:Y, |
isImmediatePropagationStopped:Y};var Da=function(a){var b=a.relatedTarget;try{for(;b&&b!==this;)b=b.parentNode;if(b!==this){a.type=a.data;c.event.handle.apply(this,arguments)}}catch(d){}},Ea=function(a){a.type=a.data;c.event.handle.apply(this,arguments)};c.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){c.event.special[a]={setup:function(d){c.event.add(this,b,d&&d.selector?Ea:Da,a)},teardown:function(d){c.event.remove(this,b,d&&d.selector?Ea:Da)}}});if(!c.support.submitBubbles)c.event.special.submit= |
{setup:function(){if(this.nodeName.toLowerCase()!=="form"){c.event.add(this,"click.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="submit"||d==="image")&&c(b).closest("form").length)return na("submit",this,arguments)});c.event.add(this,"keypress.specialSubmit",function(a){var b=a.target,d=b.type;if((d==="text"||d==="password")&&c(b).closest("form").length&&a.keyCode===13)return na("submit",this,arguments)})}else return false},teardown:function(){c.event.remove(this,".specialSubmit")}}; |
if(!c.support.changeBubbles){var da=/textarea|input|select/i,ea,Fa=function(a){var b=a.type,d=a.value;if(b==="radio"||b==="checkbox")d=a.checked;else if(b==="select-multiple")d=a.selectedIndex>-1?c.map(a.options,function(f){return f.selected}).join("-"):"";else if(a.nodeName.toLowerCase()==="select")d=a.selectedIndex;return d},fa=function(a,b){var d=a.target,f,e;if(!(!da.test(d.nodeName)||d.readOnly)){f=c.data(d,"_change_data");e=Fa(d);if(a.type!=="focusout"||d.type!=="radio")c.data(d,"_change_data", |
e);if(!(f===w||e===f))if(f!=null||e){a.type="change";return c.event.trigger(a,b,d)}}};c.event.special.change={filters:{focusout:fa,click:function(a){var b=a.target,d=b.type;if(d==="radio"||d==="checkbox"||b.nodeName.toLowerCase()==="select")return fa.call(this,a)},keydown:function(a){var b=a.target,d=b.type;if(a.keyCode===13&&b.nodeName.toLowerCase()!=="textarea"||a.keyCode===32&&(d==="checkbox"||d==="radio")||d==="select-multiple")return fa.call(this,a)},beforeactivate:function(a){a=a.target;c.data(a, |
"_change_data",Fa(a))}},setup:function(){if(this.type==="file")return false;for(var a in ea)c.event.add(this,a+".specialChange",ea[a]);return da.test(this.nodeName)},teardown:function(){c.event.remove(this,".specialChange");return da.test(this.nodeName)}};ea=c.event.special.change.filters}s.addEventListener&&c.each({focus:"focusin",blur:"focusout"},function(a,b){function d(f){f=c.event.fix(f);f.type=b;return c.event.handle.call(this,f)}c.event.special[b]={setup:function(){this.addEventListener(a, |
d,true)},teardown:function(){this.removeEventListener(a,d,true)}}});c.each(["bind","one"],function(a,b){c.fn[b]=function(d,f,e){if(typeof d==="object"){for(var j in d)this[b](j,f,d[j],e);return this}if(c.isFunction(f)){e=f;f=w}var i=b==="one"?c.proxy(e,function(k){c(this).unbind(k,i);return e.apply(this,arguments)}):e;if(d==="unload"&&b!=="one")this.one(d,f,e);else{j=0;for(var o=this.length;j<o;j++)c.event.add(this[j],d,i,f)}return this}});c.fn.extend({unbind:function(a,b){if(typeof a==="object"&& |
!a.preventDefault)for(var d in a)this.unbind(d,a[d]);else{d=0;for(var f=this.length;d<f;d++)c.event.remove(this[d],a,b)}return this},delegate:function(a,b,d,f){return this.live(b,d,f,a)},undelegate:function(a,b,d){return arguments.length===0?this.unbind("live"):this.die(b,null,d,a)},trigger:function(a,b){return this.each(function(){c.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0]){a=c.Event(a);a.preventDefault();a.stopPropagation();c.event.trigger(a,b,this[0]);return a.result}}, |
toggle:function(a){for(var b=arguments,d=1;d<b.length;)c.proxy(a,b[d++]);return this.click(c.proxy(a,function(f){var e=(c.data(this,"lastToggle"+a.guid)||0)%d;c.data(this,"lastToggle"+a.guid,e+1);f.preventDefault();return b[e].apply(this,arguments)||false}))},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}});var Ga={focus:"focusin",blur:"focusout",mouseenter:"mouseover",mouseleave:"mouseout"};c.each(["live","die"],function(a,b){c.fn[b]=function(d,f,e,j){var i,o=0,k,n,r=j||this.selector, |
u=j?this:c(this.context);if(c.isFunction(f)){e=f;f=w}for(d=(d||"").split(" ");(i=d[o++])!=null;){j=O.exec(i);k="";if(j){k=j[0];i=i.replace(O,"")}if(i==="hover")d.push("mouseenter"+k,"mouseleave"+k);else{n=i;if(i==="focus"||i==="blur"){d.push(Ga[i]+k);i+=k}else i=(Ga[i]||i)+k;b==="live"?u.each(function(){c.event.add(this,pa(i,r),{data:f,selector:r,handler:e,origType:i,origHandler:e,preType:n})}):u.unbind(pa(i,r),e)}}return this}});c.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error".split(" "), |
function(a,b){c.fn[b]=function(d){return d?this.bind(b,d):this.trigger(b)};if(c.attrFn)c.attrFn[b]=true});A.attachEvent&&!A.addEventListener&&A.attachEvent("onunload",function(){for(var a in c.cache)if(c.cache[a].handle)try{c.event.remove(c.cache[a].handle.elem)}catch(b){}});(function(){function a(g){for(var h="",l,m=0;g[m];m++){l=g[m];if(l.nodeType===3||l.nodeType===4)h+=l.nodeValue;else if(l.nodeType!==8)h+=a(l.childNodes)}return h}function b(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q]; |
if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1&&!p){t.sizcache=l;t.sizset=q}if(t.nodeName.toLowerCase()===h){y=t;break}t=t[g]}m[q]=y}}}function d(g,h,l,m,q,p){q=0;for(var v=m.length;q<v;q++){var t=m[q];if(t){t=t[g];for(var y=false;t;){if(t.sizcache===l){y=m[t.sizset];break}if(t.nodeType===1){if(!p){t.sizcache=l;t.sizset=q}if(typeof h!=="string"){if(t===h){y=true;break}}else if(k.filter(h,[t]).length>0){y=t;break}}t=t[g]}m[q]=y}}}var f=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^[\]]*\]|['"][^'"]*['"]|[^[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g, |
e=0,j=Object.prototype.toString,i=false,o=true;[0,0].sort(function(){o=false;return 0});var k=function(g,h,l,m){l=l||[];var q=h=h||s;if(h.nodeType!==1&&h.nodeType!==9)return[];if(!g||typeof g!=="string")return l;for(var p=[],v,t,y,S,H=true,M=x(h),I=g;(f.exec(""),v=f.exec(I))!==null;){I=v[3];p.push(v[1]);if(v[2]){S=v[3];break}}if(p.length>1&&r.exec(g))if(p.length===2&&n.relative[p[0]])t=ga(p[0]+p[1],h);else for(t=n.relative[p[0]]?[h]:k(p.shift(),h);p.length;){g=p.shift();if(n.relative[g])g+=p.shift(); |
t=ga(g,t)}else{if(!m&&p.length>1&&h.nodeType===9&&!M&&n.match.ID.test(p[0])&&!n.match.ID.test(p[p.length-1])){v=k.find(p.shift(),h,M);h=v.expr?k.filter(v.expr,v.set)[0]:v.set[0]}if(h){v=m?{expr:p.pop(),set:z(m)}:k.find(p.pop(),p.length===1&&(p[0]==="~"||p[0]==="+")&&h.parentNode?h.parentNode:h,M);t=v.expr?k.filter(v.expr,v.set):v.set;if(p.length>0)y=z(t);else H=false;for(;p.length;){var D=p.pop();v=D;if(n.relative[D])v=p.pop();else D="";if(v==null)v=h;n.relative[D](y,v,M)}}else y=[]}y||(y=t);y||k.error(D|| |
g);if(j.call(y)==="[object Array]")if(H)if(h&&h.nodeType===1)for(g=0;y[g]!=null;g++){if(y[g]&&(y[g]===true||y[g].nodeType===1&&E(h,y[g])))l.push(t[g])}else for(g=0;y[g]!=null;g++)y[g]&&y[g].nodeType===1&&l.push(t[g]);else l.push.apply(l,y);else z(y,l);if(S){k(S,q,l,m);k.uniqueSort(l)}return l};k.uniqueSort=function(g){if(B){i=o;g.sort(B);if(i)for(var h=1;h<g.length;h++)g[h]===g[h-1]&&g.splice(h--,1)}return g};k.matches=function(g,h){return k(g,null,null,h)};k.find=function(g,h,l){var m,q;if(!g)return[]; |
for(var p=0,v=n.order.length;p<v;p++){var t=n.order[p];if(q=n.leftMatch[t].exec(g)){var y=q[1];q.splice(1,1);if(y.substr(y.length-1)!=="\\"){q[1]=(q[1]||"").replace(/\\/g,"");m=n.find[t](q,h,l);if(m!=null){g=g.replace(n.match[t],"");break}}}}m||(m=h.getElementsByTagName("*"));return{set:m,expr:g}};k.filter=function(g,h,l,m){for(var q=g,p=[],v=h,t,y,S=h&&h[0]&&x(h[0]);g&&h.length;){for(var H in n.filter)if((t=n.leftMatch[H].exec(g))!=null&&t[2]){var M=n.filter[H],I,D;D=t[1];y=false;t.splice(1,1);if(D.substr(D.length- |
1)!=="\\"){if(v===p)p=[];if(n.preFilter[H])if(t=n.preFilter[H](t,v,l,p,m,S)){if(t===true)continue}else y=I=true;if(t)for(var U=0;(D=v[U])!=null;U++)if(D){I=M(D,t,U,v);var Ha=m^!!I;if(l&&I!=null)if(Ha)y=true;else v[U]=false;else if(Ha){p.push(D);y=true}}if(I!==w){l||(v=p);g=g.replace(n.match[H],"");if(!y)return[];break}}}if(g===q)if(y==null)k.error(g);else break;q=g}return v};k.error=function(g){throw"Syntax error, unrecognized expression: "+g;};var n=k.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF-]|\\.)+)/, |
CLASS:/\.((?:[\w\u00c0-\uFFFF-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(g){return g.getAttribute("href")}}, |
relative:{"+":function(g,h){var l=typeof h==="string",m=l&&!/\W/.test(h);l=l&&!m;if(m)h=h.toLowerCase();m=0;for(var q=g.length,p;m<q;m++)if(p=g[m]){for(;(p=p.previousSibling)&&p.nodeType!==1;);g[m]=l||p&&p.nodeName.toLowerCase()===h?p||false:p===h}l&&k.filter(h,g,true)},">":function(g,h){var l=typeof h==="string";if(l&&!/\W/.test(h)){h=h.toLowerCase();for(var m=0,q=g.length;m<q;m++){var p=g[m];if(p){l=p.parentNode;g[m]=l.nodeName.toLowerCase()===h?l:false}}}else{m=0;for(q=g.length;m<q;m++)if(p=g[m])g[m]= |
l?p.parentNode:p.parentNode===h;l&&k.filter(h,g,true)}},"":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("parentNode",h,m,g,p,l)},"~":function(g,h,l){var m=e++,q=d;if(typeof h==="string"&&!/\W/.test(h)){var p=h=h.toLowerCase();q=b}q("previousSibling",h,m,g,p,l)}},find:{ID:function(g,h,l){if(typeof h.getElementById!=="undefined"&&!l)return(g=h.getElementById(g[1]))?[g]:[]},NAME:function(g,h){if(typeof h.getElementsByName!=="undefined"){var l=[]; |
h=h.getElementsByName(g[1]);for(var m=0,q=h.length;m<q;m++)h[m].getAttribute("name")===g[1]&&l.push(h[m]);return l.length===0?null:l}},TAG:function(g,h){return h.getElementsByTagName(g[1])}},preFilter:{CLASS:function(g,h,l,m,q,p){g=" "+g[1].replace(/\\/g,"")+" ";if(p)return g;p=0;for(var v;(v=h[p])!=null;p++)if(v)if(q^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(g)>=0))l||m.push(v);else if(l)h[p]=false;return false},ID:function(g){return g[1].replace(/\\/g,"")},TAG:function(g){return g[1].toLowerCase()}, |
CHILD:function(g){if(g[1]==="nth"){var h=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(g[2]==="even"&&"2n"||g[2]==="odd"&&"2n+1"||!/\D/.test(g[2])&&"0n+"+g[2]||g[2]);g[2]=h[1]+(h[2]||1)-0;g[3]=h[3]-0}g[0]=e++;return g},ATTR:function(g,h,l,m,q,p){h=g[1].replace(/\\/g,"");if(!p&&n.attrMap[h])g[1]=n.attrMap[h];if(g[2]==="~=")g[4]=" "+g[4]+" ";return g},PSEUDO:function(g,h,l,m,q){if(g[1]==="not")if((f.exec(g[3])||"").length>1||/^\w/.test(g[3]))g[3]=k(g[3],null,null,h);else{g=k.filter(g[3],h,l,true^q);l||m.push.apply(m, |
g);return false}else if(n.match.POS.test(g[0])||n.match.CHILD.test(g[0]))return true;return g},POS:function(g){g.unshift(true);return g}},filters:{enabled:function(g){return g.disabled===false&&g.type!=="hidden"},disabled:function(g){return g.disabled===true},checked:function(g){return g.checked===true},selected:function(g){return g.selected===true},parent:function(g){return!!g.firstChild},empty:function(g){return!g.firstChild},has:function(g,h,l){return!!k(l[3],g).length},header:function(g){return/h\d/i.test(g.nodeName)}, |
text:function(g){return"text"===g.type},radio:function(g){return"radio"===g.type},checkbox:function(g){return"checkbox"===g.type},file:function(g){return"file"===g.type},password:function(g){return"password"===g.type},submit:function(g){return"submit"===g.type},image:function(g){return"image"===g.type},reset:function(g){return"reset"===g.type},button:function(g){return"button"===g.type||g.nodeName.toLowerCase()==="button"},input:function(g){return/input|select|textarea|button/i.test(g.nodeName)}}, |
setFilters:{first:function(g,h){return h===0},last:function(g,h,l,m){return h===m.length-1},even:function(g,h){return h%2===0},odd:function(g,h){return h%2===1},lt:function(g,h,l){return h<l[3]-0},gt:function(g,h,l){return h>l[3]-0},nth:function(g,h,l){return l[3]-0===h},eq:function(g,h,l){return l[3]-0===h}},filter:{PSEUDO:function(g,h,l,m){var q=h[1],p=n.filters[q];if(p)return p(g,l,h,m);else if(q==="contains")return(g.textContent||g.innerText||a([g])||"").indexOf(h[3])>=0;else if(q==="not"){h= |
h[3];l=0;for(m=h.length;l<m;l++)if(h[l]===g)return false;return true}else k.error("Syntax error, unrecognized expression: "+q)},CHILD:function(g,h){var l=h[1],m=g;switch(l){case "only":case "first":for(;m=m.previousSibling;)if(m.nodeType===1)return false;if(l==="first")return true;m=g;case "last":for(;m=m.nextSibling;)if(m.nodeType===1)return false;return true;case "nth":l=h[2];var q=h[3];if(l===1&&q===0)return true;h=h[0];var p=g.parentNode;if(p&&(p.sizcache!==h||!g.nodeIndex)){var v=0;for(m=p.firstChild;m;m= |
m.nextSibling)if(m.nodeType===1)m.nodeIndex=++v;p.sizcache=h}g=g.nodeIndex-q;return l===0?g===0:g%l===0&&g/l>=0}},ID:function(g,h){return g.nodeType===1&&g.getAttribute("id")===h},TAG:function(g,h){return h==="*"&&g.nodeType===1||g.nodeName.toLowerCase()===h},CLASS:function(g,h){return(" "+(g.className||g.getAttribute("class"))+" ").indexOf(h)>-1},ATTR:function(g,h){var l=h[1];g=n.attrHandle[l]?n.attrHandle[l](g):g[l]!=null?g[l]:g.getAttribute(l);l=g+"";var m=h[2];h=h[4];return g==null?m==="!=":m=== |
"="?l===h:m==="*="?l.indexOf(h)>=0:m==="~="?(" "+l+" ").indexOf(h)>=0:!h?l&&g!==false:m==="!="?l!==h:m==="^="?l.indexOf(h)===0:m==="$="?l.substr(l.length-h.length)===h:m==="|="?l===h||l.substr(0,h.length+1)===h+"-":false},POS:function(g,h,l,m){var q=n.setFilters[h[2]];if(q)return q(g,l,h,m)}}},r=n.match.POS;for(var u in n.match){n.match[u]=new RegExp(n.match[u].source+/(?![^\[]*\])(?![^\(]*\))/.source);n.leftMatch[u]=new RegExp(/(^(?:.|\r|\n)*?)/.source+n.match[u].source.replace(/\\(\d+)/g,function(g, |
h){return"\\"+(h-0+1)}))}var z=function(g,h){g=Array.prototype.slice.call(g,0);if(h){h.push.apply(h,g);return h}return g};try{Array.prototype.slice.call(s.documentElement.childNodes,0)}catch(C){z=function(g,h){h=h||[];if(j.call(g)==="[object Array]")Array.prototype.push.apply(h,g);else if(typeof g.length==="number")for(var l=0,m=g.length;l<m;l++)h.push(g[l]);else for(l=0;g[l];l++)h.push(g[l]);return h}}var B;if(s.documentElement.compareDocumentPosition)B=function(g,h){if(!g.compareDocumentPosition|| |
!h.compareDocumentPosition){if(g==h)i=true;return g.compareDocumentPosition?-1:1}g=g.compareDocumentPosition(h)&4?-1:g===h?0:1;if(g===0)i=true;return g};else if("sourceIndex"in s.documentElement)B=function(g,h){if(!g.sourceIndex||!h.sourceIndex){if(g==h)i=true;return g.sourceIndex?-1:1}g=g.sourceIndex-h.sourceIndex;if(g===0)i=true;return g};else if(s.createRange)B=function(g,h){if(!g.ownerDocument||!h.ownerDocument){if(g==h)i=true;return g.ownerDocument?-1:1}var l=g.ownerDocument.createRange(),m= |
h.ownerDocument.createRange();l.setStart(g,0);l.setEnd(g,0);m.setStart(h,0);m.setEnd(h,0);g=l.compareBoundaryPoints(Range.START_TO_END,m);if(g===0)i=true;return g};(function(){var g=s.createElement("div"),h="script"+(new Date).getTime();g.innerHTML="<a name='"+h+"'/>";var l=s.documentElement;l.insertBefore(g,l.firstChild);if(s.getElementById(h)){n.find.ID=function(m,q,p){if(typeof q.getElementById!=="undefined"&&!p)return(q=q.getElementById(m[1]))?q.id===m[1]||typeof q.getAttributeNode!=="undefined"&& |
q.getAttributeNode("id").nodeValue===m[1]?[q]:w:[]};n.filter.ID=function(m,q){var p=typeof m.getAttributeNode!=="undefined"&&m.getAttributeNode("id");return m.nodeType===1&&p&&p.nodeValue===q}}l.removeChild(g);l=g=null})();(function(){var g=s.createElement("div");g.appendChild(s.createComment(""));if(g.getElementsByTagName("*").length>0)n.find.TAG=function(h,l){l=l.getElementsByTagName(h[1]);if(h[1]==="*"){h=[];for(var m=0;l[m];m++)l[m].nodeType===1&&h.push(l[m]);l=h}return l};g.innerHTML="<a href='#'></a>"; |
if(g.firstChild&&typeof g.firstChild.getAttribute!=="undefined"&&g.firstChild.getAttribute("href")!=="#")n.attrHandle.href=function(h){return h.getAttribute("href",2)};g=null})();s.querySelectorAll&&function(){var g=k,h=s.createElement("div");h.innerHTML="<p class='TEST'></p>";if(!(h.querySelectorAll&&h.querySelectorAll(".TEST").length===0)){k=function(m,q,p,v){q=q||s;if(!v&&q.nodeType===9&&!x(q))try{return z(q.querySelectorAll(m),p)}catch(t){}return g(m,q,p,v)};for(var l in g)k[l]=g[l];h=null}}(); |
(function(){var g=s.createElement("div");g.innerHTML="<div class='test e'></div><div class='test'></div>";if(!(!g.getElementsByClassName||g.getElementsByClassName("e").length===0)){g.lastChild.className="e";if(g.getElementsByClassName("e").length!==1){n.order.splice(1,0,"CLASS");n.find.CLASS=function(h,l,m){if(typeof l.getElementsByClassName!=="undefined"&&!m)return l.getElementsByClassName(h[1])};g=null}}})();var E=s.compareDocumentPosition?function(g,h){return!!(g.compareDocumentPosition(h)&16)}: |
function(g,h){return g!==h&&(g.contains?g.contains(h):true)},x=function(g){return(g=(g?g.ownerDocument||g:0).documentElement)?g.nodeName!=="HTML":false},ga=function(g,h){var l=[],m="",q;for(h=h.nodeType?[h]:h;q=n.match.PSEUDO.exec(g);){m+=q[0];g=g.replace(n.match.PSEUDO,"")}g=n.relative[g]?g+"*":g;q=0;for(var p=h.length;q<p;q++)k(g,h[q],l);return k.filter(m,l)};c.find=k;c.expr=k.selectors;c.expr[":"]=c.expr.filters;c.unique=k.uniqueSort;c.text=a;c.isXMLDoc=x;c.contains=E})();var eb=/Until$/,fb=/^(?:parents|prevUntil|prevAll)/, |
gb=/,/;R=Array.prototype.slice;var Ia=function(a,b,d){if(c.isFunction(b))return c.grep(a,function(e,j){return!!b.call(e,j,e)===d});else if(b.nodeType)return c.grep(a,function(e){return e===b===d});else if(typeof b==="string"){var f=c.grep(a,function(e){return e.nodeType===1});if(Ua.test(b))return c.filter(b,f,!d);else b=c.filter(b,f)}return c.grep(a,function(e){return c.inArray(e,b)>=0===d})};c.fn.extend({find:function(a){for(var b=this.pushStack("","find",a),d=0,f=0,e=this.length;f<e;f++){d=b.length; |
c.find(a,this[f],b);if(f>0)for(var j=d;j<b.length;j++)for(var i=0;i<d;i++)if(b[i]===b[j]){b.splice(j--,1);break}}return b},has:function(a){var b=c(a);return this.filter(function(){for(var d=0,f=b.length;d<f;d++)if(c.contains(this,b[d]))return true})},not:function(a){return this.pushStack(Ia(this,a,false),"not",a)},filter:function(a){return this.pushStack(Ia(this,a,true),"filter",a)},is:function(a){return!!a&&c.filter(a,this).length>0},closest:function(a,b){if(c.isArray(a)){var d=[],f=this[0],e,j= |
{},i;if(f&&a.length){e=0;for(var o=a.length;e<o;e++){i=a[e];j[i]||(j[i]=c.expr.match.POS.test(i)?c(i,b||this.context):i)}for(;f&&f.ownerDocument&&f!==b;){for(i in j){e=j[i];if(e.jquery?e.index(f)>-1:c(f).is(e)){d.push({selector:i,elem:f});delete j[i]}}f=f.parentNode}}return d}var k=c.expr.match.POS.test(a)?c(a,b||this.context):null;return this.map(function(n,r){for(;r&&r.ownerDocument&&r!==b;){if(k?k.index(r)>-1:c(r).is(a))return r;r=r.parentNode}return null})},index:function(a){if(!a||typeof a=== |
"string")return c.inArray(this[0],a?c(a):this.parent().children());return c.inArray(a.jquery?a[0]:a,this)},add:function(a,b){a=typeof a==="string"?c(a,b||this.context):c.makeArray(a);b=c.merge(this.get(),a);return this.pushStack(qa(a[0])||qa(b[0])?b:c.unique(b))},andSelf:function(){return this.add(this.prevObject)}});c.each({parent:function(a){return(a=a.parentNode)&&a.nodeType!==11?a:null},parents:function(a){return c.dir(a,"parentNode")},parentsUntil:function(a,b,d){return c.dir(a,"parentNode", |
d)},next:function(a){return c.nth(a,2,"nextSibling")},prev:function(a){return c.nth(a,2,"previousSibling")},nextAll:function(a){return c.dir(a,"nextSibling")},prevAll:function(a){return c.dir(a,"previousSibling")},nextUntil:function(a,b,d){return c.dir(a,"nextSibling",d)},prevUntil:function(a,b,d){return c.dir(a,"previousSibling",d)},siblings:function(a){return c.sibling(a.parentNode.firstChild,a)},children:function(a){return c.sibling(a.firstChild)},contents:function(a){return c.nodeName(a,"iframe")? |
a.contentDocument||a.contentWindow.document:c.makeArray(a.childNodes)}},function(a,b){c.fn[a]=function(d,f){var e=c.map(this,b,d);eb.test(a)||(f=d);if(f&&typeof f==="string")e=c.filter(f,e);e=this.length>1?c.unique(e):e;if((this.length>1||gb.test(f))&&fb.test(a))e=e.reverse();return this.pushStack(e,a,R.call(arguments).join(","))}});c.extend({filter:function(a,b,d){if(d)a=":not("+a+")";return c.find.matches(a,b)},dir:function(a,b,d){var f=[];for(a=a[b];a&&a.nodeType!==9&&(d===w||a.nodeType!==1||!c(a).is(d));){a.nodeType=== |
1&&f.push(a);a=a[b]}return f},nth:function(a,b,d){b=b||1;for(var f=0;a;a=a[d])if(a.nodeType===1&&++f===b)break;return a},sibling:function(a,b){for(var d=[];a;a=a.nextSibling)a.nodeType===1&&a!==b&&d.push(a);return d}});var Ja=/ jQuery\d+="(?:\d+|null)"/g,V=/^\s+/,Ka=/(<([\w:]+)[^>]*?)\/>/g,hb=/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i,La=/<([\w:]+)/,ib=/<tbody/i,jb=/<|&#?\w+;/,ta=/<script|<object|<embed|<option|<style/i,ua=/checked\s*(?:[^=]|=\s*.checked.)/i,Ma=function(a,b,d){return hb.test(d)? |
a:b+"></"+d+">"},F={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]};F.optgroup=F.option;F.tbody=F.tfoot=F.colgroup=F.caption=F.thead;F.th=F.td;if(!c.support.htmlSerialize)F._default=[1,"div<div>","</div>"];c.fn.extend({text:function(a){if(c.isFunction(a))return this.each(function(b){var d= |
c(this);d.text(a.call(this,b,d.text()))});if(typeof a!=="object"&&a!==w)return this.empty().append((this[0]&&this[0].ownerDocument||s).createTextNode(a));return c.text(this)},wrapAll:function(a){if(c.isFunction(a))return this.each(function(d){c(this).wrapAll(a.call(this,d))});if(this[0]){var b=c(a,this[0].ownerDocument).eq(0).clone(true);this[0].parentNode&&b.insertBefore(this[0]);b.map(function(){for(var d=this;d.firstChild&&d.firstChild.nodeType===1;)d=d.firstChild;return d}).append(this)}return this}, |
wrapInner:function(a){if(c.isFunction(a))return this.each(function(b){c(this).wrapInner(a.call(this,b))});return this.each(function(){var b=c(this),d=b.contents();d.length?d.wrapAll(a):b.append(a)})},wrap:function(a){return this.each(function(){c(this).wrapAll(a)})},unwrap:function(){return this.parent().each(function(){c.nodeName(this,"body")||c(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.appendChild(a)})}, |
prepend:function(){return this.domManip(arguments,true,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b,this)});else if(arguments.length){var a=c(arguments[0]);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,false,function(b){this.parentNode.insertBefore(b, |
this.nextSibling)});else if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,c(arguments[0]).toArray());return a}},remove:function(a,b){for(var d=0,f;(f=this[d])!=null;d++)if(!a||c.filter(a,[f]).length){if(!b&&f.nodeType===1){c.cleanData(f.getElementsByTagName("*"));c.cleanData([f])}f.parentNode&&f.parentNode.removeChild(f)}return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++)for(b.nodeType===1&&c.cleanData(b.getElementsByTagName("*"));b.firstChild;)b.removeChild(b.firstChild); |
return this},clone:function(a){var b=this.map(function(){if(!c.support.noCloneEvent&&!c.isXMLDoc(this)){var d=this.outerHTML,f=this.ownerDocument;if(!d){d=f.createElement("div");d.appendChild(this.cloneNode(true));d=d.innerHTML}return c.clean([d.replace(Ja,"").replace(/=([^="'>\s]+\/)>/g,'="$1">').replace(V,"")],f)[0]}else return this.cloneNode(true)});if(a===true){ra(this,b);ra(this.find("*"),b.find("*"))}return b},html:function(a){if(a===w)return this[0]&&this[0].nodeType===1?this[0].innerHTML.replace(Ja, |
""):null;else if(typeof a==="string"&&!ta.test(a)&&(c.support.leadingWhitespace||!V.test(a))&&!F[(La.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Ka,Ma);try{for(var b=0,d=this.length;b<d;b++)if(this[b].nodeType===1){c.cleanData(this[b].getElementsByTagName("*"));this[b].innerHTML=a}}catch(f){this.empty().append(a)}}else c.isFunction(a)?this.each(function(e){var j=c(this),i=j.html();j.empty().append(function(){return a.call(this,e,i)})}):this.empty().append(a);return this},replaceWith:function(a){if(this[0]&& |
this[0].parentNode){if(c.isFunction(a))return this.each(function(b){var d=c(this),f=d.html();d.replaceWith(a.call(this,b,f))});if(typeof a!=="string")a=c(a).detach();return this.each(function(){var b=this.nextSibling,d=this.parentNode;c(this).remove();b?c(b).before(a):c(d).append(a)})}else return this.pushStack(c(c.isFunction(a)?a():a),"replaceWith",a)},detach:function(a){return this.remove(a,true)},domManip:function(a,b,d){function f(u){return c.nodeName(u,"table")?u.getElementsByTagName("tbody")[0]|| |
u.appendChild(u.ownerDocument.createElement("tbody")):u}var e,j,i=a[0],o=[],k;if(!c.support.checkClone&&arguments.length===3&&typeof i==="string"&&ua.test(i))return this.each(function(){c(this).domManip(a,b,d,true)});if(c.isFunction(i))return this.each(function(u){var z=c(this);a[0]=i.call(this,u,b?z.html():w);z.domManip(a,b,d)});if(this[0]){e=i&&i.parentNode;e=c.support.parentNode&&e&&e.nodeType===11&&e.childNodes.length===this.length?{fragment:e}:sa(a,this,o);k=e.fragment;if(j=k.childNodes.length=== |
1?(k=k.firstChild):k.firstChild){b=b&&c.nodeName(j,"tr");for(var n=0,r=this.length;n<r;n++)d.call(b?f(this[n],j):this[n],n>0||e.cacheable||this.length>1?k.cloneNode(true):k)}o.length&&c.each(o,Qa)}return this}});c.fragments={};c.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){c.fn[a]=function(d){var f=[];d=c(d);var e=this.length===1&&this[0].parentNode;if(e&&e.nodeType===11&&e.childNodes.length===1&&d.length===1){d[b](this[0]); |
return this}else{e=0;for(var j=d.length;e<j;e++){var i=(e>0?this.clone(true):this).get();c.fn[b].apply(c(d[e]),i);f=f.concat(i)}return this.pushStack(f,a,d.selector)}}});c.extend({clean:function(a,b,d,f){b=b||s;if(typeof b.createElement==="undefined")b=b.ownerDocument||b[0]&&b[0].ownerDocument||s;for(var e=[],j=0,i;(i=a[j])!=null;j++){if(typeof i==="number")i+="";if(i){if(typeof i==="string"&&!jb.test(i))i=b.createTextNode(i);else if(typeof i==="string"){i=i.replace(Ka,Ma);var o=(La.exec(i)||["", |
""])[1].toLowerCase(),k=F[o]||F._default,n=k[0],r=b.createElement("div");for(r.innerHTML=k[1]+i+k[2];n--;)r=r.lastChild;if(!c.support.tbody){n=ib.test(i);o=o==="table"&&!n?r.firstChild&&r.firstChild.childNodes:k[1]==="<table>"&&!n?r.childNodes:[];for(k=o.length-1;k>=0;--k)c.nodeName(o[k],"tbody")&&!o[k].childNodes.length&&o[k].parentNode.removeChild(o[k])}!c.support.leadingWhitespace&&V.test(i)&&r.insertBefore(b.createTextNode(V.exec(i)[0]),r.firstChild);i=r.childNodes}if(i.nodeType)e.push(i);else e= |
c.merge(e,i)}}if(d)for(j=0;e[j];j++)if(f&&c.nodeName(e[j],"script")&&(!e[j].type||e[j].type.toLowerCase()==="text/javascript"))f.push(e[j].parentNode?e[j].parentNode.removeChild(e[j]):e[j]);else{e[j].nodeType===1&&e.splice.apply(e,[j+1,0].concat(c.makeArray(e[j].getElementsByTagName("script"))));d.appendChild(e[j])}return e},cleanData:function(a){for(var b,d,f=c.cache,e=c.event.special,j=c.support.deleteExpando,i=0,o;(o=a[i])!=null;i++)if(d=o[c.expando]){b=f[d];if(b.events)for(var k in b.events)e[k]? |
c.event.remove(o,k):Ca(o,k,b.handle);if(j)delete o[c.expando];else o.removeAttribute&&o.removeAttribute(c.expando);delete f[d]}}});var kb=/z-?index|font-?weight|opacity|zoom|line-?height/i,Na=/alpha\([^)]*\)/,Oa=/opacity=([^)]*)/,ha=/float/i,ia=/-([a-z])/ig,lb=/([A-Z])/g,mb=/^-?\d+(?:px)?$/i,nb=/^-?\d/,ob={position:"absolute",visibility:"hidden",display:"block"},pb=["Left","Right"],qb=["Top","Bottom"],rb=s.defaultView&&s.defaultView.getComputedStyle,Pa=c.support.cssFloat?"cssFloat":"styleFloat",ja= |
function(a,b){return b.toUpperCase()};c.fn.css=function(a,b){return X(this,a,b,true,function(d,f,e){if(e===w)return c.curCSS(d,f);if(typeof e==="number"&&!kb.test(f))e+="px";c.style(d,f,e)})};c.extend({style:function(a,b,d){if(!a||a.nodeType===3||a.nodeType===8)return w;if((b==="width"||b==="height")&&parseFloat(d)<0)d=w;var f=a.style||a,e=d!==w;if(!c.support.opacity&&b==="opacity"){if(e){f.zoom=1;b=parseInt(d,10)+""==="NaN"?"":"alpha(opacity="+d*100+")";a=f.filter||c.curCSS(a,"filter")||"";f.filter= |
Na.test(a)?a.replace(Na,b):b}return f.filter&&f.filter.indexOf("opacity=")>=0?parseFloat(Oa.exec(f.filter)[1])/100+"":""}if(ha.test(b))b=Pa;b=b.replace(ia,ja);if(e)f[b]=d;return f[b]},css:function(a,b,d,f){if(b==="width"||b==="height"){var e,j=b==="width"?pb:qb;function i(){e=b==="width"?a.offsetWidth:a.offsetHeight;f!=="border"&&c.each(j,function(){f||(e-=parseFloat(c.curCSS(a,"padding"+this,true))||0);if(f==="margin")e+=parseFloat(c.curCSS(a,"margin"+this,true))||0;else e-=parseFloat(c.curCSS(a, |
"border"+this+"Width",true))||0})}a.offsetWidth!==0?i():c.swap(a,ob,i);return Math.max(0,Math.round(e))}return c.curCSS(a,b,d)},curCSS:function(a,b,d){var f,e=a.style;if(!c.support.opacity&&b==="opacity"&&a.currentStyle){f=Oa.test(a.currentStyle.filter||"")?parseFloat(RegExp.$1)/100+"":"";return f===""?"1":f}if(ha.test(b))b=Pa;if(!d&&e&&e[b])f=e[b];else if(rb){if(ha.test(b))b="float";b=b.replace(lb,"-$1").toLowerCase();e=a.ownerDocument.defaultView;if(!e)return null;if(a=e.getComputedStyle(a,null))f= |
a.getPropertyValue(b);if(b==="opacity"&&f==="")f="1"}else if(a.currentStyle){d=b.replace(ia,ja);f=a.currentStyle[b]||a.currentStyle[d];if(!mb.test(f)&&nb.test(f)){b=e.left;var j=a.runtimeStyle.left;a.runtimeStyle.left=a.currentStyle.left;e.left=d==="fontSize"?"1em":f||0;f=e.pixelLeft+"px";e.left=b;a.runtimeStyle.left=j}}return f},swap:function(a,b,d){var f={};for(var e in b){f[e]=a.style[e];a.style[e]=b[e]}d.call(a);for(e in b)a.style[e]=f[e]}});if(c.expr&&c.expr.filters){c.expr.filters.hidden=function(a){var b= |
a.offsetWidth,d=a.offsetHeight,f=a.nodeName.toLowerCase()==="tr";return b===0&&d===0&&!f?true:b>0&&d>0&&!f?false:c.curCSS(a,"display")==="none"};c.expr.filters.visible=function(a){return!c.expr.filters.hidden(a)}}var sb=J(),tb=/<script(.|\s)*?\/script>/gi,ub=/select|textarea/i,vb=/color|date|datetime|email|hidden|month|number|password|range|search|tel|text|time|url|week/i,N=/=\?(&|$)/,ka=/\?/,wb=/(\?|&)_=.*?(&|$)/,xb=/^(\w+:)?\/\/([^\/?#]+)/,yb=/%20/g,zb=c.fn.load;c.fn.extend({load:function(a,b,d){if(typeof a!== |
"string")return zb.call(this,a);else if(!this.length)return this;var f=a.indexOf(" ");if(f>=0){var e=a.slice(f,a.length);a=a.slice(0,f)}f="GET";if(b)if(c.isFunction(b)){d=b;b=null}else if(typeof b==="object"){b=c.param(b,c.ajaxSettings.traditional);f="POST"}var j=this;c.ajax({url:a,type:f,dataType:"html",data:b,complete:function(i,o){if(o==="success"||o==="notmodified")j.html(e?c("<div />").append(i.responseText.replace(tb,"")).find(e):i.responseText);d&&j.each(d,[i.responseText,o,i])}});return this}, |
serialize:function(){return c.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?c.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||ub.test(this.nodeName)||vb.test(this.type))}).map(function(a,b){a=c(this).val();return a==null?null:c.isArray(a)?c.map(a,function(d){return{name:b.name,value:d}}):{name:b.name,value:a}}).get()}});c.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "), |
function(a,b){c.fn[b]=function(d){return this.bind(b,d)}});c.extend({get:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b=null}return c.ajax({type:"GET",url:a,data:b,success:d,dataType:f})},getScript:function(a,b){return c.get(a,null,b,"script")},getJSON:function(a,b,d){return c.get(a,b,d,"json")},post:function(a,b,d,f){if(c.isFunction(b)){f=f||d;d=b;b={}}return c.ajax({type:"POST",url:a,data:b,success:d,dataType:f})},ajaxSetup:function(a){c.extend(c.ajaxSettings,a)},ajaxSettings:{url:location.href, |
global:true,type:"GET",contentType:"application/x-www-form-urlencoded",processData:true,async:true,xhr:A.XMLHttpRequest&&(A.location.protocol!=="file:"||!A.ActiveXObject)?function(){return new A.XMLHttpRequest}:function(){try{return new A.ActiveXObject("Microsoft.XMLHTTP")}catch(a){}},accepts:{xml:"application/xml, text/xml",html:"text/html",script:"text/javascript, application/javascript",json:"application/json, text/javascript",text:"text/plain",_default:"*/*"}},lastModified:{},etag:{},ajax:function(a){function b(){e.success&& |
e.success.call(k,o,i,x);e.global&&f("ajaxSuccess",[x,e])}function d(){e.complete&&e.complete.call(k,x,i);e.global&&f("ajaxComplete",[x,e]);e.global&&!--c.active&&c.event.trigger("ajaxStop")}function f(q,p){(e.context?c(e.context):c.event).trigger(q,p)}var e=c.extend(true,{},c.ajaxSettings,a),j,i,o,k=a&&a.context||e,n=e.type.toUpperCase();if(e.data&&e.processData&&typeof e.data!=="string")e.data=c.param(e.data,e.traditional);if(e.dataType==="jsonp"){if(n==="GET")N.test(e.url)||(e.url+=(ka.test(e.url)? |
"&":"?")+(e.jsonp||"callback")+"=?");else if(!e.data||!N.test(e.data))e.data=(e.data?e.data+"&":"")+(e.jsonp||"callback")+"=?";e.dataType="json"}if(e.dataType==="json"&&(e.data&&N.test(e.data)||N.test(e.url))){j=e.jsonpCallback||"jsonp"+sb++;if(e.data)e.data=(e.data+"").replace(N,"="+j+"$1");e.url=e.url.replace(N,"="+j+"$1");e.dataType="script";A[j]=A[j]||function(q){o=q;b();d();A[j]=w;try{delete A[j]}catch(p){}z&&z.removeChild(C)}}if(e.dataType==="script"&&e.cache===null)e.cache=false;if(e.cache=== |
false&&n==="GET"){var r=J(),u=e.url.replace(wb,"$1_="+r+"$2");e.url=u+(u===e.url?(ka.test(e.url)?"&":"?")+"_="+r:"")}if(e.data&&n==="GET")e.url+=(ka.test(e.url)?"&":"?")+e.data;e.global&&!c.active++&&c.event.trigger("ajaxStart");r=(r=xb.exec(e.url))&&(r[1]&&r[1]!==location.protocol||r[2]!==location.host);if(e.dataType==="script"&&n==="GET"&&r){var z=s.getElementsByTagName("head")[0]||s.documentElement,C=s.createElement("script");C.src=e.url;if(e.scriptCharset)C.charset=e.scriptCharset;if(!j){var B= |
false;C.onload=C.onreadystatechange=function(){if(!B&&(!this.readyState||this.readyState==="loaded"||this.readyState==="complete")){B=true;b();d();C.onload=C.onreadystatechange=null;z&&C.parentNode&&z.removeChild(C)}}}z.insertBefore(C,z.firstChild);return w}var E=false,x=e.xhr();if(x){e.username?x.open(n,e.url,e.async,e.username,e.password):x.open(n,e.url,e.async);try{if(e.data||a&&a.contentType)x.setRequestHeader("Content-Type",e.contentType);if(e.ifModified){c.lastModified[e.url]&&x.setRequestHeader("If-Modified-Since", |
c.lastModified[e.url]);c.etag[e.url]&&x.setRequestHeader("If-None-Match",c.etag[e.url])}r||x.setRequestHeader("X-Requested-With","XMLHttpRequest");x.setRequestHeader("Accept",e.dataType&&e.accepts[e.dataType]?e.accepts[e.dataType]+", */*":e.accepts._default)}catch(ga){}if(e.beforeSend&&e.beforeSend.call(k,x,e)===false){e.global&&!--c.active&&c.event.trigger("ajaxStop");x.abort();return false}e.global&&f("ajaxSend",[x,e]);var g=x.onreadystatechange=function(q){if(!x||x.readyState===0||q==="abort"){E|| |
d();E=true;if(x)x.onreadystatechange=c.noop}else if(!E&&x&&(x.readyState===4||q==="timeout")){E=true;x.onreadystatechange=c.noop;i=q==="timeout"?"timeout":!c.httpSuccess(x)?"error":e.ifModified&&c.httpNotModified(x,e.url)?"notmodified":"success";var p;if(i==="success")try{o=c.httpData(x,e.dataType,e)}catch(v){i="parsererror";p=v}if(i==="success"||i==="notmodified")j||b();else c.handleError(e,x,i,p);d();q==="timeout"&&x.abort();if(e.async)x=null}};try{var h=x.abort;x.abort=function(){x&&h.call(x); |
g("abort")}}catch(l){}e.async&&e.timeout>0&&setTimeout(function(){x&&!E&&g("timeout")},e.timeout);try{x.send(n==="POST"||n==="PUT"||n==="DELETE"?e.data:null)}catch(m){c.handleError(e,x,null,m);d()}e.async||g();return x}},handleError:function(a,b,d,f){if(a.error)a.error.call(a.context||a,b,d,f);if(a.global)(a.context?c(a.context):c.event).trigger("ajaxError",[b,a,f])},active:0,httpSuccess:function(a){try{return!a.status&&location.protocol==="file:"||a.status>=200&&a.status<300||a.status===304||a.status=== |
1223||a.status===0}catch(b){}return false},httpNotModified:function(a,b){var d=a.getResponseHeader("Last-Modified"),f=a.getResponseHeader("Etag");if(d)c.lastModified[b]=d;if(f)c.etag[b]=f;return a.status===304||a.status===0},httpData:function(a,b,d){var f=a.getResponseHeader("content-type")||"",e=b==="xml"||!b&&f.indexOf("xml")>=0;a=e?a.responseXML:a.responseText;e&&a.documentElement.nodeName==="parsererror"&&c.error("parsererror");if(d&&d.dataFilter)a=d.dataFilter(a,b);if(typeof a==="string")if(b=== |
"json"||!b&&f.indexOf("json")>=0)a=c.parseJSON(a);else if(b==="script"||!b&&f.indexOf("javascript")>=0)c.globalEval(a);return a},param:function(a,b){function d(i,o){if(c.isArray(o))c.each(o,function(k,n){b||/\[\]$/.test(i)?f(i,n):d(i+"["+(typeof n==="object"||c.isArray(n)?k:"")+"]",n)});else!b&&o!=null&&typeof o==="object"?c.each(o,function(k,n){d(i+"["+k+"]",n)}):f(i,o)}function f(i,o){o=c.isFunction(o)?o():o;e[e.length]=encodeURIComponent(i)+"="+encodeURIComponent(o)}var e=[];if(b===w)b=c.ajaxSettings.traditional; |
if(c.isArray(a)||a.jquery)c.each(a,function(){f(this.name,this.value)});else for(var j in a)d(j,a[j]);return e.join("&").replace(yb,"+")}});var la={},Ab=/toggle|show|hide/,Bb=/^([+-]=)?([\d+-.]+)(.*)$/,W,va=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]];c.fn.extend({show:function(a,b){if(a||a===0)return this.animate(K("show",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay"); |
this[a].style.display=d||"";if(c.css(this[a],"display")==="none"){d=this[a].nodeName;var f;if(la[d])f=la[d];else{var e=c("<"+d+" />").appendTo("body");f=e.css("display");if(f==="none")f="block";e.remove();la[d]=f}c.data(this[a],"olddisplay",f)}}a=0;for(b=this.length;a<b;a++)this[a].style.display=c.data(this[a],"olddisplay")||"";return this}},hide:function(a,b){if(a||a===0)return this.animate(K("hide",3),a,b);else{a=0;for(b=this.length;a<b;a++){var d=c.data(this[a],"olddisplay");!d&&d!=="none"&&c.data(this[a], |
"olddisplay",c.css(this[a],"display"))}a=0;for(b=this.length;a<b;a++)this[a].style.display="none";return this}},_toggle:c.fn.toggle,toggle:function(a,b){var d=typeof a==="boolean";if(c.isFunction(a)&&c.isFunction(b))this._toggle.apply(this,arguments);else a==null||d?this.each(function(){var f=d?a:c(this).is(":hidden");c(this)[f?"show":"hide"]()}):this.animate(K("toggle",3),a,b);return this},fadeTo:function(a,b,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,d)}, |
animate:function(a,b,d,f){var e=c.speed(b,d,f);if(c.isEmptyObject(a))return this.each(e.complete);return this[e.queue===false?"each":"queue"](function(){var j=c.extend({},e),i,o=this.nodeType===1&&c(this).is(":hidden"),k=this;for(i in a){var n=i.replace(ia,ja);if(i!==n){a[n]=a[i];delete a[i];i=n}if(a[i]==="hide"&&o||a[i]==="show"&&!o)return j.complete.call(this);if((i==="height"||i==="width")&&this.style){j.display=c.css(this,"display");j.overflow=this.style.overflow}if(c.isArray(a[i])){(j.specialEasing= |
j.specialEasing||{})[i]=a[i][1];a[i]=a[i][0]}}if(j.overflow!=null)this.style.overflow="hidden";j.curAnim=c.extend({},a);c.each(a,function(r,u){var z=new c.fx(k,j,r);if(Ab.test(u))z[u==="toggle"?o?"show":"hide":u](a);else{var C=Bb.exec(u),B=z.cur(true)||0;if(C){u=parseFloat(C[2]);var E=C[3]||"px";if(E!=="px"){k.style[r]=(u||1)+E;B=(u||1)/z.cur(true)*B;k.style[r]=B+E}if(C[1])u=(C[1]==="-="?-1:1)*u+B;z.custom(B,u,E)}else z.custom(B,u,"")}});return true})},stop:function(a,b){var d=c.timers;a&&this.queue([]); |
this.each(function(){for(var f=d.length-1;f>=0;f--)if(d[f].elem===this){b&&d[f](true);d.splice(f,1)}});b||this.dequeue();return this}});c.each({slideDown:K("show",1),slideUp:K("hide",1),slideToggle:K("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"}},function(a,b){c.fn[a]=function(d,f){return this.animate(b,d,f)}});c.extend({speed:function(a,b,d){var f=a&&typeof a==="object"?a:{complete:d||!d&&b||c.isFunction(a)&&a,duration:a,easing:d&&b||b&&!c.isFunction(b)&&b};f.duration=c.fx.off?0:typeof f.duration=== |
"number"?f.duration:c.fx.speeds[f.duration]||c.fx.speeds._default;f.old=f.complete;f.complete=function(){f.queue!==false&&c(this).dequeue();c.isFunction(f.old)&&f.old.call(this)};return f},easing:{linear:function(a,b,d,f){return d+f*a},swing:function(a,b,d,f){return(-Math.cos(a*Math.PI)/2+0.5)*f+d}},timers:[],fx:function(a,b,d){this.options=b;this.elem=a;this.prop=d;if(!b.orig)b.orig={}}});c.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this);(c.fx.step[this.prop]|| |
c.fx.step._default)(this);if((this.prop==="height"||this.prop==="width")&&this.elem.style)this.elem.style.display="block"},cur:function(a){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];return(a=parseFloat(c.css(this.elem,this.prop,a)))&&a>-10000?a:parseFloat(c.curCSS(this.elem,this.prop))||0},custom:function(a,b,d){function f(j){return e.step(j)}this.startTime=J();this.start=a;this.end=b;this.unit=d||this.unit||"px";this.now=this.start; |
this.pos=this.state=0;var e=this;f.elem=this.elem;if(f()&&c.timers.push(f)&&!W)W=setInterval(c.fx.tick,13)},show:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.show=true;this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur());c(this.elem).show()},hide:function(){this.options.orig[this.prop]=c.style(this.elem,this.prop);this.options.hide=true;this.custom(this.cur(),0)},step:function(a){var b=J(),d=true;if(a||b>=this.options.duration+this.startTime){this.now= |
this.end;this.pos=this.state=1;this.update();this.options.curAnim[this.prop]=true;for(var f in this.options.curAnim)if(this.options.curAnim[f]!==true)d=false;if(d){if(this.options.display!=null){this.elem.style.overflow=this.options.overflow;a=c.data(this.elem,"olddisplay");this.elem.style.display=a?a:this.options.display;if(c.css(this.elem,"display")==="none")this.elem.style.display="block"}this.options.hide&&c(this.elem).hide();if(this.options.hide||this.options.show)for(var e in this.options.curAnim)c.style(this.elem, |
e,this.options.orig[e]);this.options.complete.call(this.elem)}return false}else{e=b-this.startTime;this.state=e/this.options.duration;a=this.options.easing||(c.easing.swing?"swing":"linear");this.pos=c.easing[this.options.specialEasing&&this.options.specialEasing[this.prop]||a](this.state,e,0,1,this.options.duration);this.now=this.start+(this.end-this.start)*this.pos;this.update()}return true}};c.extend(c.fx,{tick:function(){for(var a=c.timers,b=0;b<a.length;b++)a[b]()||a.splice(b--,1);a.length|| |
c.fx.stop()},stop:function(){clearInterval(W);W=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){c.style(a.elem,"opacity",a.now)},_default:function(a){if(a.elem.style&&a.elem.style[a.prop]!=null)a.elem.style[a.prop]=(a.prop==="width"||a.prop==="height"?Math.max(0,a.now):a.now)+a.unit;else a.elem[a.prop]=a.now}}});if(c.expr&&c.expr.filters)c.expr.filters.animated=function(a){return c.grep(c.timers,function(b){return a===b.elem}).length};c.fn.offset="getBoundingClientRect"in s.documentElement? |
function(a){var b=this[0];if(a)return this.each(function(e){c.offset.setOffset(this,a,e)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);var d=b.getBoundingClientRect(),f=b.ownerDocument;b=f.body;f=f.documentElement;return{top:d.top+(self.pageYOffset||c.support.boxModel&&f.scrollTop||b.scrollTop)-(f.clientTop||b.clientTop||0),left:d.left+(self.pageXOffset||c.support.boxModel&&f.scrollLeft||b.scrollLeft)-(f.clientLeft||b.clientLeft||0)}}:function(a){var b= |
this[0];if(a)return this.each(function(r){c.offset.setOffset(this,a,r)});if(!b||!b.ownerDocument)return null;if(b===b.ownerDocument.body)return c.offset.bodyOffset(b);c.offset.initialize();var d=b.offsetParent,f=b,e=b.ownerDocument,j,i=e.documentElement,o=e.body;f=(e=e.defaultView)?e.getComputedStyle(b,null):b.currentStyle;for(var k=b.offsetTop,n=b.offsetLeft;(b=b.parentNode)&&b!==o&&b!==i;){if(c.offset.supportsFixedPosition&&f.position==="fixed")break;j=e?e.getComputedStyle(b,null):b.currentStyle; |
k-=b.scrollTop;n-=b.scrollLeft;if(b===d){k+=b.offsetTop;n+=b.offsetLeft;if(c.offset.doesNotAddBorder&&!(c.offset.doesAddBorderForTableAndCells&&/^t(able|d|h)$/i.test(b.nodeName))){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=d;d=b.offsetParent}if(c.offset.subtractsBorderForOverflowNotVisible&&j.overflow!=="visible"){k+=parseFloat(j.borderTopWidth)||0;n+=parseFloat(j.borderLeftWidth)||0}f=j}if(f.position==="relative"||f.position==="static"){k+=o.offsetTop;n+=o.offsetLeft}if(c.offset.supportsFixedPosition&& |
f.position==="fixed"){k+=Math.max(i.scrollTop,o.scrollTop);n+=Math.max(i.scrollLeft,o.scrollLeft)}return{top:k,left:n}};c.offset={initialize:function(){var a=s.body,b=s.createElement("div"),d,f,e,j=parseFloat(c.curCSS(a,"marginTop",true))||0;c.extend(b.style,{position:"absolute",top:0,left:0,margin:0,border:0,width:"1px",height:"1px",visibility:"hidden"});b.innerHTML="<div style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;'><div></div></div><table style='position:absolute;top:0;left:0;margin:0;border:5px solid #000;padding:0;width:1px;height:1px;' cellpadding='0' cellspacing='0'><tr><td></td></tr></table>"; |
a.insertBefore(b,a.firstChild);d=b.firstChild;f=d.firstChild;e=d.nextSibling.firstChild.firstChild;this.doesNotAddBorder=f.offsetTop!==5;this.doesAddBorderForTableAndCells=e.offsetTop===5;f.style.position="fixed";f.style.top="20px";this.supportsFixedPosition=f.offsetTop===20||f.offsetTop===15;f.style.position=f.style.top="";d.style.overflow="hidden";d.style.position="relative";this.subtractsBorderForOverflowNotVisible=f.offsetTop===-5;this.doesNotIncludeMarginInBodyOffset=a.offsetTop!==j;a.removeChild(b); |
c.offset.initialize=c.noop},bodyOffset:function(a){var b=a.offsetTop,d=a.offsetLeft;c.offset.initialize();if(c.offset.doesNotIncludeMarginInBodyOffset){b+=parseFloat(c.curCSS(a,"marginTop",true))||0;d+=parseFloat(c.curCSS(a,"marginLeft",true))||0}return{top:b,left:d}},setOffset:function(a,b,d){if(/static/.test(c.curCSS(a,"position")))a.style.position="relative";var f=c(a),e=f.offset(),j=parseInt(c.curCSS(a,"top",true),10)||0,i=parseInt(c.curCSS(a,"left",true),10)||0;if(c.isFunction(b))b=b.call(a, |
d,e);d={top:b.top-e.top+j,left:b.left-e.left+i};"using"in b?b.using.call(a,d):f.css(d)}};c.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),d=this.offset(),f=/^body|html$/i.test(b[0].nodeName)?{top:0,left:0}:b.offset();d.top-=parseFloat(c.curCSS(a,"marginTop",true))||0;d.left-=parseFloat(c.curCSS(a,"marginLeft",true))||0;f.top+=parseFloat(c.curCSS(b[0],"borderTopWidth",true))||0;f.left+=parseFloat(c.curCSS(b[0],"borderLeftWidth",true))||0;return{top:d.top- |
f.top,left:d.left-f.left}},offsetParent:function(){return this.map(function(){for(var a=this.offsetParent||s.body;a&&!/^body|html$/i.test(a.nodeName)&&c.css(a,"position")==="static";)a=a.offsetParent;return a})}});c.each(["Left","Top"],function(a,b){var d="scroll"+b;c.fn[d]=function(f){var e=this[0],j;if(!e)return null;if(f!==w)return this.each(function(){if(j=wa(this))j.scrollTo(!a?f:c(j).scrollLeft(),a?f:c(j).scrollTop());else this[d]=f});else return(j=wa(e))?"pageXOffset"in j?j[a?"pageYOffset": |
"pageXOffset"]:c.support.boxModel&&j.document.documentElement[d]||j.document.body[d]:e[d]}});c.each(["Height","Width"],function(a,b){var d=b.toLowerCase();c.fn["inner"+b]=function(){return this[0]?c.css(this[0],d,false,"padding"):null};c.fn["outer"+b]=function(f){return this[0]?c.css(this[0],d,false,f?"margin":"border"):null};c.fn[d]=function(f){var e=this[0];if(!e)return f==null?null:this;if(c.isFunction(f))return this.each(function(j){var i=c(this);i[d](f.call(this,j,i[d]()))});return"scrollTo"in |
e&&e.document?e.document.compatMode==="CSS1Compat"&&e.document.documentElement["client"+b]||e.document.body["client"+b]:e.nodeType===9?Math.max(e.documentElement["client"+b],e.body["scroll"+b],e.documentElement["scroll"+b],e.body["offset"+b],e.documentElement["offset"+b]):f===w?c.css(e,d):this.css(d,typeof f==="string"?f:f+"px")}});A.jQuery=A.$=c})(window); |
/impl/src/web/layout/scripts.jsp |
---|
13,6 → 13,12 |
<script type="text/javascript" src="<%=request.getContextPath()%>/js/functions.js"></script> |
<script type="text/javascript" src="<%=request.getContextPath()%>/js/ajax.js"></script> |
<script type="text/javascript" src="<%=request.getContextPath()%>/js/compactedPopup.js"></script> |
<link type="text/css" rel="stylesheet" href="<%=request.getContextPath()%>/js/jquery/style.css"/> |
<script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery-latest.js"></script> |
<script type="text/javascript" src="<%=request.getContextPath()%>/js/jquery.tablesorter.js"></script> |
<% |
String link = (String) request.getAttribute(TopImageFilter.TOP_CSS); |
if (link != null) |
26,5 → 32,11 |
<script type="text/javascript" language="JavaScript"> |
var cal = new CalendarPopup(); |
//TABLE SORTER |
$(document).ready(function() |
{ |
$("#myTable").tablesorter(); |
} |
); |
</script> |
/impl/src/web/public/profile/profileHome.jsp |
---|
130,6 → 130,30 |
<% |
} |
%> |
<% |
if (ProfileForm.getUserView().getUser() instanceof Teacher) |
{ |
%> |
<tr> |
<th> |
<bean:message key="courseunit.responsable"/> |
</th> |
<td> |
<logic:present name="ProfileForm" property="userView.responsableCourseUnits"> |
<ul> |
<logic:iterate id="courseUnit" name="ProfileForm" property="userView.responsableCourseUnits"> |
<li> |
(<bean:write name="courseUnit" property="importYear"/>) <html:link action="${user}/startLoadCourseUnit${fromAction}?courseUnitView.id=${courseUnit.id}"><bean:write name="courseUnit" property="name"/> (<bean:write name="courseUnit" property="code"/>)</html:link> |
</li> |
</logic:iterate> |
</ul> |
</logic:present> |
</td> |
</tr> |
<% |
} |
%> |
</table> |
<% |
if(ProfileForm.getUserView().getCreatorRecords() != null && ProfileForm.getUserView().getCreatorRecords().size() > 0) |
/impl/src/web/public/courses/courseMenu.jsp |
---|
24,6 → 24,7 |
<li><html:link action="/startLoadMenuCourse?type=${CourseView.degree}&courseView.id=${CourseView.id}&content=casos"><bean:message key="course.menu.casos"/></html:link></li> |
<li><html:link action="/startLoadMenuCourse?type=${CourseView.degree}&courseView.id=${CourseView.id}&content=parceiros"><bean:message key="course.menu.parceiros"/></html:link></li> |
<li><html:link action="/startLoadMenuCourse?type=${CourseView.degree}&courseView.id=${CourseView.id}&content=faq"><bean:message key="course.menu.faq"/></html:link></li> |
<li><html:link action="/startLoadMenuCourse?type=${CourseView.degree}&courseView.id=${CourseView.id}&content=publicacoes"><bean:message key="course.menu.publicacoes"/></html:link></li> |
</ul> |
</div> |
</div> |
/impl/src/web/user/courseunits/courseunit.jsp |
---|
144,9 → 144,9 |
</logic:present> |
<logic:present name="CourseUnitView" property="programStreamId"> |
<baco:isAdmin> |
<a href="<%=request.getContextPath()%>/admin/data.jsp?id=${CourseUnitView.programStreamId}"">Ver todas as versoes do programa</a> |
</baco:isAdmin> |
<baco:hasRole role="teacher,admin,all"> |
<a href="<%=request.getContextPath()%>/admin/data.jsp?id=${CourseUnitView.programStreamId}">Ver todas as versoes do programa</a> |
</baco:hasRole> |
</logic:present> |
</p> |
/impl/src/web/user/courseunits/students.jsp |
---|
33,13 → 33,26 |
<div id="contentIntranet"> |
<div id="contentPane"> |
<p><bean:message key="courseunit.students.count"/>: ${CourseUnitView.studentsSize}</p> |
<table class="dataTable"> |
<table id="myTable" class="tablesorter dataTable"> |
<thead> |
<tr> |
<th><html:link action="${user}/startLoadCourseUnitStudents${fromAction}?courseUnitView.id=${CourseUnitView.id}&order=byNumber"><bean:message key="number"/></html:link></th> |
<%/*<th><html:link action="${user}/startLoadCourseUnitStudents${fromAction}?courseUnitView.id=${CourseUnitView.id}&order=byNumber"><bean:message key="number"/></html:link></th> |
<th><html:link action="${user}/startLoadCourseUnitStudents${fromAction}?courseUnitView.id=${CourseUnitView.id}&order=byName"><bean:message key="name"/></html:link></th> |
*/%> |
<th><bean:message key="number"/></th> |
<th><bean:message key="name"/></th> |
<th><bean:message key="user"/></th> |
<th><bean:message key="email"/></th> |
<baco:hasRole role="teacher"> |
<th><bean:message key="phone.number"/></th> |
</baco:hasRole> |
</tr> |
</thead> |
<tbody> |
<logic:iterate id="student" name="students" type="pt.estgp.estgweb.domain.views.UserView"> |
<tr> |
<td> |
54,8 → 67,12 |
<td> |
${student.safeEmail} |
</td> |
<baco:hasRole role="teacher"> |
<td>${student.phonenumber} </td> |
</baco:hasRole> |
</tr> |
</logic:iterate> |
</tbody> |
</table> |
</div> |
</div> |
/common/mail/mail.jar |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |