\ProvidesPackage{analogclock} [2007/10/30 v1.0 analog clock accessory]

%
%  Luis Randez  randez@unizar.es
%  Juan I. Montijano  monti@unizar.es
%
% This program can be redistributed and/or modified under the terms
% of the GNU Public License, version 2.


\RequirePackage{hyperref}
\RequirePackage{xcolor}[2004/05/09]
\RequirePackage{xkeyval}
\RequirePackage{tikz}

\ifdefined\clock@interval\else\def\clock@interval{15}\fi
\DeclareOptionX{timeinterval}{\renewcommand{\clock@interval}{#1}}
\ProcessOptionsX

\newdimen\clock@fontsize
\def\clock@setfontcolor{\clock@temp{.}\let\clock@fontcolor=\clock@tempa}
%\def\clock@setbgcolor{\clock@temp{.}\let\clock@fontcolor=\clock@tempa}


\def\clock@temp#1{\def\clock@tempa##1,##2,##3\@nil{##1 ##2 ##3}%
\extractcolorspec{#1}\clock@tempb
   \expandafter\convertcolorspec\clock@tempb{rgb}\clock@tempb
   \edef\clock@tempa{\expandafter\clock@tempa\clock@tempb\@nil}}

%\clock@temp{black!10}\let\clock@bgcolor=\clock@tempa
\def\clock@bgcolor{black!30}


\def\kk{\mbox{\TextField[name=rolex0, width=2\clock@fontsize, height=2\clock@fontsize, align = 1, charsize =1.1\clock@fontsize, color =\clock@bgcolor, readonly=true, value={}]{}}}

%
\def\initclock{
\vbox to 0pt{
\begin{Form}
$$
\TextField[format=\startclock,name=resultado2, width=0truecm, height=0truecm, bordercolor= 1 1 1, backgroundcolor= 1 1 1,value={}]{}
$$
\end{Form}%
\TextField[name=rolex0, hidden=true, width=0pt, height=0pt,charsize=0pt]{}%
\TextField[name=rolex1, hidden=true, width=0pt, height=0pt,charsize=0pt]{}%
\TextField[name=rolex2, hidden=true, width=0pt, height=0pt,charsize=0pt]{}%
\TextField[name=rolex3, hidden=true, width=0pt, height=0pt,charsize=0pt]{}%
\TextField[name=rolex4, hidden=true, width=0pt, height=0pt,charsize=0pt]{}%
\TextField[name=rolex5, hidden=true, width=0pt, height=0pt,charsize=0pt]{}%
}\vskip -\baselineskip%
}
%
\newbox\sizebox
\newdimen\uu
%
\def\analogclock{\clock@setfontcolor\clock@setfontsize\clock@setfontnumber%
\uu=\f@size pt\raisebox{0.41\clock@fontsize}{\raisebox{-0.41\uu}{\mbox{%
\vrule width 0pt height 2pt%
\kern0.31\clock@fontsize\kern-0.31\uu%
\begin{tikzpicture}[scale=\clock@fontnumber]%
\useasboundingbox (-0.57 pt,-0.72 pt) rectangle (0.89 pt,1.05 pt);
%\clockskin
\faceframe%
\facebg%
\face%
\node at (0 pt,-0.0013 pt) {\colocafield{rolex1}};
\node at (0 pt,-0.0013 pt) {\colocafield{rolex2}};
\end{tikzpicture}%
\vrule width 0pt height 2pt%
}}}%
}%

\newcount\@face
\def\faceclock#1#2{%
\@face=#1\def\@col{#2}%
\ifx\@col\@empty\def\facebg{}\else\fi%
\ifnum\@face<0\def\faceframe{}\else\fi%
\ifnum\@face=4\def\face{}\else\fi%           Esfera sin simbolos
\ifnum\@face=-4\def\face{}\else\fi%           Esfera sin simbolos
\ifnum\@face=2\def\face@type{rolex3}\fi%  Esfera  con muchos simbolos
\ifnum\@face=-1\def\face@type{rolex3}\fi%  Esfera  con muchos simbolos
\ifnum\@face=2\def\face@type{rolex4}\fi%  Esfera  con puntos
\ifnum\@face=-2\def\face@type{rolex4}\fi%  Esfera  con puntos
\ifnum\@face=3\def\face@type{rolex5}\fi%  Esfera  con cuatro rayas
\ifnum\@face=-3\def\face@type{rolex5}\fi%  Esfera  con cuatro rayas
\def\clock@bgcolor{#2}%
}
%

\def\colocafield#1{%
\setbox\sizebox=\hbox{\mbox{\unskip\TextField[name=#1, width=2\clock@fontsize, height=2\clock@fontsize, align = 1, charsize =\clock@fontsize, color =\clock@fontcolor, readonly=true, value={}]{}}}%
\kern-\wd\sizebox\kern 2\clock@fontsize%
\box\sizebox%
}
%
\def\clock@setfontsize{\clock@fontsize=\f@size pt\clock@fontsize=\fac@font\clock@fontsize}
\def\fac@font{1.0}
\def\clocksizefactor#1{\def\fac@font{#1}}


\def\facebg{\fill[fill=\clock@bgcolor] (0,0) circle (0.75 pt);}
\def\faceframe{\draw[color=., thick] (0.00,0.00) circle (0.77 pt);}
\def\face{\node at (0 pt,-0.0013 pt) {\colocafield{\face@type}};\font\peque=cmr5 at 0.12\clock@fontsize \draw (0pt,-0.34 pt)  node {\peque M\&R};}
\def\face@type{rolex3}
\def\clockskin{%
\filldraw[rotate=22, fill=black!10!white] (0.2 pt,0.83 pt) arc (0:180:0.2 pt) -- cycle;
\filldraw[rotate=-22, fill=black!10!white] (0.2 pt,0.83 pt) arc (0:180:0.2 pt) -- cycle;
\draw[very thick] (0 pt, 0.75 pt) -- (0pt,0.92pt)  circle (0.05pt);
\draw[very thick] (-65:0.75 pt) -- (-65:0.90 pt);
\draw[very thick] (-115:0.75 pt) -- (-115:0.90 pt);
}
%\def\clockskin{}

\def\@p{p}
\def\extract@number#1{\edef\clock@tempb{#1 pp}\def\clock@tempa##1##2\@nil{\if##1\@p\else ##1\clock@tempa##2\@nil\fi}
\edef\clock@fontnumber{\expandafter\clock@tempa\clock@tempb\@nil}}
\def\clock@setfontnumber{\extract@number{\the\clock@fontsize}}



%
\def\startclock{%
%
fecha1 = reloj();
run = app.setInterval("reloj();",\clock@interval000);
%
%
function reloj()
{
%
var fObj     = new Date();
var horas    = fObj.getHours();
var minutos  = fObj.getMinutes(); minutos1 = minutos+0.0;
%
horaa=horas+0.0;
if (horaa >= 12) {horaa=horaa-12.0; };
%
%
%this.getField("rolex0").textColor=color.red;
this.getField("rolex0").strokeColor=color.transparent;
this.getField("rolex0").fillColor=color.transparent;
%this.getField("rolex1").textColor=color.red;
this.getField("rolex1").strokeColor=color.transparent;
this.getField("rolex1").fillColor=color.transparent;
%this.getField("rolex2").textColor=color.red;
this.getField("rolex2").strokeColor=color.transparent;
this.getField("rolex2").fillColor=color.transparent;
this.getField("rolex3").strokeColor=color.transparent;
this.getField("rolex3").fillColor=color.transparent;
this.getField("rolex4").strokeColor=color.transparent;
this.getField("rolex4").fillColor=color.transparent;
this.getField("rolex5").strokeColor=color.transparent;
this.getField("rolex5").fillColor=color.transparent;
this.getField("rolex0").textFont="clock";
this.getField("rolex1").textFont="clock";
this.getField("rolex2").textFont="clock";
this.getField("rolex3").textFont="clock";
this.getField("rolex4").textFont="clock";
this.getField("rolex5").textFont="clock";
var str = new String();
numero=Math.floor(192.0 + horaa*5.0 + minutos1/12.0);
str =  String.fromCharCode(48);
this.getField("rolex0").value=str;
str =  String.fromCharCode(numero);
this.getField("rolex1").value=str;
str =  String.fromCharCode(64+minutos1);
this.getField("rolex2").value=str;
str =  String.fromCharCode(49);
this.getField("rolex3").value=str;
str =  String.fromCharCode(50);
this.getField("rolex4").value=str;
str =  String.fromCharCode(51);
this.getField("rolex5").value=str;
}
%
}
%