//Javascript name: My Date Time Picker
//Date created: 16-Nov-2003 23:19
//Scripter: TengYong Ng
//Website: http://www.rainforestnet.com
//Copyright (c) 2003 TengYong Ng
//FileName: DateTimePicker.js
//Version: 0.8
//Contact: contact@rainforestnet.com
// Note: Permission given to use this script in ANY kind of applications if
//       header lines are left unchanged.

//Global variables
var winCal;
var dtToday=new Date();
var Cal;
var docCal;


var MeseciSrLat=["Januar", "Februar", "Mart", "April", "Maj", "Jun","Jul", 
	"Avgust", "Septembar", "Oktobar", "Novembar", "Decembar"];
var MeseciSrCir=["Јануар", "Фебруар", "Март", "Април", "Мај", "Јун","Јул", 
	"Август", "Септембар", "Октобар", "Новембар", "Децембар"];
var MonthName=["January", "February", "March", "April", "May", "June","July", 
	"August", "September", "October", "November", "December"];
var MeseciHr=["Siječanj", "Veljača", "Ožujak", "Travanj", "Svibanj", "Lipanj","Srpanj", 
	"Kolovoz", "Rujan", "Listopad", "Studeni", "Prosinac"];
	
var DaniUNedeljiSrLat=["Ponedeljak","Utorak","Sreda","Četvrtak","Petak","Subota","Nedelja"];
var DaniUNedeljiSrCir=["Понедељак","Уторак","Среда","Четвртак","Петак","Субота","Недеља"];	
var WeekDayName=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];	

var exDateTime;//Existing Date and Time

//Configurable parameters
var cnTop="200";//top coordinate of calendar window.
var cnLeft="200";//left coordinate of calendar window
var WindowTitle ="DateTime";//Date Time Picker title.
var WeekChar=2;//number of character for week day. if 2 then Mo,Tu,We. if 3 then Mon,Tue,Wed.
var CellWidth=20;//Width of day cell.
var TimeMode=24;//default TimeMode value. 12 or 24

var ShowLongMonth=true;//Show long month name in Calendar header. example: "January".
var ShowMonthYear=true;//Show Month and Year in Calendar header.
//end Configurable parameters
//end Global variable

//funkcija koja pravi kalendar sa mogucnoscu podesavanja vremena..
function NewCal(pCtrl,pFormat,pCtrlHide,pFormatHide,pShowTime,pTimeMode,pShowCal,pocetnaGodina,brojGodina,jezik,pathcss)
{
//biramo jezik kojim ce se prikazivati kalendar
  if(jezik=='SRCIR')
	{
		MonthName=MeseciSrCir
		WeekDayName=DaniUNedeljiSrCir
	}
	else  if(jezik=='SRLAT') 
	{
		MonthName=MeseciSrLat
		WeekDayName=DaniUNedeljiSrLat
	}
	else if(jezik=='HR')
	{
		MonthName=MeseciHr
		WeekDayName=DaniUNedeljiSrLat
	}
	 
	   
	//kreiramo tekuci objekat   
	Cal=new Calendar(dtToday);
	
  if ((pShowTime!=null) && (pShowTime))
	{
		Cal.ShowTime=true;
		if ((pTimeMode!=null) &&((pTimeMode=='12')||(pTimeMode=='24')))
		{
			TimeMode=pTimeMode;
		}		
	}
	
  if ((pShowCal!=null) && (pShowCal))
	{
	  	Cal.ShowCal=true;
	}

	if (pCtrl!=null)
		Cal.Ctrl=pCtrl;
	if (pFormat!=null)
		Cal.Format=pFormat.toUpperCase();//pokupimo format za ispis za pregled na ekranu
	
	if (pCtrlHide!=null)
		Cal.CtrlHide=pCtrlHide;
	if (pFormat!=null)
		Cal.FormatHide=pFormatHide.toUpperCase();//pokupimo format za ispis prema bazi

	//procita vrednost datum i vremena u skrivenom polju
	exDateTime=document.getElementById(pCtrlHide).value;
  
  //pocetna godina od koje pocinjde niz u combu za izbor godine
  Cal.PocetnaGodina=pocetnaGodina;
  
  //putanja do css za kalendar
  Cal.pathcss=pathcss;

  if(brojGodina>0) Cal.BrojGodina=eval(brojGodina)-1; else if(brojGodina<0) Cal.BrojGodina=eval(brojGodina)+1; 
 
 	if (exDateTime!="")//Parse Date String
	{
		var strMonth;
		var strDate;
		var strYear;
		var intMonth;
		var YearPattern;
		var strHour;
		var strMinute;
		var strSecond;

		i=0;
		brojac=0;
		//izvlacimo  vrednosti za dan ,mesec ,godinu cas minut i sekundu iz hidden polja tj polja za ispis prema bazi i popunjavamo tekuci objekat
		while(i<Cal.FormatHide.toUpperCase().length)
		{	
		  //ako u formatu postoji definicija godine
			if(Cal.FormatHide.toUpperCase().substr(i,4)=='YYYY') 
			{
				strYear=exDateTime.substr(brojac,4)
				if(!strYear) strYear=''
        brojac=brojac+4
				i=i+4;
			}
			//ako u fomratu postoji definicija dana
			else if(Cal.FormatHide.toUpperCase().substr(i,2)=='DD')
			{
				strDate=exDateTime.substr(brojac,2);				
				brojac=brojac+2
				i=i+2;
			}
			//ako u formatu postoji definicja meseca
			else if(Cal.FormatHide.toUpperCase().substr(i,2)=='MM')
			{
				strMonth=exDateTime.substr(brojac,2);
				brojac=brojac+2
				i=i+2
			}
			//ako u formatu poostoji definicija casa
			else if(Cal.FormatHide.toUpperCase().substr(i,1)=='H') 
			{
				strHour=exDateTime.substr(brojac,2)

        brojac=brojac+2
				i=i+1;
			}
			//ako u formatu posotji definicija minuta
			else if(Cal.FormatHide.toUpperCase().substr(i,1)=='I')
			{
				strMinute=exDateTime.substr(brojac,2);				

        brojac=brojac+2
				i=i+1;
			}
			//ako u formatu postoji definicija sekunde
			else if(Cal.FormatHide.toUpperCase().substr(i,1)=='S')
			{
				strSecond=exDateTime.substr(brojac,2);
				brojac=brojac+2;
				i=i+1;
			}
			//preskaemo separatore
			else 
			{i=i+1;brojac=brojac+1}
		}
	
		if (isNaN(strMonth))
			intMonth='';
      //intMonth=Cal.GetMonthIndex(strMonth);
		else
			intMonth=parseInt(strMonth,10)-1;	
		if ((parseInt(intMonth,10)>=0) && (parseInt(intMonth,10)<12))
			Cal.Month=intMonth;//postavlja se mesec u tekuci objekat
		//end parse month
		//parse Date
		if ((parseInt(strDate,10)<=Cal.GetMonDays()) && (parseInt(strDate,10)>=1))
			Cal.Date=strDate;//postavlja se dan u tekuci objekat
		//end parse Date
		//parse year
		
		YearPattern=/^\d{4}$/;
		if (YearPattern.test(strYear))
			Cal.Year=parseInt(strYear,10);//postavlja se godinu u tekuci objekat
		//end parse year
		//parse time
		
	if(isNaN(strHour)) strHour='';
	if(isNaN(strMinute)) strMinute='';
	if(isNaN(strSecond)) strSecond='';
//ako je nesto ne definisano dodeljujemo mu vrednost praznog stringa
  	Cal.SetHour(strHour);
		Cal.SetMinute(strMinute);
		Cal.SetSecond(strSecond);
	}

    //u zavisnosti da li ima kalendara ili ne menjamo visinu prozora
    if(Cal.ShowCal)
		winCal=window.open("","DateTime","toolbar=0,status=0,menubar=0,fullscreen=no,width=195,height=275,resizable=0,top="+cnTop+",left="+cnLeft);
		else
		winCal=window.open("","DateTime","toolbar=0,status=0,menubar=0,fullscreen=no,width=130,height=25,resizable=0,top="+cnTop+",left="+cnLeft);
		
    docCal=winCal.document;
		RenderCal(pathcss);
	
}

//generise ceo kalendar sa podacima o odabranom danu,mesecu,godini..
function RenderCal()
{
	var vCalHeader;
	var vCalData;
	var vCalTime;
	var i;
	var j;
	var SelectStr;
	var vDayCount=0;
	var vFirstDay;

	docCal.open();
	docCal.writeln("<html><head><title>"+WindowTitle+"</title>");
	docCal.writeln("<script>var winMain=window.opener;</script>");
	docCal.writeln("</head><link href='"+Cal.pathcss+"/stilKontrola.css' rel='stylesheet' type='text/css'><body>");
  
  
	//ovde je dodat javascript kod zbog podesavanja vremena i njegovog prenosenja na main window
	docCal.writeln('<script language="javascript">'+
	'function napraviGodineComb(){'+
  'br=1;pocetnaGodinaCombo='+Cal.PocetnaGodina+';'+
	'brojGodinaCombo='+Cal.BrojGodina+';'+
	'if(brojGodinaCombo>0) x=eval(pocetnaGodinaCombo)+eval(brojGodinaCombo); else {brojGodinaCombo=-brojGodinaCombo;x=eval(pocetnaGodinaCombo);}'+
  'document.getElementById("yearSelector").options[0]=new Option("","",false,false);'+
  'for(i=x;i>=x-eval(brojGodinaCombo);i--)'+
   '{'+ 
   '   document.getElementById("yearSelector").options[br]=new Option(i,i,false,false);'+
   '  if(winMain.Cal.Year==i) {document.getElementById("yearSelector").selectedIndex=br;document.getElementById("yearSelector").options[br].className="optionGodina";}'+
   '  br++;'+  
   '}'+
  '}'
  );
	//funkcija koja vrsi prenos datum i vremena iz pop up window kalendara na main stranicu kada se klikne na ok dugme 				 
  docCal.writeln('function podesiVreme(){'+
			 'winMain.document.getElementById(\"'+Cal.Ctrl+'\").value=winMain.Cal.FormatDate('+Cal.Date+',0);'+
 			 'winMain.document.getElementById(\"'+Cal.CtrlHide+'\").value=winMain.Cal.FormatDate('+Cal.Date+',1);'+
			 '}</script>');
			 
  //prikazuje kalendar u zavisnosti da li hocemo da setujemo na main stranici datum ili ne
  if(Cal.ShowCal)
  {  
    docCal.writeln("<form name='Calendar'>");
  	vCalHeader="<table class='tblKalendar'>\n";
  	//Month Selector
  	vCalHeader+="<tr>\n<td colspan='7'><table border=0 width='100%' cellpadding=0 cellspacing=0><tr><td align='left'>\n";
  	vCalHeader+="<select class='cmbMesec' name=\"MonthSelector\" onChange=\"javascript:winMain.Cal.SwitchMth(this.selectedIndex);winMain.RenderCal();\">\n";
  	for (i=0;i<12;i++)
  	{
  		if (i==Cal.Month)
  			SelectStr="Selected";
  		else
  			SelectStr="";	
  		vCalHeader+="<option "+SelectStr+" value >"+MonthName[i]+"\n";
  	}
  	vCalHeader+="</select></td>";
  
  	//selector godine
      vCalHeader+="\n<td align='right'><select class='cmbGodine' name='yearSelector' id='yearSelector' onchange='if(this.selectedIndex!=0) winMain.Cal.changeYear(this.value)'><script>napraviGodineComb()</script>"+
    "</select></td></tr></table></td>\n";	

  	vCalHeader+="</tr>";
  	//Calendar header shows Month and Year
  	if (ShowMonthYear)
  		vCalHeader+="<tr><td colspan='7' class='headerGodinaMesec'>"+Cal.GetMonthName(ShowLongMonth)+" "+Cal.Year+"</td></tr>\n";
  	//Week day header
  	vCalHeader+="<tr class='headerNazivDana'>";
  	for (i=0;i<7;i++)
  	{
  		vCalHeader+="<td align='center'>"+WeekDayName[i].substr(0,WeekChar)+"</td>";
  	}
  	vCalHeader+="</tr>";	
  	docCal.write(vCalHeader);
  	
  	//Calendar detail
  	CalDate=new Date(Cal.Year,Cal.Month);
  	CalDate.setDate(1);
  	//za nedelju funkcija vraca nulu ja ga podesavam na 7 posto je nedelja u nasem kalendaru na poslednjem mestu tj. udesno(u eng. na prvom mestu)
    if(CalDate.getDay()==0) dd=7;else dd=CalDate.getDay();
    vFirstDay=dd-1;
  	
  	vCalData="<tr>";
  	for (i=0;i<vFirstDay;i++)
  	{
  		vCalData=vCalData+GenCell();
  		vDayCount=vDayCount+1;
  	}
  	for (j=1;j<=Cal.GetMonDays();j++)
  	{
  		var strCell;
  		vDayCount=vDayCount+1;
  		if ((j==dtToday.getDate())&&(Cal.Month==dtToday.getMonth())&&(Cal.Year==dtToday.getFullYear()))
  			strCell=GenCell(j,true,'danas');//Highlight danasnji datum
  		else
  		{
  			if (j==Cal.Date)
  			{
  			 //generise selektovanu celiju
  				strCell=GenCell(j,true,'selektovanDan');
  			}
  			else
  			{	 
  				if (vDayCount%7==0)
  					strCell=GenCell(j,false,'Nedelja');//generise celije nedelje sa posebnom bojom
  				else if ((vDayCount+6)%7==0)
  					strCell=GenCell(j,false,'ostaliDani');//generise ostale celije u kalendaru sa odredjenom bojom
  				else
  					strCell=GenCell(j,null,'ostaliDani');
  			}		
  		}						
  		vCalData=vCalData+strCell;
  
  		if((vDayCount%7==0)&&(j<Cal.GetMonDays()))
  		{
  			vCalData=vCalData+"</tr>\n<tr>";
  		}
  	}
  	docCal.writeln(vCalData);	
  
  }	
	
	//prikazuje polja za vreme(cas,min,sek) zavisnosti da li hocemo da setujemo vreme za upis u bazi
	if (Cal.ShowTime)
	{
		if(eval(Cal.Hours)<10) showHour='0'+String(eval(Cal.Hours)); else showHour=Cal.Hours; 
		//showHour=Cal.getShowHour();		
    
    vCalTime="<tr>\n<td colspan='7' align='center'>";
    
    //ako nije definisan sat iz main prozora input polje je readonly
  	if(showHour!='')
    {
      vCalTime+="<input type='text' class='sat' name='hour' maxlength=2 size=1 value=\""+showHour+"\""+ 
      "onchange=\"javascript:if((winMain.Cal.AMorPM=='PM') && eval(this.value)<13 && eval(this.value)>0) {winMain.Cal.SetHour(eval(eval(this.value)+12));}"+
      "else if(winMain.Cal.AMorPM=='AM' && eval(this.value)==12) winMain.Cal.SetHour(0);"+
      "else if(this.value!=0 && (winMain.Cal.AMorPM=='AM') && eval(this.value)<12 && eval(this.value)>0) winMain.Cal.SetHour(this.value);else if((this.value<24) && (this.value>=0) && (!(winMain.Cal.AMorPM=='AM' || winMain.Cal.AMorPM=='PM'))) {winMain.Cal.SetHour(this.value);} \">";
  	 }  	
    //ako nismo definisali minute na main stranici onda polje za min je samo tipa readonly
    if(Cal.Minutes!='')
	  {
	     vCalTime+=" : ";
       vCalTime+="<input type='text' class='sat' name='minute' maxlength=2 size=1 value=\""+Cal.Minutes+"\" onchange=\"javascript:if(eval(this.value)<10) this.value='0'+String(eval(this.value));winMain.Cal.SetMinute(this.value)\">";
    }
    
    //ako nismo definisali sekunde na main stranici onda polje za sek je samo tipa readonly
		if(Cal.Seconds!='')
    {
      vCalTime+=" : ";
      vCalTime+="<input type='text' class='sat' name='second' maxlength=2 value=\""+Cal.Seconds+"\" onchange=\"javascript:if(eval(this.value)<10) this.value='0'+String(eval(this.value));winMain.Cal.SetSecond(this.value)\">";
		}
		
    vCalTime+="<input type='button' class='dugmeOk' value='ok' onclick='podesiVreme();window.close()'>";
		if (TimeMode==12)
		{
		  //ako je odabran AM selektuj stavku u kombu
	   if(Cal.AMorPM=='AM')
		 {var SelectAm ="Selected"; var SelectPm =""}
			else
      {var SelectPm ="Selected";var SelectAm ="";}

			vCalTime+="<select name=\"ampm\" class='cmbAMPM' onchange=\"javascript:winMain.Cal.SetAmPm(this.options[this.selectedIndex].value);\">";
			vCalTime+="<option "+SelectAm+" value=\"AM\">AM</option>";
			vCalTime+="<option "+SelectPm+" value=\"PM\">PM<option>";
			vCalTime+="</select>";
		}	
		vCalTime+="\n</td>\n</tr>";
		docCal.write(vCalTime);
	}	
	//end time picker
	docCal.writeln("\n</table>");


docCal.writeln("</form></body></html>");
	docCal.close();
}

//generise celiju tabele u kalendaru sa vrednoscu datuma i backgorund bojom u zavisnosti da li smo je selektovali
function GenCell(pValue,pHighLight,pColor)
{
	var PValue;
	var PCellStr;
	var vColor;
	var vHLstr1;//HighLight string
	var vHlstr2;
	var vTimeStr;
	
	if (pValue==null)
		PValue="";
	else
		PValue=pValue;
	
	if (pColor!=null)
		vColor="class=\""+pColor+"\"";
	else
		vColor="";	
	
  if ((pHighLight!=null)&&(pHighLight))
		{vHLstr1="color='red'><b>";vHLstr2="</b>";}
	else
		{vHLstr1=">";vHLstr2="";}	
	
	if (Cal.ShowCal)
	{
	//dodeljuje se hidden polju odgovarajuca vreme i datum u formatu definisanog za bazu 
	HiddenPolje="winMain.document.getElementById('"+Cal.CtrlHide+"').value='"+Cal.FormatDate(PValue,1)+"'";
	//kreira text u text polju za ipis a sam text(vreme i datum je prikazan u formatu za ispis za pregled na ekranu)
	if(Cal.ShowTime)
  PCellStr="<td "+vColor+" width="+CellWidth+" align='center'><a href=\"javascript:winMain.Cal.Date="+PValue+";winMain.RenderCal();\">"+PValue+"</a>"+vHLstr2+"</td>";
	else
	PCellStr="<td "+vColor+" width="+CellWidth+" align='center'><a href=\"javascript:winMain.document.getElementById('"+Cal.Ctrl+"').value='"+Cal.FormatDate(PValue,0)+"';"+HiddenPolje+";window.close();\">"+PValue+"</a>"+vHLstr2+"</td>";
	
	return PCellStr;
  }
}
//konstruktor kalendara
function Calendar(pDate,pCtrl)
{
	//Properties
	this.Date=pDate.getDate();//selected date
	this.Month=pDate.getMonth();//selected month number
	this.Year=pDate.getFullYear();//selected year in 4 digits
  this.Minutes=''
  this.Hours=''
  this.Seconds=''
	this.MyWindow=winCal;
	this.Ctrl=pCtrl;
	this.Format="ddMMyyyy";
	
	this.CtrlHide=''
	this.FormatHide=''
	
	this.ShowTime=false;
	this.ShowCal=false;
	this.AMorPM='';
	
	this.pathcss=''
	this.PocetnaGodina='';
	this.BrojGodina='';
}

//index meseca koji je selektovan
function GetMonthIndex(shortMonthName)
{
	for (i=0;i<12;i++)
	{
		if (MonthName[i].substring(0,3).toUpperCase()==shortMonthName.toUpperCase())
		{	return i;}
	}
}
Calendar.prototype.GetMonthIndex=GetMonthIndex;

//promena godine;;mesec iz tekuce godine postavlja na decembar ako je pre toga bio u narednoj na januar;;;za sve ostale godine mesec se postavlja na januar
function changeYear(year)
{
Cal.Year=year
//if(dtToday.getFullYear()==Cal.Year && Cal.Month==0) Cal.Month=11;else Cal.Month=0;
RenderCal();
}
Calendar.prototype.changeYear=changeYear;

//prebacuje izmedju meseci	
function SwitchMth(intMth)
{	Cal.Month=intMth;}
Calendar.prototype.SwitchMth=SwitchMth;

//podesava cas
function SetHour(intHour)
{	

  if(String(intHour)==''){this.Hours=''}
  else
  {
  	var MaxHour;
  	var MinHour;
  	if (TimeMode==24)
  	{	MaxHour=23;MinHour=0}
  	else if (TimeMode==12)
  	{	MaxHour=12;MinHour=1
     //ako je trenutno vreme vece ili jednako sa 12 znaci da smo u pm opsegu
      if(intHour>=MaxHour)
      {
        intHour=intHour-MaxHour;
        Cal.AMorPM="PM"
      }else Cal.AMorPM="AM" //ako je manje od 12 znaci da smo u AM opsegu  
    }
  	else
  		alert("TimeMode can only be 12 or 24");	
      
      //ovo je slucaj kada je u kalendaru setovan pm
   		if ((TimeMode==12) && (this.AMorPM=="PM"))
  		{
  		    //ako je 12 po pm onda je stvarno 12 popodne
  		  	if (parseInt(intHour,10)==12)
  				Cal.Hours=12;
  			else	if(parseInt(intHour,10)!=0) Cal.Hours=parseInt(intHour,10); else Cal.Hours=12; 
  		}	
  		else if ((TimeMode==12) && (this.AMorPM=="AM")) //ako je trenutno u kalendaru odabran AM
  		{	
  		    //ako je 12 po AM do je onda ponoc
  				if (parseInt(intHour,10)==12)
  				Cal.Hours="00";
  			  else	if(parseInt(intHour,10)!=0)
          {
            //dodajemo nulu ako je manji od 10 zbog upisa u bazu
            if(parseInt(intHour,10)<10) intHour="0"+parseInt(intHour,10);
            Cal.Hours=intHour;
          }else if(parseInt(intHour,10)==0) Cal.Hours="12"
   		}
  		else if (TimeMode==24) //ovo je slucaj za 24 casovni mode
  		{
        if(parseInt(intHour,10)<10) intHour="0"+parseInt(intHour,10);
        this.Hours=intHour;
  		}
      	
   }
}
Calendar.prototype.SetHour=SetHour;

//podesava minut tekuceg objekta
function SetMinute(intMin)
{
  if(intMin=='') this.Minutes='';
  else
  {   
  	var MinExp=new RegExp("^\\d\\d$");
  	if (MinExp.test(intMin) && (intMin<60))
  		Cal.Minutes=intMin;
  }
}
Calendar.prototype.SetMinute=SetMinute;

//podesava sekund tekuceg objekta
function SetSecond(intSec)
{	
  if(intSec=='') this.Seconds='' 
  else
  {
	   var SecExp=new RegExp("^\\d\\d$");
	   if (SecExp.test(intSec) && (intSec<60))
		 Cal.Seconds=intSec;
  }
}
Calendar.prototype.SetSecond=SetSecond;
//setuje AM ili PM i vrsi obradu vremena u zavisnoti sta smo odabrali
function SetAmPm(pvalue)
{
	Cal.AMorPM=pvalue;
	if(pvalue=='PM') {Cal.SetHour(eval(eval(Cal.Hours)+12));}
    else if(pvalue=='AM' && eval(Cal.Hours)==12) Cal.SetHour(0);
    else if(Cal.Hours!=0 && (pvalue=='AM') && eval(Cal.Hours)<12) Cal.SetHour(Cal.Hours); else if((Cal.Hours<24) && (Cal.Hours>=0) && (!(pvalue=='AM' || pvalue=='PM'))) {Cal.SetHour(Cal.Hours);}
	  
}
Calendar.prototype.SetAmPm=SetAmPm;

function getShowHour()
{
	var finalHour;
    if (TimeMode==12)
    {
    	if (parseInt(this.Hours,10)==0)
		{
			this.AMorPM="AM";
			finalHour=parseInt(this.Hours,10)+12;	
		}
		else if (parseInt(this.Hours,10)==12)
		{
			this.AMorPM="PM";
			finalHour=12;
		}		
		else if (this.Hours>12)
		{
			this.AMorPM="PM";
			if ((this.Hours-12)<10)
				finalHour="0"+((parseInt(this.Hours,10))-12);
			else
				finalHour=parseInt(this.Hours,10)-12;	
		}
		else
		{
			this.AMorPM="AM";
			if (this.Hours<10)
				finalHour="0"+parseInt(this.Hours,10);
			else
				finalHour=this.Hours;	
		}
	}
	else if (TimeMode==24)
	{
		if (this.Hours<10)
			finalHour="0"+parseInt(this.Hours,10);
		else	
			finalHour=this.Hours;
	}	
	return finalHour;	
}				
Calendar.prototype.getShowHour=getShowHour;		

function GetMonthName(IsLong)
{
	var Month=MonthName[this.Month];
	if (IsLong)
		return Month;
	else
		return Month.substr(0,3);
}
Calendar.prototype.GetMonthName=GetMonthName;

function GetMonDays()//Get number of days in a month
{
	var DaysInMonth=[31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];
	if (this.IsLeapYear())
	{
		DaysInMonth[1]=29;
	}	
	return DaysInMonth[this.Month];	
}
Calendar.prototype.GetMonDays=GetMonDays;

//prestupna godina
function IsLeapYear()
{
	if ((this.Year%4)==0)
	{
		if ((this.Year%100==0) && (this.Year%400)!=0)
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	else
	{
		return false;
	}
}
Calendar.prototype.IsLeapYear=IsLeapYear;

//funkcija formatira datum i vreme prema odredjenom formatu za ispis(radi i za text i za hidden polje)
function FormatDate(pDate,hide)
{

	slovo='';
	datum='';
	//format tekuceg objekta moze da bude za hiden polje ili za text polje za pregled datuma i vremena
	if(hide) Format=this.FormatHide 
	else Format=this.Format
	
		i=0
		while(i<Format.toUpperCase().length)
		{	
		  //ako je formatu imamo definicu za cas onda vrsimo obradu u zavisnosti da li je pm ili am
      if(Format.toUpperCase().substr(i,1)=='H')
			{
        if(this.AMorPM=="PM" && this.Hours!=12)
				datum=datum+eval(this.Hours+12);//ako je pm onda na vrednost u input polju dodajemo 12 
				else if(this.AMorPM=='AM' && this.Hours==12)
				datum=datum+"00" //ako je 12 po am onda je to ponoc
        else
				{ 
          datum=datum+this.Hours;
				}
        i=i+1
			}
			//ako u formatu imamo definicu za minut
			else if(Format.toUpperCase().substr(i,1)=='I')
			{
			 	datum=datum+this.Minutes;
				i=i+1
			}
			//ako u formatu imamo definiciju za sek
			else if(Format.toUpperCase().substr(i,1)=='S')
			{
			 	datum=datum+this.Seconds;
				i=i+1
			}
			//ako u formatu imamo definicju za godinu
			else if(Format.toUpperCase().substr(i,4)=='YYYY') 
			{
				datum=datum+this.Year;
				i=i+4;
			}
			//ako u formatu imamo definiciju za dan
			else if(Format.toUpperCase().substr(i,2)=='DD')
			{
				if(pDate<10) pDate="0"+pDate;
				datum=datum+pDate;
				i=i+2;
			}
			//ako formatu imamo definiciju za mesec
			else if(Format.toUpperCase().substr(i,2)=='MM')
			{
				if((this.Month+1)<10) Month="0"+(this.Month+1);else Month=this.Month+1 
				datum=datum+Month;
				i=i+2
			}
			else 
			{
			 //ovde hvata separatore
				datum=datum+Format.toUpperCase().substr(i,1);
				i=i+1;
			}
			
		}

		return(datum);
}

Calendar.prototype.FormatDate=FormatDate;	

