
(function($){var today=new Date();var months='Janar,Shkurt,Mars,Prill,Maj,Qershor,Korrik,Gusht,Shtator,Tetor,Nentor,Dhjetor'.split(',');var monthlengths='31,28,31,30,31,30,31,31,30,31,30,31'.split(',');var dateRegEx=/^\d{1,2}\/\d{1,2}\/\d{2}|\d{4}$/;var yearRegEx=/^\d{4,4}$/;$.fn.simpleDatepicker=function(options){var opts=jQuery.extend({},jQuery.fn.simpleDatepicker.defaults,options);setupYearRange();function setupYearRange(){var startyear,endyear;if(opts.startdate.constructor==Date){startyear=opts.startdate.getFullYear();}else if(opts.startdate){if(yearRegEx.test(opts.startdate)){startyear=opts.startdate;}else if(dateRegEx.test(opts.startdate)){opts.startdate=new Date(opts.startdate);startyear=opts.startdate.getFullYear();}else{startyear=today.getFullYear();}}else{startyear=today.getFullYear();}
opts.startyear=startyear;if(opts.enddate.constructor==Date){endyear=opts.enddate.getFullYear();}else if(opts.enddate){if(yearRegEx.test(opts.enddate)){endyear=opts.enddate;}else if(dateRegEx.test(opts.enddate)){opts.enddate=new Date(opts.enddate);endyear=opts.enddate.getFullYear();}else{endyear=today.getFullYear();}}else{endyear=today.getFullYear();}
opts.endyear=endyear;}
function newDatepickerHTML(){var years=[];for(var i=0;i<=opts.endyear-opts.startyear;i++)years[i]=opts.startyear+i;var table=jQuery('<table class="datepicker2" cellpadding="0" cellspacing="0"></table>');table.append('<thead></thead>');table.append('<tfoot></tfoot>');table.append('<tbody></tbody>');var monthselect='<select name="month">';for(var i in months)monthselect+='<option value="'+i+'">'+months[i]+'</option>';monthselect+='</select>';var yearselect='<select name="year">';for(var i in years)yearselect+='<option>'+years[i]+'</option>';yearselect+='</select>';jQuery("thead",table).append('<tr class="controls"><th colspan="7"><span class="prevMonth">&laquo;</span>&nbsp;'+monthselect+yearselect+'&nbsp;<span class="nextMonth">&raquo;</span></th></tr>');jQuery("thead",table).append('<tr class="days"><th>Di</th><th>He</th><th>Ma</th><th>Me</th><th>En</th><th>Pr</th><th>Sh</th></tr>');jQuery("tfoot",table).append('<tr><td colspan="2"><span class="today">sot</span></td><td colspan="3">&nbsp;</td><td colspan="2"><span class="close">Mbyll</span></td></tr>');for(var i=0;i<6;i++)jQuery("tbody",table).append('<tr><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr>');return table;}
function findPosition(obj){var curleft=curtop=0;if(obj.offsetParent){do{curleft+=obj.offsetLeft;curtop+=obj.offsetTop;}while(obj=obj.offsetParent);return[curleft,curtop];}else{return false;}}
function loadMonth(e,el,datepicker,chosendate){var mo=jQuery("select[name=month]",datepicker).get(0).selectedIndex;var yr=jQuery("select[name=year]",datepicker).get(0).selectedIndex;var yrs=jQuery("select[name=year] option",datepicker).get().length;if(e&&jQuery(e.target).hasClass('prevMonth')){if(0==mo&&yr){yr-=1;mo=11;jQuery("select[name=month]",datepicker).get(0).selectedIndex=11;jQuery("select[name=year]",datepicker).get(0).selectedIndex=yr;}else{mo-=1;jQuery("select[name=month]",datepicker).get(0).selectedIndex=mo;}}else if(e&&jQuery(e.target).hasClass('nextMonth')){if(11==mo&&yr+1<yrs){yr+=1;mo=0;jQuery("select[name=month]",datepicker).get(0).selectedIndex=0;jQuery("select[name=year]",datepicker).get(0).selectedIndex=yr;}else{mo+=1;jQuery("select[name=month]",datepicker).get(0).selectedIndex=mo;}}
if(0==mo&&!yr)jQuery("span.prevMonth",datepicker).hide();else jQuery("span.prevMonth",datepicker).show();if(yr+1==yrs&&11==mo)jQuery("span.nextMonth",datepicker).hide();else jQuery("span.nextMonth",datepicker).show();var cells=jQuery("tbody td",datepicker).unbind().empty().removeClass('date');var m=jQuery("select[name=month]",datepicker).val();var y=jQuery("select[name=year]",datepicker).val();var d=new Date(y,m,1);var startindex=d.getDay();var numdays=monthlengths[m];var dataString=y+"-"+m;if(1==m&&((y%4==0&&y%100!=0)||y%400==0))numdays=29;if(opts.startdate.constructor==Date){var startMonth=opts.startdate.getMonth();var startDate=opts.startdate.getDate();}
if(opts.enddate.constructor==Date){var endMonth=opts.enddate.getMonth();var endDate=opts.enddate.getDate();}
			var dataesotme= new Date();			
			
			var datasotmeString=dataesotme.getFullYear()+"-"+dataesotme.getMonth();
			var datasotmevit=dataesotme.getFullYear();
			var datasotmemuaj=dataesotme.getMonth();
			
			
			// walk through the index and populate each cell, binding events too
			for (var i = 0; i < numdays; i++) {
			
				var cell = jQuery(cells.get(i+startindex)).removeClass('chosen');
				
				cell=jQuery(cells.get(i+startindex)).removeClass('unselected_month');
				
				// test that the date falls within a range, if we have a range
				if ( 
					(yr || ((!startDate && !startMonth) || ((i+1 >= startDate && mo == startMonth) || mo > startMonth))) &&
					(yr + 1 < yrs || ((!endDate && !endMonth) || ((i+1 <= endDate && mo == endMonth) || mo < endMonth)))) {

					if(dataString==datasotmeString)
					{
						if((i+1)>=dataesotme.getDate())
						{
						cell
							.text(i+1)
							.addClass('date')
							.hover(
								function () { jQuery(this).addClass('over'); },
								function () { jQuery(this).removeClass('over'); })
							.click(function () {
								var chosenDateObj = new Date(jQuery("select[name=year]", datepicker).val(), jQuery("select[name=month]", datepicker).val(), jQuery(this).text());
								closeIt(el, datepicker, chosenDateObj);
								
							});
						}
						else
						{
							cell
							.text(i+1)
							.addClass('unselected_month')
							.click(function () {
								var chosenDateObj = new Date(jQuery("select[name=year]", datepicker).val(), jQuery("select[name=month]", datepicker).val(), jQuery(this).text());
							});
						}
					}
					else 						
					{
						if((y==datasotmevit && m < datasotmemuaj)|| (y < datasotmevit))
												{
							cell
							.text(i+1)
							.addClass('unselected_month')
							.click(function () {
								var chosenDateObj = new Date(jQuery("select[name=year]", datepicker).val(), jQuery("select[name=month]", datepicker).val(), jQuery(this).text());
							});
						}
						else 
						{
						cell
							.text(i+1)
							.addClass('date')
							.hover(
								function () { jQuery(this).addClass('over'); },
								function () { jQuery(this).removeClass('over'); })
							.click(function () {
								var chosenDateObj = new Date(jQuery("select[name=year]", datepicker).val(), jQuery("select[name=month]", datepicker).val(), jQuery(this).text());
								closeIt(el, datepicker, chosenDateObj);
								
							});
						}
					}
						
					// highlight the previous chosen date
					if (i+1 == chosendate.getDate() && m == chosendate.getMonth() && y == chosendate.getFullYear()) cell.addClass('chosen');
				}
			}
		}
function closeIt(el,datepicker,dateObj){if(dateObj&&dateObj.constructor==Date)
el.val(jQuery.fn.simpleDatepicker.formatOutput(dateObj));datepicker.remove();datepicker=null;jQuery.data(el.get(0),"simpleDatepicker",{hasDatepicker:false});}
return this.each(function(){if(jQuery(this).is('input')&&'text'==jQuery(this).attr('type')){var datepicker;jQuery.data(jQuery(this).get(0),"simpleDatepicker",{hasDatepicker:false});jQuery(this).click(function(ev){var $this=jQuery(ev.target);if(false==jQuery.data($this.get(0),"simpleDatepicker").hasDatepicker){jQuery.data($this.get(0),"simpleDatepicker",{hasDatepicker:true});var initialDate=$this.val();if(initialDate&&dateRegEx.test(initialDate)){var chosendate=new Date(initialDate);}else if(opts.chosendate.constructor==Date){var chosendate=opts.chosendate;}else if(opts.chosendate){var chosendate=new Date(opts.chosendate);}else{var chosendate=today;}
datepicker=newDatepickerHTML();jQuery("body").prepend(datepicker);var elPos=findPosition($this.get(0));var x=(parseInt(opts.x)?parseInt(opts.x):0)+elPos[0];var y=(parseInt(opts.y)?parseInt(opts.y):0)+elPos[1];jQuery(datepicker).css({position:'absolute',left:x,top:y});jQuery("span",datepicker).css("cursor","pointer");jQuery("select",datepicker).bind('change',function(){loadMonth(null,$this,datepicker,chosendate);});jQuery("span.prevMonth",datepicker).click(function(e){loadMonth(e,$this,datepicker,chosendate);});jQuery("span.nextMonth",datepicker).click(function(e){loadMonth(e,$this,datepicker,chosendate);});jQuery("span.today",datepicker).click(function(){closeIt($this,datepicker,new Date());});jQuery("span.close",datepicker).click(function(){closeIt($this,datepicker);});jQuery("select[name=month]",datepicker).get(0).selectedIndex=chosendate.getMonth();jQuery("select[name=year]",datepicker).get(0).selectedIndex=Math.max(0,chosendate.getFullYear()-opts.startyear);loadMonth(null,$this,datepicker,chosendate);}});}});};jQuery.fn.simpleDatepicker.formatOutput=function(dateObj){var month="";var day="";if((dateObj.getMonth()+1)<10)
{month="0";}
if(dateObj.getDate()<10)
{day="0";}
return dateObj.getFullYear()+"-"+month+(dateObj.getMonth()+1)+"-"+day+dateObj.getDate();};jQuery.fn.simpleDatepicker.defaults={chosendate:today,startdate:today.getFullYear(),enddate:today.getFullYear()+1,x:18,y:18};})(jQuery);
