You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
453 lines
14 KiB
453 lines
14 KiB
4 months ago
|
<?php
|
||
|
/*********************************************************************************
|
||
|
** The contents of this file are subject to the vtiger CRM Public License Version 1.0
|
||
|
* ("License"); You may not use this file except in compliance with the License
|
||
|
* The Original Code is: vtiger CRM Open Source
|
||
|
* The Initial Developer of the Original Code is vtiger.
|
||
|
* Portions created by vtiger are Copyright (C) vtiger.
|
||
|
* All Rights Reserved.
|
||
|
*
|
||
|
********************************************************************************/
|
||
|
|
||
|
function get_world_clock($image_path) {
|
||
|
$the_clock = <<<EOQ
|
||
|
|
||
|
<style type="text/css">
|
||
|
<!--
|
||
|
.citystyle{
|
||
|
position:absolute;top:0px;left:0px;
|
||
|
}
|
||
|
#theClockLayer{
|
||
|
position:relative;height:180px;left:20px;text-align:center;
|
||
|
}
|
||
|
.handsanddotsstyle{
|
||
|
margin-top:10px;position:absolute;top:0px;left:0px;width:2px;height:2px;font-size:2px;background-color:#000000;
|
||
|
}
|
||
|
.facestyle{
|
||
|
margin-top:10px;position:absolute;top:0px;left:0px;width:15px;height:15px;text-align:center;font-family:arial,sans-serif;font-size:10px;color:#000000;
|
||
|
}
|
||
|
.datestyle{
|
||
|
margin-top:20px;position:absolute;top:0px;left:0px;width:100px;text-align:center;font-family:arial,sans-serif;font-size:10px;color:#000000;
|
||
|
}
|
||
|
.ampmstyle{
|
||
|
margin-top:23px;position:absolute;top:0px;left:0px;width:20px;text-align:center;font-family:arial,sans-serif;font-size:10px;color:#000000;
|
||
|
}
|
||
|
-->
|
||
|
</style>
|
||
|
<div id="theClockLayer">
|
||
|
<div id="theCities" class="citystyle">
|
||
|
<form action="" name="frmtimezone">
|
||
|
<select id="city" name="city" onchange="lcl(this.selectedIndex,this.options[0].selected)" class="select" style="width:140;position:relative;left:-13px">
|
||
|
<option value="0" selected>Local time</option>
|
||
|
<OPTION VALUE="4.30">Afghanistan</OPTION>
|
||
|
<OPTION VALUE="1">Algeria</OPTION>
|
||
|
<OPTION VALUE="-3">Argentina</OPTION>
|
||
|
<OPTION VALUE="9.30">Australia - Adelaide</OPTION>
|
||
|
<OPTION VALUE="8">Australia - Perth</OPTION>
|
||
|
<OPTION VALUE="10">Australia - Sydney</OPTION>
|
||
|
<OPTION VALUE="1">Austria</OPTION>
|
||
|
<OPTION VALUE="3">Bahrain</OPTION>
|
||
|
<OPTION VALUE="6">Bangladesh</OPTION>
|
||
|
<OPTION VALUE="1">Belgium</OPTION>
|
||
|
<OPTION VALUE="-4">Bolivia</OPTION>
|
||
|
<OPTION VALUE="-5">Brazil - Andes</OPTION>
|
||
|
<OPTION VALUE="-3">Brazil - East</OPTION>
|
||
|
<OPTION VALUE="-4">Brazil - West</OPTION>
|
||
|
<OPTION VALUE="2">Bulgaria</OPTION>
|
||
|
<OPTION VALUE="6.30">Burma (Myanmar)</OPTION>
|
||
|
<OPTION VALUE="-5">Chile</OPTION>
|
||
|
<OPTION VALUE="-7">Canada - Calgary</OPTION>
|
||
|
<OPTION VALUE="-3.30">Canada - Newfoundland</OPTION>
|
||
|
<OPTION VALUE="-4">Canada - Nova Scotia</OPTION>
|
||
|
<OPTION VALUE="-5">Canada - Toronto</OPTION>
|
||
|
<OPTION VALUE="-8">Canada - Vancouver</OPTION>
|
||
|
<OPTION VALUE="-6">Canada - Winnipeg</OPTION>
|
||
|
<OPTION VALUE="8">China - Mainland</OPTION>
|
||
|
<OPTION VALUE="8">China - Taiwan</OPTION>
|
||
|
<OPTION VALUE="-5">Colombia</OPTION>
|
||
|
<OPTION VALUE="-5">Cuba</OPTION>
|
||
|
<OPTION VALUE="1">Denmark</OPTION>
|
||
|
<OPTION VALUE="-5">Ecuador</OPTION>
|
||
|
<OPTION VALUE="2">Egypt</OPTION>
|
||
|
<OPTION VALUE="12">Fiji</OPTION>
|
||
|
<OPTION VALUE="2">Finland</OPTION>
|
||
|
<OPTION VALUE="1">France</OPTION>
|
||
|
<OPTION VALUE="1">Germany</OPTION>
|
||
|
<OPTION VALUE="0">Ghana</OPTION>
|
||
|
<OPTION VALUE="2">Greece</OPTION>
|
||
|
<OPTION VALUE="-3">Greenland</OPTION>
|
||
|
<OPTION VALUE="1">Hungary</OPTION>
|
||
|
<OPTION VALUE="5.30">India</OPTION>
|
||
|
<OPTION VALUE="8">Indonesia - Bali, Borneo</OPTION>
|
||
|
<OPTION VALUE="9">Indonesia - Irian Jaya</OPTION>
|
||
|
<OPTION VALUE="7">Indonesia - Sumatra, Java</OPTION>
|
||
|
<OPTION VALUE="3.30">Iran</OPTION>
|
||
|
<OPTION VALUE="3">Iraq</OPTION>
|
||
|
<OPTION VALUE="2">Israel</OPTION>
|
||
|
<OPTION VALUE="1">Italy</OPTION>
|
||
|
<OPTION VALUE="-5">Jamaica</OPTION>
|
||
|
<OPTION VALUE="9">Japan</OPTION>
|
||
|
<OPTION VALUE="3">Kenya</OPTION>
|
||
|
<OPTION VALUE="9">Korea (North & South)</OPTION>
|
||
|
<OPTION VALUE="3">Kuwait</OPTION>
|
||
|
<OPTION VALUE="1">Libya</OPTION>
|
||
|
<OPTION VALUE="8">Malaysia</OPTION>
|
||
|
<OPTION VALUE="5">Maldives</OPTION>
|
||
|
<OPTION VALUE="1">Mali</OPTION>
|
||
|
<OPTION VALUE="4">Mauritius</OPTION>
|
||
|
<OPTION VALUE="-6">Mexico</OPTION>
|
||
|
<OPTION VALUE="0">Morocco</OPTION>
|
||
|
<OPTION VALUE="5.45">Nepal</OPTION>
|
||
|
<OPTION VALUE="1">Netherlands</OPTION>
|
||
|
<OPTION VALUE="12">New Zealand</OPTION>
|
||
|
<OPTION VALUE="1">Nigeria</OPTION>
|
||
|
<OPTION VALUE="1">Norway</OPTION>
|
||
|
<OPTION VALUE="4">Oman</OPTION>
|
||
|
<OPTION VALUE="5">Pakistan</OPTION>
|
||
|
<OPTION VALUE="-5">Peru</OPTION>
|
||
|
<OPTION VALUE="8">Philippines</OPTION>
|
||
|
<OPTION VALUE="1">Poland</OPTION>
|
||
|
<OPTION VALUE="1">Portugal</OPTION>
|
||
|
<OPTION VALUE="3">Qatar</OPTION>
|
||
|
<OPTION VALUE="2">Romania</OPTION>
|
||
|
<OPTION VALUE="11">Russia - Kamchatka</OPTION>
|
||
|
<OPTION VALUE="3">Russia - Moscow</OPTION>
|
||
|
<OPTION VALUE="9">Russia - Vladivostok</OPTION>
|
||
|
<OPTION VALUE="4">Seychelles</OPTION>
|
||
|
<OPTION VALUE="3">Saudi Arabia</OPTION>
|
||
|
<OPTION VALUE="8">Singapore</OPTION>
|
||
|
<OPTION VALUE="2">South Africa</OPTION>
|
||
|
<OPTION VALUE="1">Spain</OPTION>
|
||
|
<OPTION VALUE="3">Syria</OPTION>
|
||
|
<OPTION VALUE="5.30">Sri Lanka</OPTION>
|
||
|
<OPTION VALUE="1">Sweden</OPTION>
|
||
|
<OPTION VALUE="1">Switzerland</OPTION>
|
||
|
<OPTION VALUE="7">Thailand</OPTION>
|
||
|
<OPTION VALUE="12">Tonga</OPTION>
|
||
|
<OPTION VALUE="2">Turkey</OPTION>
|
||
|
<OPTION VALUE="3">Ukraine</OPTION>
|
||
|
<OPTION VALUE="5">Uzbekistan</OPTION>
|
||
|
<OPTION VALUE="7">Vietnam</OPTION>
|
||
|
<OPTION VALUE="4">UAE</OPTION>
|
||
|
<OPTION VALUE="0">UK</OPTION>
|
||
|
<OPTION VALUE="-9">USA - Alaska</OPTION>
|
||
|
<OPTION VALUE="-9">USA - Arizona</OPTION>
|
||
|
<OPTION VALUE="-6">USA - Central</OPTION>
|
||
|
<OPTION VALUE="-5">USA - Eastern</OPTION>
|
||
|
<OPTION VALUE="-10">USA - Hawaii</OPTION>
|
||
|
<OPTION VALUE="-5">USA - Indiana East</OPTION>
|
||
|
<OPTION VALUE="-7">USA - Mountain</OPTION>
|
||
|
<OPTION VALUE="-8">USA - Pacific</OPTION>
|
||
|
<OPTION VALUE="3">Yemen</OPTION>
|
||
|
<OPTION VALUE="1">Yugoslavia</OPTION>
|
||
|
<OPTION VALUE="2">Zambia</OPTION>
|
||
|
<OPTION VALUE="2">Zimbabwe</OPTION>
|
||
|
<!--
|
||
|
<option value="0">GMT</option>
|
||
|
<option value="1">Rome</option>
|
||
|
<option value="2">Cairo</option>
|
||
|
<option value="3">Moscow</option>
|
||
|
<option value="3.30">Tehran</option>
|
||
|
<option value="5">Karachi</option>
|
||
|
<option value="5.30">Bombay</option>
|
||
|
<option value="7">Bangkok</option>
|
||
|
<option value="8">Hong Kong</option>
|
||
|
<option value="9">Tokyo</option>
|
||
|
<option value="9.30">Darwin</option>
|
||
|
<option value="10">Sydney</option>
|
||
|
<option value="12">Fiji</option>
|
||
|
<option value="-10">Hawaii</option>
|
||
|
<option value="-8">San Francisco</option>
|
||
|
<option value="-7">Arizona</option>
|
||
|
<option value="-5">New York</option>
|
||
|
<option value="-3.30">Newfoundland</option>
|
||
|
<option value="-3">Greenland</option>
|
||
|
-->
|
||
|
</select>
|
||
|
</form>
|
||
|
</div>
|
||
|
<script type="text/javascript">
|
||
|
<!-- World Clock (No DST, standard time only!) http://www.btinternet.com/~kurt.grigg/javascript
|
||
|
|
||
|
if (document.getElementById){
|
||
|
|
||
|
fCol='#000000'; //face/number colour.
|
||
|
dCol='#cccccc'; //dot colour.
|
||
|
hCol='#000000'; //hours colour.
|
||
|
mCol='#000000'; //minutes colour.
|
||
|
sCol='#ff0000'; //seconds colour.
|
||
|
cCol='#000000'; //date colour.
|
||
|
aCol='#999999'; //am-pm colour.
|
||
|
bCol='#ffffff'; //select/form background colour.
|
||
|
tCol='#000000'; //select/form text colour.
|
||
|
|
||
|
//Alter nothing below! Alignments will be lost!
|
||
|
y=87;
|
||
|
x=60;
|
||
|
h=4;
|
||
|
m=5;
|
||
|
s=6;
|
||
|
cf=new Array();
|
||
|
cd=new Array();
|
||
|
ch=new Array();
|
||
|
cm=new Array();
|
||
|
cs=new Array();
|
||
|
face="3 4 5 6 7 8 9 10 11 12 1 2";
|
||
|
face=face.split(" ");
|
||
|
n=face.length;
|
||
|
e=360/n;
|
||
|
hDims=7;
|
||
|
zone=0;
|
||
|
isItLocal=true;
|
||
|
ampm="";
|
||
|
daysInMonth=31;
|
||
|
todaysDate="";
|
||
|
var addHours;
|
||
|
var oddMinutes;
|
||
|
var getOddMinutes;
|
||
|
var addOddMinutes;
|
||
|
plusMinus=false;
|
||
|
|
||
|
var mon=new Array("January","February","March","April","May","June","July","August","September","October","November","December");
|
||
|
|
||
|
document.write('<div id="theDate" class="datestyle" style="color:'+cCol+'">\!<\/div>');
|
||
|
document.write('<div id="amOrPm" class="ampmstyle" style="color:'+aCol+'">\!<\/div>');
|
||
|
for (i=0; i < n; i++){
|
||
|
document.write('<div id="theFace'+i+'" class="facestyle" style="color:'+fCol+'">'+face[i]+'<\/div>');
|
||
|
// if (i==0 || i==3 || i==6 || i==9)
|
||
|
// document.write('<div id="theFace'+i+'" class="facestyle" style="color:'+fCol+'"><img align="absmiddle" src="/crm/images/clock_face'+face[i]+'.gif"/><\/div>');
|
||
|
// else
|
||
|
// document.write('<div id="theFace'+i+'" class="facestyle" style="color:'+fCol+'"><\/div>');
|
||
|
cf[i]=document.getElementById("theFace"+i).style;
|
||
|
cf[i].top=y-6+30*1.4*Math.sin(i*e*Math.PI/180)+"px";
|
||
|
cf[i].left=x-6+30*1.4*Math.cos(i*e*Math.PI/180)+"px";
|
||
|
}
|
||
|
for (i=0; i < n; i++){
|
||
|
/*
|
||
|
document.write('<div id="theDots'+i+'" class="handsanddotsstyle" style="background-color:'+dCol+'"><\/div>');
|
||
|
cd[i]=document.getElementById("theDots"+i).style;
|
||
|
cd[i].top=y+30*Math.sin(i*e*Math.PI/180)+"px";
|
||
|
cd[i].left=x+30*Math.cos(i*e*Math.PI/180)+"px";
|
||
|
*/
|
||
|
}
|
||
|
for (i=0; i < h; i++){
|
||
|
document.write('<div id="H'+i+'" class="handsanddotsstyle" style="background-color:'+hCol+'"><\/div>');
|
||
|
ch[i]=document.getElementById("H"+i).style;
|
||
|
}
|
||
|
for (i=0; i < m; i++){
|
||
|
document.write('<div id="M'+i+'" class="handsanddotsstyle" style="background-color:'+mCol+'"><\/div>');
|
||
|
cm[i]=document.getElementById("M"+i).style;
|
||
|
}
|
||
|
for (i=0; i < s; i++){
|
||
|
document.write('<div id="S'+i+'" class="handsanddotsstyle" style="background-color:'+sCol+'"><\/div>');
|
||
|
cs[i]=document.getElementById("S"+i).style;
|
||
|
}
|
||
|
|
||
|
var dsp1=document.getElementById("amOrPm").style;
|
||
|
var dsp2=document.getElementById("theCities").style;
|
||
|
var dsp3=document.getElementById("theDate").style;
|
||
|
//var dsp4=document.getElementById("city").style;
|
||
|
var dsp5=document.getElementById("theClockLayer").style;
|
||
|
dsp1.top=y+"px";
|
||
|
dsp1.left=x-8+"px";
|
||
|
dsp2.top=y-80+"px";
|
||
|
dsp2.left=x-55+"px";
|
||
|
dsp3.top=y+55+"px";
|
||
|
dsp3.left=x-60+"px";
|
||
|
//dsp4.backgroundColor=bCol;
|
||
|
//dsp4.color=tCol;
|
||
|
//var currSkin="<%=skintype%>"
|
||
|
|
||
|
//var currSkin="aqua"
|
||
|
|
||
|
//dsp5.backgroundImage="url(/crm/images/"+currSkin+"/clock_bg.gif)"
|
||
|
dsp5.backgroundImage="url($image_path/clock_bg.gif)"
|
||
|
dsp5.backgroundRepeat="no-repeat"
|
||
|
dsp5.backgroundPosition="4px 38px"
|
||
|
|
||
|
function lcl(currIndex,localState){
|
||
|
//zone=z.options[z.selectedIndex].value;
|
||
|
//isItLocal=(z.options[0].selected)?true:false;
|
||
|
zone=document.frmtimezone.city.options[currIndex].value;
|
||
|
isItLocal=localState;
|
||
|
plusMinus=(zone.charAt(0) == "-")?true:false;
|
||
|
oddMinutes=(zone.indexOf(".") != -1)?true:false;
|
||
|
if (oddMinutes){
|
||
|
getOddMinutes=zone.substring(zone.indexOf(".")+1,zone.length)
|
||
|
}
|
||
|
|
||
|
addHours=(oddMinutes)?parseInt(zone.substring(0,zone.indexOf("."))):parseInt(zone)
|
||
|
if (plusMinus){
|
||
|
addOddMinutes=(oddMinutes)?parseInt(-getOddMinutes):0;
|
||
|
} else{
|
||
|
addOddMinutes=(oddMinutes)?parseInt(getOddMinutes):0;
|
||
|
}
|
||
|
|
||
|
set_cookie("timezone",currIndex)
|
||
|
}
|
||
|
|
||
|
function ClockAndAssign(){
|
||
|
hourAdjust=0;
|
||
|
dayAdjust=0;
|
||
|
monthAdjust=0;
|
||
|
now=new Date();
|
||
|
//ofst=now.getTimezoneOffset()/60;
|
||
|
|
||
|
secs=now.getSeconds();
|
||
|
sec=Math.PI*(secs-15)/30;
|
||
|
|
||
|
mins=(isItLocal)?now.getMinutes():now.getUTCMinutes();
|
||
|
if (oddMinutes){
|
||
|
mins=eval(mins+addOddMinutes);
|
||
|
}
|
||
|
min=Math.PI*(mins-15)/30;
|
||
|
if (mins<0){
|
||
|
mins+=60;hourAdjust=-1;
|
||
|
}
|
||
|
if (mins>59){
|
||
|
mins-=60;hourAdjust=1;
|
||
|
}
|
||
|
|
||
|
//hr=(isItLocal)?now.getHours()+hourAdjust:(now.getHours()+parseInt(ofst))+parseInt(zone)+hourAdjust;
|
||
|
hr=(isItLocal)?now.getHours()+hourAdjust:now.getUTCHours()+addHours+hourAdjust
|
||
|
hrs=Math.PI*(hr-3)/6+Math.PI*parseInt(now.getMinutes())/360;
|
||
|
|
||
|
/*
|
||
|
if (hr<0){
|
||
|
hr+=24;
|
||
|
dayAdjust=-1;
|
||
|
}
|
||
|
if (hr>23){
|
||
|
hr-=24;
|
||
|
dayAdjust=1;
|
||
|
}
|
||
|
*/
|
||
|
|
||
|
if (!isItLocal){
|
||
|
if (addHours<0){
|
||
|
if(now.getUTCHours()+parseInt(addHours)<0)
|
||
|
dayAdjust-=1
|
||
|
} else{
|
||
|
if(now.getUTCHours()+parseInt(addHours)>23)
|
||
|
dayAdjust+=1
|
||
|
}
|
||
|
}
|
||
|
|
||
|
day=now.getDate()+dayAdjust;
|
||
|
|
||
|
if (day<1){
|
||
|
day+=daysInMonth;
|
||
|
monthAdjust=-1;
|
||
|
}
|
||
|
if (day>daysInMonth){
|
||
|
day-=daysInMonth;
|
||
|
monthAdjust=1;
|
||
|
}
|
||
|
|
||
|
month=parseInt(now.getMonth()+1+monthAdjust);
|
||
|
|
||
|
if (month==2){
|
||
|
daysInMonth=28;
|
||
|
}
|
||
|
year=now.getYear();
|
||
|
if (year<2000){
|
||
|
year=year+1900;
|
||
|
}
|
||
|
leap_year=(eval(year%4)==0)?true:false;
|
||
|
if (leap_year&&month==2){
|
||
|
daysInMonth=29;
|
||
|
}
|
||
|
if (month<1){
|
||
|
month+=12;
|
||
|
year--;
|
||
|
}
|
||
|
if (month>12){
|
||
|
month-=12;
|
||
|
year++;
|
||
|
}
|
||
|
//todaysDate=day+"/"+month+"/"+year;
|
||
|
todaysDate=mon[month-1]+" "+day+", "+year;
|
||
|
|
||
|
if (hr<0) hr+=24;
|
||
|
if (hr>23) hr-=24;
|
||
|
|
||
|
ampm=(hr>11)?"PM":"AM";
|
||
|
|
||
|
for (i=0;i<s;i++){
|
||
|
cs[i].top=y+(i*hDims)*Math.sin(sec)+"px";
|
||
|
cs[i].left=x+(i*hDims)*Math.cos(sec)+"px";
|
||
|
}
|
||
|
for (i=0;i<m;i++){
|
||
|
cm[i].top=y+(i*hDims)*Math.sin(min)+"px";
|
||
|
cm[i].left=x+(i*hDims)*Math.cos(min)+"px";
|
||
|
}
|
||
|
for (i=0;i<h;i++){
|
||
|
ch[i].top=y+(i*hDims)*Math.sin(hrs)+"px";
|
||
|
ch[i].left=x+(i*hDims)*Math.cos(hrs)+"px";
|
||
|
}
|
||
|
|
||
|
document.getElementById("amOrPm").firstChild.data=ampm;
|
||
|
|
||
|
// if (hr.toString().length==1) hr="0"+hr
|
||
|
if (hr==0) hr=12
|
||
|
else if (hr>11) hr-=12;
|
||
|
|
||
|
if (mins.toString().length==1) mins="0"+mins;
|
||
|
|
||
|
document.getElementById("theDate").firstChild.data=todaysDate+" "+hr+":"+mins+" "+ampm;
|
||
|
setTimeout('ClockAndAssign()',100);
|
||
|
}
|
||
|
ClockAndAssign();
|
||
|
}
|
||
|
|
||
|
// Setting cookies
|
||
|
function set_cookie ( name, value, exp_y, exp_m, exp_d, path, domain, secure )
|
||
|
{
|
||
|
var cookie_string = name + "=" + escape ( value );
|
||
|
|
||
|
if (exp_y) //delete_cookie(name)
|
||
|
{
|
||
|
var expires = new Date ( exp_y, exp_m, exp_d );
|
||
|
cookie_string += "; expires=" + expires.toGMTString();
|
||
|
}
|
||
|
|
||
|
if (path) cookie_string += "; path=" + escape ( path );
|
||
|
if (domain) cookie_string += "; domain=" + escape ( domain );
|
||
|
if (secure) cookie_string += "; secure";
|
||
|
|
||
|
document.cookie = cookie_string;
|
||
|
}
|
||
|
|
||
|
// Retrieving cookies
|
||
|
function get_cookie(cookie_name)
|
||
|
{
|
||
|
var results = document.cookie.match(cookie_name + '=(.*?)(;|$)');
|
||
|
if (results) return (unescape(results[1]));
|
||
|
else return null;
|
||
|
}
|
||
|
|
||
|
// Delete cookies
|
||
|
function delete_cookie( cookie_name )
|
||
|
{
|
||
|
var cookie_date = new Date ( ); // current date & time
|
||
|
cookie_date.setTime ( cookie_date.getTime() - 1 );
|
||
|
document.cookie = cookie_name += "=; expires=" + cookie_date.toGMTString();
|
||
|
}
|
||
|
|
||
|
if (get_cookie("timezone")==null || get_cookie("timezone")==false || get_cookie("timezone")<0 || get_cookie("timezone")=="1") {
|
||
|
lcl(0,true)
|
||
|
} else {
|
||
|
lcl(get_cookie("timezone"),false)
|
||
|
document.frmtimezone.city.options[get_cookie("timezone")].selected=true
|
||
|
}
|
||
|
|
||
|
|
||
|
//-->
|
||
|
</script>
|
||
|
</div>
|
||
|
EOQ;
|
||
|
|
||
|
return $the_clock;
|
||
|
}
|
||
|
?>
|