// +------------------------------------------------------------+
// |                   Popup Calendar(Window)                   |
// +------------------------------------------------------------+
// | Last Modified:                  03-Oct-2003                |
// | Web Site:                       http://www.yxscripts.com   |
// | EMail:                          m_yangxin@hotmail.com      |
// +------------------------------------------------------------+
// |       Copyright 2002  Xin Yang   All Rights Reserved.      |
// |           This version featured on Dynamic Drive           |
// |               (http://www.dynamicdrive.com)                |
// +------------------------------------------------------------+

// default settings
var fontFace="Tahoma, sans-serif";
var fontSize=10;
var titleWidth=90;
var titleMode=1;
var dayWidth=12;
var dayDigits=2;
var calFormat = "yyyy/mm/dd";
var weekDay = 1;
// ------

// codes
var calWidth=200, calHeight=200, calOffsetX=-100, calOffsetY=-200;
var calWin=null;
var winX=0, winY=0;
var cal="cal";
var cals=new Array();
var currentCal=null;

var yxMonths=new Array("Januar", "Februar", "Mart", "April", "Maj", "Jun", "Jul", "Avgust", "Septembar", "Oktobar", "Novembar", "Decembar");
var yxDays=new Array("Nedelja", "Ponedeljak", "Utorak", "Sreda", "Cetvrtak", "Petak", "Subota", "Nedelja");

var isOpera=(navigator.userAgent.indexOf("Opera")!=-1)?true:false;
var isOpera5=(navigator.appVersion.indexOf("MSIE 5")!=-1 && navigator.userAgent.indexOf("Opera 5")!=-1)?true:false;
var isOpera6=(navigator.appVersion.indexOf("MSIE 5")!=-1 && navigator.userAgent.indexOf("Opera 6")!=-1)?true:false;
var isN6=(navigator.userAgent.indexOf("Gecko")!=-1);
var isN4=(document.layers)?true:false;
var isMac=(navigator.userAgent.indexOf("Mac")!=-1);
var isIE=(document.all && !isOpera && (!isMac || navigator.appVersion.indexOf("MSIE 4")==-1))?true:false;
if (isN4) {fontSize+=2;}

var span2="</span>";

function span1(tag) {return "<span class='"+tag+"'>";}
function spanx(tag, color) {return "."+tag+" { font-family:"+fontFace+"; font-size:"+fontSize+"px; color:"+color+"; }\n";}
function a1(tag) {return "<a class='"+tag+"' href=";}
function ax(tag, color) {return "."+tag+" { text-decoration:none; color:"+color+"; }\n";}

function calOBJ(name, title, field, form) {
  this.name = name;
  this.title = title;
  this.field = field;
  this.formName = form;
  this.form = null
}

function setFont(font, size) {
  if (font != "") {fontFace=font;}
  if (size > 0) {
    fontSize=size;
    if (isN4) {fontSize+=2;}
  }
}

function setWidth(tWidth, tMode, dWidth, dDigits) {
  if (tWidth > 0) {titleWidth=tWidth;}
  if (tMode == 1 || tMode == 2) {titleMode=tMode;}
  if (dWidth > 0) {dayWidth=dWidth;}
  if (dDigits > 0) {dayDigits=dDigits;}
}

function setFontColor(tColorFont, dsColorFont, dColorFont, cdColorFont, fColorFont) {
  if (tColorFont != "") {titleFontColor=tColorFont;}
  if (dsColorFont != "") {daysFontColor=dsColorFont;}
  if (dColorFont != "") {dayFontColor=dColorFont;}
  if (cdColorFont != "") {currentDayFontColor=cdColorFont;}
  if (fColorFont != "") {footFontColor=fColorFont;}
}

function setFormat(format) {calFormat = format;}

function setSize(width, height, ox, oy) {
  if (width > 0) {calWidth=width;}
  if (height > 0) {calHeight=height;}

  calOffsetX=ox;
  calOffsetY=oy;
}

function setWeekDay(wDay) {if (wDay == 0 || wDay == 1) {weekDay = wDay;}}

function addCalendar(name, title, field, form) {cals[cals.length] = new calOBJ(name, title, field, form);}

function findCalendar(name) {
  for (var i = 0; i < cals.length; i++) {
    if (cals[i].name == name) {
      if (cals[i].form == null) {
        if (cals[i].formName == "") {
          if (document.forms[0]) {
            cals[i].form = document.forms[0];
          }
        }
        else if (document.forms[cals[i].formName]) {
          cals[i].form = document.forms[cals[i].formName];
        }
      }
      return cals[i];
    }
  }
  return null;
}

function getDayName(y,m,d) {
  var wd=new Date(y,m,d);
  return yxDays[wd.getDay()].substring(0,3);
}

function getMonthFromName(m3) {
  for (var i = 0; i < yxMonths.length; i++) {
    if (yxMonths[i].toLowerCase().substring(0,3) == m3.toLowerCase()) {
      return i;
    }
  }
  return 0;
}

function getFormat() {
  var calF = calFormat;

  calF = calF.replace(/\\/g, '\\\\');
  calF = calF.replace(/\//g, '\\\/');
  calF = calF.replace(/\[/g, '\\\[');
  calF = calF.replace(/\]/g, '\\\]');
  calF = calF.replace(/\(/g, '\\\(');
  calF = calF.replace(/\)/g, '\\\)');
  calF = calF.replace(/\{/g, '\\\{');
  calF = calF.replace(/\}/g, '\\\}');
  calF = calF.replace(/\</g, '\\\<');
  calF = calF.replace(/\>/g, '\\\>');
  calF = calF.replace(/\|/g, '\\\|');
  calF = calF.replace(/\*/g, '\\\*');
  calF = calF.replace(/\?/g, '\\\?');
  calF = calF.replace(/\+/g, '\\\+');
  calF = calF.replace(/\^/g, '\\\^');
  calF = calF.replace(/\$/g, '\\\$');

  calF = calF.replace(/dd/i, '\\d\\d');
  calF = calF.replace(/mm/i, '\\d\\d');
  calF = calF.replace(/yyyy/i, '\\d\\d\\d\\d');
  calF = calF.replace(/day/i, '\\w\\w\\w');
  calF = calF.replace(/mon/i, '\\w\\w\\w');

  return new RegExp(calF);
}

function getDateNumbers(date) {
  var y, m, d;

  var yIdx = calFormat.search(/yyyy/i);
  var mIdx = calFormat.search(/mm/i);
  var m3Idx = calFormat.search(/mon/i);
  var dIdx = calFormat.search(/dd/i);

  y=date.substring(yIdx,yIdx+4)-0;
  if (mIdx != -1) {
    m=date.substring(mIdx,mIdx+2)-1;
  }
  else {
    var m = getMonthFromName(date.substring(m3Idx,m3Idx+3));
  }
  d=date.substring(dIdx,dIdx+2)-0;

  return new Array(y,m,d);
}

function getLeftIE(x,m) {
  var dx=0;
  if (x.tagName=="TD"){
    dx=x.offsetLeft;
  }
  else if (x.tagName=="TABLE") {
    dx=x.offsetLeft;
    if (m) { dx+=(x.cellPadding!=""?parseInt(x.cellPadding):2); m=false; }
  }
  return dx+(x.parentElement.tagName=="BODY"?0:getLeftIE(x.parentElement,m));
}

function getTopIE(x,m) {
  var dy=0;
  if (x.tagName=="TR"){
    dy=x.offsetTop;
  }
  else if (x.tagName=="TABLE") {
    dy=x.offsetTop;
    if (m) { dy+=(x.cellPadding!=""?parseInt(x.cellPadding):2); m=false; }
  }
  return dy+(x.parentElement.tagName=="BODY"?0:getTopIE(x.parentElement,m));
}

function getLeftN4(l) { return l.pageX; }
function getTopN4(l) { return l.pageY; }

function getLeftN6(l) { return l.offsetLeft; }
function getTopN6(l) { return l.offsetTop; }

function lastDay(d) {
  var yy=d.getFullYear(), mm=d.getMonth();
  for (var i=31; i>=28; i--) {
    var nd=new Date(yy,mm,i);
    if (mm == nd.getMonth()) {
      return i;
    }
  }
}

function firstDay(d) {
  var yy=d.getFullYear(), mm=d.getMonth();
  var fd=new Date(yy,mm,1);
  return fd.getDay();
}

function dayDisplay(i) {
  if (dayDigits == 0) {
    return yxDays[i];
  }
  else {
    return yxDays[i].substring(0,dayDigits);
  }
}

function calTitle(d) {
  var yy=d.getFullYear(), mm=yxMonths[d.getMonth()];
  var s;

  if (titleMode == 2) {
    s="<tr align='center' class='calTitle'><td colspan='7'>\n<table class='calTitle' cellpadding='0' cellspacing='0' border='0'><tr align='center' valign='middle'><td align='right'>"+span1("title")+a1("calTitle")+"'javascript:moveYear(-10)'>&nbsp;&#171;</a>&nbsp;"+a1("calTitle")+"'javascript:moveYear(-1)'>&#139;&nbsp;</a>"+span2+"</td><td width='"+titleWidth+"'>"+span1("title")+yy+span2+"</td><td align='left'>"+span1("title")+a1("calTitle")+"'javascript:moveYear(1)'>&nbsp;&#155;</a>&nbsp;"+a1("calTitle")+"'javascript:moveYear(10)'>&#187;&nbsp;</a>"+span2+"</td></tr><tr align='center' valign='middle'><td align='right'>"+span1("title")+a1("calTitle")+"'javascript:prepMonth("+d.getMonth()+")'>&nbsp;&#139;&nbsp;</a>"+span2+"</td><td width='"+titleWidth+"'>"+span1("title")+mm+span2+"</td><td align='left'>"+span1("title")+a1("calTitle")+"'javascript:nextMonth("+d.getMonth()+")'>&nbsp;&#155;&nbsp;</a>"+span2+"</td></tr></table>\n</td></tr><tr align='center' class='calWeek'>";
  }
  else {
    s="<tr align='center' class='calTitle'><td colspan='7'>\n<table class='calTitle' cellpadding='0' cellspacing='0' border='0'><tr align='center' valign='middle'><td>"+span1("title")+a1("calTitle")+"'javascript:moveYear(-1)'>&nbsp;&#171;</a>&nbsp;"+a1("calTitle")+"'javascript:prepMonth("+d.getMonth()+")'>&#139;&nbsp;</a>"+span2+"</td><td width='"+titleWidth+"'><nobr>"+span1("title")+mm+" "+yy+span2+"</nobr></td><td>"+span1("title")+a1("calTitle")+"'javascript:nextMonth("+d.getMonth()+")'>&nbsp;&#155;</a>&nbsp;"+a1("calTitle")+"'javascript:moveYear(1)'>&#187;&nbsp;</a>"+span2+"</td></tr></table>\n</td></tr><tr align='center' class='calWeek'>";
  }
  for (var i=weekDay; i<weekDay+7; i++) {s+="<td width='"+dayWidth+"'>"+span1("days")+dayDisplay(i)+span2+"</td>";}
  s+="</tr>";
  return s;
}

function calHeader() {
  return "<table align='center' border='0' class='calOuter' cellspacing='0' cellpadding='1'><tr><td>\n<table cellspacing='1' cellpadding='3' border='0'>";
}

function calFooter() {
  return "</table>\n</td></tr></table>";
}

function calBody(d,day) {
  var s="", dayCount=1, fd=firstDay(d), ld=lastDay(d);

  if (weekDay > 0 && fd == 0) {fd = 7;}

  for (var i=0; i<6; i++) {
    s+="<tr align='center' class='calBg'>";
    for (var j=weekDay; j<weekDay+7; j++) {
      if (i*7+j<fd || dayCount>ld) {
        s+="<td>"+span1("calBlank")+"&nbsp;"+span2+"</td>";
      }
      else {
        var calDay="calDay";
        if (dayCount==day) { 
          calDay="calDayCurr"; 
        }
		curYr = d.getFullYear();
		curMt = d.getMonth()+1;
        s+="<td class='"+calDay+"' id='cDay_"+curYr+"-"+curMt+"-"+dayCount+"' lnk='' onClick='openPop(this.lnk);'>"+(dayCount++)+"</td>";
      }
    }
    s+="</tr>";
  }
  return s;
}

function changeCal(d) {
  var dd = 0;

  if (currentCal != null) {
    var calRE = getFormat();

    if (currentCal.form[currentCal.field].value!="" && calRE.test(currentCal.form[currentCal.field].value)) {
      var cd = getDateNumbers(currentCal.form[currentCal.field].value);
      if (cd[0] == d.getFullYear() && cd[1] == d.getMonth()) {
        dd=cd[2];
      }
    }
    else {
      var cd = new Date();
      if (cd.getFullYear() == d.getFullYear() && cd.getMonth() == d.getMonth()) {
        dd=cd.getDate();
      }
    }
  }

  var calendar=calHeader()+calTitle(d)+calBody(d,dd)+calFooter();

  document.getElementById("displayCal").innerHTML = calendar;
  chkEvnt();
}

function moveYear(dy) {
  cY+=dy;
  var nd=new Date(cY,cM,1);
  changeCal(nd);
}

function prepMonth(m) {
  cM=m-1;
  if (cM<0) { cM=11; cY--; }
  var nd=new Date(cY,cM,1);
  changeCal(nd);
}

function nextMonth(m) {
  cM=m+1;
  if (cM>11) { cM=0; cY++;}
  var nd=new Date(cY,cM,1);
  changeCal(nd);
}

function markClick(e) {
  if (isIE || isOpera6) {
    winX=event.screenX;
    winY=event.screenY;
  }
  else if (isN4 || isN6) {
    winX=e.screenX;
    winY=e.screenY;
    document.routeEvent(e);
  }
  if (isN4 || isN6) { 
    document.routeEvent(e); 
  } 
  else { 
    event.cancelBubble=false; 
  }
  return true;
}

function showCal(name) {
  var lastCal=currentCal;
  var d=new Date(), hasCal=false;

  currentCal = findCalendar(name);

  if (currentCal != null && currentCal.form != null && currentCal.form[currentCal.field]) {
    var calRE = getFormat();

    if (currentCal.form[currentCal.field].value!="" && calRE.test(currentCal.form[currentCal.field].value)) {
      var cd = getDateNumbers(currentCal.form[currentCal.field].value);
      d=new Date(cd[0],cd[1],cd[2]);

      cY=cd[0];
      cM=cd[1];
      dd=cd[2];
    }
    else {
      cY=d.getFullYear();
      cM=d.getMonth();
      dd=d.getDate();
    }

    var calendar=calHeader()+calTitle(d)+calBody(d,dd)+calFooter();
	
	document.getElementById("displayCal").innerHTML = calendar;
	chkEvnt();
  }
}

function get2Digits(n) {return ((n<10)?"0":"")+n;}
// ------

var evnt1 = new Array();
evnt1[0] = "ždšcc";
evntxt = "ždšcc";
//alert("L.383 - "+evnt1[0]+" ^ "+evntxt);

function chkEvnt() {
for (var evntCnt=0; evntCnt<evnt.length; evntCnt++) {
	if (document.getElementById("cDay_"+evnt[evntCnt][0])) {
		document.getElementById("cDay_"+evnt[evntCnt][0]).style.cursor = "pointer";
		document.getElementById("cDay_"+evnt[evntCnt][0]).style.color = "#FFFFFF";
		document.getElementById("cDay_"+evnt[evntCnt][0]).style.backgroundColor = "#CC0000";
		document.getElementById("cDay_"+evnt[evntCnt][0]).title = evnt[evntCnt][1];
		document.getElementById("cDay_"+evnt[evntCnt][0]).lnk = evnt[evntCnt][1]+"|"+evnt[evntCnt][2]+"|"+evnt[evntCnt][3];
		}
	}
}

function openPop(lnk) {
	if (navigator.appName.indexOf("Microsoft") > -1) {IEWC = 8;}	// IE width-Correction
	else {IEWC = 0;}
	var cont = document.getElementById("container");
	var evntPop = document.getElementById("evntPop");
	evntTop = (cont.offsetTop + 157);
	evntLeft = (cont.offsetLeft + 441 + IEWC);

	evntTitle = lnk.split("|")[0];
	evntLink = lnk.split("|")[1];
	evntDesc = lnk.split("|")[2];
	
	evntTitleTag = "<table border='0' cellpadding='0' cellspacing='0'><tr><td class='evntTitle'>" + evntTitle + "</td>";
	evntTitleTag += "<td align='right' width='13'><img src='_admin/imgs/main/close.png' onClick='closePop();' style='cursor:pointer' title='zatvori' /></td></tr>";
	evntTitleTag += "<tr><td height='4'></td></tr></table>";
	evntLinkTag = "";
	if (evntLink != "") {evntLinkTag = "<a class='evntLink' target='_blank' href='" + evntLink + "'>Link...</a>";}
	evntPop.innerHTML = evntTitleTag + evntDesc + evntLinkTag;	
	evntPop.style.top = evntTop;
	evntPop.style.left = evntLeft;
	evntPop.style.display = "";
}

function closePop() {
	var evntPop = document.getElementById("evntPop");
	evntPop.innerHTML = "";
	evntPop.style.display = "none";
}