/**
* Cookie plugin
*
* Copyright (c) 2006 Klaus Hartl (stilbuero.de)
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
*
*/
/**
* Create a cookie with the given name and value and other optional parameters.
*
* @example $.cookie('the_cookie', 'the_value');
* @desc Set the value of a cookie.
* @example $.cookie('the_cookie', 'the_value', { expires: 7, path: '/', domain: 'jquery.com', secure: true });
* @desc Create a cookie with all available options.
* @example $.cookie('the_cookie', 'the_value');
* @desc Create a session cookie.
* @example $.cookie('the_cookie', null);
* @desc Delete a cookie by passing null as value. Keep in mind that you have to use the same path and domain
* used when the cookie was set.
*
* @param String name The name of the cookie.
* @param String value The value of the cookie.
* @param Object options An object literal containing key/value pairs to provide optional cookie attributes.
* @option Number|Date expires Either an integer specifying the expiration date from now on in days or a Date object.
* If a negative value is specified (e.g. a date in the past), the cookie will be deleted.
* If set to null or omitted, the cookie will be a session cookie and will not be retained
* when the the browser exits.
* @option String path The value of the path atribute of the cookie (default: path of page that created the cookie).
* @option String domain The value of the domain attribute of the cookie (default: domain of page that created the cookie).
* @option Boolean secure If true, the secure attribute of the cookie will be set and the cookie transmission will
* require a secure protocol (like HTTPS).
* @type undefined
*
* @name $.cookie
* @cat Plugins/Cookie
* @author Klaus Hartl/klaus.hartl@stilbuero.de
*/
/**
* Get the value of a cookie with the given name.
*
* @example $.cookie('the_cookie');
* @desc Get the value of a cookie.
*
* @param String name The name of the cookie.
* @return The value of the cookie.
* @type String
*
* @name $.cookie
* @cat Plugins/Cookie
* @author Klaus Hartl/klaus.hartl@stilbuero.de
*/
jQuery.cookie = function(name, value, options) {
if (typeof value != 'undefined') { // name and value given, set cookie
options = options || {};
if (value === null) {
value = '';
options = $.extend({}, options); // clone object since it's unexpected behavior if the expired property were changed
options.expires = -1;
}
var expires = '';
if (options.expires && (typeof options.expires == 'number' || options.expires.toUTCString)) {
var date;
if (typeof options.expires == 'number') {
date = new Date();
date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
} else {
date = options.expires;
}
expires = '; expires=' + date.toUTCString(); // use expires attribute, max-age is not supported by IE
}
// NOTE Needed to parenthesize options.path and options.domain
// in the following expressions, otherwise they evaluate to undefined
// in the packed version for some reason...
var path = options.path ? '; path=' + (options.path) : '';
var domain = options.domain ? '; domain=' + (options.domain) : '';
var secure = options.secure ? '; secure' : '';
document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
} else { // only name given, get cookie
var cookieValue = null;
if (document.cookie && document.cookie != '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) == (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
};
// ColorBox v1.3.17.2 - a full featured, light-weight, customizable lightbox based on jQuery 1.3+
// Copyright (c) 2011 Jack Moore - jack@colorpowered.com
// Licensed under the MIT license: http://www.opensource.org/licenses/mit-license.php
(function(a,b,c){function bc(b){if(!U){P=b,_(),y=a(P),Q=0,K.rel!=="nofollow"&&(y=a("."+g).filter(function(){var b=a.data(this,e).rel||this.rel;return b===K.rel}),Q=y.index(P),Q===-1&&(y=y.add(P),Q=y.length-1));if(!S){S=T=!0,r.show();if(K.returnFocus)try{P.blur(),a(P).one(l,function(){try{this.focus()}catch(a){}})}catch(c){}q.css({opacity:+K.opacity,cursor:K.overlayClose?"pointer":"auto"}).show(),K.w=Z(K.initialWidth,"x"),K.h=Z(K.initialHeight,"y"),X.position(),o&&z.bind("resize."+p+" scroll."+p,function(){q.css({width:z.width(),height:z.height(),top:z.scrollTop(),left:z.scrollLeft()})}).trigger("resize."+p),ba(h,K.onOpen),J.add(D).hide(),I.html(K.close).show()}X.load(!0)}}function bb(){var a,b=f+"Slideshow_",c="click."+f,d,e,g;K.slideshow&&y[1]?(d=function(){F.text(K.slideshowStop).unbind(c).bind(j,function(){if(Q "),b.open=!0}c&&(b.onComplete=c),f.each(function(){a.data(this,e,a.extend({},a.data(this,e)||d,b)),a(this).addClass(g)}),(a.isFunction(b.open)&&b.open.call(f)||b.open)&&bc(f[0]);return f},X.init=function(){z=a(c),r=Y().attr({id:e,"class":n?f+(o?"IE6":"IE"):""}),q=Y("Overlay",o?"position:absolute":"").hide(),s=Y("Wrapper"),t=Y("Content").append(A=Y("LoadedContent","width:0; height:0; overflow:hidden"),C=Y("LoadingOverlay").add(Y("LoadingGraphic")),D=Y("Title"),E=Y("Current"),G=Y("Next"),H=Y("Previous"),F=Y("Slideshow").bind(h,bb),I=Y("Close")),s.append(Y().append(Y("TopLeft"),u=Y("TopCenter"),Y("TopRight")),Y(!1,"clear:left").append(v=Y("MiddleLeft"),t,w=Y("MiddleRight")),Y(!1,"clear:left").append(Y("BottomLeft"),x=Y("BottomCenter"),Y("BottomRight"))).children().children().css({"float":"left"}),B=Y(!1,"position:absolute; width:9999px; visibility:hidden; display:none"),a("body").prepend(q,r.append(s,B)),t.children().hover(function(){a(this).addClass("hover")},function(){a(this).removeClass("hover")}).addClass("hover"),L=u.height()+x.height()+t.outerHeight(!0)-t.height(),M=v.width()+w.width()+t.outerWidth(!0)-t.width(),N=A.outerHeight(!0),O=A.outerWidth(!0),r.css({"padding-bottom":L,"padding-right":M}).hide(),G.click(function(){X.next()}),H.click(function(){X.prev()}),I.click(function(){X.close()}),J=G.add(H).add(E).add(F),t.children().removeClass("hover"),q.click(function(){K.overlayClose&&X.close()}),a(b).bind("keydown."+f,function(a){var b=a.keyCode;S&&K.escKey&&b===27&&(a.preventDefault(),X.close()),S&&K.arrowKey&&y[1]&&(b===37?(a.preventDefault(),H.click()):b===39&&(a.preventDefault(),G.click()))})},X.remove=function(){r.add(q).remove(),a("."+g).removeData(e).removeClass(g)},X.position=function(a,c){function g(a){u[0].style.width=x[0].style.width=t[0].style.width=a.style.width,C[0].style.height=C[1].style.height=t[0].style.height=v[0].style.height=w[0].style.height=a.style.height}var d=0,e=0;z.unbind("resize."+f),r.hide(),K.fixed&&!o?r.css({position:"fixed"}):(d=z.scrollTop(),e=z.scrollLeft(),r.css({position:"absolute"})),K.right!==!1?e+=Math.max(z.width()-K.w-O-M-Z(K.right,"x"),0):K.left!==!1?e+=Z(K.left,"x"):e+=Math.round(Math.max(z.width()-K.w-O-M,0)/2),K.bottom!==!1?d+=Math.max(b.documentElement.clientHeight-K.h-N-L-Z(K.bottom,"y"),0):K.top!==!1?d+=Z(K.top,"y"):d+=Math.round(Math.max(b.documentElement.clientHeight-K.h-N-L,0)/2),r.show(),a=r.width()===K.w+O&&r.height()===K.h+N?0:a||0,s[0].style.width=s[0].style.height="9999px",r.dequeue().animate({width:K.w+O,height:K.h+N,top:d,left:e},{duration:a,complete:function(){g(this),T=!1,s[0].style.width=K.w+O+M+"px",s[0].style.height=K.h+N+L+"px",c&&c(),setTimeout(function(){z.bind("resize."+f,X.position)},1)},step:function(){g(this)}})},X.resize=function(a){if(S){a=a||{},a.width&&(K.w=Z(a.width,"x")-O-M),a.innerWidth&&(K.w=Z(a.innerWidth,"x")),A.css({width:K.w}),a.height&&(K.h=Z(a.height,"y")-N-L),a.innerHeight&&(K.h=Z(a.innerHeight,"y"));if(!a.innerHeight&&!a.height){var b=A.wrapInner("
").children();K.h=b.height(),b.replaceWith(b.children())}A.css({height:K.h}),X.position(K.transition==="none"?0:K.speed)}},X.prep=function(b){function h(){K.h=K.h||A.height(),K.h=K.mh&&K.mh1?(typeof K.current=="string"&&E.html(K.current.replace("{current}",Q+1).replace("{total}",i)).show(),G[K.loop||Q ")[0].src=h),$(c)&&(a(" ")[0].src=c))):J.hide(),K.iframe?(k=a("").addClass(f+"Iframe")[0],K.fastIframe?l():a(k).one("load",l),k.name=f+ +(new Date),k.src=K.href,K.scrolling||(k.scrolling="no"),n&&(k.frameBorder=0,k.allowTransparency="true"),a(k).appendTo(A).one(m,function(){k.src="//about:blank"})):l(),K.transition==="fade"?r.fadeTo(d,1,o):o())},K.transition==="fade"?r.fadeTo(d,0,function(){X.position(0,c)}):X.position(d,c)}},X.load=function(b){var c,d,e=X.prep;T=!0,R=!1,P=y[Q],b||_(),ba(m),ba(i,K.onLoad),K.h=K.height?Z(K.height,"y")-N-L:K.innerHeight&&Z(K.innerHeight,"y"),K.w=K.width?Z(K.width,"x")-O-M:K.innerWidth&&Z(K.innerWidth,"x"),K.mw=K.w,K.mh=K.h,K.maxWidth&&(K.mw=Z(K.maxWidth,"x")-O-M,K.mw=K.w&&K.wK.mw&&(a=(R.width-K.mw)/R.width,d()),K.mh&&R.height>K.mh&&(a=(R.height-K.mh)/R.height,d())),K.h&&(R.style.marginTop=Math.max(K.h-R.height,0)/2+"px"),y[1]&&(Q1;if(a.queue)j/=2;a.offset=n(a.offset);a.over=n(a.over);return this.scrollable().each(function(){var k=this,o=h(k),d=r,l,e={},p=o.is('html,body');switch(typeof d){case'number':case'string':if(/^([+-]=)?\d+(px)?$/.test(d)){d=n(d);break}d=h(d,this);case'object':if(d.is||d.style)l=(d=h(d)).offset()}h.each(a.axis.split(''),function(b,c){var g=c=='x'?'Left':'Top',i=g.toLowerCase(),f='scroll'+g,s=k[f],t=c=='x'?'Width':'Height',v=t.toLowerCase();if(l){e[f]=l[i]+(p?0:s-o.offset()[i]);if(a.margin){e[f]-=parseInt(d.css('margin'+g))||0;e[f]-=parseInt(d.css('border'+g+'Width'))||0}e[f]+=a.offset[i]||0;if(a.over[i])e[f]+=d[v]()*a.over[i]}else e[f]=d[i];if(/^\d+$/.test(e[f]))e[f]=e[f]<=0?0:Math.min(e[f],u(t));if(!b&&a.queue){if(s!=e[f])q(a.onAfterFirst);delete e[f]}});q(a.onAfter);function q(b){o.animate(e,j,a.easing,b&&function(){b.call(this,r,a)})};function u(b){var c='scroll'+b,g=k.ownerDocument;return p?Math.max(g.documentElement[c],g.body[c]):k[c]}}).end()};function n(b){return typeof b=='object'?b:{top:b,left:b}}})(jQuery);
/*
* jQuery timepicker addon
* By: Trent Richardson [http://trentrichardson.com]
* Version 0.9.8
* Last Modified: 12/03/2011
*
* Copyright 2011 Trent Richardson
* Dual licensed under the MIT and GPL licenses.
* http://trentrichardson.com/Impromptu/GPL-LICENSE.txt
* http://trentrichardson.com/Impromptu/MIT-LICENSE.txt
*
* HERES THE CSS:
* .ui-timepicker-div .ui-widget-header { margin-bottom: 8px; }
* .ui-timepicker-div dl { text-align: left; }
* .ui-timepicker-div dl dt { height: 25px; margin-bottom: -25px; }
* .ui-timepicker-div dl dd { margin: 0 10px 10px 65px; }
* .ui-timepicker-div td { font-size: 90%; }
* .ui-tpicker-grid-label { background: none; border: none; margin: 0; padding: 0; }
*/
(function($) {
$.extend($.ui, { timepicker: { version: "0.9.8" } });
/* Time picker manager.
Use the singleton instance of this class, $.timepicker, to interact with the time picker.
Settings for (groups of) time pickers are maintained in an instance object,
allowing multiple different settings on the same page. */
function Timepicker() {
this.regional = []; // Available regional settings, indexed by language code
this.regional[''] = { // Default regional settings
currentText: 'Now',
closeText: 'Done',
ampm: false,
amNames: ['AM', 'A'],
pmNames: ['PM', 'P'],
timeFormat: 'hh:mm tt',
timeSuffix: '',
timeOnlyTitle: 'Choose Time',
timeText: 'Time',
hourText: 'Hour',
minuteText: 'Minute',
secondText: 'Second',
millisecText: 'Millisecond',
timezoneText: 'Time Zone'
};
this._defaults = { // Global defaults for all the datetime picker instances
showButtonPanel: true,
timeOnly: false,
showHour: true,
showMinute: true,
showSecond: false,
showMillisec: false,
showTimezone: false,
showTime: true,
stepHour: 1,
stepMinute: 1,
stepSecond: 1,
stepMillisec: 1,
hour: 0,
minute: 0,
second: 0,
millisec: 0,
timezone: '+0000',
hourMin: 0,
minuteMin: 0,
secondMin: 0,
millisecMin: 0,
hourMax: 23,
minuteMax: 59,
secondMax: 59,
millisecMax: 999,
minDateTime: null,
maxDateTime: null,
onSelect: null,
hourGrid: 0,
minuteGrid: 0,
secondGrid: 0,
millisecGrid: 0,
alwaysSetTime: true,
separator: ' ',
altFieldTimeOnly: true,
showTimepicker: true,
timezoneIso8609: false,
timezoneList: null,
addSliderAccess: false,
sliderAccessArgs: null
};
$.extend(this._defaults, this.regional['']);
}
$.extend(Timepicker.prototype, {
$input: null,
$altInput: null,
$timeObj: null,
inst: null,
hour_slider: null,
minute_slider: null,
second_slider: null,
millisec_slider: null,
timezone_select: null,
hour: 0,
minute: 0,
second: 0,
millisec: 0,
timezone: '+0000',
hourMinOriginal: null,
minuteMinOriginal: null,
secondMinOriginal: null,
millisecMinOriginal: null,
hourMaxOriginal: null,
minuteMaxOriginal: null,
secondMaxOriginal: null,
millisecMaxOriginal: null,
ampm: '',
formattedDate: '',
formattedTime: '',
formattedDateTime: '',
timezoneList: null,
/* Override the default settings for all instances of the time picker.
@param settings object - the new settings to use as defaults (anonymous object)
@return the manager object */
setDefaults: function(settings) {
extendRemove(this._defaults, settings || {});
return this;
},
//########################################################################
// Create a new Timepicker instance
//########################################################################
_newInst: function($input, o) {
var tp_inst = new Timepicker(),
inlineSettings = {};
for (var attrName in this._defaults) {
var attrValue = $input.attr('time:' + attrName);
if (attrValue) {
try {
inlineSettings[attrName] = eval(attrValue);
} catch (err) {
inlineSettings[attrName] = attrValue;
}
}
}
tp_inst._defaults = $.extend({}, this._defaults, inlineSettings, o, {
beforeShow: function(input, dp_inst) {
if ($.isFunction(o.beforeShow))
o.beforeShow(input, dp_inst, tp_inst);
},
onChangeMonthYear: function(year, month, dp_inst) {
// Update the time as well : this prevents the time from disappearing from the $input field.
tp_inst._updateDateTime(dp_inst);
if ($.isFunction(o.onChangeMonthYear))
o.onChangeMonthYear.call($input[0], year, month, dp_inst, tp_inst);
},
onClose: function(dateText, dp_inst) {
if (tp_inst.timeDefined === true && $input.val() != '')
tp_inst._updateDateTime(dp_inst);
if ($.isFunction(o.onClose))
o.onClose.call($input[0], dateText, dp_inst, tp_inst);
},
timepicker: tp_inst // add timepicker as a property of datepicker: $.datepicker._get(dp_inst, 'timepicker');
});
tp_inst.amNames = $.map(tp_inst._defaults.amNames, function(val) { return val.toUpperCase() });
tp_inst.pmNames = $.map(tp_inst._defaults.pmNames, function(val) { return val.toUpperCase() });
if (tp_inst._defaults.timezoneList === null) {
var timezoneList = [];
for (var i = -11; i <= 12; i++)
timezoneList.push((i >= 0 ? '+' : '-') + ('0' + Math.abs(i).toString()).slice(-2) + '00');
if (tp_inst._defaults.timezoneIso8609)
timezoneList = $.map(timezoneList, function(val) {
return val == '+0000' ? 'Z' : (val.substring(0, 3) + ':' + val.substring(3));
});
tp_inst._defaults.timezoneList = timezoneList;
}
tp_inst.hour = tp_inst._defaults.hour;
tp_inst.minute = tp_inst._defaults.minute;
tp_inst.second = tp_inst._defaults.second;
tp_inst.millisec = tp_inst._defaults.millisec;
tp_inst.ampm = '';
tp_inst.$input = $input;
if (o.altField)
tp_inst.$altInput = $(o.altField)
.css({ cursor: 'pointer' })
.focus(function(){ $input.trigger("focus"); });
if(tp_inst._defaults.minDate==0 || tp_inst._defaults.minDateTime==0)
{
tp_inst._defaults.minDate=new Date();
}
if(tp_inst._defaults.maxDate==0 || tp_inst._defaults.maxDateTime==0)
{
tp_inst._defaults.maxDate=new Date();
}
// datepicker needs minDate/maxDate, timepicker needs minDateTime/maxDateTime..
if(tp_inst._defaults.minDate !== undefined && tp_inst._defaults.minDate instanceof Date)
tp_inst._defaults.minDateTime = new Date(tp_inst._defaults.minDate.getTime());
if(tp_inst._defaults.minDateTime !== undefined && tp_inst._defaults.minDateTime instanceof Date)
tp_inst._defaults.minDate = new Date(tp_inst._defaults.minDateTime.getTime());
if(tp_inst._defaults.maxDate !== undefined && tp_inst._defaults.maxDate instanceof Date)
tp_inst._defaults.maxDateTime = new Date(tp_inst._defaults.maxDate.getTime());
if(tp_inst._defaults.maxDateTime !== undefined && tp_inst._defaults.maxDateTime instanceof Date)
tp_inst._defaults.maxDate = new Date(tp_inst._defaults.maxDateTime.getTime());
return tp_inst;
},
//########################################################################
// add our sliders to the calendar
//########################################################################
_addTimePicker: function(dp_inst) {
var currDT = (this.$altInput && this._defaults.altFieldTimeOnly) ?
this.$input.val() + ' ' + this.$altInput.val() :
this.$input.val();
this.timeDefined = this._parseTime(currDT);
this._limitMinMaxDateTime(dp_inst, false);
this._injectTimePicker();
},
//########################################################################
// parse the time string from input value or _setTime
//########################################################################
_parseTime: function(timeString, withDate) {
var regstr = this._defaults.timeFormat.toString()
.replace(/h{1,2}/ig, '(\\d?\\d)')
.replace(/m{1,2}/ig, '(\\d?\\d)')
.replace(/s{1,2}/ig, '(\\d?\\d)')
.replace(/l{1}/ig, '(\\d?\\d?\\d)')
.replace(/t{1,2}/ig, this._getPatternAmpm())
.replace(/z{1}/ig, '(z|[-+]\\d\\d:?\\d\\d)?')
.replace(/\s/g, '\\s?') + this._defaults.timeSuffix + '$',
order = this._getFormatPositions(),
ampm = '',
treg;
if (!this.inst) this.inst = $.datepicker._getInst(this.$input[0]);
if (withDate || !this._defaults.timeOnly) {
// the time should come after x number of characters and a space.
// x = at least the length of text specified by the date format
var dp_dateFormat = $.datepicker._get(this.inst, 'dateFormat');
// escape special regex characters in the seperator
var specials = new RegExp("[.*+?|()\\[\\]{}\\\\]", "g");
regstr = '.{' + dp_dateFormat.length + ',}' + this._defaults.separator.replace(specials, "\\$&") + regstr;
}
treg = timeString.match(new RegExp(regstr, 'i'));
if (treg) {
if (order.t !== -1) {
if (treg[order.t] === undefined || treg[order.t].length === 0) {
ampm = '';
this.ampm = '';
} else {
ampm = $.inArray(treg[order.t].toUpperCase(), this.amNames) !== -1 ? 'AM' : 'PM';
this.ampm = this._defaults[ampm == 'AM' ? 'amNames' : 'pmNames'][0];
}
}
if (order.h !== -1) {
if (ampm == 'AM' && treg[order.h] == '12')
this.hour = 0; // 12am = 0 hour
else if (ampm == 'PM' && treg[order.h] != '12')
this.hour = (parseFloat(treg[order.h]) + 12).toFixed(0); // 12pm = 12 hour, any other pm = hour + 12
else this.hour = Number(treg[order.h]);
}
if (order.m !== -1) this.minute = Number(treg[order.m]);
if (order.s !== -1) this.second = Number(treg[order.s]);
if (order.l !== -1) this.millisec = Number(treg[order.l]);
if (order.z !== -1 && treg[order.z] !== undefined) {
var tz = treg[order.z].toUpperCase();
switch (tz.length) {
case 1: // Z
tz = this._defaults.timezoneIso8609 ? 'Z' : '+0000';
break;
case 5: // +hhmm
if (this._defaults.timezoneIso8609)
tz = tz.substring(1) == '0000'
? 'Z'
: tz.substring(0, 3) + ':' + tz.substring(3);
break;
case 6: // +hh:mm
if (!this._defaults.timezoneIso8609)
tz = tz == 'Z' || tz.substring(1) == '00:00'
? '+0000'
: tz.replace(/:/, '');
else if (tz.substring(1) == '00:00')
tz = 'Z';
break;
}
this.timezone = tz;
}
return true;
}
return false;
},
//########################################################################
// pattern for standard and localized AM/PM markers
//########################################################################
_getPatternAmpm: function() {
var markers = [];
o = this._defaults;
if (o.amNames)
$.merge(markers, o.amNames);
if (o.pmNames)
$.merge(markers, o.pmNames);
markers = $.map(markers, function(val) { return val.replace(/[.*+?|()\[\]{}\\]/g, '\\$&') });
return '(' + markers.join('|') + ')?';
},
//########################################################################
// figure out position of time elements.. cause js cant do named captures
//########################################################################
_getFormatPositions: function() {
var finds = this._defaults.timeFormat.toLowerCase().match(/(h{1,2}|m{1,2}|s{1,2}|l{1}|t{1,2}|z)/g),
orders = { h: -1, m: -1, s: -1, l: -1, t: -1, z: -1 };
if (finds)
for (var i = 0; i < finds.length; i++)
if (orders[finds[i].toString().charAt(0)] == -1)
orders[finds[i].toString().charAt(0)] = i + 1;
return orders;
},
//########################################################################
// generate and inject html for timepicker into ui datepicker
//########################################################################
_injectTimePicker: function() {
var $dp = this.inst.dpDiv,
o = this._defaults,
tp_inst = this,
// Added by Peter Medeiros:
// - Figure out what the hour/minute/second max should be based on the step values.
// - Example: if stepMinute is 15, then minMax is 45.
hourMax = parseInt((o.hourMax - ((o.hourMax - o.hourMin) % o.stepHour)) ,10),
minMax = parseInt((o.minuteMax - ((o.minuteMax - o.minuteMin) % o.stepMinute)) ,10),
secMax = parseInt((o.secondMax - ((o.secondMax - o.secondMin) % o.stepSecond)) ,10),
millisecMax = parseInt((o.millisecMax - ((o.millisecMax - o.millisecMin) % o.stepMillisec)) ,10),
dp_id = this.inst.id.toString().replace(/([^A-Za-z0-9_])/g, '');
// Prevent displaying twice
//if ($dp.find("div#ui-timepicker-div-"+ dp_id).length === 0) {
if ($dp.find("div#ui-timepicker-div-"+ dp_id).length === 0 && o.showTimepicker) {
var noDisplay = ' style="display:none;"',
html = '' +
'' + o.timeText + ' ' +
' ' +
'' + o.hourText + ' ',
hourGridSize = 0,
minuteGridSize = 0,
secondGridSize = 0,
millisecGridSize = 0,
size;
// Hours
html += '
';
if (o.showHour && o.hourGrid > 0) {
html += '';
for (var h = o.hourMin; h <= hourMax; h += parseInt(o.hourGrid,10)) {
hourGridSize++;
var tmph = (o.ampm && h > 12) ? h-12 : h;
if (tmph < 10) tmph = '0' + tmph;
if (o.ampm) {
if (h == 0) tmph = 12 +'a';
else if (h < 12) tmph += 'a';
else tmph += 'p';
}
html += '' + tmph + ' ';
}
html += '
';
}
html += ' ';
// Minutes
html += '' + o.minuteText + ' '+
'
';
if (o.showMinute && o.minuteGrid > 0) {
html += '';
for (var m = o.minuteMin; m <= minMax; m += parseInt(o.minuteGrid,10)) {
minuteGridSize++;
html += '' + ((m < 10) ? '0' : '') + m + ' ';
}
html += '
';
}
html += ' ';
// Seconds
html += '' + o.secondText + ' '+
'
';
if (o.showSecond && o.secondGrid > 0) {
html += '';
for (var s = o.secondMin; s <= secMax; s += parseInt(o.secondGrid,10)) {
secondGridSize++;
html += '' + ((s < 10) ? '0' : '') + s + ' ';
}
html += '
';
}
html += ' ';
// Milliseconds
html += '' + o.millisecText + ' '+
'
';
if (o.showMillisec && o.millisecGrid > 0) {
html += '';
for (var l = o.millisecMin; l <= millisecMax; l += parseInt(o.millisecGrid,10)) {
millisecGridSize++;
html += '' + ((l < 10) ? '0' : '') + l + ' ';
}
html += '
';
}
html += ' ';
// Timezone
html += '' + o.timezoneText + ' ';
html += ' ';
html += ' ';
$tp = $(html);
// if we only want time picker...
if (o.timeOnly === true) {
$tp.prepend(
'');
$dp.find('.ui-datepicker-header, .ui-datepicker-calendar').hide();
}
this.hour_slider = $tp.find('#ui_tpicker_hour_'+ dp_id).slider({
orientation: "horizontal",
value: this.hour,
min: o.hourMin,
max: hourMax,
step: o.stepHour,
slide: function(event, ui) {
tp_inst.hour_slider.slider( "option", "value", ui.value);
tp_inst._onTimeChange();
}
});
// Updated by Peter Medeiros:
// - Pass in Event and UI instance into slide function
this.minute_slider = $tp.find('#ui_tpicker_minute_'+ dp_id).slider({
orientation: "horizontal",
value: this.minute,
min: o.minuteMin,
max: minMax,
step: o.stepMinute,
slide: function(event, ui) {
tp_inst.minute_slider.slider( "option", "value", ui.value);
tp_inst._onTimeChange();
}
});
this.second_slider = $tp.find('#ui_tpicker_second_'+ dp_id).slider({
orientation: "horizontal",
value: this.second,
min: o.secondMin,
max: secMax,
step: o.stepSecond,
slide: function(event, ui) {
tp_inst.second_slider.slider( "option", "value", ui.value);
tp_inst._onTimeChange();
}
});
this.millisec_slider = $tp.find('#ui_tpicker_millisec_'+ dp_id).slider({
orientation: "horizontal",
value: this.millisec,
min: o.millisecMin,
max: millisecMax,
step: o.stepMillisec,
slide: function(event, ui) {
tp_inst.millisec_slider.slider( "option", "value", ui.value);
tp_inst._onTimeChange();
}
});
this.timezone_select = $tp.find('#ui_tpicker_timezone_'+ dp_id).append(' ').find("select");
$.fn.append.apply(this.timezone_select,
$.map(o.timezoneList, function(val, idx) {
return $(" ")
.val(typeof val == "object" ? val.value : val)
.text(typeof val == "object" ? val.label : val);
})
);
this.timezone_select.val((typeof this.timezone != "undefined" && this.timezone != null && this.timezone != "") ? this.timezone : o.timezone);
this.timezone_select.change(function() {
tp_inst._onTimeChange();
});
// Add grid functionality
if (o.showHour && o.hourGrid > 0) {
size = 100 * hourGridSize * o.hourGrid / (hourMax - o.hourMin);
$tp.find(".ui_tpicker_hour table").css({
width: size + "%",
marginLeft: (size / (-2 * hourGridSize)) + "%",
borderCollapse: 'collapse'
}).find("td").each( function(index) {
$(this).click(function() {
var h = $(this).html();
if(o.ampm) {
var ap = h.substring(2).toLowerCase(),
aph = parseInt(h.substring(0,2), 10);
if (ap == 'a') {
if (aph == 12) h = 0;
else h = aph;
} else if (aph == 12) h = 12;
else h = aph + 12;
}
tp_inst.hour_slider.slider("option", "value", h);
tp_inst._onTimeChange();
tp_inst._onSelectHandler();
}).css({
cursor: 'pointer',
width: (100 / hourGridSize) + '%',
textAlign: 'center',
overflow: 'hidden'
});
});
}
if (o.showMinute && o.minuteGrid > 0) {
size = 100 * minuteGridSize * o.minuteGrid / (minMax - o.minuteMin);
$tp.find(".ui_tpicker_minute table").css({
width: size + "%",
marginLeft: (size / (-2 * minuteGridSize)) + "%",
borderCollapse: 'collapse'
}).find("td").each(function(index) {
$(this).click(function() {
tp_inst.minute_slider.slider("option", "value", $(this).html());
tp_inst._onTimeChange();
tp_inst._onSelectHandler();
}).css({
cursor: 'pointer',
width: (100 / minuteGridSize) + '%',
textAlign: 'center',
overflow: 'hidden'
});
});
}
if (o.showSecond && o.secondGrid > 0) {
$tp.find(".ui_tpicker_second table").css({
width: size + "%",
marginLeft: (size / (-2 * secondGridSize)) + "%",
borderCollapse: 'collapse'
}).find("td").each(function(index) {
$(this).click(function() {
tp_inst.second_slider.slider("option", "value", $(this).html());
tp_inst._onTimeChange();
tp_inst._onSelectHandler();
}).css({
cursor: 'pointer',
width: (100 / secondGridSize) + '%',
textAlign: 'center',
overflow: 'hidden'
});
});
}
if (o.showMillisec && o.millisecGrid > 0) {
$tp.find(".ui_tpicker_millisec table").css({
width: size + "%",
marginLeft: (size / (-2 * millisecGridSize)) + "%",
borderCollapse: 'collapse'
}).find("td").each(function(index) {
$(this).click(function() {
tp_inst.millisec_slider.slider("option", "value", $(this).html());
tp_inst._onTimeChange();
tp_inst._onSelectHandler();
}).css({
cursor: 'pointer',
width: (100 / millisecGridSize) + '%',
textAlign: 'center',
overflow: 'hidden'
});
});
}
var $buttonPanel = $dp.find('.ui-datepicker-buttonpane');
if ($buttonPanel.length) $buttonPanel.before($tp);
else $dp.append($tp);
this.$timeObj = $tp.find('#ui_tpicker_time_'+ dp_id);
if (this.inst !== null) {
var timeDefined = this.timeDefined;
this._onTimeChange();
this.timeDefined = timeDefined;
}
//Emulate datepicker onSelect behavior. Call on slidestop.
var onSelectDelegate = function() {
tp_inst._onSelectHandler();
};
this.hour_slider.bind('slidestop',onSelectDelegate);
this.minute_slider.bind('slidestop',onSelectDelegate);
this.second_slider.bind('slidestop',onSelectDelegate);
this.millisec_slider.bind('slidestop',onSelectDelegate);
// slideAccess integration: http://trentrichardson.com/2011/11/11/jquery-ui-sliders-and-touch-accessibility/
if (this._defaults.addSliderAccess){
var sliderAccessArgs = this._defaults.sliderAccessArgs;
setTimeout(function(){ // fix for inline mode
if($tp.find('.ui-slider-access').length == 0){
$tp.find('.ui-slider:visible').sliderAccess(sliderAccessArgs);
// fix any grids since sliders are shorter
var sliderAccessWidth = $tp.find('.ui-slider-access:eq(0)').outerWidth(true);
if(sliderAccessWidth){
$tp.find('table:visible').each(function(){
var $g = $(this),
oldWidth = $g.outerWidth(),
oldMarginLeft = $g.css('marginLeft').toString().replace('%',''),
newWidth = oldWidth - sliderAccessWidth,
newMarginLeft = ((oldMarginLeft * newWidth)/oldWidth) + '%';
$g.css({ width: newWidth, marginLeft: newMarginLeft });
});
}
}
},0);
}
// end slideAccess integration
}
},
//########################################################################
// This function tries to limit the ability to go outside the
// min/max date range
//########################################################################
_limitMinMaxDateTime: function(dp_inst, adjustSliders){
var o = this._defaults,
dp_date = new Date(dp_inst.selectedYear, dp_inst.selectedMonth, dp_inst.selectedDay);
if(!this._defaults.showTimepicker) return; // No time so nothing to check here
if($.datepicker._get(dp_inst, 'minDateTime') !== null && $.datepicker._get(dp_inst, 'minDateTime') !== undefined && dp_date){
var minDateTime = $.datepicker._get(dp_inst, 'minDateTime'),
minDateTimeDate = new Date(minDateTime.getFullYear(), minDateTime.getMonth(), minDateTime.getDate(), 0, 0, 0, 0);
if(this.hourMinOriginal === null || this.minuteMinOriginal === null || this.secondMinOriginal === null || this.millisecMinOriginal === null){
this.hourMinOriginal = o.hourMin;
this.minuteMinOriginal = o.minuteMin;
this.secondMinOriginal = o.secondMin;
this.millisecMinOriginal = o.millisecMin;
}
if(dp_inst.settings.timeOnly || minDateTimeDate.getTime() == dp_date.getTime()) {
this._defaults.hourMin = minDateTime.getHours();
if (this.hour <= this._defaults.hourMin) {
this.hour = this._defaults.hourMin;
this._defaults.minuteMin = minDateTime.getMinutes();
if (this.minute <= this._defaults.minuteMin) {
this.minute = this._defaults.minuteMin;
this._defaults.secondMin = minDateTime.getSeconds();
} else if (this.second <= this._defaults.secondMin){
this.second = this._defaults.secondMin;
this._defaults.millisecMin = minDateTime.getMilliseconds();
} else {
if(this.millisec < this._defaults.millisecMin)
this.millisec = this._defaults.millisecMin;
this._defaults.millisecMin = this.millisecMinOriginal;
}
} else {
this._defaults.minuteMin = this.minuteMinOriginal;
this._defaults.secondMin = this.secondMinOriginal;
this._defaults.millisecMin = this.millisecMinOriginal;
}
}else{
this._defaults.hourMin = this.hourMinOriginal;
this._defaults.minuteMin = this.minuteMinOriginal;
this._defaults.secondMin = this.secondMinOriginal;
this._defaults.millisecMin = this.millisecMinOriginal;
}
}
if($.datepicker._get(dp_inst, 'maxDateTime') !== null && $.datepicker._get(dp_inst, 'maxDateTime') !== undefined && dp_date){
var maxDateTime = $.datepicker._get(dp_inst, 'maxDateTime'),
maxDateTimeDate = new Date(maxDateTime.getFullYear(), maxDateTime.getMonth(), maxDateTime.getDate(), 0, 0, 0, 0);
if(this.hourMaxOriginal === null || this.minuteMaxOriginal === null || this.secondMaxOriginal === null){
this.hourMaxOriginal = o.hourMax;
this.minuteMaxOriginal = o.minuteMax;
this.secondMaxOriginal = o.secondMax;
this.millisecMaxOriginal = o.millisecMax;
}
if(dp_inst.settings.timeOnly || maxDateTimeDate.getTime() == dp_date.getTime()){
this._defaults.hourMax = maxDateTime.getHours();
if (this.hour >= this._defaults.hourMax) {
this.hour = this._defaults.hourMax;
this._defaults.minuteMax = maxDateTime.getMinutes();
if (this.minute >= this._defaults.minuteMax) {
this.minute = this._defaults.minuteMax;
this._defaults.secondMax = maxDateTime.getSeconds();
} else if (this.second >= this._defaults.secondMax) {
this.second = this._defaults.secondMax;
this._defaults.millisecMax = maxDateTime.getMilliseconds();
} else {
if(this.millisec > this._defaults.millisecMax) this.millisec = this._defaults.millisecMax;
this._defaults.millisecMax = this.millisecMaxOriginal;
}
} else {
this._defaults.minuteMax = this.minuteMaxOriginal;
this._defaults.secondMax = this.secondMaxOriginal;
this._defaults.millisecMax = this.millisecMaxOriginal;
}
}else{
this._defaults.hourMax = this.hourMaxOriginal;
this._defaults.minuteMax = this.minuteMaxOriginal;
this._defaults.secondMax = this.secondMaxOriginal;
this._defaults.millisecMax = this.millisecMaxOriginal;
}
}
if(adjustSliders !== undefined && adjustSliders === true){
var hourMax = parseInt((this._defaults.hourMax - ((this._defaults.hourMax - this._defaults.hourMin) % this._defaults.stepHour)) ,10),
minMax = parseInt((this._defaults.minuteMax - ((this._defaults.minuteMax - this._defaults.minuteMin) % this._defaults.stepMinute)) ,10),
secMax = parseInt((this._defaults.secondMax - ((this._defaults.secondMax - this._defaults.secondMin) % this._defaults.stepSecond)) ,10),
millisecMax = parseInt((this._defaults.millisecMax - ((this._defaults.millisecMax - this._defaults.millisecMin) % this._defaults.stepMillisec)) ,10);
if(this.hour_slider)
this.hour_slider.slider("option", { min: this._defaults.hourMin, max: hourMax }).slider('value', this.hour);
if(this.minute_slider)
this.minute_slider.slider("option", { min: this._defaults.minuteMin, max: minMax }).slider('value', this.minute);
if(this.second_slider)
this.second_slider.slider("option", { min: this._defaults.secondMin, max: secMax }).slider('value', this.second);
if(this.millisec_slider)
this.millisec_slider.slider("option", { min: this._defaults.millisecMin, max: millisecMax }).slider('value', this.millisec);
}
},
//########################################################################
// when a slider moves, set the internal time...
// on time change is also called when the time is updated in the text field
//########################################################################
_onTimeChange: function() {
var hour = (this.hour_slider) ? this.hour_slider.slider('value') : false,
minute = (this.minute_slider) ? this.minute_slider.slider('value') : false,
second = (this.second_slider) ? this.second_slider.slider('value') : false,
millisec = (this.millisec_slider) ? this.millisec_slider.slider('value') : false,
timezone = (this.timezone_select) ? this.timezone_select.val() : false,
o = this._defaults;
if (typeof(hour) == 'object') hour = false;
if (typeof(minute) == 'object') minute = false;
if (typeof(second) == 'object') second = false;
if (typeof(millisec) == 'object') millisec = false;
if (typeof(timezone) == 'object') timezone = false;
if (hour !== false) hour = parseInt(hour,10);
if (minute !== false) minute = parseInt(minute,10);
if (second !== false) second = parseInt(second,10);
if (millisec !== false) millisec = parseInt(millisec,10);
var ampm = o[hour < 12 ? 'amNames' : 'pmNames'][0];
// If the update was done in the input field, the input field should not be updated.
// If the update was done using the sliders, update the input field.
var hasChanged = (hour != this.hour || minute != this.minute
|| second != this.second || millisec != this.millisec
|| (this.ampm.length > 0
&& (hour < 12) != ($.inArray(this.ampm.toUpperCase(), this.amNames) !== -1))
|| timezone != this.timezone);
if (hasChanged) {
if (hour !== false)this.hour = hour;
if (minute !== false) this.minute = minute;
if (second !== false) this.second = second;
if (millisec !== false) this.millisec = millisec;
if (timezone !== false) this.timezone = timezone;
if (!this.inst) this.inst = $.datepicker._getInst(this.$input[0]);
this._limitMinMaxDateTime(this.inst, true);
}
if (o.ampm) this.ampm = ampm;
this._formatTime();
if (this.$timeObj) this.$timeObj.text(this.formattedTime + o.timeSuffix);
this.timeDefined = true;
if (hasChanged) this._updateDateTime();
},
//########################################################################
// call custom onSelect.
// bind to sliders slidestop, and grid click.
//########################################################################
_onSelectHandler: function() {
var onSelect = this._defaults.onSelect;
var inputEl = this.$input ? this.$input[0] : null;
if (onSelect && inputEl) {
onSelect.apply(inputEl, [this.formattedDateTime, this]);
}
},
//########################################################################
// format the time all pretty...
//########################################################################
_formatTime: function(time, format, ampm) {
if (ampm == undefined) ampm = this._defaults.ampm;
time = time || { hour: this.hour, minute: this.minute, second: this.second, millisec: this.millisec, ampm: this.ampm, timezone: this.timezone };
var tmptime = (format || this._defaults.timeFormat).toString();
var hour = parseInt(time.hour, 10);
if (ampm) {
if (!$.inArray(time.ampm.toUpperCase(), this.amNames) !== -1)
hour = hour % 12;
if (hour === 0)
hour = 12;
}
tmptime = tmptime.replace(/(?:hh?|mm?|ss?|[tT]{1,2}|[lz])/g, function(match) {
switch (match.toLowerCase()) {
case 'hh': return ('0' + hour).slice(-2);
case 'h': return hour;
case 'mm': return ('0' + time.minute).slice(-2);
case 'm': return time.minute;
case 'ss': return ('0' + time.second).slice(-2);
case 's': return time.second;
case 'l': return ('00' + time.millisec).slice(-3);
case 'z': return time.timezone;
case 't': case 'tt':
if (ampm) {
var _ampm = time.ampm;
if (match.length == 1)
_ampm = _ampm.charAt(0);
return match.charAt(0) == 'T' ? _ampm.toUpperCase() : _ampm.toLowerCase();
}
return '';
}
});
if (arguments.length) return tmptime;
else this.formattedTime = tmptime;
},
//########################################################################
// update our input with the new date time..
//########################################################################
_updateDateTime: function(dp_inst) {
dp_inst = this.inst || dp_inst;
var dt = $.datepicker._daylightSavingAdjust(new Date(dp_inst.selectedYear, dp_inst.selectedMonth, dp_inst.selectedDay)),
dateFmt = $.datepicker._get(dp_inst, 'dateFormat'),
formatCfg = $.datepicker._getFormatConfig(dp_inst),
timeAvailable = dt !== null && this.timeDefined;
this.formattedDate = $.datepicker.formatDate(dateFmt, (dt === null ? new Date() : dt), formatCfg);
var formattedDateTime = this.formattedDate;
if (dp_inst.lastVal !== undefined && (dp_inst.lastVal.length > 0 && this.$input.val().length === 0))
return;
if (this._defaults.timeOnly === true) {
formattedDateTime = this.formattedTime;
} else if (this._defaults.timeOnly !== true && (this._defaults.alwaysSetTime || timeAvailable)) {
formattedDateTime += this._defaults.separator + this.formattedTime + this._defaults.timeSuffix;
}
this.formattedDateTime = formattedDateTime;
if(!this._defaults.showTimepicker) {
this.$input.val(this.formattedDate);
} else if (this.$altInput && this._defaults.altFieldTimeOnly === true) {
this.$altInput.val(this.formattedTime);
this.$input.val(this.formattedDate);
} else if(this.$altInput) {
this.$altInput.val(formattedDateTime);
this.$input.val(formattedDateTime);
} else {
this.$input.val(formattedDateTime);
}
this.$input.trigger("change");
}
});
$.fn.extend({
//########################################################################
// shorthand just to use timepicker..
//########################################################################
timepicker: function(o) {
o = o || {};
var tmp_args = arguments;
if (typeof o == 'object') tmp_args[0] = $.extend(o, { timeOnly: true });
return $(this).each(function() {
$.fn.datetimepicker.apply($(this), tmp_args);
});
},
//########################################################################
// extend timepicker to datepicker
//########################################################################
datetimepicker: function(o) {
o = o || {};
var $input = this,
tmp_args = arguments;
if (typeof(o) == 'string'){
if(o == 'getDate')
return $.fn.datepicker.apply($(this[0]), tmp_args);
else
return this.each(function() {
var $t = $(this);
$t.datepicker.apply($t, tmp_args);
});
}
else
return this.each(function() {
var $t = $(this);
$t.datepicker($.timepicker._newInst($t, o)._defaults);
});
}
});
//########################################################################
// the bad hack :/ override datepicker so it doesnt close on select
// inspired: http://stackoverflow.com/questions/1252512/jquery-datepicker-prevent-closing-picker-when-clicking-a-date/1762378#1762378
//########################################################################
$.datepicker._base_selectDate = $.datepicker._selectDate;
$.datepicker._selectDate = function (id, dateStr) {
var inst = this._getInst($(id)[0]),
tp_inst = this._get(inst, 'timepicker');
if (tp_inst) {
tp_inst._limitMinMaxDateTime(inst, true);
inst.inline = inst.stay_open = true;
//This way the onSelect handler called from calendarpicker get the full dateTime
this._base_selectDate(id, dateStr);
inst.inline = inst.stay_open = false;
this._notifyChange(inst);
this._updateDatepicker(inst);
}
else this._base_selectDate(id, dateStr);
};
//#############################################################################################
// second bad hack :/ override datepicker so it triggers an event when changing the input field
// and does not redraw the datepicker on every selectDate event
//#############################################################################################
$.datepicker._base_updateDatepicker = $.datepicker._updateDatepicker;
$.datepicker._updateDatepicker = function(inst) {
// don't popup the datepicker if there is another instance already opened
var input = inst.input[0];
if($.datepicker._curInst &&
$.datepicker._curInst != inst &&
$.datepicker._datepickerShowing &&
$.datepicker._lastInput != input) {
return;
}
if (typeof(inst.stay_open) !== 'boolean' || inst.stay_open === false) {
this._base_updateDatepicker(inst);
// Reload the time control when changing something in the input text field.
var tp_inst = this._get(inst, 'timepicker');
if(tp_inst) tp_inst._addTimePicker(inst);
}
};
//#######################################################################################
// third bad hack :/ override datepicker so it allows spaces and colon in the input field
//#######################################################################################
$.datepicker._base_doKeyPress = $.datepicker._doKeyPress;
$.datepicker._doKeyPress = function(event) {
var inst = $.datepicker._getInst(event.target),
tp_inst = $.datepicker._get(inst, 'timepicker');
if (tp_inst) {
if ($.datepicker._get(inst, 'constrainInput')) {
var ampm = tp_inst._defaults.ampm,
dateChars = $.datepicker._possibleChars($.datepicker._get(inst, 'dateFormat')),
datetimeChars = tp_inst._defaults.timeFormat.toString()
.replace(/[hms]/g, '')
.replace(/TT/g, ampm ? 'APM' : '')
.replace(/Tt/g, ampm ? 'AaPpMm' : '')
.replace(/tT/g, ampm ? 'AaPpMm' : '')
.replace(/T/g, ampm ? 'AP' : '')
.replace(/tt/g, ampm ? 'apm' : '')
.replace(/t/g, ampm ? 'ap' : '') +
" " +
tp_inst._defaults.separator +
tp_inst._defaults.timeSuffix +
(tp_inst._defaults.showTimezone ? tp_inst._defaults.timezoneList.join('') : '') +
(tp_inst._defaults.amNames.join('')) +
(tp_inst._defaults.pmNames.join('')) +
dateChars,
chr = String.fromCharCode(event.charCode === undefined ? event.keyCode : event.charCode);
return event.ctrlKey || (chr < ' ' || !dateChars || datetimeChars.indexOf(chr) > -1);
}
}
return $.datepicker._base_doKeyPress(event);
};
//#######################################################################################
// Override key up event to sync manual input changes.
//#######################################################################################
$.datepicker._base_doKeyUp = $.datepicker._doKeyUp;
$.datepicker._doKeyUp = function (event) {
var inst = $.datepicker._getInst(event.target),
tp_inst = $.datepicker._get(inst, 'timepicker');
if (tp_inst) {
if (tp_inst._defaults.timeOnly && (inst.input.val() != inst.lastVal)) {
try {
$.datepicker._updateDatepicker(inst);
}
catch (err) {
$.datepicker.log(err);
}
}
}
return $.datepicker._base_doKeyUp(event);
};
//#######################################################################################
// override "Today" button to also grab the time.
//#######################################################################################
$.datepicker._base_gotoToday = $.datepicker._gotoToday;
$.datepicker._gotoToday = function(id) {
var inst = this._getInst($(id)[0]),
$dp = inst.dpDiv;
this._base_gotoToday(id);
var now = new Date();
var tp_inst = this._get(inst, 'timepicker');
if (tp_inst._defaults.showTimezone && tp_inst.timezone_select) {
var tzoffset = now.getTimezoneOffset(); // If +0100, returns -60
var tzsign = tzoffset > 0 ? '-' : '+';
tzoffset = Math.abs(tzoffset);
var tzmin = tzoffset % 60
tzoffset = tzsign + ('0' + (tzoffset - tzmin) / 60).slice(-2) + ('0' + tzmin).slice(-2);
if (tp_inst._defaults.timezoneIso8609)
tzoffset = tzoffset.substring(0, 3) + ':' + tzoffset.substring(3);
tp_inst.timezone_select.val(tzoffset);
}
this._setTime(inst, now);
$( '.ui-datepicker-today', $dp).click();
};
//#######################################################################################
// Disable & enable the Time in the datetimepicker
//#######################################################################################
$.datepicker._disableTimepickerDatepicker = function(target, date, withDate) {
var inst = this._getInst(target),
tp_inst = this._get(inst, 'timepicker');
$(target).datepicker('getDate'); // Init selected[Year|Month|Day]
if (tp_inst) {
tp_inst._defaults.showTimepicker = false;
tp_inst._updateDateTime(inst);
}
};
$.datepicker._enableTimepickerDatepicker = function(target, date, withDate) {
var inst = this._getInst(target),
tp_inst = this._get(inst, 'timepicker');
$(target).datepicker('getDate'); // Init selected[Year|Month|Day]
if (tp_inst) {
tp_inst._defaults.showTimepicker = true;
tp_inst._addTimePicker(inst); // Could be disabled on page load
tp_inst._updateDateTime(inst);
}
};
//#######################################################################################
// Create our own set time function
//#######################################################################################
$.datepicker._setTime = function(inst, date) {
var tp_inst = this._get(inst, 'timepicker');
if (tp_inst) {
var defaults = tp_inst._defaults,
// calling _setTime with no date sets time to defaults
hour = date ? date.getHours() : defaults.hour,
minute = date ? date.getMinutes() : defaults.minute,
second = date ? date.getSeconds() : defaults.second,
millisec = date ? date.getMilliseconds() : defaults.millisec;
//check if within min/max times..
if ((hour < defaults.hourMin || hour > defaults.hourMax) || (minute < defaults.minuteMin || minute > defaults.minuteMax) || (second < defaults.secondMin || second > defaults.secondMax) || (millisec < defaults.millisecMin || millisec > defaults.millisecMax)) {
hour = defaults.hourMin;
minute = defaults.minuteMin;
second = defaults.secondMin;
millisec = defaults.millisecMin;
}
tp_inst.hour = hour;
tp_inst.minute = minute;
tp_inst.second = second;
tp_inst.millisec = millisec;
if (tp_inst.hour_slider) tp_inst.hour_slider.slider('value', hour);
if (tp_inst.minute_slider) tp_inst.minute_slider.slider('value', minute);
if (tp_inst.second_slider) tp_inst.second_slider.slider('value', second);
if (tp_inst.millisec_slider) tp_inst.millisec_slider.slider('value', millisec);
tp_inst._onTimeChange();
tp_inst._updateDateTime(inst);
}
};
//#######################################################################################
// Create new public method to set only time, callable as $().datepicker('setTime', date)
//#######################################################################################
$.datepicker._setTimeDatepicker = function(target, date, withDate) {
var inst = this._getInst(target),
tp_inst = this._get(inst, 'timepicker');
if (tp_inst) {
this._setDateFromField(inst);
var tp_date;
if (date) {
if (typeof date == "string") {
tp_inst._parseTime(date, withDate);
tp_date = new Date();
tp_date.setHours(tp_inst.hour, tp_inst.minute, tp_inst.second, tp_inst.millisec);
}
else tp_date = new Date(date.getTime());
if (tp_date.toString() == 'Invalid Date') tp_date = undefined;
this._setTime(inst, tp_date);
}
}
};
//#######################################################################################
// override setDate() to allow setting time too within Date object
//#######################################################################################
$.datepicker._base_setDateDatepicker = $.datepicker._setDateDatepicker;
$.datepicker._setDateDatepicker = function(target, date) {
var inst = this._getInst(target),
tp_date = (date instanceof Date) ? new Date(date.getTime()) : date;
this._updateDatepicker(inst);
this._base_setDateDatepicker.apply(this, arguments);
this._setTimeDatepicker(target, tp_date, true);
};
//#######################################################################################
// override getDate() to allow getting time too within Date object
//#######################################################################################
$.datepicker._base_getDateDatepicker = $.datepicker._getDateDatepicker;
$.datepicker._getDateDatepicker = function(target, noDefault) {
var inst = this._getInst(target),
tp_inst = this._get(inst, 'timepicker');
if (tp_inst) {
this._setDateFromField(inst, noDefault);
var date = this._getDate(inst);
if (date && tp_inst._parseTime($(target).val(), tp_inst.timeOnly)) date.setHours(tp_inst.hour, tp_inst.minute, tp_inst.second, tp_inst.millisec);
return date;
}
return this._base_getDateDatepicker(target, noDefault);
};
//#######################################################################################
// override parseDate() because UI 1.8.14 throws an error about "Extra characters"
// An option in datapicker to ignore extra format characters would be nicer.
//#######################################################################################
$.datepicker._base_parseDate = $.datepicker.parseDate;
$.datepicker.parseDate = function(format, value, settings) {
var date;
try {
date = this._base_parseDate(format, value, settings);
} catch (err) {
// Hack! The error message ends with a colon, a space, and
// the "extra" characters. We rely on that instead of
// attempting to perfectly reproduce the parsing algorithm.
date = this._base_parseDate(format, value.substring(0,value.length-(err.length-err.indexOf(':')-2)), settings);
}
return date;
};
//#######################################################################################
// override formatDate to set date with time to the input
//#######################################################################################
$.datepicker._base_formatDate=$.datepicker._formatDate;
$.datepicker._formatDate = function(inst, day, month, year){
var tp_inst = this._get(inst, 'timepicker');
if(tp_inst)
{
if(day)
var b = this._base_formatDate(inst, day, month, year);
tp_inst._updateDateTime(inst);
return tp_inst.$input.val();
}
return this._base_formatDate(inst);
}
//#######################################################################################
// override options setter to add time to maxDate(Time) and minDate(Time). MaxDate
//#######################################################################################
$.datepicker._base_optionDatepicker = $.datepicker._optionDatepicker;
$.datepicker._optionDatepicker = function(target, name, value) {
var inst = this._getInst(target),
tp_inst = this._get(inst, 'timepicker');
if (tp_inst) {
var min,max,onselect;
if (typeof name == 'string') { // if min/max was set with the string
if (name==='minDate' || name==='minDateTime' )
min = value;
else if (name==='maxDate' || name==='maxDateTime')
max = value;
else if (name==='onSelect')
onselect=value;
} else if (typeof name == 'object') { //if min/max was set with the JSON
if(name.minDate)
min = name.minDate;
else if (name.minDateTime)
min = name.minDateTime;
else if (name.maxDate)
max = name.maxDate;
else if (name.maxDateTime)
max = name.maxDateTime;
}
if(min){ //if min was set
if(min==0)
min=new Date();
else
min= new Date(min);
tp_inst._defaults.minDate = min;
tp_inst._defaults.minDateTime = min;
} else if (max){ //if max was set
if(max==0)
max=new Date();
else
max= new Date(max);
tp_inst._defaults.maxDate = max;
tp_inst._defaults.maxDateTime = max;
}
else if (onselect)
tp_inst._defaults.onSelect=onselect;
}
if (value === undefined)
return this._base_optionDatepicker(target, name);
return this._base_optionDatepicker(target, name, value);
};
//#######################################################################################
// jQuery extend now ignores nulls!
//#######################################################################################
function extendRemove(target, props) {
$.extend(target, props);
for (var name in props)
if (props[name] === null || props[name] === undefined)
target[name] = props[name];
return target;
}
$.timepicker = new Timepicker(); // singleton instance
$.timepicker.version = "0.9.8";
})(jQuery);
var $ = jQuery;
function howBuySantanderInstallment() {
window.open('https://www.santanderconsumer.pl/raty-jak-kupic', 'new_window','width=600,height=500,directories=no,location=no,menubar=no,resizable=yes,scrollbars=yes,status=no,toolbar=no');
}
function validateSantanderAgree() {
if ($('#santanderAgree').prop('checked') == false){
alert ("Zanim złożysz zamówienie, zapoznaj sie z procedura udzielenia kredytu ratalnego eRaty Santander Consumer Bank.");
return false;
} else {
return true;
}
}
function santanderInstallmentCount(sum_all) {
return false;
}
$(document).ready(function(){
/* search */
var isActive = false;
$('#elementSearch input#labelSearch').focus(function(){
isActive = true;
$(this).attr('value','');
return false;
});
$('#elementSearch input#labelSearch').blur(function(){
isActive = false;
$('#elementSearch').find('.error').remove();
setTimeout(function(){
$("#prompt").fadeOut(100);
}, 200);
});
$('#elementSearch input#labelSearch').on('click', function(){
$(this).removeClass('gray');
if(jQuery.trim($(this).attr('value'))=='Tutaj wpisz czego szukasz')
$(this).attr('value','');
});
$('#elementSearch input[type=submit]').on('click', function(){
var tmp_value = jQuery.trim($('#labelSearch').attr('value'));
if(tmp_value.length<=2 || tmp_value=='Tutaj wpisz czego szukasz'){
if($('#elementSearch').find('.error').is('.error')==false)
$('#elementSearch').prepend('Wpisz co najmniej 3 znaki.
');
return false;
}
$(this).removeClass('gray');
if((tmp_value)=='Tutaj wpisz czego szukasz')
$('#labelSearch').attr('value','');
});
var searchtimer, searchval;
$('#elementSearch input#labelSearch').keyup(function(event){
var tmp_searchval =$(this).val();
var tmp_searchvaltrim =jQuery.trim(tmp_searchval);
$(this).removeClass('gray');
if(tmp_searchvaltrim=='Tutaj wpisz czego szukasz'){
$(this).attr('value','');
}
if(event.keyCode==13 && (tmp_searchvaltrim=='Tutaj wpisz czego szukasz' || tmp_searchvaltrim=='')){
$(this).triggerHandler('focus');
}
clearTimeout(searchtimer);
if(isActive==true && (event.keyCode != '38' && event.keyCode != '40')){
if(tmp_searchval.length>2 && searchval!=tmp_searchval){
searchtimer = setTimeout(function(){
searchval = tmp_searchval;
var href = '/addon/getPrompt/'+'search='+encodeURI(tmp_searchval);
$("#prompt").load(href);
}, 300);
}else{
$("#prompt").fadeOut(100);
$("#prompt").load('/addon/getPrompt/');
}
}
});
$('#elementSearch input#labelSearch').keydown(function(event){
var tmpLabelSearch = jQuery.trim($(this).attr('value'));
$(this).removeClass('gray');
if(tmpLabelSearch=='Tutaj wpisz czego szukasz'){
tmpLabelSearch=tmpLabelSearch.replace('Tutaj wpisz czego szukasz','')
$(this).attr('value',tmpLabelSearch);
}
});
$("#prompt .item").live('mouseover',function(){
var text = $(this).attr('title');
$(this).addClass('active');
}).live('mouseout',function(){
$(this).removeClass('active');
});
$("#prompt div.item").live('click',function(){
var text = $(this).attr('title');
$('#elementSearch input#labelSearch').attr('value',text);
$(this).parents('form').submit();
})
$(document).keydown(function(event){
if(isActive==true){
var tmp_value = jQuery.trim($('#labelSearch').attr('value'));
if(tmp_value.length>=2)
$('#elementSearch').find('.error').remove();
if(event.keyCode == '38' || event.keyCode == '40' || event.keyCode == '13'){
var activeitem = $("#prompt").find('.active');
var countitem = $("#prompt .item").length;
if(activeitem.length==0){
if(event.keyCode == '38' || event.keyCode == '40')
$('#prompt .item:first-child').addClass('active');
}else{
$("#prompt .item").removeClass('active');
// key up arrow
if(event.keyCode=='38' && activeitem.index()+2==1) {
$('#prompt .item:first-child').addClass('active');
activeitem = $('#prompt .item:first-child');
}else if(event.keyCode == '38' && activeitem.index()+2>1) {
activeitem = $('#'+activeitem.attr('id')).prev();
$("#prompt .item").removeClass('active');
$('#'+activeitem.attr('id')).addClass('active');
}
// key down arrow
if(event.keyCode=='40' && activeitem.index()+2<=countitem) {
activeitem = $('#'+activeitem.attr('id')).next();
$('#'+activeitem.attr('id')).addClass('active');
}else if(event.keyCode == '40' && activeitem.index()+2>=countitem) {
$('#'+activeitem.attr('id')).addClass('active');
}
}
// key enter
if(tmp_value.length<=2){
if($('#elementSearch').find('.error').is('.error')==false)
$('#elementSearch').prepend('Wpisz co najmniej 3 znaki.
');
} else {
if(event.keyCode=='13'){
if(!$('#'+activeitem.attr('id')).attr('href')){
$('#elementSearch input#labelSearch').attr('value',$('#'+activeitem.attr('id')).attr('title'));
$('#elementSearch form').submit();
}else{
window.location.href = $('#'+activeitem.attr('id')).attr('href');
return false;
}
$("#prompt").fadeOut(300);
}
}
}
}
});
/* search */
/* ------------------------------------------------------------------------------------------------------------- */
$('input.text, textarea, select').on('click', function(){
$(this).addClass('focus');
}).focus(function(){
$(this).addClass('focus');
}).blur(function(){
$(this).removeClass('focus');
});
$('#boxFormSearch .boxFormSearch .rowForm .colForm #labelSearch').on('click', function(){
$(this).parents('#boxFormSearch').find('.btnSearch').addClass('focusBtnSearch');
}).focus(function(){
$(this).parents('#boxFormSearch').find('.btnSearch').addClass('focusBtnSearch');
}).blur(function(){
$(this).parents('#boxFormSearch').find('.btnSearch').removeClass('focusBtnSearch');
});
/* ------------------------------------------------------------------------------------------------------------- */
$("#tabs, #mainProductTabs").tabs({
cache: true
});
/*$("#mainProductTabs").tabs({
cache: true
}).tabs('rotate', 9000);*/
var tmpLabelSearch = $('input#labelSearch').attr('value');
setTimeout(function(){ $('input#labelSearch').attr('value',tmpLabelSearch); }, 10);
/* ------------------------------------------------------------------------------------------------------------- */
$(".autocompleteOff").attr('autocomplete','off');
/* ------------------------------------------------------------------------------------------------------------- */
$("ul li:first-child, ol li:first-child").addClass("first");
$("ul li:last, ol li:last").addClass("last");
$("tbody tr:nth-child(odd), ul li:odd, ol li:odd").addClass('odd');
$("tbody tr:nth-child(even), ul li:even, ol li:even").addClass('even');
/* ------------------------------------------------------------------------------------------------------------- */
$('input.radio').on('click', function(){
var idInputName = $(this).attr("name");
var idInputValue = $(this).attr("value");
var idFind = $('#'+idInputName+idInputValue).attr("class");
if(idFind=="choice"){
$('.choice').hide(100);
$('#'+idInputName+idInputValue).show(100);
}else{
$('.choice').hide(100);
}
});
/* ------------------------------------------------------------------------------------------------------------- */
$("#admin div.admin").hover(function(){
$(this).addClass('adminHover');
}, function(){
$(this).removeClass('adminHover');
}
);
/* ------------------------------------------------------------------------------------------------------------- */
$("#header div.user dl dd").hover(function(){
$(this).find("div.menu").show(100);
}, function(){
$(this).find("div.menu").hide(100);
}
);
/* ------------------------------------------------------------------------------------------------------------- */
$("table.tableList tr.odd").hover(function(){
$(this).addClass('oddhover');
}, function(){
$(this).removeClass('oddhover');
}
);
$("table.tableList tr.even").hover(function(){
$(this).addClass('evenhover');
}, function(){
$(this).removeClass('evenhover');
}
);
/* ------------------------------------------------------------------------------------------------------------- */
var isDetail,tip,c,id;
$(".buyAll .btnBuy, .buttonBuy .btn, .addToBasket input, .addToBasket label").live({
mouseenter: function(){
isDetail = $(this).parents('#productDetailInfo').length;
tip = $(this).parents('.buttonBuy,.addToBasket').find('.cloud');
if(tip.html()!=null && isDetail==0){
c = tip.html();
id = $(this).attr('rel');
if(id==null){
id = 'tip'+(new Date()).getTime();
$(this).attr('rel',id);
$('body').append(''+c+'
');
}
tip = $('#'+id);
tip.show();
tip.innerHeight(tip.innerHeight());
}
},
mouseleave: function(){
if(c!=null && isDetail==0){
tip.hide();
}
},
mousemove: function(e){
if(c!=null && isDetail==0){
var mouseX = e.pageX + 30;
var mouseY = e.pageY + 30;
var tipWidth = tip.width();
var tipHeight = tip.height();
var tipVisX = $(window).width() - (mouseX + tipWidth);
var tipVisY = $(window).height() - (mouseY + tipHeight);
if(tipVisX<30) mouseX = e.pageX - tipWidth - 30 + "px";
if(tipVisY<30) mouseY = e.pageY - tipHeight - 30 + "px";
tip.css({top:mouseY,left:mouseX});
}
}
});
$(".availability").live({
mouseenter: function(){
var delivery_days = null;
tip = $(this).attr('class');
tip = tip.replace('availability-15','');
tip = tip.replace('availability-12','');
tip = tip.replace('availability-11','');
tip = tip.replace('availability-10','');
tip = tip.replace('availability-4','');
tip = tip.replace('availability-3','');
tip = tip.replace('availability-1','');
tip = tip.replace('availability','');
if(tip.indexOf("_")!=null){
delivery_days = tip.substring(tip.indexOf("_")+1);
tip = tip.substring(0,tip.indexOf("_"));
}
tip = jQuery.trim(tip);
c = null;
if(c!=null){
if(c.indexOf('#1#')>0 && delivery_days!=null){
c = c.replace('#1#',delivery_days);
}else if(c.indexOf('#1#')>0 && delivery_days==null){
c = null;
}
$(this).css('cursor','help');
var id = $(this).attr('rel');
if(id==null){
id = 'tip'+(new Date()).getTime();
$(this).attr('rel',id);
$('body').append(''+c+'
');
}
tip = $('#'+id);
tip.show();
tip.innerHeight(tip.innerHeight());
}
},
mouseleave: function(){
if(c!=null){
tip.hide();
$(this).css('cursor','default');
}
},
mousemove: function(e){
if(c!=null){
var mouseX = e.pageX + 30;
var mouseY = e.pageY + 30;
var tipWidth = tip.width();
var tipHeight = tip.height();
var tipVisX = $(window).width() - (mouseX + tipWidth);
var tipVisY = $(window).height() - (mouseY + tipHeight);
if(tipVisX<30) mouseX = e.pageX - tipWidth - 30 + "px";
if(tipVisY<30) mouseY = e.pageY - tipHeight - 30 + "px";
tip.css({top:mouseY,left:mouseX});
}
}
});
$(".pallete").live({
mouseenter: function(){
tip = $(this).attr('class');
tip = jQuery.trim(tip);
c = null;
if(c!=null){
$(this).css('cursor','help');
var id = $(this).attr('rel');
if(id==null){
id = 'tip'+(new Date()).getTime();
$(this).attr('rel',id);
$('body').append(''+c+'
');
}
tip = $('#'+id);
tip.show();
tip.innerHeight(tip.innerHeight());
}
},
mouseleave: function(){
if(c!=null){
tip.hide();
$(this).css('cursor','default');
}
},
mousemove: function(e){
if(c!=null){
var mouseX = e.pageX + 30;
var mouseY = e.pageY + 30;
var tipWidth = tip.width();
var tipHeight = tip.height();
var tipVisX = $(window).width() - (mouseX + tipWidth);
var tipVisY = $(window).height() - (mouseY + tipHeight);
if(tipVisX<30) mouseX = e.pageX - tipWidth - 30 + "px";
if(tipVisY<30) mouseY = e.pageY - tipHeight - 30 + "px";
tip.css({top:mouseY,left:mouseX});
}
}
});
/* end cloud */
/* ------------------------------------------------------------------------------------------------------------- */
$('a.delete, .confirm').on('click', function(e){
var answer = 'Czy na pewno usunać?';
var title = $(this).attr('title');
title = title.replace(/^\s+|\s+$/g, "");
if(title.length>0){
if(confirm(title)){
return title;
}else{
return false;
}
}else{
if(confirm(answer)){
return answer;
}else{
return false;
}
}
e.preventDefault();
});
$('input.delete,button.delete').on('click', function(e){
var answer = 'Czy na pewno usunać?';
var title = $(this).attr('title').trim();
if(title.length>0){
if(confirm(title)){
$(this).parents('form').submit();
return title;
}else{
return false;
}
}else{
if(confirm(answer)){
$(this).parents('form').submit();
return answer;
}else{
return false;
}
}
e.preventDefault();
});
/* ------------------------------------------------------------------------------------------------------------- */
$('#admin input.btn').on('click', function(){
var $action = $(this).attr("title");
if($action != '' && $action != ' '){
$(this).parents("form").attr("action", $action).submit();
}
});
$('.btnFormAction').on('click', function(){
var $action = $(this).find('.link').html();
if($action != '' && $action != ' '){
$(this).parents("form").attr("action", $action).submit();
}
});
$('.btnFormActionRankAdd').on('click', function(){
var $action = $(this).find('.link').html();
if($action != '' && $action != ' '){
$('body').find("form.formActionRankAdd").attr("action", $action).submit();
}
});
$('#categoryTree .filterOff, #producerTree .filterOff').on('click', function(){
var $action = $(this).find('.link').html();
if($action != '' && $action != ' '){
$action = $action.replace(/&/g,"&");
$(this).parents('a').attr('href',$action);
}
});
$('#filter .filterOff').on('click', function(){
var $action = $(this).find('a').attr("href");
if($action != '' && $action != ' '){
$action = $action.replace(/&/g,"&");
window.location.href = $action;
}
});
$('.makeUrl').hover(function(){
$(this).css({
'cursor':'pointer',
'text-decoration':'underline'
});
}, function (){
$(this).css({
'cursor':'default',
'text-decoration':'none'
});
});
$('.makeUrl').on('click', function(){
var $action = $(this).find('.link').html();
if($action != '' && $action != ' '){
$action = $action.replace(/&/g,"&");
window.location.href = $action;
}
});
/* ------------------------------------------------------------------------------------------------------------- */
/* Polish initialisation for the jQuery UI date picker plugin. */
/* Written by Jacek Wysocki (jacek.wysocki@gmail.com). */
jQuery(function($){
$.datepicker.regional['pl'] ={
closeText: 'Zamknij',
prevText: '<Poprzedni',
nextText: 'Następny>',
currentText: 'Dziś',
monthNames: ['Styczeń','Luty','Marzec','Kwiecień','Maj','Czerwiec',
'Lipiec','Sierpień','Wrzesień','Październik','Listopad','Grudzień'],
monthNamesShort: ['Sty','Lu','Mar','Kw','Maj','Cze',
'Lip','Sie','Wrz','Pa','Lis','Gru'],
dayNames: ['Niedziela','Poniedziałek','Wtorek','Środa','Czwartek','Piątek','Sobota'],
dayNamesShort: ['Nie','Pn','Wt','Śr','Czw','Pt','So'],
dayNamesMin: ['N','Pn','Wt','Śr','Cz','Pt','So'],
weekHeader: 'Tydz',
dateFormat: 'dd.mm.yy',
firstDay: 1,
isRTL: false,
showMonthAfterYear: false,
yearSuffix: ''};
$.datepicker.setDefaults($.datepicker.regional['pl']);
});
$('input.datepicker').datepicker({ dateFormat: 'yy-mm-dd' });
$('div.datepicker').live('click', function(){
$(this).find('input').datepicker({ dateFormat: 'yy-mm-dd' }).triggerHandler('focus');
});
/* ------------------------------------------------------------------------------------------------------------- */
$.timepicker.regional['pl'] = {
timeOnlyTitle: 'Wybierz godzinę',
timeText: 'Czas',
hourText: 'Godziny',
minuteText: 'Minuty',
secondText: 'Sekundy',
millisecText: 'Milisekundy',
currentText: 'Aktualnie',
closeText: 'Zamknij',
ampm: false
};
$.timepicker.setDefaults($.timepicker.regional['pl']);
$('input.timepicker').timepicker({
timeFormat: 'hh:mm',
stepMinute: 5,
hourGrid: 4,
minuteGrid: 10
});
$('input.datetimepicker').datetimepicker({
dateFormat: 'yy-mm-dd',
timeFormat: 'hh:mm',
stepMinute: 5,
hourGrid: 4,
minuteGrid: 10
});
$('.datetimepicker_start').datetimepicker({
dateFormat: 'yy-mm-dd',
timeFormat: 'hh:mm',
stepMinute: 5,
hourGrid: 4,
minuteGrid: 10,
onClose: function($dateText, inst) {
var $endDateTextBox = $('.datetimepicker_end');
var $edtb = $endDateTextBox.val();
$edtb = $edtb.replace(/(\d{4})-(\d{2})-(\d{2})/,"$2/$3/$1");
if ($edtb != '') {
var $dt = $dateText.replace(/(\d{4})-(\d{2})-(\d{2})/,"$2/$3/$1");
var $testStartDate = new Date($dt);
var $testEndDate = new Date($edtb);
if ($testStartDate > $testEndDate)
$endDateTextBox.val($dateText);
} else {
$endDateTextBox.val($dateText);
}
},
onSelect: function (selectedDateTime){
var start = $(this).datetimepicker('getDate');
$('.datetimepicker_end').datetimepicker('option', 'minDate', new Date(start.getTime()));
}
});
$('.datetimepicker_end').datetimepicker({
dateFormat: 'yy-mm-dd',
timeFormat: 'hh:mm',
stepMinute: 5,
hourGrid: 4,
minuteGrid: 10,
onClose: function($dateText, inst) {
var $startDateTextBox = $('.datetimepicker_start');
var $sdtb = $startDateTextBox.val();
$sdtb = $sdtb.replace(/(\d{4})-(\d{2})-(\d{2})/,"$2/$3/$1");
if ($sdtb != '') {
var $dt = $dateText.replace(/(\d{4})-(\d{2})-(\d{2})/,"$2/$3/$1");
var $testStartDate = new Date($sdtb);
var $testEndDate = new Date($dt);
if ($testStartDate > $testEndDate)
$startDateTextBox.val($dateText);
} else {
$startDateTextBox.val($dateText);
}
},
onSelect: function (selectedDateTime){
var end = $(this).datetimepicker('getDate');
$('.datetimepicker_start').datetimepicker('option', 'maxDate', new Date(end.getTime()) );
}
});
/* ------------------------------------------------------------------------------------------------------------- */
$(".rowForm").find("input, textarea, select").on('click', function(){
$(this).parent(".rowForm").addClass("rowFormActive");
});
$(".rowForm").find("input, textarea, select").blur(function(){
$(this).parent(".rowForm").removeClass("rowFormActive");
});
/* ------------------------------------------------------------------------------------------------------------- */
$("a[rel='gallery'], a[rel='thumbs'],.zoom").colorbox({
slideshowSpeed: 10000,
innerWidth: 980,
innerHeight: 600,
scalePhotos: false,
slideshow: false,
slideshowStart: "Rozpocznij pokaz zdjęć",
slideshowStop: "Zatrzymaj pokaz zdjęć",
current: "Zdjęcie {current} z {total}",
previous: "Poprzednie",
next: "Następne",
close: "Zamknij",
onLoad:function(){
$('#cboxZoom').remove();
},
onComplete:function(){
cboxZoom();
}
});
$("a[rel='photoGallery']").colorbox({
slideshowSpeed: 10000,
innerWidth: 980,
innerHeight: 610,
scalePhotos: true,
slideshow: false,
slideshowStart: "Rozpocznij pokaz zdjęć",
slideshowStop: "Zatrzymaj pokaz zdjęć",
current: "Zdjęcie {current} z {total}",
previous: "Poprzednie",
next: "Następne",
close: "Zamknij"
});
function cboxZoom(){
var $ob = "#cboxLoadedContent";
var $width = $($ob).find("img").width();
var $height = $($ob).find("img").height();
if($width >= 980 || $height >= 600){
$('#cboxClose').before(' Powiększ zdjęcie
');
$('#cboxZoom').fadeIn(600);
}
}
$("#cboxZoom").live('click', function(event){
var $ob = "#cboxLoadedContent";
var $height = $($ob).find("img").height();
var $path = $($ob).find("img").attr("src");
$path = $path.replace(/f[0-9]+x[0-9]+/,"f2000x2000");
$($ob).find("img").remove();
$($ob).prepend(' Trwa ładowanie ');
var $sliderZoom;
var $iviewer;
$iviewer = $($ob).iviewer({
src: $path,
zoom: 100,
zoom_base: 100,
zoom_delta: 1.6,
zoom_max: 200,
zoom_min: 25,
fit: true,
update_on_resize: true,
onZoom:function(coords){
$sliderZoom.slider("value",coords);
},
onStartDrag:function(){
return true;
},
onFinishLoad:function(){
$($ob).find('.loading').fadeOut().remove();
$($ob).find('.iviewer_ui').fadeIn(600);
}
});
$('.iviewer_zoom_in').attr('title','Powiększ zdjęcie');
$('.iviewer_zoom_out').attr('title','Pomniejsz zdjęcie');
$('.iviewer_zoom_zero').attr('title','Pokaż rzeczywisty rozmiar zdjęcia')
$('.iviewer_zoom_fit').attr('title','Dopasuj zdjęcie do rozmiaru okienka');
$('.iviewer_zoom_out').after('
');
$sliderZoom = $("#sliderZoom").slider({
animate: true,
min: 25,
max: 200,
value:100,
step: 25,
slide: function(event,ui){
$(this).ready(function(){
$iviewer.iviewer('set_zoom',ui.value);
});
}
});
$('.iviewer_cursor img').live('click', function(){
return false;
});
$('#cboxZoom').remove();
return false;
});
/* ------------------------------------------------------------------------------------------------------------- */
$(".btnWithdrawn").hover(function(){
var $tmp = $(this).find('span.addInfo').html();
$(this).prepend('
'+$tmp+'.
Zobacz szczegóły produktu » ');
$("#withdrawnHover").fadeIn();
return false;
}, function(){
$(this).removeClass('withdrawnHover');
$("#withdrawnHover").remove();
return false;
}
);
$("#categoryTree ul li a, #promotionTree ul li a, #producerTree ul li a, #productMain ul li a, #elementCategoryList ul li a, #producerListAll ul li a").hover(function(){
var $path = $(this).find('.img').html();
if($path!=null){
$(this).parent('li').attr('id','under');
$(this).prepend(' ');
$('#hover').find('img').load(function(){
$(this).fadeIn();
}).attr('src',$path);
$('#hover').show();
}
return false;
}, function(){
$(this).parent('li').attr('id','');
$("#hover").remove();
$("#hover").remove();
return false;
}
);
$("#elementCategoryList ul li .makeUrl").hover(function(){
var $path = $(this).find('.img').html();
if($path!=""){
$(this).parent('li').attr('id','under');
$(this).prepend(' ');
$('#hover').find('img').load(function(){
$(this).fadeIn();
}).attr('src',$path);
$('#hover').show();
}
return false;
}, function(){
$(this).parent('li').attr('id','');
$("#hover").remove();
$("#hover").remove();
return false;
}
);
$("table.productList span.photo, #cartList table .photo a").hover(function(){
var $path = $(this).find("img").attr("src");
if($path != "/photo/nophoto/f68x68/nophoto-1.jpg"){
$path = $path.replace(/f[0-9]+x[0-9]+/,"/f300x300/");
$(this).addClass('photoHover').prepend(' ');
$('#photoHover').find('img').load(function(){
$(this).fadeIn();
}).attr('src',$path);
$('#photoHover').show().animate({
marginLeft: "4px"
},300).find('img').fadeIn(250);
}
return false;
}, function(){
$(this).removeClass('photoHover');
$("#photoHover").remove();
return false;
}
);
$("#productIndex ul.productList li a").hover(function(){
var $path = $(this).find('.img').html();
if($path!=""){
$(this).attr('id','under');
$(this).prepend(' ');
$('#hover').find('img').load(function(){
$(this).fadeIn();
}).attr('src',$path);
$('#hover').show().animate({
marginLeft: "10px"
},200)
}
return false;
}, function(){
$(this).attr('id','');
$("#hover").remove();
$("#hover").remove();
return false;
}
);
$(".iHover").hover(function(){
var $path = $(this).attr("rev");
$path = $path.replace(/\|/g," ");
var $infoHover = $(this).parents("span.infoHover").attr("class");
if($path!=""){
$(this).attr('id','under')
if($infoHover!="infoHover") $(this).wrap(' ');
$(this).parents("span.infoHover").prepend(' '+$path+' ');
$('#hover').show();
}
return false;
}, function(){
$(this).attr('id','');
$("#hover").remove();
$("#hover").remove();
return false;
}
);
/* ------------------------------------------------------------------------------------------------------------- */
$('#thumbs ul.photo .more').on('click', function(){
var $photoCover = $('#thumbs .photoCover').index();
if($photoCover >= 0){
$('#thumbs ul.photo').removeClass('photoCover');
$('#thumbs ul.video').addClass('videoCover');
}
var $hidePhoto = $('#hidePhoto').attr('class');
var $length = $(this).parent('ul').find('li').length;
if($hidePhoto=='hide'){
$(this).parent('ul').find('li').removeClass('hide');
$('#hidePhoto').removeClass('hide');
$('#showPhoto').addClass('hide');
}else{
$(this).parent('ul').find('li').slice(3,$length-1).addClass('hide');
$('#hidePhoto').addClass('hide');
$('#showPhoto').removeClass('hide');
}
return false;
});
$('#thumbs ul.video .more').on('click', function(){
var $videoCover = $('#thumbs .videoCover').index();
if($videoCover >= 0){
$('#thumbs ul.photo').addClass('photoCover');
$('#thumbs ul.video').removeClass('videoCover');
}
var $hideVideo = $('#hideVideo').attr('class');
var $length = $(this).parent('ul').find('li').length;
if($hideVideo=='hide'){
$(this).parent('ul').find('li').removeClass('hide');
$('#hideVideo').removeClass('hide');
$('#showVideo').addClass('hide');
}else{
$(this).parent('ul').find('li').slice(1,$length-1).addClass('hide');
$('#hideVideo').addClass('hide');
$('#showVideo').removeClass('hide');
}
return false;
});
$('#thumbs div.photo').mouseover(function(){
var $photoCover = $('#thumbs .photoCover').index();
if($photoCover < 0){
var $thumbsPhotoId = this.id;
$thumbsPhotoId = $thumbsPhotoId.replace("-thumbs","");
$('#photo div.photo').css('display','none');
$('#video, #video div.video').css('display','none');
$('#photo, #'+$thumbsPhotoId).css('display','block');
}
return false;
});
$('#thumbs div.photo').on('click', function(){
var $photoCover = $('#thumbs .photoCover').index();
var $thumbsPhotoId = this.id;
$thumbsPhotoId = $thumbsPhotoId.replace("-thumbs","");
$('#video, #video div.video, #photo div.photo').css('display','none');
$('#photo, #'+$thumbsPhotoId).css('display','block');
$('#thumbs ul.photo').removeClass('photoCover');
$('#thumbs ul.video').addClass('videoCover');
if($photoCover==0) return false;
});
$('#thumbs div.video').on('click', function(){
var $thumbsVideoId = this.id;
$thumbsVideoId = $thumbsVideoId.replace("-thumbs","");
$('#video div.video, #photo, #photo div.photo').css('display','none');
$('#video, #'+$thumbsVideoId).css('display','block');
$('#thumbs ul.photo').addClass('photoCover');
$('#thumbs ul.video').removeClass('videoCover');
});
var $hash = window.location.hash;
var $type = $hash.substring(0,6);
if($type=='#video'){
$('#photo, #photo div.photo').css('display','none');
$('#thumbs ul.photo').addClass('photoCover');
$('#thumbs ul.video').removeClass('videoCover').find('li').removeClass('hide');
$('#video, #video div.video').css('display','none');
$('#video, '+$hash).css('display','block');
$('#hideVideo').removeClass('hide');
$('#showVideo').addClass('hide');
};
/* ------------------------------------------------------------------------------------------------------------- */
$('.btnSelectAll').on('click', function(){
$(this).parents('form').find('input:checkbox').prop('checked',true);
$(this).parents('form').find('.btnDeleteAll').fadeIn('slow');
});
$('.btnUncheckAll').on('click', function(){
$(this).parents('form').find('input:checkbox').prop('checked',false);
$(this).parents('form').find('.btnDeleteAll').fadeOut('slow');
});
$('input:checkbox').live('click', function(){
var $t = $(this).attr('checked');
var $e = $(this).parents('form').find('input[type="checkbox"]:checked:first').attr('checked');
if($t==true){
$(this).parents('form').find('.btnDeleteAll').fadeIn('slow');
}else{
if($e!=true) $(this).parents('form').find('.btnDeleteAll').fadeOut('slow');
}
});
/* ------------------------------------------------------------------------------------------------------------- */
$('.numberonly').live('keyup',function(e){
if(e.which==13) return false;
$(this).val(parseInt($(this).val()));
if($(this).val()=='NaN') $(this).val(1);
if($(this).val() < 1) $(this).val(1);
$(this).val();
});
$('.cartChangeNumber').blur(function(){
var $tmp = parseInt($(this).parent('.changeInputNumber').find('input').attr('value'));
var $minOrderQuantity = parseInt($(this).parents().find('input[name="min_order_quantity"]').attr('value'));
var $isOrderMultiply = parseInt($(this).parents().find('input[name="is_order_multiply"]').attr('value'));
if($minOrderQuantity>1 && $isOrderMultiply==1){
var $mod = $tmp%$minOrderQuantity;
if($mod!=0){
alert("Nieprawidłowa wartość, liczbę produktów zmieniono do najbliższej prawidłowej wartości.");
$tmp = $tmp - $mod;
if($tmp<$minOrderQuantity)
$tmp = $minOrderQuantity;
}
} else if($minOrderQuantity>1 && $isOrderMultiply==0){
if($tmp<$minOrderQuantity){
alert("Nieprawidłowa wartość, liczbę produktów zmieniono do najbliższej prawidłowej wartości.");
$tmp = $minOrderQuantity;
}
}
$(this).parent('.changeInputNumber').find('input').attr('value',$tmp);
$(this).parents("form").submit();
});
$('input.changeInputNumber').wrap('
').after('+
-
');
$('div.changeInputNumber .changeInputNumberPlus').on('click', function(){
var $tmp = parseInt($(this).parent('.changeInputNumber').find('input').attr('value'));
var $minOrderQuantity = parseInt($(this).parents().find('input[name="min_order_quantity"]').attr('value'));
var $isOrderMultiply = parseInt($(this).parents().find('input[name="is_order_multiply"]').attr('value'));
if($minOrderQuantity>1 && $isOrderMultiply==1)
$tmp = $tmp + $minOrderQuantity;
else if ($minOrderQuantity>1 && $isOrderMultiply==0)
$tmp = $tmp + 1;
else
$tmp = $tmp + 1;
$(this).parent('.changeInputNumber').find('input').attr('value',$tmp);
$(this).parents("form").submit();
});
$('div.changeInputNumber .changeInputNumberMinus').on('click', function(){
var $tmp = parseInt($(this).parent('.changeInputNumber').find('input').attr('value'));
var $minOrderQuantity = parseInt($(this).parents().find('input[name="min_order_quantity"]').attr('value'));
var $isOrderMultiply = parseInt($(this).parents().find('input[name="is_order_multiply"]').attr('value'));
if($tmp>$minOrderQuantity){
if($minOrderQuantity>1 && $isOrderMultiply==1)
$tmp = $tmp - $minOrderQuantity;
else if ($minOrderQuantity>1 && $isOrderMultiply==0)
$tmp = $tmp - 1;
else
$tmp = $tmp - 1;
$(this).parent('.changeInputNumber').find('input').attr('value',$tmp);
$(this).parents("form").submit();
}
});
$('input.changeInputNumber').on('click', function(){
var $tmpValue = $(this).attr('value');
$(this).blur(function(){
var $tmpValueBlur = $(this).attr('value');
if($tmpValue!=$tmpValueBlur){
$(this).parents("form").submit();
}
});
});
$('select.refreshForm').change(function(){
$(this).parents("form").submit();
});
/* findSimilarProducts */
$('.findSimilarProducts .category input[type="radio"]').on('click', function(){
var t = $(this).parentsUntil('.findSimilarProducts').find('.filterSortValues');
if(t.hasClass($(this).val())){
t.show();
$('.findSimilarProducts .filterSortValuesToggle u').html('Ukryj parametry');
}else{
t.hide();
$('.findSimilarProducts .filterSortValuesToggle u').html('Rozwiń parametry');
}
});
$('.findSimilarProducts .filterSortValuesToggle').on('click', function(){
var t = $(this).parentsUntil('.findSimilarProducts').find('.filterSortValues');
var tx = $(this);
$('.findSimilarProducts .category input[type="radio"]:last').attr('checked','true');
if(t.is(':hidden')){
t.show();
tx.find('u').html('Ukryj parametry');
}else{
t.hide();
tx.find('u').html('Rozwiń parametry');
}
});
$('.findSimilarProducts .filterSortValues span select').change(function(){
var cha = $(this).get();
var arr = new Array();
arr = $(this).parents('span').find('select').each(function(e){
arr[e] = $(this);
});
if(arr.length==2){
if(arr[0]==arr.context && (parseFloat(arr[0].value)>parseFloat(arr[1].value))){
arr[1].value = arr[0].value;
}
if(arr[1]==arr.context && (parseFloat(arr[0].value)>parseFloat(arr[1].value))){
arr[0].value = arr[1].value;
}
}
});
/* end findSimilarProducts */
/* ------------------------------------------------------------------------------------------------------------- */
$('#productVisited a').hover(function(){
$(this).parent().find('.productVisitedDetail').fadeIn(50);
}, function(){
$(this).parent().find('.productVisitedDetail').fadeOut(50);
}
);
var product_visited_collapsed = $.cookie('product_visited_collapsed');
var COOKIE_NAME = 'product_visited_collapsed';
var ADDITIONAL_COOKIE_NAME = 'additional';
var options ={ path: '/', expires: 100000 };
$('#productVisited .switch').toggle(function(){
$('#productVisited').addClass('productVisitedCollapsed');
$(this).addClass('switch-collapsed');
$.cookie('product_visited_collapsed','close', options);
return false;
}, function(){
$('#productVisited').removeClass('productVisitedCollapsed');
$(this).removeClass('switch-collapsed');
$.cookie('product_visited_collapsed','open', options);
return false;
});
/* ------------------------------------------------------------------------------------------------------------- */
$('#listFilter ul li .filterOff').on('click', function(){
var $action = $(this).find('.link').html();
$action = $action.replace(/&/g,"&");
$(this).parents('fieldset').find('input').attr('value', $action);
$(this).parents('form').submit();
});
$('#listFilter ul li').on('click', function(){
var $action = $(this).find('.link').html();
$action = $action.replace(/&/g,"&");
$(this).parents('fieldset').find('input').attr('value', $action);
$(this).parents('form').submit();
});
/* ------------------------------------------------------------------------------------------------------------- */
$("#showAllOptions").toggle(function(){
$(".colFormVisable").removeClass("colFormHide");
$(this).html("Ukryj wszystkie opcje");
}, function(){
$(".colFormVisable").addClass("colFormHide").find(".classSelected").parents("div.colFormVisable").removeClass("colFormHide");
$(this).html("Pokaż wszystkie opcje");
});
$(".boxFormFilter").find("input, select:selected").on('click', function(){
if($(this).val()=='' || $(this).val()==' ' || $(this).val()=='all' || $(this).val()==null || $(this).val()=='1000000')
$(this).removeClass('classSelected');
else
$(this).addClass('classSelected').parents("div.colFormVisable").removeClass("colFormHide");
});
$(".boxFormFilter").find("input, select").each(function(){
if($(this).val()=='' || $(this).val()==' ' || $(this).val()=='all' || $(this).val()==null || $(this).val()=='1000000')
$(this).removeClass('classSelected');
else
$(this).addClass('classSelected').parents("div.colFormVisable").removeClass("colFormHide");
});
/* ------------------------------------------------------------------------------------------------------------- */
$('.btnGetAddon').on('click', function(){
$(this).after('
');
var url = '/addon/orderCheckStatus/';
var title = this.title;
$("#dialog").empty().html(' Trwa ładowanie ');
$("#dialog").load(url, [], function(){
$("#dialog").dialog("open");
});
$("#dialog").dialog({
closeText: 'Zamknij',
title: title,
modal: true,
bgiframe: true,
autoOpen: true,
height: 400,
minHeight: 400,
maxHeight: 800,
width: 500,
minWidth: 500,
draggable: true,
resizeable: true,
zIndex: 200000,
closeOnEscape: true,
buttons:{
"Zamknij": function(){
$(this).dialog("close");
}
},
close: function(){
$('#dialog').remove();
}
});
return false;
});
$('#statusCheck').live('click',function() {
$.ajax({
type: 'POST',
url: '/?id=orderCheckStatus',
data: 'id_order='+$('#labelIdOrder').val()+'&lastname_nip='+$('#labelLastnameNip').val(),
success: function(html){
$('#orderCheckStatus').html(html);
}
});
});
/* ------------------------------------------------------------------------------------------------------------- */
$('.btnChoose').on('click', function(){
$(this).after('
');
var $id_list_category = $('#id_category').html();
var $multiple = $('#id_category').attr('title');
var $onlyLeaf = $('#id_category').attr('alt');
var url = this.href;
var title = this.title;
$("#dialog").empty().html(' Trwa ładowanie ');
$("#dialog").load(url,{id_list_category:$id_list_category,multiple:$multiple,onlyLeaf:$onlyLeaf}, function(){
$("#dialog").dialog("open");
});
$("#dialog").dialog({
closeText: 'Zamknij',
title: title,
modal: true,
bgiframe: true,
autoOpen: true,
height: 500,
minHeight: 300,
maxHeight: 800,
width: 980,
minWidth: 980,
draggable: true,
resizeable: true,
zIndex: 200000,
closeOnEscape: true,
buttons:{
"Zamknij": function(){
$(this).dialog("close");
}
},
close: function(){
$('#dialog').remove();
}
});
return false;
});
/* ------------------------------------------------------------------------------------------------------------- */
$('.btnSearchProduct').on('click', function(){
$(this).after('
');
var url = this.href;
var title = this.title;
$("#dialogSearchProduct").empty().html(' Trwa ładowanie ');
$("#dialogSearchProduct").load(url, [], function(){
$("#dialogSearchProduct").dialog("open");
});
$("#dialogSearchProduct").dialog({
closeText: 'Zamknij',
title: title,
modal: true,
bgiframe: true,
autoOpen: true,
height: 500,
minHeight: 300,
maxHeight: 800,
width: 980,
minWidth: 980,
draggable: true,
resizeable: true,
zIndex: 200000,
closeOnEscape: true,
buttons:{
"Zamknij": function(){
$(this).dialog("close");
}
},
close: function(){
$('#dialogSearchProduct').remove();
}
});
return false;
});
/* ------------------------------------------------------------------------------------------------------------- */
/* ------------------------------------------------------------------------------------------------------------- */
$('.btnSearchArticle').on('click', function(){
$(this).after('
');
var url = this.href;
var title = this.title;
$("#dialogSearchArticle").empty().html(' Trwa ładowanie ');
$("#dialogSearchArticle").load(url, [], function(){
$("#dialogSearchArticle").dialog("open");
});
$("#dialogSearchArticle").dialog({
closeText: 'Zamknij',
title: title,
modal: true,
bgiframe: true,
autoOpen: true,
height: 500,
minHeight: 300,
maxHeight: 800,
width: 980,
minWidth: 980,
draggable: true,
resizeable: true,
zIndex: 200000,
closeOnEscape: true,
buttons:{
"Zamknij": function(){
$(this).dialog("close");
}
},
close: function(){
$('#dialogSearchArticle').remove();
}
});
return false;
});
/* ------------------------------------------------------------------------------------------------------------- */
$('.btnSearchUser').on('click', function(){
$(this).after('
');
var url = this.href;
var title = this.title;
$("#dialogSearchUser").empty().html(' Trwa ładowanie ');
$("#dialogSearchUser").load(url, [], function(){
$("#dialogSearchUser").dialog("open");
});
$("#dialogSearchUser").dialog({
closeText: 'Zamknij',
title: title,
modal: true,
bgiframe: true,
autoOpen: true,
height: 500,
minHeight: 300,
maxHeight: 800,
width: 980,
minWidth: 980,
draggable: true,
resizeable: true,
zIndex: 200000,
closeOnEscape: true,
buttons:{
"Zamknij": function(){
$(this).dialog("close");
}
},
close: function(){
$('#dialogSearchUser').remove();
}
});
return false;
});
/* ------------------------------------------------------------------------------------------------------------- */
$('#connectedProductList .btnChooseVariant').live('click', function () {
$('body').after('
');
var $url = $(this).attr('id');
var $title = $(this).attr('title');
var $arrow = $(this).find('span').attr('class');
var $id_connected_product = $(this).parents('li').attr('id');
var $arr = null;
$('#connectedProductList .'+$id_connected_product).each(function() {
var $elm = $(this).find('input[type="checkbox"]:checked').attr('value');
if($elm!=undefined){
if($arr==null){
$arr = $elm;
}else{
$arr = $arr+','+$elm;
}
}else{
$arr = null;
}
})
if($arrow=='arrowDown'){
$(this).find('span').removeClass('arrowDown').addClass('arrowUp');
}else{
$(this).find('span').removeClass('arrowUp').addClass('arrowDown');
}
$("#dialog").empty().html(' Trwa ładowanie ');
$("#dialog").load($url,{id_list_connected_product:$arr}, function(){
$("#dialog").dialog("open");
});
$("#dialog").dialog({
autoOpen: false,
show:"blind",
hide: "blind",
closeText: 'Zamknij',
title: $title,
modal: true,
bgiframe: true,
autoOpen: true,
height: 500,
minHeight: 300,
maxHeight: '90%',
width: 980,
minWidth: 980,
draggable: true,
resizeable: true,
zIndex: 200000,
closeOnEscape: true,
buttons:{
"Zamknij": function(){
$(this).dialog("close");
}
},
close: function(){
$('#dialog').remove();
$('#connectedProductList .btnChooseVariant').find('span').removeClass('arrowUp').addClass('arrowDown');
}
});
return false;
});
$(window).resize(function() {
$(".ui-dialog-content").dialog("option", "position", ['center', 'center']);
});
$(".ui-dialog-content input:checkbox").change(function() {
$(".ui-dialog-content").dialog("option", "position", ['center', 'center']);
});
/* ------------------------------------------------------------------------------------------------------------- */
$('.btnPhotoChoose').on('click', function(){
$(this).after('
');
var url = this.href;
var title = this.title;
$("#dialogPhotoChoose").empty().html(' Trwa ładowanie ');
$("#dialogPhotoChoose").load(url, [], function(){
$("#dialogPhotoChoose").dialog("open");
});
$("#dialogPhotoChoose").dialog({
closeText: 'Zamknij',
title: title,
modal: true,
bgiframe: true,
autoOpen: true,
height: 500,
minHeight: 300,
maxHeight: 800,
width: 980,
minWidth: 980,
draggable: true,
resizeable: true,
zIndex: 200000,
closeOnEscape: true,
buttons:{
"Zamknij": function(){
$(this).dialog("close");
}
},
close: function(){
$('#dialogPhotoChoose').remove();
}
});
return false;
});
/* ------------------------------------------------------------------------------------------------------------- */
$('.btnSearchProducer').on('click', function(){
$(this).after('
');
var id_list_producer = $('#id_producer').val();
var multiple = $('#id_producer').attr('title');
var url = this.href+'&id_list_producer='+id_list_producer+'&multiple='+multiple;
var title = this.title;
$("#dialogSearchProducer").empty().html(' Trwa ładowanie ');
$("#dialogSearchProducer").load(url, [], function(){
$("#dialogSearchProducer").dialog("open");
});
$("#dialogSearchProducer").dialog({
closeText: 'Zamknij',
title: title,
modal: true,
bgiframe: true,
autoOpen: true,
height: 500,
minHeight: 300,
maxHeight: 800,
width: 980,
minWidth: 980,
draggable: true,
resizeable: true,
zIndex: 200000,
closeOnEscape: true,
buttons:{
"Zamknij": function(){
$(this).dialog("close");
}
},
close: function(){
$('#dialogSearchProducer').remove();
}
});
return false;
});
/* ------------------------------------------------------------------------------------------------------------- */
/* ------------------------------------------------------------------------------------------------------------- */
$('.btnSearchTag').on('click', function(){
$(this).after('
');
var id_list_tag = $('#id_tag').val();
var multiple = $('#id_tag').attr('title');
var lang = $('#labelLang').val();
var url = this.href+'&id_list_tag='+id_list_tag+'&multiple='+multiple+'&lang='+lang;
var title = this.title;
$("#dialogSearchTag").empty().html(' Trwa ładowanie ');
$("#dialogSearchTag").load(url, [], function(){
$("#dialogSearchTag").dialog("open");
});
$("#dialogSearchTag").dialog({
closeText: 'Zamknij',
title: title,
modal: true,
bgiframe: true,
autoOpen: true,
height: 500,
minHeight: 300,
maxHeight: 800,
width: 980,
minWidth: 980,
draggable: true,
resizeable: true,
zIndex: 200000,
closeOnEscape: true,
buttons:{
"Zamknij": function(){
$(this).dialog("close");
}
},
close: function(){
$('#dialogSearchTag').remove();
}
});
return false;
});
/* ------------------------------------------------------------------------------------------------------------- */
$('#producerTree .seeAll').toggle(function(){
$('#producerTree .notselected').slideDown(200);
$(this).find('span').removeClass('arrowDown').addClass('arrowUp').html('Pokaż tylko wybranych');
}, function(){
$('#producerTree .notselected').slideUp(200);
$(this).find('span').removeClass('arrowUp').addClass('arrowDown').html('Zobacz wszystkich');
});
function variablesListHeight(){
var $tmpListHeight = $('#list').height();
var $tmpListMenuHeight = $('#listMenu').height();
if($tmpListMenuHeight>$tmpListHeight){
$('#list').height($tmpListMenuHeight);
}
}
variablesListHeight();
/* ------------------------------------------------------------------------------------------------------------- */
var translate = $.cookie('translate');
var COOKIE_NAME = 'translate';
var ADDITIONAL_COOKIE_NAME = 'additional';
var options ={ path: '/', expires: 100000 };
$('#translate').on('click', function(){
var $tmp = $('#googleTranslate').attr('class')
if($tmp!='open'){
$('body').prepend('
');
$('#googleTranslate').load("/addon/googleTranslate/");
$.cookie('translate','open', options);
return false;
}else{
$('#googleTranslate').remove();
$.cookie('translate','close', options);
return false;
}
});
/* ------------------------------------------------------------------------------------------------------------- */
/* ------------------------------------------------------------------------------------------------------------- */
$(".ui-widget-overlay").live('click', function(){
$(".ui-dialog-titlebar-close").trigger('click');
});
/* ------------------------------------------------------------------------------------------------------------- */
/* navigationList */
$('#navigationList div ul li p').hover(function(e){
$(this).addClass('hover').css('zIndex',1000);
var path = $(this).find('.images').attr('src');
if(path!=null){
$(this).parent('p').attr('id','under');
$(this).prepend(' ');
$('#hover').find('img').load(function(){
$(this).fadeIn();
}).attr('src',path);
$('#hover').show();
}
}, function(){
$(this).parent('p').removeAttr('id');
$("#hover").remove();
$("#hover").remove();
$(this).removeClass('hover').css('zIndex','');
});
$('#navigationList div ul li p').on('click', function(e){
var filterOff = $(e.target);
if(!filterOff.is('a.filterOff img')){
var url = $(this).find('a:first').attr('href');
window.location.href = url;
}
});
$('#navigationList .seeAll').toggle(function(){
$(this).parent('div').find('.notselected').slideDown(200);
$(this).find('.arrow').addClass('up');
$(this).find('em').html('Pokaż tylko wybranych');
}, function(){
$(this).parent('div').find('.notselected').slideUp(200);
$(this).find('.arrow').removeClass('up');
$(this).find('em').html('Zobacz wszystkich');
});
$('#navigationList .seeAllProductFilter').toggle(function(){
$(this).parent('div').find('.notselected').slideDown(200);
$(this).find('.arrow').addClass('up');
$(this).find('em').html('Zwiń');
}, function(){
$(this).parent('div').find('.notselected').slideUp(200);
$(this).find('.arrow').removeClass('up');
$(this).find('em').html('Rozwiń');
});
$('#navigationList form p').hover(function(e){
$(this).addClass('hover');
}, function(){
$(this).removeClass('hover');
});
$('#navigationList form fieldset ul li p, #navigationList form fieldset h3').live('click',function(e){
var form = $(this).find('button:first').get(0).form;
var input = $(this).parents('fieldset').find('input[type="hidden"]');
var input_value = input.attr('value');
var filterOff = $(e.target);
var value = '';
if($(this).find('button.filterOff').val() == $(this).find('button:last').val()){
value = $(this).find('button.filterOff').val();
}else{
value = $(this).find('button:first').val();
}
input.attr('value',value);
var name = input.attr('name');
var action = $(form).attr('action');
if(action.indexOf(name)>=0){
action = action.replace(name+'='+input_value,name+'='+value);
}else{
action = action+'&'+name+'='+value;
}
action = action.replace(/\/&/g,'/');
$(form).attr('action',action);
$(form).trigger('submit');
});
/* end navigationList */
/* ------------------------------------------------------------------------------------------------------------- */
// ifie
// lt ie <=7
if($.browser.msie && $.browser.version.substr(0,1)<=7){
$('.photo a, a.photo,#categoryHead a').on('click', function(){
window.location=$(this).attr("href");
return false;
});
};
/* ------------------------------------------------------------------------------------------------------------- */
var cookie_information = $.cookie('cookie-information');
var COOKIE_NAME = 'cookie-information';
var ADDITIONAL_COOKIE_NAME = 'additional';
var options = { path: '/', expires: 10000 };
if(cookie_information!='close'){
$('#companyFooter').prepend('');
var cookieInformationHeight = $('#cookie-information').outerHeight();
$('#companyFooter').animate({
paddingTop: 0
/* paddingTop: cookieInformationHeight */
}, 500);
$('#cookie-information .close').live('click', function() {
$.cookie('cookie-information', 'close', options);
$('#companyFooter').animate({
paddingTop: 0
}, 500).find('#cookie-information').animate({
top: -cookieInformationHeight
}, 500, function() {
$(this).delay(500).remove();
});
});
}
});