﻿/* jquery.fixedBox.js */
jQuery.fn.fixedBox = function(options)
{
options = jQuery.extend({
x: false,
y: false
}, options);
return (this.each(function()
{
var x = y = 0;
if (!options.x || !options.y)
{
var ww = document.documentElement.clientWidth
|| document.body.clientWidth;
var hh = document.documentElement.clientHeight
|| document.body.clientHeight;
var w = jQuery(this).width();
var h = jQuery(this).height();
var padx = jQuery(this).css('padding-left');
padx = parseInt(padx.substring(0, padx.length - 2));
var pady = jQuery(this).css('padding-top');
pady = parseInt(pady.substring(0, pady.length - 2));
var borx = jQuery(this).css('border-left-width');
borx = parseInt(borx.substring(0, borx.length - 2));
if (!borx) borx = 0;
var bory = jQuery(this).css('border-top-width');
bory = parseInt(bory.substring(0, bory.length - 2));
if (!bory) bory = 0;
x = Math.round((ww - w - 2 * padx - 2 * borx) / 2);
y = Math.round((hh - h - 2 * pady - 2 * bory) / 2);
}
if (options.x) x = parseInt(options.x);
if (options.y) y = parseInt(options.y);
if (jQuery.browser.msie && jQuery.browser.version == '6.0')
{
var expression = "( " + y + " + ( ignoreMe = "
+ "document.documentElement.scrollTop ? "
+ "document.documentElement.scrollTop : "
+ "document.body.scrollTop ) ) + 'px'";
jQuery(this).get(0).style.setExpression("top", expression);
jQuery(this).css({
position: 'absolute',
zIndex: '1000',
left: x + 'px',
display: 'block'
});
}
else
{
jQuery(this).css({
position: 'fixed',
zIndex: '1000',
top: y + 'px',
left: x + 'px',
display: 'block'
});
}
}));
};

/* jquery.autocomplete.js */
;(function($) {
$.fn.extend({
autocomplete: function(urlOrData, options) {
var isUrl = typeof urlOrData == "string";
options = $.extend({}, $.Autocompleter.defaults, {
url: isUrl ? urlOrData : null,
data: isUrl ? null : urlOrData,
delay: isUrl ? $.Autocompleter.defaults.delay : 10,
max: options && !options.scroll ? 10 : 150
}, options);
options.highlight = options.highlight || function(value) { return value; };
options.formatMatch = options.formatMatch || options.formatItem;
return this.each(function() {
new $.Autocompleter(this, options);
});
},
result: function(handler) {
return this.bind("result", handler);
},
search: function(handler) {
return this.trigger("search", [handler]);
},
flushCache: function() {
return this.trigger("flushCache");
},
setOptions: function(options){
return this.trigger("setOptions", [options]);
},
unautocomplete: function() {
return this.trigger("unautocomplete");
}
});
$.Autocompleter = function(input, options) {
var KEY = {
UP: 38,
DOWN: 40,
DEL: 46,
TAB: 9,
RETURN: 13,
ESC: 27,
COMMA: 188,
PAGEUP: 33,
PAGEDOWN: 34,
BACKSPACE: 8
};
var $input = $(input).attr("autocomplete", "off").addClass(options.inputClass);
var timeout;
var previousValue = "";
var cache = $.Autocompleter.Cache(options);
var hasFocus = 0;
var lastKeyPressCode;
var config = {
mouseDownOnSelect: false
};
var select = $.Autocompleter.Select(options, input, selectCurrent, config);
var blockSubmit;
$.browser.opera && $(input.form).bind("submit.autocomplete", function() {
if (blockSubmit) {
blockSubmit = false;
return false;
}
});
$input.bind(($.browser.opera ? "keypress" : "keydown") + ".autocomplete", function(event) {
hasFocus = 1;
lastKeyPressCode = event.keyCode;
switch(event.keyCode) {
case KEY.UP:
event.preventDefault();
if ( select.visible() ) {
select.prev();
} else {
onChange(0, true);
}
break;
case KEY.DOWN:
event.preventDefault();
if ( select.visible() ) {
select.next();
} else {
onChange(0, true);
}
break;
case KEY.PAGEUP:
event.preventDefault();
if ( select.visible() ) {
select.pageUp();
} else {
onChange(0, true);
}
break;
case KEY.PAGEDOWN:
event.preventDefault();
if ( select.visible() ) {
select.pageDown();
} else {
onChange(0, true);
}
break;
case options.multiple && $.trim(options.multipleSeparator) == "," && KEY.COMMA:
case KEY.TAB:
case KEY.RETURN:
if( selectCurrent() ) {
event.preventDefault();
blockSubmit = true;
return false;
}
break;
case KEY.ESC:
select.hide();
break;
default:
clearTimeout(timeout);
timeout = setTimeout(onChange, options.delay);
break;
}
}).focus(function(){
hasFocus++;
}).blur(function() {
hasFocus = 0;
if (!config.mouseDownOnSelect) {
hideResults();
}
}).click(function() {
if ( hasFocus++ > 1 && !select.visible() ) {
onChange(0, true);
}
}).bind("search", function() {
var fn = (arguments.length > 1) ? arguments[1] : null;
function findValueCallback(q, data) {
var result;
if( data && data.length ) {
for (var i=0; i < data.length; i++) {
if( data[i].result.toLowerCase() == q.toLowerCase() ) {
result = data[i];
break;
}
}
}
if( typeof fn == "function" ) fn(result);
else $input.trigger("result", result && [result.data, result.value]);
}
$.each(trimWords($input.val()), function(i, value) {
request(value, findValueCallback, findValueCallback);
});
}).bind("flushCache", function() {
cache.flush();
}).bind("setOptions", function() {
$.extend(options, arguments[1]);
if ( "data" in arguments[1] )
cache.populate();
}).bind("unautocomplete", function() {
select.unbind();
$input.unbind();
$(input.form).unbind(".autocomplete");
});
function selectCurrent() {
var selected = select.selected();
if( !selected )
return false;
var v = selected.result;
previousValue = v;
if ( options.multiple ) {
var words = trimWords($input.val());
if ( words.length > 1 ) {
var seperator = options.multipleSeparator.length;
var cursorAt = $(input).selection().start;
var wordAt, progress = 0;
$.each(words, function(i, word) {
progress += word.length;
if (cursorAt <= progress) {
wordAt = i;
return false;
}
progress += seperator;
});
words[wordAt] = v;
v = words.join( options.multipleSeparator );
}
v += options.multipleSeparator;
}
$input.val(v);
hideResultsNow();
$input.trigger("result", [selected.data, selected.value]);
return true;
}
function onChange(crap, skipPrevCheck) {
if( lastKeyPressCode == KEY.DEL ) {
select.hide();
return;
}
var currentValue = $input.val();
if ( !skipPrevCheck && currentValue == previousValue )
return;
previousValue = currentValue;
currentValue = lastWord(currentValue);
if ( currentValue.length >= options.minChars) {
$input.addClass(options.loadingClass);
if (!options.matchCase)
currentValue = currentValue.toLowerCase();
request(currentValue, receiveData, hideResultsNow);
} else {
stopLoading();
select.hide();
}
};
function trimWords(value) {
if (!value)
return [""];
if (!options.multiple)
return [$.trim(value)];
return $.map(value.split(options.multipleSeparator), function(word) {
return $.trim(value).length ? $.trim(word) : null;
});
}
function lastWord(value) {
if ( !options.multiple )
return value;
var words = trimWords(value);
if (words.length == 1)
return words[0];
var cursorAt = $(input).selection().start;
if (cursorAt == value.length) {
words = trimWords(value)
} else {
words = trimWords(value.replace(value.substring(cursorAt), ""));
}
return words[words.length - 1];
}
function autoFill(q, sValue){
if( options.autoFill && (lastWord($input.val()).toLowerCase() == q.toLowerCase()) && lastKeyPressCode != KEY.BACKSPACE ) {
$input.val($input.val() + sValue.substring(lastWord(previousValue).length));
$(input).selection(previousValue.length, previousValue.length + sValue.length);
}
};
function hideResults() {
clearTimeout(timeout);
timeout = setTimeout(hideResultsNow, 200);
};
function hideResultsNow() {
var wasVisible = select.visible();
select.hide();
clearTimeout(timeout);
stopLoading();
if (options.mustMatch) {
$input.search(
function (result){
if( !result ) {
if (options.multiple) {
var words = trimWords($input.val()).slice(0, -1);
$input.val( words.join(options.multipleSeparator) + (words.length ? options.multipleSeparator : "") );
}
else {
$input.val( "" );
$input.trigger("result", null);
}
}
}
);
}
};
function receiveData(q, data) {
if ( data && data.length && hasFocus ) {
stopLoading();
select.display(data, q);
autoFill(q, data[0].value);
select.show();
} else {
hideResultsNow();
}
};
function request(term, success, failure) {
if (!options.matchCase)
term = term.toLowerCase();
var data = cache.load(term);
if (data && data.length) {
success(term, data);
} else if( (typeof options.url == "string") && (options.url.length > 0) ){
var extraParams = {
timestamp: +new Date()
};
$.each(options.extraParams, function(key, param) {
extraParams[key] = typeof param == "function" ? param() : param;
});
$.ajax({
mode: "abort",
port: "autocomplete" + input.name,
dataType: options.dataType,
url: options.url,
data: $.extend({
q: lastWord(term),
limit: options.max
}, extraParams),
success: function(data) {
var parsed = options.parse && options.parse(data) || parse(data);
cache.add(term, parsed);
success(term, parsed);
}
});
} else {
select.emptyList();
failure(term);
}
};
function parse(data) {
var parsed = [];
var rows = data.split("\n");
for (var i=0; i < rows.length; i++) {
var row = $.trim(rows[i]);
if (row) {
row = row.split("|");
parsed[parsed.length] = {
data: row,
value: row[0],
result: options.formatResult && options.formatResult(row, row[0]) || row[0]
};
}
}
return parsed;
};
function stopLoading() {
$input.removeClass(options.loadingClass);
};
};
$.Autocompleter.defaults = {
inputClass: "ac_input",
resultsClass: "ac_results",
loadingClass: "ac_loading",
minChars: 1,
delay: 400,
matchCase: false,
matchSubset: true,
matchContains: false,
cacheLength: 10,
max: 100,
mustMatch: false,
extraParams: {},
selectFirst: true,
formatItem: function(row) { return row[0]; },
formatMatch: null,
autoFill: false,
width: 0,
multiple: false,
multipleSeparator: ", ",
highlight: function(value, term) {
return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + term.replace(/([\^\$\(\)\[\]\{\}\*\.\+\?\|\\])/gi, "\\$1") + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<strong>$1</strong>");
},
scroll: true,
scrollHeight: 180
};
$.Autocompleter.Cache = function(options) {
var data = {};
var length = 0;
function matchSubset(s, sub) {
if (!options.matchCase)
s = s.toLowerCase();
var i = s.indexOf(sub);
if (options.matchContains == "word"){
i = s.toLowerCase().search("\\b" + sub.toLowerCase());
}
if (i == -1) return false;
return i == 0 || options.matchContains;
};
function add(q, value) {
if (length > options.cacheLength){
flush();
}
if (!data[q]){
length++;
}
data[q] = value;
}
function populate(){
if( !options.data ) return false;
var stMatchSets = {},
nullData = 0;
if( !options.url ) options.cacheLength = 1;
stMatchSets[""] = [];
for ( var i = 0, ol = options.data.length; i < ol; i++ ) {
var rawValue = options.data[i];
rawValue = (typeof rawValue == "string") ? [rawValue] : rawValue;
var value = options.formatMatch(rawValue, i+1, options.data.length);
if ( value === false )
continue;
var firstChar = value.charAt(0).toLowerCase();
if( !stMatchSets[firstChar] )
stMatchSets[firstChar] = [];
var row = {
value: value,
data: rawValue,
result: options.formatResult && options.formatResult(rawValue) || value
};
stMatchSets[firstChar].push(row);
if ( nullData++ < options.max ) {
stMatchSets[""].push(row);
}
};
$.each(stMatchSets, function(i, value) {
options.cacheLength++;
add(i, value);
});
}
setTimeout(populate, 25);
function flush(){
data = {};
length = 0;
}
return {
flush: flush,
add: add,
populate: populate,
load: function(q) {
if (!options.cacheLength || !length)
return null;
if( !options.url && options.matchContains ){
var csub = [];
for( var k in data ){
if( k.length > 0 ){
var c = data[k];
$.each(c, function(i, x) {
if (matchSubset(x.value, q)) {
csub.push(x);
}
});
}
}	return csub;
} else
if (data[q]){
return data[q];
} else
if (options.matchSubset) {
for (var i = q.length - 1; i >= options.minChars; i--) {
var c = data[q.substr(0, i)];
if (c) {
var csub = [];
$.each(c, function(i, x) {
if (matchSubset(x.value, q)) {
csub[csub.length] = x;
}
});
return csub;
}
}
}
return null;
}
};
};
$.Autocompleter.Select = function (options, input, select, config) {
var CLASSES = {
ACTIVE: "ac_over"
};
var listItems,
active = -1,
data,
term = "",
needsInit = true,
element,
list;
function init() {
if (!needsInit)
return;
element = $("<div/>")
.hide()
.addClass(options.resultsClass)
.css("position", "absolute")
.appendTo(document.body);
list = $("<ul/>").appendTo(element).mouseover( function(event) {
if(target(event).nodeName && target(event).nodeName.toUpperCase() == 'LI') {
active = $("li", list).removeClass(CLASSES.ACTIVE).index(target(event));
$(target(event)).addClass(CLASSES.ACTIVE);
}
}).click(function(event) {
$(target(event)).addClass(CLASSES.ACTIVE);
select();
input.focus();
return false;
}).mousedown(function() {
config.mouseDownOnSelect = true;
}).mouseup(function() {
config.mouseDownOnSelect = false;
});
if( options.width > 0 )
element.css("width", options.width);
needsInit = false;
}
function target(event) {
var element = event.target;
while(element && element.tagName != "LI")
element = element.parentNode;
if(!element)
return [];
return element;
}
function moveSelect(step) {
listItems.slice(active, active + 1).removeClass(CLASSES.ACTIVE);
movePosition(step);
var activeItem = listItems.slice(active, active + 1).addClass(CLASSES.ACTIVE);
if(options.scroll) {
var offset = 0;
listItems.slice(0, active).each(function() {
offset += this.offsetHeight;
});
if((offset + activeItem[0].offsetHeight - list.scrollTop()) > list[0].clientHeight) {
list.scrollTop(offset + activeItem[0].offsetHeight - list.innerHeight());
} else if(offset < list.scrollTop()) {
list.scrollTop(offset);
}
}
};
function movePosition(step) {
active += step;
if (active < 0) {
active = listItems.size() - 1;
} else if (active >= listItems.size()) {
active = 0;
}
}
function limitNumberOfItems(available) {
return options.max && options.max < available
? options.max
: available;
}
function fillList() {
list.empty();
var max = limitNumberOfItems(data.length);
for (var i=0; i < max; i++) {
if (!data[i])
continue;
var formatted = options.formatItem(data[i].data, i+1, max, data[i].value, term);
if ( formatted === false )
continue;
var li = $("<li/>").html( options.highlight(formatted, term) ).addClass(i%2 == 0 ? "ac_even" : "ac_odd").appendTo(list)[0];
$.data(li, "ac_data", data[i]);
}
listItems = list.find("li");
if ( options.selectFirst ) {
listItems.slice(0, 1).addClass(CLASSES.ACTIVE);
active = 0;
}
if ( $.fn.bgiframe )
list.bgiframe();
}
return {
display: function(d, q) {
init();
data = d;
term = q;
fillList();
},
next: function() {
moveSelect(1);
},
prev: function() {
moveSelect(-1);
},
pageUp: function() {
if (active != 0 && active - 8 < 0) {
moveSelect( -active );
} else {
moveSelect(-8);
}
},
pageDown: function() {
if (active != listItems.size() - 1 && active + 8 > listItems.size()) {
moveSelect( listItems.size() - 1 - active );
} else {
moveSelect(8);
}
},
hide: function() {
element && element.hide();
listItems && listItems.removeClass(CLASSES.ACTIVE);
active = -1;
},
visible : function() {
return element && element.is(":visible");
},
current: function() {
return this.visible() && (listItems.filter("." + CLASSES.ACTIVE)[0] || options.selectFirst && listItems[0]);
},
show: function() {
var offset = $(input).offset();
element.css({
width: typeof options.width == "string" || options.width > 0 ? options.width : $(input).width(),
top: offset.top + input.offsetHeight,
left: offset.left
}).show();
if(options.scroll) {
list.scrollTop(0);
list.css({
maxHeight: options.scrollHeight,
overflow: 'auto'
});
if($.browser.msie && typeof document.body.style.maxHeight === "undefined") {
var listHeight = 0;
listItems.each(function() {
listHeight += this.offsetHeight;
});
var scrollbarsVisible = listHeight > options.scrollHeight;
list.css('height', scrollbarsVisible ? options.scrollHeight : listHeight );
if (!scrollbarsVisible) {
listItems.width( list.width() - parseInt(listItems.css("padding-left")) - parseInt(listItems.css("padding-right")) );
}
}
}
},
selected: function() {
var selected = listItems && listItems.filter("." + CLASSES.ACTIVE).removeClass(CLASSES.ACTIVE);
return selected && selected.length && $.data(selected[0], "ac_data");
},
emptyList: function (){
list && list.empty();
},
unbind: function() {
element && element.remove();
}
};
};
$.fn.selection = function(start, end) {
if (start !== undefined) {
return this.each(function() {
if( this.createTextRange ){
var selRange = this.createTextRange();
if (end === undefined || start == end) {
selRange.move("character", start);
selRange.select();
} else {
selRange.collapse(true);
selRange.moveStart("character", start);
selRange.moveEnd("character", end);
selRange.select();
}
} else if( this.setSelectionRange ){
this.setSelectionRange(start, end);
} else if( this.selectionStart ){
this.selectionStart = start;
this.selectionEnd = end;
}
});
}
var field = this[0];
if ( field.createTextRange ) {
var range = document.selection.createRange(),
orig = field.value,
teststring = "<->",
textLength = range.text.length;
range.text = teststring;
var caretAt = field.value.indexOf(teststring);
field.value = orig;
this.selection(caretAt, caretAt + textLength);
return {
start: caretAt,
end: caretAt + textLength
}
} else if( field.selectionStart !== undefined ){
return {
start: field.selectionStart,
end: field.selectionEnd
}
}
};
})(jQuery);

/* jquery.alerts.js */
(function($) {
$.alerts = {
verticalOffset: -50,
horizontalOffset: 0,
repositionOnResize: true,
overlayOpacity: .8,
overlayColor: '#B8B8B8',
draggable: true,
okButton: '&nbsp;OK&nbsp;',
cancelButton: '&nbsp;Cancel&nbsp;',
dialogClass: null,
alert: function(message, title, callback) {
if (title == null) title = 'Alert';
$.alerts._show(title, message, null, 'alert', function(result) {
if (callback) callback(result);
});
},
confirm: function(message, title, callback) {
if (title == null) title = 'Confirm';
$.alerts._show(title, message, null, 'confirm', function(result) {
if (callback) callback(result);
});
},
prompt: function(message, value, title, callback) {
if (title == null) title = 'Prompt';
$.alerts._show(title, message, value, 'prompt', function(result) {
if (callback) callback(result);
});
},
popup: function(title, url, callback, width, height) {
if (title == null) title = 'Popup';
$.alerts._show(title, null, url, 'popup', function(result) {
if (callback) callback(result);
}, width, height);
},
_show: function(title, msg, value, type, callback, width, height) {
$.alerts._hide();
$.alerts._overlay('show');
$("BODY").append(
'<div id="popup_container">' +
'<a id="popup_close">&nbsp;</a>' +
'<input id="popup_close_btn" type="button" style="position:fixed;top:-50px;left:-50px;"/>' +
'<h1 id="popup_title"></h1>' +
'<div id="popup_content">' +
'<div id="popup_message"></div>' +
'</div>' +
'</div>');
$('#popup_close').click(function() {
$.alerts._hide();
if (callback) callback(false);
});
$("#popup_close_btn").focus();
$("#popup_close, #popup_close_btn").keypress(function(e) {
if (e.keyCode == 27) $("#popup_close").trigger('click');
});
if ($.alerts.dialogClass) $("#popup_container").addClass($.alerts.dialogClass);
var pos = ($.browser.msie && parseInt($.browser.version) <= 6) ? 'absolute' : 'fixed';
$("#popup_container").css({
position: pos,
zIndex: 9999,
padding: 0,
margin: 0
});
$("#popup_title").html("<span>" + title + "</span>");
$("#popup_content").addClass(type);
if (msg != null) {
$("#popup_message").text(msg);
$("#popup_message").html($("#popup_message").text().replace(/\n/g, '<br />'));
}
$("#popup_container").css({
minWidth: $("#popup_container").outerWidth(),
maxWidth: $("#popup_container").outerWidth()
});
$.alerts._reposition();
$.alerts._maintainPosition(true);
switch (type) {
case 'alert':
$("#popup_message").after('<div id="popup_panel"><input type="button" value="' + $.alerts.okButton + '" id="popup_ok" /></div>');
$("#popup_ok").click(function() {
$.alerts._hide();
callback(true);
});
$("#popup_ok").focus().keypress(function(e) {
if (e.keyCode == 13 || e.keyCode == 27) $("#popup_ok").trigger('click');
});
break;
case 'confirm':
$("#popup_message").after('<div id="popup_panel"><input type="button" value="' + $.alerts.okButton + '" id="popup_ok" /> <input type="button" value="' + $.alerts.cancelButton + '" id="popup_cancel" /></div>');
$("#popup_ok").click(function() {
$.alerts._hide();
if (callback) callback(true);
});
$("#popup_cancel").click(function() {
$.alerts._hide();
if (callback) callback(false);
});
$("#popup_ok").focus();
$("#popup_ok, #popup_cancel").keypress(function(e) {
if (e.keyCode == 13) $("#popup_ok").trigger('click');
if (e.keyCode == 27) $("#popup_cancel").trigger('click');
});
break;
case 'prompt':
$("#popup_message").append('<br /><input type="text" size="30" id="popup_prompt" />').after('<div id="popup_panel"><input type="button" value="' + $.alerts.okButton + '" id="popup_ok" /> <input type="button" value="' + $.alerts.cancelButton + '" id="popup_cancel" /></div>');
$("#popup_prompt").width($("#popup_message").width());
$("#popup_ok").click(function() {
var val = $("#popup_prompt").val();
$.alerts._hide();
if (callback) callback(val);
});
$("#popup_cancel").click(function() {
$.alerts._hide();
if (callback) callback(null);
});
$("#popup_prompt, #popup_ok, #popup_cancel").keypress(function(e) {
if (e.keyCode == 13) $("#popup_ok").trigger('click');
if (e.keyCode == 27) $("#popup_cancel").trigger('click');
});
if (value) $("#popup_prompt").val(value);
$("#popup_prompt").focus().select();
break;
case 'popup':
var titleHeight = $('#popup_title').outerHeight();
if($.browser.msie && parseInt($.browser.version) <= 7)
titleHeight+=20;
$("#popup_container").css({
minWidth: width == null ? '600px' : width + 'px',
maxWidth: width == null ? '600px' : width + 'px',
minHeight: height == null ? '600px' : ($.browser.msie ? height + titleHeight : height) + 'px',
maxHeight: height == null ? '600px' : ($.browser.msie ? height + titleHeight : height) + 'px'
});
$("#popup_content").css({
width: $("#popup_container").outerWidth(),
height: $("#popup_container").outerHeight()
});
$.alerts._reposition();
$.alerts._maintainPosition(true);
var iframe = $("<iframe>");
$(iframe).attr('src', value);
{
$(iframe).attr('width', '1000px');
$(iframe).attr('height', '1000px');
}
$(iframe).attr('allowTransparency', 'true');
$(iframe).attr('frameborder', '0');
$(iframe).attr('scrolling', 'no');
$(iframe).css('border', 'none');
$(iframe).css('overflow-x', 'hidden');
$('#popup_message').after(iframe);
$('#popup_message').css('padding', '0px');
break;
}
if ($.alerts.draggable) {
try {
$("#popup_container").draggable({ handle: $("#popup_title") });
$("#popup_title").css({ cursor: 'move' });
} catch (e) {  }
}
},
_hide: function() {
$("#popup_container").remove();
$.alerts._overlay('hide');
$.alerts._maintainPosition(false);
},
_overlay: function(status) {
switch (status) {
case 'show':
$.alerts._overlay('hide');
$("BODY").append('<div id="popup_overlay"></div>');
$("#popup_overlay").css({
position: 'absolute',
zIndex: 9998,
top: '0px',
left: '0px',
width: '100%',
height: $(document).height(),
background: $.alerts.overlayColor,
opacity: $.alerts.overlayOpacity
});
break;
case 'hide':
$("#popup_overlay").remove();
break;
}
},
_reposition: function() {
var top = (($(window).height() / 2) - ($("#popup_container").outerHeight() / 2)) + $.alerts.verticalOffset;
var left = (($(window).width() / 2) - ($("#popup_container").outerWidth() / 2)) + $.alerts.horizontalOffset;
if (top < 0) top = 0;
if (left < 0) left = 0;
if ($.browser.msie && parseInt($.browser.version) <= 6) top = top + $(window).scrollTop();
$("#popup_container").css({
top: top + 'px',
left: left + 'px'
});
$("#popup_overlay").height($(document).height());
},
_maintainPosition: function(status) {
if ($.alerts.repositionOnResize) {
switch (status) {
case true:
$(window).bind('resize', $.alerts._reposition);
break;
case false:
$(window).unbind('resize', $.alerts._reposition);
break;
}
}
}
}
jAlert = function(message, title, callback) {
$.alerts.alert(message, title, callback);
};
jConfirm = function(message, title, callback) {
$.alerts.confirm(message, title, callback);
};
jPrompt = function(message, value, title, callback) {
$.alerts.prompt(message, value, title, callback);
};
jPopup = function(title, url, callback, width, height) {
$.alerts.popup(title, url, callback, width, height);
};
})(jQuery);

/* jquery.printElement.js */
; (function (window, undefined) {
var document = window["document"];
var $ = window["jQuery"];
$.fn["printElement"] = function (options) {
var mainOptions = $.extend({}, $.fn["printElement"]["defaults"], options);
if (mainOptions["printMode"] == 'iframe') {
if ($.browser.msie || $.browser.opera || (/chrome/.test(navigator.userAgent.toLowerCase())))
mainOptions["printMode"] = 'popup';
}
$("[id^='printElement_']").remove();
return this.each(function () {
var opts = $.meta ? $.extend({}, mainOptions, $(this).data()) : mainOptions;
_printElement($(this), opts);
});
};
$.fn["printElement"]["defaults"] = {
"printMode": 'iframe',
"pageTitle": '',
"overrideElementCSS": null,
"printBodyOptions": {
"styleToAdd": 'padding:10px;margin:10px;',
"classNameToAdd": ''
},
"leaveOpen": false,
"iframeElementOptions": {
"styleToAdd": 'border:none;position:absolute;width:0px;height:0px;bottom:0px;left:0px;',
"classNameToAdd": ''
}
};
$.fn["printElement"]["cssElement"] = {
"href": '',
"media": ''
};
function _printElement(element, opts) {
var html = _getMarkup(element, opts);
var popupOrIframe = null;
var documentToWriteTo = null;
if (opts["printMode"].toLowerCase() == 'popup') {
popupOrIframe = window.open('about:blank', 'printElementWindow', 'width=650,height=440,scrollbars=yes');
documentToWriteTo = popupOrIframe.document;
}
else {
var printElementID = "printElement_" + (Math.round(Math.random() * 99999)).toString();
var iframe = document.createElement('IFRAME');
$(iframe).attr({
style: opts["iframeElementOptions"]["styleToAdd"],
id: printElementID,
className: opts["iframeElementOptions"]["classNameToAdd"],
frameBorder: 0,
scrolling: 'no',
src: 'about:blank'
});
document.body.appendChild(iframe);
documentToWriteTo = (iframe.contentWindow || iframe.contentDocument);
if (documentToWriteTo.document)
documentToWriteTo = documentToWriteTo.document;
iframe = document.frames ? document.frames[printElementID] : document.getElementById(printElementID);
popupOrIframe = iframe.contentWindow || iframe;
}
focus();
documentToWriteTo.open();
documentToWriteTo.write(html);
documentToWriteTo.close();
_callPrint(popupOrIframe);
};
function _callPrint(element) {
if (element && element["printPage"])
element["printPage"]();
else
setTimeout(function () {
_callPrint(element);
}, 50);
}
function _getElementHTMLIncludingFormElements(element) {
var $element = $(element);
$(":checked", $element).each(function () {
this.setAttribute('checked', 'checked');
});
$("input[type='text']", $element).each(function () {
this.setAttribute('value', $(this).val());
});
$("select", $element).each(function () {
var $select = $(this);
$("option", $select).each(function () {
if ($select.val() == $(this).val())
this.setAttribute('selected', 'selected');
});
});
$("textarea", $element).each(function () {
var value = $(this).attr('value');
if ($.browser.mozilla && this.firstChild)
this.firstChild.textContent = value;
else
this.innerHTML = value;
});
var elementHtml = $('<div></div>').append($element.clone()).html();
return elementHtml;
}
function _getBaseHref() {
var port = (window.location.port) ? ':' + window.location.port : '';
return window.location.protocol + '//' + window.location.hostname + port + window.location.pathname;
}
function _getMarkup(element, opts) {
var $element = $(element);
var elementHtml = _getElementHTMLIncludingFormElements(element);
var html = new Array();
html.push('<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html><head><title>' + opts["pageTitle"] + '</title>');
if (opts["overrideElementCSS"]) {
if (opts["overrideElementCSS"].length > 0) {
for (var x = 0; x < opts["overrideElementCSS"].length; x++) {
var current = opts["overrideElementCSS"][x];
if (typeof (current) == 'string')
html.push('<link type="text/css" rel="stylesheet" href="' + current + '" >');
else
html.push('<link type="text/css" rel="stylesheet" href="' + current["href"] + '" media="' + current["media"] + '" >');
}
}
}
else {
$("link", document).filter(function () {
return $(this).attr("rel").toLowerCase() == "stylesheet";
}).each(function () {
html.push('<link type="text/css" rel="stylesheet" href="' + $(this).attr("href") + '" media="' + $(this).attr('media') + '" >');
});
}
html.push('<base href="' + _getBaseHref() + '" />');
html.push('</head><body style="' + opts["printBodyOptions"]["styleToAdd"] + '" class="' + opts["printBodyOptions"]["classNameToAdd"] + '">');
html.push('<div class="' + $element.attr('class') + '">' + elementHtml + '</div>');
html.push('<script type="text/javascript">function printPage(){focus();print();' + ((!$.browser.opera && !opts["leaveOpen"] && opts["printMode"].toLowerCase() == 'popup') ? 'close();' : '') + '}</script>');
html.push('</body></html>');
return html.join('');
};
})(window);

/* jquery.tokeninput.js */
(function($) {
$.fn.tokenInput = function (url, options, prePopulate) {
var settings = $.extend({
url: url,
hintText: "Wpisz szukaną frazę",
noResultsText: "Brak wyników",
searchingText: "Wyszukiwanie ...",
searchDelay: 300,
minChars: 1,
tokenLimit: null,
jsonContainer: null,
method: "GET",
contentType: "json",
queryParam: "q",
onResult: null,
prePopulate: prePopulate
}, options);
settings.classes = $.extend({
tokenList: "token-input-list",
token: "token-input-token",
tokenDelete: "token-input-delete-token",
selectedToken: "token-input-selected-token",
highlightedToken: "token-input-highlighted-token",
dropdown: "token-input-dropdown",
dropdownItem: "token-input-dropdown-item",
dropdownItem2: "token-input-dropdown-item2",
selectedDropdownItem: "token-input-selected-dropdown-item",
inputToken: "token-input-input-token"
}, options.classes);
return this.each(function () {
var list = new $.TokenList(this, settings);
});
};
$.TokenList = function (input, settings) {
var POSITION = {
BEFORE: 0,
AFTER: 1,
END: 2
};
var KEY = {
BACKSPACE: 8,
TAB: 9,
RETURN: 13,
ESC: 27,
LEFT: 37,
UP: 38,
RIGHT: 39,
DOWN: 40,
COMMA: 188
};
var saved_tokens = [];
var token_count = 0;
var cache = new $.TokenList.Cache();
var timeout;
var input_box = $("<input type=\"text\">")
.css({
outline: "none"
})
.focus(function () {
if (settings.tokenLimit == null || settings.tokenLimit != token_count) {
show_dropdown_hint();
}
})
.blur(function () {
hide_dropdown();
})
.keydown(function (event) {
var previous_token;
var next_token;
switch(event.keyCode) {
case KEY.LEFT:
case KEY.RIGHT:
case KEY.UP:
case KEY.DOWN:
if(!$(this).val()) {
previous_token = input_token.prev();
next_token = input_token.next();
if((previous_token.length && previous_token.get(0) === selected_token) || (next_token.length && next_token.get(0) === selected_token)) {
if(event.keyCode == KEY.LEFT || event.keyCode == KEY.UP) {
deselect_token($(selected_token), POSITION.BEFORE);
} else {
deselect_token($(selected_token), POSITION.AFTER);
}
} else if((event.keyCode == KEY.LEFT || event.keyCode == KEY.UP) && previous_token.length) {
select_token($(previous_token.get(0)));
} else if((event.keyCode == KEY.RIGHT || event.keyCode == KEY.DOWN) && next_token.length) {
select_token($(next_token.get(0)));
}
} else {
var dropdown_item = null;
if(event.keyCode == KEY.DOWN || event.keyCode == KEY.RIGHT) {
dropdown_item = $(selected_dropdown_item).next();
} else {
dropdown_item = $(selected_dropdown_item).prev();
}
if(dropdown_item.length) {
select_dropdown_item(dropdown_item);
}
return false;
}
break;
case KEY.BACKSPACE:
previous_token = input_token.prev();
if(!$(this).val().length) {
if(selected_token) {
delete_token($(selected_token));
} else if(previous_token.length) {
select_token($(previous_token.get(0)));
}
return false;
} else if($(this).val().length == 1) {
hide_dropdown();
} else {
setTimeout(function(){do_search(false);}, 5);
}
break;
case KEY.TAB:
case KEY.RETURN:
case KEY.COMMA:
if(selected_dropdown_item) {
add_token($(selected_dropdown_item));
return false;
}
break;
case KEY.ESC:
hide_dropdown();
return true;
default:
if(is_printable_character(event.keyCode)) {
setTimeout(function(){do_search(false);}, 5);
}
break;
}
});
var hidden_input = $(input)
.hide()
.focus(function () {
input_box.focus();
})
.blur(function () {
input_box.blur();
});
var selected_token = null;
var selected_dropdown_item = null;
var token_list = $("<ul />")
.addClass(settings.classes.tokenList)
.insertAfter(hidden_input)
.click(function (event) {
var li = get_element_from_event(event, "li");
if(li && li.get(0) != input_token.get(0)) {
toggle_select_token(li);
return false;
} else {
input_box.focus();
if(selected_token) {
deselect_token($(selected_token), POSITION.END);
}
}
})
.mouseover(function (event) {
var li = get_element_from_event(event, "li");
if(li && selected_token !== this) {
li.addClass(settings.classes.highlightedToken);
}
})
.mouseout(function (event) {
var li = get_element_from_event(event, "li");
if(li && selected_token !== this) {
li.removeClass(settings.classes.highlightedToken);
}
})
.mousedown(function (event) {
var li = get_element_from_event(event, "li");
if(li){
return false;
}
});
var dropdown = $("<div>")
.addClass(settings.classes.dropdown)
.insertAfter(token_list)
.hide();
var input_token = $("<li />")
.addClass(settings.classes.inputToken)
.appendTo(token_list)
.append(input_box);
init_list();
function init_list () {
li_data = settings.prePopulate;
if(li_data && li_data.length) {
for(var i in li_data) {
var this_token = $("<li><p>"+li_data[i].name+"</p> </li>")
.addClass(settings.classes.token)
.insertBefore(input_token);
$("<span>x</span>")
.addClass(settings.classes.tokenDelete)
.appendTo(this_token)
.click(function () {
delete_token($(this).parent());
return false;
});
$.data(this_token.get(0), "tokeninput", {"id": li_data[i].id, "name": li_data[i].name});
input_box
.val("")
.focus();
hide_dropdown();
var id_string = li_data[i].id + ","
hidden_input.val(hidden_input.val() + id_string);
}
}
}
function is_printable_character(keycode) {
if((keycode >= 48 && keycode <= 90) ||
(keycode >= 96 && keycode <= 111) ||
(keycode >= 186 && keycode <= 192) ||
(keycode >= 219 && keycode <= 222)
) {
return true;
} else {
return false;
}
}
function get_element_from_event (event, element_type) {
var target = $(event.target);
var element = null;
if(target.is(element_type)) {
element = target;
} else if(target.parent(element_type).length) {
element = target.parent(element_type+":first");
}
return element;
}
function insert_token(id, value) {
var this_token = $("<li><p>"+ value +"</p> </li>")
.addClass(settings.classes.token)
.insertBefore(input_token);
$("<span>x</span>")
.addClass(settings.classes.tokenDelete)
.appendTo(this_token)
.click(function () {
delete_token($(this).parent());
return false;
});
$.data(this_token.get(0), "tokeninput", {"id": id, "name": value});
return this_token;
}
function add_token (item) {
var li_data = $.data(item.get(0), "tokeninput");
var this_token = insert_token(li_data.id, li_data.name);
input_box
.val("")
.focus();
hide_dropdown();
var id_string = li_data.id + ","
hidden_input.val(hidden_input.val() + id_string);
token_count++;
if(settings.tokenLimit != null && settings.tokenLimit >= token_count) {
input_box.hide();
hide_dropdown();
}
}
function select_token (token) {
token.addClass(settings.classes.selectedToken);
selected_token = token.get(0);
input_box.val("");
hide_dropdown();
}
function deselect_token (token, position) {
token.removeClass(settings.classes.selectedToken);
selected_token = null;
if(position == POSITION.BEFORE) {
input_token.insertBefore(token);
} else if(position == POSITION.AFTER) {
input_token.insertAfter(token);
} else {
input_token.appendTo(token_list);
}
input_box.focus();
}
function toggle_select_token (token) {
if(selected_token == token.get(0)) {
deselect_token(token, POSITION.END);
} else {
if(selected_token) {
deselect_token($(selected_token), POSITION.END);
}
select_token(token);
}
}
function delete_token (token) {
var token_data = $.data(token.get(0), "tokeninput");
token.remove();
selected_token = null;
input_box.focus();
var str = hidden_input.val()
var start = str.indexOf(token_data.id+",");
var end = str.indexOf(",", start) + 1;
if(end >= str.length) {
hidden_input.val(str.slice(0, start));
} else {
hidden_input.val(str.slice(0, start) + str.slice(end, str.length));
}
token_count--;
if (settings.tokenLimit != null) {
input_box
.show()
.val("")
.focus();
}
}
function hide_dropdown () {
dropdown.hide().empty();
selected_dropdown_item = null;
}
function show_dropdown_searching () {
dropdown
.html("<p>"+settings.searchingText+"</p>")
.show();
}
function show_dropdown_hint () {
dropdown
.html("<p>"+settings.hintText+"</p>")
.show();
}
function highlight_term(value, term) {
return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + term + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<b>$1</b>");
}
function populate_dropdown (query, results) {
if(results.length) {
dropdown.empty();
var dropdown_ul = $("<ul>")
.appendTo(dropdown)
.mouseover(function (event) {
select_dropdown_item(get_element_from_event(event, "li"));
})
.click(function (event) {
add_token(get_element_from_event(event, "li"));
})
.mousedown(function (event) {
return false;
})
.hide();
for(var i in results) {
if (results.hasOwnProperty(i)) {
var this_li = $("<li>"+highlight_term(results[i].name, query)+"</li>")
.appendTo(dropdown_ul);
if(i%2) {
this_li.addClass(settings.classes.dropdownItem);
} else {
this_li.addClass(settings.classes.dropdownItem2);
}
if(i == 0) {
select_dropdown_item(this_li);
}
$.data(this_li.get(0), "tokeninput", {"id": results[i].id, "name": results[i].name});
}
}
dropdown.show();
dropdown_ul.slideDown("fast");
} else {
dropdown
.html("<p>"+settings.noResultsText+"</p>")
.show();
}
}
function select_dropdown_item (item) {
if(item) {
if(selected_dropdown_item) {
deselect_dropdown_item($(selected_dropdown_item));
}
item.addClass(settings.classes.selectedDropdownItem);
selected_dropdown_item = item.get(0);
}
}
function deselect_dropdown_item (item) {
item.removeClass(settings.classes.selectedDropdownItem);
selected_dropdown_item = null;
}
function do_search(immediate) {
var query = input_box.val().toLowerCase();
if (query && query.length) {
if(selected_token) {
deselect_token($(selected_token), POSITION.AFTER);
}
if (query.length >= settings.minChars) {
show_dropdown_searching();
if (immediate) {
run_search(query);
} else {
clearTimeout(timeout);
timeout = setTimeout(function(){run_search(query);}, settings.searchDelay);
}
} else {
hide_dropdown();
}
}
}
function run_search(query) {
var cached_results = cache.get(query);
if(cached_results) {
populate_dropdown(query, cached_results);
} else {
var queryStringDelimiter = settings.url.indexOf("?") < 0 ? "?" : "&";
var callback = function(results) {
if($.isFunction(settings.onResult)) {
results = settings.onResult.call(this, results);
}
cache.add(query, settings.jsonContainer ? results[settings.jsonContainer] : results);
populate_dropdown(query, settings.jsonContainer ? results[settings.jsonContainer] : results);
};
if(settings.method == "POST") {
$.post(settings.url + queryStringDelimiter + settings.queryParam + "=" + query, {}, callback, settings.contentType);
} else {
$.get(settings.url + queryStringDelimiter + settings.queryParam + "=" + query, {}, callback, settings.contentType);
}
}
}
};
$.TokenList.Cache = function (options) {
var settings = $.extend({
max_size: 50
}, options);
var data = {};
var size = 0;
var flush = function () {
data = {};
size = 0;
};
this.add = function (query, results) {
if(size > settings.max_size) {
flush();
}
if(!data[query]) {
size++;
}
data[query] = results;
};
this.get = function (query) {
return data[query];
};
};
})(jQuery);
