/**
*
* JQuery fn.gantt gantt chart plugin v0.2
* Copyright 2011 by Marek Bielańczuk
* http://mbielanczuk.com/
* Released under the MIT and GPL Licenses.
*
* Date: Tue Jun 21 00:18:16 +0200 2011
*/
jQuery.fn.gantt=function(w){var x={source:null,itemsPerPage:7,months:["Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień"],dow:["N","Pn","Wt","Śr","Cz","Pt","So"],startPos:new Date()};var w=jQuery.extend(x,w);var y=null;var z=0;var A=0;var B=0;var C=0;var D=0;var E=null;var F=null;var G=function(r){if(!w.source)return;jQuery.getJSON(w.source,function(a){y=a;C=y.length;A=Math.ceil(C/w.itemsPerPage);B=C-(Math.floor(C/w.itemsPerPage)*w.itemsPerPage);E=H.getMinDate();F=H.getMaxDate();var b=s();r.append(b);u();v();r.css({height:jQuery(".fn-gantt").height()+"px"});jQuery('.fn-gantt .dataPanel').css({'margin-left':D+'px'});var d=Math.round((w.startPos/1000-E/1000)/86400)-2;if(d>0){navigate(-1*d*H.getCellSize())}else{repositionLabel()}});var s=function(){var b=jQuery('
').append(jQuery('').css("height",H.getCellSize()*4+"px").css("width","100%"));jQuery.each(y,function(i,a){if(i>=z*w.itemsPerPage&&i<(z*w.itemsPerPage+w.itemsPerPage)){b.append(jQuery('').append(jQuery('').html(a.name))).append(jQuery('').append(jQuery('').html(a.desc)))}});var c=jQuery('').append(jQuery('').html('<').click(function(){navigatePage(-1)})).append(jQuery('').append(jQuery('').html(z+1+' of '+A))).append(jQuery('').html('>').click(function(){navigatePage(1)})).append(jQuery('').html('|<').click(function(){navigate('begin')})).append(jQuery('').html('<<').click(function(){navigate(H.getCellSize()*7)})).append(jQuery('').html('<').click(function(){navigate(H.getCellSize())})).append(jQuery('').html('>').click(function(){navigate(H.getCellSize()*-1)})).append(jQuery('').html('>>').click(function(){navigate(H.getCellSize()*-7)})).append(jQuery('').html('>|').click(function(){navigate('end')}));var d=jQuery('');d.append(jQuery('').append(b).append(jQuery('').append(t()))).append(jQuery('').append(c));return d};var t=function(){var e=H.parseDateRange(E,F);var f=jQuery("");var g=e[0].getFullYear();var h=0;var k=jQuery("");var l=e[0].getMonth();var m=0;var n=jQuery('');var o=jQuery('');var p=new Date();p=new Date(p.getFullYear(),p.getMonth(),p.getDate());jQuery.each(e,function(i,a){if(a.getFullYear()!=g){f.append(jQuery('').css("width",H.getCellSize()*h+"px").append(jQuery("").html(g)));g=a.getFullYear();h=0}h++;if(a.getMonth()!=l){k.append(jQuery('').css("width",H.getCellSize()*m+"px").append(jQuery("").html(w.months[l])));l=a.getMonth();m=0}m++;var b=(p-a==0)?' today':(w.hollydays&&w.hollydays.join().indexOf(a.getTime())>-1)?"hollyday":a.getDay()==6?"sa":(a.getDay()==0?"sn":"wd");n.append(jQuery('').html(a.getDate()));o.append(jQuery('').html(w.dow[a.getDay()]))});f.append(jQuery('').css("width",H.getCellSize()*h+"px").append(jQuery("").html(g)));k.append(jQuery('').css("width",H.getCellSize()*m+"px").append(jQuery("").html(w.months[l])));var q=jQuery("").css("width",e.length*H.getCellSize()+"px");q.append(f);q.append(k);q.append(n);q.append(o);jQuery.each(y,function(i,c){if(i>=z*w.itemsPerPage&&i<(z*w.itemsPerPage+w.itemsPerPage)){var d=jQuery('');jQuery.each(e,function(j,a){var b=(p-a==0)?' today':a.getDay()==6?' sa':(a.getDay()==0?' sn':'');d.append(jQuery('
').html(a))});q.append(d)}});return q};createProgressBar=function(b,c,d){var f=H.getCellSize();var g=H.getProgressBarMargin()||0;var h=jQuery("
").addClass(c).css({width:((f*++b)-g)});if(d){h.mouseover(function(e){var a=jQuery("
").html(d);jQuery("body").append(a);a.css('left',e.pageX);a.css('top',e.pageY);a.show()}).mouseout(function(){jQuery(".fn-gantt-hint").remove()}).mousemove(function(e){jQuery('.fn-gantt-hint').css('left',e.pageX);jQuery('.fn-gantt-hint').css('top',e.pageY+15)})}return h};var u=function(){if(w.hollydays){jQuery.each(y,function(i,b){jQuery.each(w.hollydays,function(j,a){jQuery('#d'+i+'-'+H.genId(H.dateDeserialize(a).getTime())).addClass("hollyday")})})}};var v=function(){jQuery.each(y,function(i,c){if(i>=z*w.itemsPerPage&&i<(z*w.itemsPerPage+w.itemsPerPage)){jQuery.each(c.values,function(j,a){var b=createProgressBar(Math.floor(((Date.parse(H.dateDeserialize(a.to))/1000)-(Date.parse(H.dateDeserialize(a.from))/1000))/86400),a.customClass?a.customClass:'',a.desc?a.desc:'');jQuery('#d'+i+'-'+H.genId(H.dateDeserialize(a.from).getTime())).append(b)})}})};navigate=function(a){switch(a){case'begin':jQuery('.fn-gantt .dataPanel').animate({'margin-left':'0px'},'fast',function(){repositionLabel()});break;case'end':var b=jQuery('.fn-gantt .dataPanel').width()-jQuery('.fn-gantt .rightPanel').width();jQuery('.fn-gantt .dataPanel').animate({'margin-left':'-'+b+'px'},'fast',function(){repositionLabel()});break;default:var c=(jQuery('.fn-gantt .dataPanel').width()-jQuery('.fn-gantt .rightPanel').width())*-1;var d=jQuery('.fn-gantt .dataPanel').css('margin-left').replace('px','');var a=parseInt(d)+a;if(a<=0&&a>=c)jQuery('.fn-gantt .dataPanel').animate({'margin-left':a+'px'},'fast',repositionLabel);break}};navigatePage=function(a){if((z+a)>=0&&(z+a)
f.offset.left&&b.offset.leftf.offset.left?b.offset.left:f.offset.left,right:b.offset.left+b.widthd)jQuery(a).children(".label").css("margin-left",e+(c.right-c.left)/2-d/2+"px")}})}};var H=new function(){this.getMaxDate=function(){var c=null;jQuery.each(y,function(i,b){jQuery.each(b.values,function(i,a){c=cH.dateDeserialize(a.from)||c==null?H.dateDeserialize(a.from):c})});c.setDate(c.getDate()-2);if(c.getDate()>=27)c.setDate(c.getDate()-4);return c};this.parseDateRange=function(a,b){var c=new Date(a.getTime());var d=new Date(b.getTime());var e=new Array();var i=0;do{e[i++]=new Date(c.getTime());c.setDate(c.getDate()+1)}while(c<=b);return e};this.dateDeserialize=function(a){return eval('new'+a.replace(/\//g,' '))};this.genId=function(a){var t=Math.floor(a/86400000);return t*86400000};var f=null;this.getCellSize=function(){if(!f){jQuery("body").append(jQuery(""));f=jQuery('#measureCellWidth .row').height();jQuery('#measureCellWidth').empty().remove()}return f};this.getPageHeight=function(){return z+1==A?B*H.getCellSize():w.itemsPerPage*H.getCellSize()};var g=null;this.getProgressBarMargin=function(){if(!g){jQuery("body").append(jQuery(""));g=parseInt(jQuery('#measureBarWidth .fn-gantt .rightPanel .day .bar').css("margin-left").replace("px",""));g+=parseInt(jQuery('#measureBarWidth .fn-gantt .rightPanel .day .bar').css("margin-right").replace("px",""));jQuery('#measureBarWidth').empty().remove()}return g}};jQuery(this).empty();G(jQuery(this))};