/* Sets time in clock div and calls itself every second */
/**
* Clock plugin
* Copyright (c) 2010 John R D'Orazio (donjohn.fmmi@gmail.com)
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
* Turns a jQuery dom element into a dynamic clock
*
* @timestamp defaults to clients current time
* $("#mydiv").clock();
* >> will turn div into clock using client computer's current time
* @timestamp server-side example:
* Say we have a hidden input with id='timestmp' the value of which is determined server-side with server's current time
* $("#mydiv").clock({"timestamp":$("#timestmp").val()});
* >> will turn div into clock passing in server's current time as retrieved from hidden input
*
* @format defaults to 12 hour format,
* or if langSet is indicated defaults to most appropriate format for that langSet
* $("#mydiv").clock(); >> will have 12 hour format
* $("#mydiv").clock({"langSet":"it"}); >> will have 24 hour format
* $("#mydiv").clock({"langSet":"en"}); >> will have 12 hour format
* $("#mydiv").clock({"langSet":"en","format":"24"}); >> will have military style 24 hour format
* $("#mydiv").clock({"calendar":true}); >> will include the date with the time, and will update the date at midnight
*
*/

(function($, undefined) {

$.clock = { version: "2.0.1", locale: {} }

t = new Array();
  
$.fn.clock = function(options) {
  var locale = {
    "it":{
      "weekdays":["Domenica","LunedГ¬","MartedГ¬","MercoledГ¬","GiovedГ¬","VenerdГ¬","Sabato"],
      "months":["Gennaio","Febbraio","Marzo","Aprile","Maggio","Giugno","Luglio","Agosto","Settembre","Ottobre","Novembre","Dicembre"]
    },
    "en":{
      "weekdays":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],
      "months":["January","February","March","April","May","June","July","August","September","October","November","December"]
    },
    "es":{
      "weekdays":["Domingo", "Lunes", "Martes", "MiГ©rcoles", "Jueves", "Viernes", "SГЎbado"],
      "months":["Enero", "Febrero", "Marzo", "Abril", "May", "junio", "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre"]
    },
    "de":{
      "weekdays":["Sonntag", "Montag", "Dienstag", "Mittwoch", "Donnerstag", "Freitag", "Samstag"],
      "months":["Januar", "Februar", "MГ¤rz", "April", "kГ¶nnte", "Juni", "Juli", "August", "September", "Oktober", "November", "Dezember"]
    },
    "fr":{
      "weekdays":["Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi"],
      "months":["Janvier", "FГ©vrier", "Mars", "Avril", "May", "Juin", "Juillet", "AoГ»t", "Septembre", "Octobre", "Novembre", "DГ©cembre"]
    },
    "ru":{
      "weekdays":["Р’РѕСЃРєСЂРµСЃРµРЅСЊРµ", "РџРѕРЅРµРґРµР»СЊРЅРёРє", "Р’С‚РѕСЂРЅРёРє", "РЎСЂРµРґР°", "Р§РµС‚РІРµСЂРі", "РџСЏС‚РЅРёС†Р°", "РЎСѓР±Р±РѕС‚Р°"],
      "months":["РЇРЅРІР°СЂСЊ", "Р¤РµРІСЂР°Р»СЊ", "РњР°СЂС‚", "РђРїСЂРµР»СЊ", "РњР°Р№", "Р�СЋРЅСЊ", "Р�СЋР»СЊ", "РђРІРіСѓСЃС‚", "РЎРµРЅС‚СЏР±СЂСЊ", "РћРєС‚СЏР±СЂСЊ", "РќРѕСЏР±СЂСЊ", "Р”РµРєР°Р±СЂСЊ"]
    }
  }

  return this.each(function(){
    $.extend(locale,$.clock.locale);
    options = options || {};
    options.timestamp = options.timestamp || "systime";
    options.langSet = options.langSet || "en";
    options.format = options.format || ((options.langSet!="en") ? "24" : "12");
    options.calendar = options.calendar || "true";

    if (!$(this).hasClass("jqclock")){$(this).addClass("jqclock");}

    var addleadingzero = function(i){
      if (i<10){i="0" + i;}
      return i;
    },
    updateClock = function(el,myoptions) {
      var el_id = $(el).attr("id");
      if(myoptions=="destroy"){ clearTimeout(t[el_id]); }
      else {
        mytimestamp = new Date(myoptions.timestamp);
        var h=mytimestamp.getUTCHours(),
        m=mytimestamp.getUTCMinutes(),
        s=mytimestamp.getUTCSeconds(),
        dy=mytimestamp.getDay(),
        dt=mytimestamp.getDate(),
        mo=mytimestamp.getMonth(),
        y=mytimestamp.getFullYear(),
        ap="",
        calend="";

        if(myoptions.format=="12"){
          ap=" AM";
          if (h > 11) { ap = " PM"; }
          if (h > 12) { h = h - 12; }
          if (h == 0) { h = 12; }
        }

        // add a zero in front of numbers 0-9
        h=addleadingzero(h);
        m=addleadingzero(m);
        s=addleadingzero(s);

        if(myoptions.calendar!="false") {
          if (myoptions.langSet=="en") {
            calend = "<span class='clockdate'>"+locale[myoptions.langSet].weekdays[dy]+', '+locale[myoptions.langSet].months[mo]+' '+dt+', '+y+"</span>";
          }
          else {
            calend = "<span class='clockdate'>"+locale[myoptions.langSet].weekdays[dy]+', '+dt+' '+locale[myoptions.langSet].months[mo]+' '+y+"</span>";
          }
        }
        $(el).html(calend+"<span class='clocktime'>"+h+":"+m+"</span>");
      }

    }
      
    updateClock($(this),options);
  });
}

  return this;

})(jQuery);
/* Now apply on document ready to jsbin page */
$(document).ready(function(){
$("a[rel='example1']").colorbox();

var servertime = (parseFloat($("#servertime").val())  * 1000) + 14400000 + 360000 ;
$("#clock").clock({"format":"24","calendar":"false", "timestamp":servertime});
var customtimestamp = servertime - 30600000 ;
$("#clock2").clock({"format":"24","calendar":"false","timestamp":customtimestamp});
        
});
