jQuery.iAccordion = { build: function(options) { return this.each(function() { if (!options.headerSelector || !options.panelSelector) return; var el = this; el.accordionCfg = { panelHeight: options.panelHeight || 300, headerSelector: options.headerSelector, panelSelector: options.panelSelector, activeClass: options.activeClass || 'fakeAccordionClass', hoverClass: options.hoverClass || 'fakeAccordionClass', onShow: options.onShow && typeof options.onShow == 'function' ? options.onShow: false, onHide: options.onShow && typeof options.onHide == 'function' ? options.onHide: false, onClick: options.onClick && typeof options.onClick == 'function' ? options.onClick: false, headers: jQuery(options.headerSelector, this), panels: jQuery(options.panelSelector, this), speed: options.speed || 400, currentPanel: options.currentPanel || 0 }; el.accordionCfg.panels.hide().css('height', '1px').eq(0).css({ height: el.accordionCfg.panelHeight + 'px', display: 'block' }).end(); el.accordionCfg.headers.each(function(nr) { this.accordionPos = nr }).hover(function() { jQuery(this).addClass(el.accordionCfg.hoverClass) }, function() { jQuery(this).removeClass(el.accordionCfg.hoverClass) }).bind('click', function(e) { if (el.accordionCfg.currentPanel == this.accordionPos) return; el.accordionCfg.headers.eq(el.accordionCfg.currentPanel).removeClass(el.accordionCfg.activeClass).end().eq(this.accordionPos).addClass(el.accordionCfg.activeClass).end(); el.accordionCfg.panels.eq(el.accordionCfg.currentPanel).animate({ height: 0 }, el.accordionCfg.speed, function() { this.style.display = 'none'; if (el.accordionCfg.onHide) { el.accordionCfg.onHide.apply(el, [this]) } }).end().eq(this.accordionPos).show().animate({ height: el.accordionCfg.panelHeight }, el.accordionCfg.speed, function() { this.style.display = 'block'; if (el.accordionCfg.onShow) { el.accordionCfg.onShow.apply(el, [this]) } }).end(); if (el.accordionCfg.onClick) { el.accordionCfg.onClick.apply(el, [this, el.accordionCfg.panels.get(this.accordionPos), el.accordionCfg.headers.get(el.accordionCfg.currentPanel), el.accordionCfg.panels.get(el.accordionCfg.currentPanel)]) } el.accordionCfg.currentPanel = this.accordionPos }).eq(0).addClass(el.accordionCfg.activeClass).end(); jQuery(this).css('height', jQuery(this).css('height')).css('overflow', 'hidden') }) } }; jQuery.fn.Accordion = jQuery.iAccordion.build; jQuery.iCarousel = { build: function(options) { return this.each(function() { var el = this; var increment = 2 * Math.PI / 360; var maxRotation = 2 * Math.PI; if (jQuery(el).css('position') != 'relative' && jQuery(el).css('position') != 'absolute') { jQuery(el).css('position', 'relative') } el.carouselCfg = { items: jQuery(options.items, this), itemWidth: options.itemWidth, itemHeight: options.itemHeight, itemMinWidth: options.itemMinWidth, maxRotation: maxRotation, size: jQuery.iUtil.getSize(this), position: jQuery.iUtil.getPosition(this), start: Math.PI / 2, rotationSpeed: options.rotationSpeed, reflectionSize: options.reflections, reflections: [], protectRotation: false, increment: 2 * Math.PI / 360 }; el.carouselCfg.radiusX = (el.carouselCfg.size.w - el.carouselCfg.itemWidth) / 2; el.carouselCfg.radiusY = (el.carouselCfg.size.h - el.carouselCfg.itemHeight - el.carouselCfg.itemHeight * el.carouselCfg.reflectionSize) / 2; el.carouselCfg.step = 2 * Math.PI / el.carouselCfg.items.size(); el.carouselCfg.paddingX = el.carouselCfg.size.w / 2; el.carouselCfg.paddingY = el.carouselCfg.size.h / 2 - el.carouselCfg.itemHeight * el.carouselCfg.reflectionSize; var reflexions = document.createElement('div'); jQuery(reflexions).css({ position: 'absolute', zIndex: 1, top: 0, left: 0 }); jQuery(el).append(reflexions); el.carouselCfg.items.each(function(nr) { image = jQuery('img', this).get(0); height = parseInt(el.carouselCfg.itemHeight * el.carouselCfg.reflectionSize); if (jQuery.browser.msie) { canvas = document.createElement('img'); jQuery(canvas).css('position', 'absolute'); canvas.src = image.src; canvas.style.filter = 'flipv progid:DXImageTransform.Microsoft.Alpha(opacity=60, style=1, finishOpacity=0, startx=0, starty=0, finishx=0)' } else { canvas = document.createElement('canvas'); if (canvas.getContext) { context = canvas.getContext("2d"); canvas.style.position = 'absolute'; canvas.style.height = height + 'px'; canvas.style.width = el.carouselCfg.itemWidth + 'px'; canvas.height = height; canvas.width = el.carouselCfg.itemWidth; context.save(); context.translate(0, height); context.scale(1, -1); context.drawImage(image, 0, 0, el.carouselCfg.itemWidth, height); context.restore(); context.globalCompositeOperation = "destination-out"; var gradient = context.createLinearGradient(0, 0, 0, height); gradient.addColorStop(1, "rgba(255, 255, 255, 1)"); gradient.addColorStop(0, "rgba(255, 255, 255, 0.6)"); context.fillStyle = gradient; if (navigator.appVersion.indexOf('WebKit') != -1) { context.fill() } else { context.fillRect(0, 0, el.carouselCfg.itemWidth, height) } } } el.carouselCfg.reflections[nr] = canvas; jQuery(reflexions).append(canvas) }).bind('mouseover', function(e) { el.carouselCfg.protectRotation = true; el.carouselCfg.speed = el.carouselCfg.increment * 0.1 * el.carouselCfg.speed / Math.abs(el.carouselCfg.speed); return false }).bind('mouseout', function(e) { el.carouselCfg.protectRotation = false; return false }); jQuery.iCarousel.positionItems(el); el.carouselCfg.speed = el.carouselCfg.increment * 0.2; el.carouselCfg.rotationTimer = window.setInterval(function() { el.carouselCfg.start += el.carouselCfg.speed; if (el.carouselCfg.start > maxRotation) el.carouselCfg.start = 0; jQuery.iCarousel.positionItems(el) }, 20); jQuery(el).bind('mouseout', function() { el.carouselCfg.speed = el.carouselCfg.increment * 0.2 * el.carouselCfg.speed / Math.abs(el.carouselCfg.speed) }).bind('mousemove', function(e) { if (el.carouselCfg.protectRotation == false) { pointer = jQuery.iUtil.getPointer(e); mousex = el.carouselCfg.size.w - pointer.x + el.carouselCfg.position.x; el.carouselCfg.speed = el.carouselCfg.rotationSpeed * el.carouselCfg.increment * (el.carouselCfg.size.w / 2 - mousex) / (el.carouselCfg.size.w / 2) } }) }) }, positionItems: function(el) { el.carouselCfg.items.each(function(nr) { angle = el.carouselCfg.start + nr * el.carouselCfg.step; x = el.carouselCfg.radiusX * Math.cos(angle); y = el.carouselCfg.radiusY * Math.sin(angle); itemZIndex = parseInt(100 * (el.carouselCfg.radiusY + y) / (2 * el.carouselCfg.radiusY)); parte = (el.carouselCfg.radiusY + y) / (2 * el.carouselCfg.radiusY); width = parseInt((el.carouselCfg.itemWidth - el.carouselCfg.itemMinWidth) * parte + el.carouselCfg.itemMinWidth); height = parseInt(width * el.carouselCfg.itemHeight / el.carouselCfg.itemWidth); this.style.top = el.carouselCfg.paddingY + y - height / 2 + "px"; this.style.left = el.carouselCfg.paddingX + x - width / 2 + "px"; this.style.width = width + "px"; this.style.height = height + "px"; this.style.zIndex = itemZIndex; el.carouselCfg.reflections[nr].style.top = parseInt(el.carouselCfg.paddingY + y + height - 1 - height / 2) + "px"; el.carouselCfg.reflections[nr].style.left = parseInt(el.carouselCfg.paddingX + x - width / 2) + "px"; el.carouselCfg.reflections[nr].style.width = width + "px"; el.carouselCfg.reflections[nr].style.height = parseInt(height * el.carouselCfg.reflectionSize) + "px" }) } }; jQuery.fn.Carousel = jQuery.iCarousel.build; jQuery.extend({ easing: { linear: function(p, n, firstNum, delta, duration) { return (( - Math.cos(p * Math.PI) / 2) + 0.5) * delta + firstNum }, easein: function(p, n, firstNum, delta, duration) { return delta * (n /= duration) * n * n + firstNum }, easeout: function(p, n, firstNum, delta, duration) { return - delta * ((n = n / duration - 1) * n * n * n - 1) + firstNum }, easeboth: function(p, n, firstNum, delta, duration) { if ((n /= duration / 2) < 1) return delta / 2 * n * n * n * n + firstNum; return - delta / 2 * ((n -= 2) * n * n * n - 2) + firstNum }, bounceout: function(p, n, firstNum, delta, duration) { if ((n /= duration) < (1 / 2.75)) { return delta * (7.5625 * n * n) + firstNum } else if (n < (2 / 2.75)) { return delta * (7.5625 * (n -= (1.5 / 2.75)) * n + .75) + firstNum } else if (n < (2.5 / 2.75)) { return delta * (7.5625 * (n -= (2.25 / 2.75)) * n + .9375) + firstNum } else { return delta * (7.5625 * (n -= (2.625 / 2.75)) * n + .984375) + firstNum } }, bouncein: function(p, n, firstNum, delta, duration) { if (jQuery.easing.bounceout) return delta - jQuery.easing.bounceout(p, duration - n, 0, delta, duration) + firstNum; return firstNum + delta }, bounceboth: function(p, n, firstNum, delta, duration) { if (jQuery.easing.bouncein && jQuery.easing.bounceout) if (n < duration / 2) return jQuery.easing.bouncein(p, n * 2, 0, delta, duration) * .5 + firstNum; return jQuery.easing.bounceout(p, n * 2 - duration, 0, delta, duration) * .5 + delta * .5 + firstNum; return firstNum + delta }, elasticin: function(p, n, firstNum, delta, duration) { var a, s; if (n == 0) return firstNum; if ((n /= duration) == 1) return firstNum + delta; a = delta * 0.3; p = duration * .3; if (a < Math.abs(delta)) { a = delta; s = p / 4 } else { s = p / (2 * Math.PI) * Math.asin(delta / a) } return - (a * Math.pow(2, 10 * (n -= 1)) * Math.sin((n * duration - s) * (2 * Math.PI) / p)) + firstNum }, elasticout: function(p, n, firstNum, delta, duration) { var a, s; if (n == 0) return firstNum; if ((n /= duration / 2) == 2) return firstNum + delta; a = delta * 0.3; p = duration * .3; if (a < Math.abs(delta)) { a = delta; s = p / 4 } else { s = p / (2 * Math.PI) * Math.asin(delta / a) } return a * Math.pow(2, -10 * n) * Math.sin((n * duration - s) * (2 * Math.PI) / p) + delta + firstNum }, elasticboth: function(p, n, firstNum, delta, duration) { var a, s; if (n == 0) return firstNum; if ((n /= duration / 2) == 2) return firstNum + delta; a = delta * 0.3; p = duration * .3; if (a < Math.abs(delta)) { a = delta; s = p / 4 } else { s = p / (2 * Math.PI) * Math.asin(delta / a) } if (n < 1) { return - .5 * (a * Math.pow(2, 10 * (n -= 1)) * Math.sin((n * duration - s) * (2 * Math.PI) / p)) + firstNum } return a * Math.pow(2, -10 * (n -= 1)) * Math.sin((n * duration - s) * (2 * Math.PI) / p) * .5 + delta + firstNum } } }); jQuery.iFisheye = { build: function(options) { return this.each(function() { var el = this; el.fisheyeCfg = { items: jQuery(options.items, this), container: jQuery(options.container, this), pos: jQuery.iUtil.getPosition(this), itemWidth: options.itemWidth, itemsText: options.itemsText, proximity: options.proximity, valign: options.valign, halign: options.halign, maxWidth: options.maxWidth }; jQuery.iFisheye.positionContainer(el, 0); jQuery(window).bind('resize', function() { el.fisheyeCfg.pos = jQuery.iUtil.getPosition(el); jQuery.iFisheye.positionContainer(el, 0); jQuery.iFisheye.positionItems(el) }); jQuery.iFisheye.positionItems(el); el.fisheyeCfg.items.bind('mouseover', function() { jQuery(el.fisheyeCfg.itemsText, this).get(0).style.display = 'block' }).bind('mouseout', function() { jQuery(el.fisheyeCfg.itemsText, this).get(0).style.display = 'none' }); jQuery(document).bind('mousemove', function(e) { var pointer = jQuery.iUtil.getPointer(e); var toAdd = 0; if (el.fisheyeCfg.halign && el.fisheyeCfg.halign == 'center') var posx = pointer.x - el.fisheyeCfg.pos.x - (el.offsetWidth - el.fisheyeCfg.itemWidth * el.fisheyeCfg.items.size()) / 2 - el.fisheyeCfg.itemWidth / 2; else if (el.fisheyeCfg.halign && el.fisheyeCfg.halign == 'right') var posx = pointer.x - el.fisheyeCfg.pos.x - el.offsetWidth + el.fisheyeCfg.itemWidth * el.fisheyeCfg.items.size(); else var posx = pointer.x - el.fisheyeCfg.pos.x; var posy = Math.pow(pointer.y - el.fisheyeCfg.pos.y - el.offsetHeight / 2, 2); el.fisheyeCfg.items.each(function(nr) { distance = Math.sqrt(Math.pow(posx - nr * el.fisheyeCfg.itemWidth, 2) + posy); distance -= el.fisheyeCfg.itemWidth / 2; distance = distance < 0 ? 0: distance; distance = distance > el.fisheyeCfg.proximity ? el.fisheyeCfg.proximity: distance; distance = el.fisheyeCfg.proximity - distance; extraWidth = el.fisheyeCfg.maxWidth * distance / el.fisheyeCfg.proximity; this.style.width = el.fisheyeCfg.itemWidth + extraWidth + 'px'; this.style.left = el.fisheyeCfg.itemWidth * nr + toAdd + 'px'; toAdd += extraWidth }); jQuery.iFisheye.positionContainer(el, toAdd) }) }) }, positionContainer: function(el, toAdd) { if (el.fisheyeCfg.halign) if (el.fisheyeCfg.halign == 'center') el.fisheyeCfg.container.get(0).style.left = (el.offsetWidth - el.fisheyeCfg.itemWidth * el.fisheyeCfg.items.size()) / 2 - toAdd / 2 + 'px'; else if (el.fisheyeCfg.halign == 'left') el.fisheyeCfg.container.get(0).style.left = -toAdd / el.fisheyeCfg.items.size() + 'px'; else if (el.fisheyeCfg.halign == 'right') el.fisheyeCfg.container.get(0).style.left = (el.offsetWidth - el.fisheyeCfg.itemWidth * el.fisheyeCfg.items.size()) - toAdd / 2 + 'px'; el.fisheyeCfg.container.get(0).style.width = el.fisheyeCfg.itemWidth * el.fisheyeCfg.items.size() + toAdd + 'px' }, positionItems: function(el) { el.fisheyeCfg.items.each(function(nr) { this.style.width = el.fisheyeCfg.itemWidth + 'px'; this.style.left = el.fisheyeCfg.itemWidth * nr + 'px' }) } }; jQuery.fn.Fisheye = jQuery.iFisheye.build; jQuery.iAuto = { helper: null, content: null, iframe: null, timer: null, lastValue: null, currentValue: null, subject: null, selectedItem: null, items: null, empty: function() { jQuery.iAuto.content.empty(); if (jQuery.iAuto.iframe) { jQuery.iAuto.iframe.hide() } }, clear: function() { jQuery.iAuto.items = null; jQuery.iAuto.selectedItem = null; jQuery.iAuto.lastValue = jQuery.iAuto.subject.value; if (jQuery.iAuto.helper.css('display') == 'block') { if (jQuery.iAuto.subject.autoCFG.fx) { switch (jQuery.iAuto.subject.autoCFG.fx.type) { case 'fade': jQuery.iAuto.helper.fadeOut(jQuery.iAuto.subject.autoCFG.fx.duration, jQuery.iAuto.empty); break; case 'slide': jQuery.iAuto.helper.SlideOutUp(jQuery.iAuto.subject.autoCFG.fx.duration, jQuery.iAuto.empty); break; case 'blind': jQuery.iAuto.helper.BlindUp(jQuery.iAuto.subject.autoCFG.fx.duration, jQuery.iAuto.empty); break } } else { jQuery.iAuto.helper.hide() } if (jQuery.iAuto.subject.autoCFG.onHide) jQuery.iAuto.subject.autoCFG.onHide.apply(jQuery.iAuto.subject, [jQuery.iAuto.helper, jQuery.iAuto.iframe]) } else { jQuery.iAuto.empty() } window.clearTimeout(jQuery.iAuto.timer) }, update: function() { var subject = jQuery.iAuto.subject; var subjectValue = jQuery.iAuto.getFieldValues(subject); if (subject && subjectValue.item != jQuery.iAuto.lastValue && subjectValue.item.length >= subject.autoCFG.minchars) { jQuery.iAuto.lastValue = subjectValue.item; jQuery.iAuto.currentValue = subjectValue.item; data = { field: jQuery(subject).attr('name') || 'field', value: subjectValue.item }; jQuery.ajax({ type: 'POST', data: jQuery.param(data), success: function(xml) { subject.autoCFG.lastSuggestion = jQuery('item', xml); size = subject.autoCFG.lastSuggestion.size(); if (size > 0) { var toWrite = ''; subject.autoCFG.lastSuggestion.each(function(nr) { toWrite += '
  • ' + jQuery('text', this).text() + '
  • ' }); if (subject.autoCFG.autofill) { var valueToAdd = jQuery('value', subject.autoCFG.lastSuggestion.get(0)).text(); subject.value = subjectValue.pre + valueToAdd + subject.autoCFG.multipleSeparator + subjectValue.post; jQuery.iAuto.selection(subject, subjectValue.item.length != valueToAdd.length ? (subjectValue.pre.length + subjectValue.item.length) : valueToAdd.length, subjectValue.item.length != valueToAdd.length ? (subjectValue.pre.length + valueToAdd.length) : valueToAdd.length) } if (size > 0) { jQuery.iAuto.writeItems(subject, toWrite) } else { jQuery.iAuto.clear() } } else { jQuery.iAuto.clear() } }, url: subject.autoCFG.source }) } }, writeItems: function(subject, toWrite) { jQuery.iAuto.content.html(toWrite); jQuery.iAuto.items = jQuery('li', jQuery.iAuto.content.get(0)); jQuery.iAuto.items.mouseover(jQuery.iAuto.hoverItem).bind('click', jQuery.iAuto.clickItem); var position = jQuery.iUtil.getPosition(subject); var size = jQuery.iUtil.getSize(subject); jQuery.iAuto.helper.css('top', position.y + size.hb + 'px').css('left', position.x + 'px').addClass(subject.autoCFG.helperClass); if (jQuery.iAuto.iframe) { jQuery.iAuto.iframe.css('display', 'block').css('top', position.y + size.hb + 'px').css('left', position.x + 'px').css('width', jQuery.iAuto.helper.css('width')).css('height', jQuery.iAuto.helper.css('height')) } jQuery.iAuto.selectedItem = 0; jQuery.iAuto.items.get(0).className = subject.autoCFG.selectClass; jQuery.iAuto.applyOn(subject, subject.autoCFG.lastSuggestion.get(0), 'onHighlight'); if (jQuery.iAuto.helper.css('display') == 'none') { if (subject.autoCFG.inputWidth) { var borders = jQuery.iUtil.getPadding(subject, true); var paddings = jQuery.iUtil.getBorder(subject, true); jQuery.iAuto.helper.css('width', subject.offsetWidth - (jQuery.boxModel ? (borders.l + borders.r + paddings.l + paddings.r) : 0) + 'px') } if (subject.autoCFG.fx) { switch (subject.autoCFG.fx.type) { case 'fade': jQuery.iAuto.helper.fadeIn(subject.autoCFG.fx.duration); break; case 'slide': jQuery.iAuto.helper.SlideInUp(subject.autoCFG.fx.duration); break; case 'blind': jQuery.iAuto.helper.BlindDown(subject.autoCFG.fx.duration); break } } else { jQuery.iAuto.helper.show() } if (jQuery.iAuto.subject.autoCFG.onShow) jQuery.iAuto.subject.autoCFG.onShow.apply(jQuery.iAuto.subject, [jQuery.iAuto.helper, jQuery.iAuto.iframe]) } }, checkCache: function() { var subject = this; if (subject.autoCFG.lastSuggestion) { jQuery.iAuto.lastValue = subject.value; jQuery.iAuto.currentValue = subject.value; var toWrite = ''; subject.autoCFG.lastSuggestion.each(function(nr) { value = jQuery('value', this).text().toLowerCase(); inputValue = subject.value.toLowerCase(); if (value.indexOf(inputValue) == 0) { toWrite += '
  • ' + jQuery('text', this).text() + '
  • ' } }); if (toWrite != '') { jQuery.iAuto.writeItems(subject, toWrite); this.autoCFG.inCache = true; return } } subject.autoCFG.lastSuggestion = null; this.autoCFG.inCache = false }, selection: function(field, start, end) { if (field.createTextRange) { var selRange = field.createTextRange(); selRange.collapse(true); selRange.moveStart("character", start); selRange.moveEnd("character", -end + start); selRange.select() } else if (field.setSelectionRange) { field.setSelectionRange(start, end) } else { if (field.selectionStart) { field.selectionStart = start; field.selectionEnd = end } } field.focus() }, getSelectionStart: function(field) { if (field.selectionStart) return field.selectionStart; else if (field.createTextRange) { var selRange = document.selection.createRange(); var selRange2 = selRange.duplicate(); return 0 - selRange2.moveStart('character', -100000) } }, getFieldValues: function(field) { var fieldData = { value: field.value, pre: '', post: '', item: '' }; if (field.autoCFG.multiple) { var finishedPre = false; var selectionStart = jQuery.iAuto.getSelectionStart(field) || 0; var chunks = fieldData.value.split(field.autoCFG.multipleSeparator); for (var i = 0; i < chunks.length; i++) { if ((fieldData.pre.length + chunks[i].length >= selectionStart || selectionStart == 0) && !finishedPre) { if (fieldData.pre.length <= selectionStart) fieldData.item = chunks[i]; else fieldData.post += chunks[i] + (chunks[i] != '' ? field.autoCFG.multipleSeparator: ''); finishedPre = true } else if (finishedPre) { fieldData.post += chunks[i] + (chunks[i] != '' ? field.autoCFG.multipleSeparator: '') } if (!finishedPre) { fieldData.pre += chunks[i] + (chunks.length > 1 ? field.autoCFG.multipleSeparator: '') } } } else { fieldData.item = fieldData.value } return fieldData }, autocomplete: function(e) { window.clearTimeout(jQuery.iAuto.timer); var subject = jQuery.iAuto.getFieldValues(this); var pressedKey = e.charCode || e.keyCode || -1; if (/13|27|35|36|38|40|9/.test(pressedKey) && jQuery.iAuto.items) { if (window.event) { window.event.cancelBubble = true; window.event.returnValue = false } else { e.preventDefault(); e.stopPropagation() } if (jQuery.iAuto.selectedItem != null) jQuery.iAuto.items.get(jQuery.iAuto.selectedItem || 0).className = ''; else jQuery.iAuto.selectedItem = -1; switch (pressedKey) { case 9: case 13: if (jQuery.iAuto.selectedItem == -1) jQuery.iAuto.selectedItem = 0; var selectedItem = jQuery.iAuto.items.get(jQuery.iAuto.selectedItem || 0); var valueToAdd = selectedItem.getAttribute('rel'); this.value = subject.pre + valueToAdd + this.autoCFG.multipleSeparator + subject.post; jQuery.iAuto.lastValue = subject.item; jQuery.iAuto.selection(this, subject.pre.length + valueToAdd.length + this.autoCFG.multipleSeparator.length, subject.pre.length + valueToAdd.length + this.autoCFG.multipleSeparator.length); jQuery.iAuto.clear(); if (this.autoCFG.onSelect) { iteration = parseInt(selectedItem.getAttribute('dir')) || 0; jQuery.iAuto.applyOn(this, this.autoCFG.lastSuggestion.get(iteration), 'onSelect') } if (this.scrollIntoView) this.scrollIntoView(false); return pressedKey != 13; break; case 27: this.value = subject.pre + jQuery.iAuto.lastValue + this.autoCFG.multipleSeparator + subject.post; this.autoCFG.lastSuggestion = null; jQuery.iAuto.clear(); if (this.scrollIntoView) this.scrollIntoView(false); return false; break; case 35: jQuery.iAuto.selectedItem = jQuery.iAuto.items.size() - 1; break; case 36: jQuery.iAuto.selectedItem = 0; break; case 38: jQuery.iAuto.selectedItem--; if (jQuery.iAuto.selectedItem < 0) jQuery.iAuto.selectedItem = jQuery.iAuto.items.size() - 1; break; case 40: jQuery.iAuto.selectedItem++; if (jQuery.iAuto.selectedItem == jQuery.iAuto.items.size()) jQuery.iAuto.selectedItem = 0; break } jQuery.iAuto.applyOn(this, this.autoCFG.lastSuggestion.get(jQuery.iAuto.selectedItem || 0), 'onHighlight'); jQuery.iAuto.items.get(jQuery.iAuto.selectedItem || 0).className = this.autoCFG.selectClass; if (jQuery.iAuto.items.get(jQuery.iAuto.selectedItem || 0).scrollIntoView) jQuery.iAuto.items.get(jQuery.iAuto.selectedItem || 0).scrollIntoView(false); if (this.autoCFG.autofill) { var valToAdd = jQuery.iAuto.items.get(jQuery.iAuto.selectedItem || 0).getAttribute('rel'); this.value = subject.pre + valToAdd + this.autoCFG.multipleSeparator + subject.post; if (jQuery.iAuto.lastValue.length != valToAdd.length) jQuery.iAuto.selection(this, subject.pre.length + jQuery.iAuto.lastValue.length, subject.pre.length + valToAdd.length) } return false } jQuery.iAuto.checkCache.apply(this); if (this.autoCFG.inCache == false) { if (subject.item != jQuery.iAuto.lastValue && subject.item.length >= this.autoCFG.minchars) jQuery.iAuto.timer = window.setTimeout(jQuery.iAuto.update, this.autoCFG.delay); if (jQuery.iAuto.items) { jQuery.iAuto.clear() } } return true }, applyOn: function(field, item, type) { if (field.autoCFG[type]) { var data = {}; childs = item.getElementsByTagName('*'); for (i = 0; i < childs.length; i++) { data[childs[i].tagName] = childs[i].firstChild.nodeValue } field.autoCFG[type].apply(field, [data]) } }, hoverItem: function(e) { if (jQuery.iAuto.items) { if (jQuery.iAuto.selectedItem != null) jQuery.iAuto.items.get(jQuery.iAuto.selectedItem || 0).className = ''; jQuery.iAuto.items.get(jQuery.iAuto.selectedItem || 0).className = ''; jQuery.iAuto.selectedItem = parseInt(this.getAttribute('dir')) || 0; jQuery.iAuto.items.get(jQuery.iAuto.selectedItem || 0).className = jQuery.iAuto.subject.autoCFG.selectClass } }, clickItem: function(event) { window.clearTimeout(jQuery.iAuto.timer); event = event || jQuery.event.fix(window.event); event.preventDefault(); event.stopPropagation(); var subject = jQuery.iAuto.getFieldValues(jQuery.iAuto.subject); var valueToAdd = this.getAttribute('rel'); jQuery.iAuto.subject.value = subject.pre + valueToAdd + jQuery.iAuto.subject.autoCFG.multipleSeparator + subject.post; jQuery.iAuto.lastValue = this.getAttribute('rel'); jQuery.iAuto.selection(jQuery.iAuto.subject, subject.pre.length + valueToAdd.length + jQuery.iAuto.subject.autoCFG.multipleSeparator.length, subject.pre.length + valueToAdd.length + jQuery.iAuto.subject.autoCFG.multipleSeparator.length); jQuery.iAuto.clear(); if (jQuery.iAuto.subject.autoCFG.onSelect) { iteration = parseInt(this.getAttribute('dir')) || 0; jQuery.iAuto.applyOn(jQuery.iAuto.subject, jQuery.iAuto.subject.autoCFG.lastSuggestion.get(iteration), 'onSelect') } return false }, protect: function(e) { pressedKey = e.charCode || e.keyCode || -1; if (/13|27|35|36|38|40/.test(pressedKey) && jQuery.iAuto.items) { if (window.event) { window.event.cancelBubble = true; window.event.returnValue = false } else { e.preventDefault(); e.stopPropagation() } return false } }, build: function(options) { if (!options.source || !jQuery.iUtil) { return } if (!jQuery.iAuto.helper) { if (jQuery.browser.msie) { jQuery('body', document).append(''); jQuery.iAuto.iframe = jQuery('#autocompleteIframe') } jQuery('body', document).append(''); jQuery.iAuto.helper = jQuery('#autocompleteHelper'); jQuery.iAuto.content = jQuery('ul', jQuery.iAuto.helper) } return this.each(function() { if (this.tagName != 'INPUT' && this.getAttribute('type') != 'text') return; this.autoCFG = {}; this.autoCFG.source = options.source; this.autoCFG.minchars = Math.abs(parseInt(options.minchars) || 1); this.autoCFG.helperClass = options.helperClass ? options.helperClass: ''; this.autoCFG.selectClass = options.selectClass ? options.selectClass: ''; this.autoCFG.onSelect = options.onSelect && options.onSelect.constructor == Function ? options.onSelect: null; this.autoCFG.onShow = options.onShow && options.onShow.constructor == Function ? options.onShow: null; this.autoCFG.onHide = options.onHide && options.onHide.constructor == Function ? options.onHide: null; this.autoCFG.onHighlight = options.onHighlight && options.onHighlight.constructor == Function ? options.onHighlight: null; this.autoCFG.inputWidth = options.inputWidth || false; this.autoCFG.multiple = options.multiple || false; this.autoCFG.multipleSeparator = this.autoCFG.multiple ? (options.multipleSeparator || ', ') : ''; this.autoCFG.autofill = options.autofill ? true: false; this.autoCFG.delay = Math.abs(parseInt(options.delay) || 1000); if (options.fx && options.fx.constructor == Object) { if (!options.fx.type || !/fade|slide|blind/.test(options.fx.type)) { options.fx.type = 'slide' } if (options.fx.type == 'slide' && !jQuery.fx.slide) return; if (options.fx.type == 'blind' && !jQuery.fx.BlindDirection) return; options.fx.duration = Math.abs(parseInt(options.fx.duration) || 400); if (options.fx.duration > this.autoCFG.delay) { options.fx.duration = this.autoCFG.delay - 100 } this.autoCFG.fx = options.fx } this.autoCFG.lastSuggestion = null; this.autoCFG.inCache = false; jQuery(this).attr('autocomplete', 'off').focus(function() { jQuery.iAuto.subject = this; jQuery.iAuto.lastValue = this.value }).keypress(jQuery.iAuto.protect).keyup(jQuery.iAuto.autocomplete).blur(function() { jQuery.iAuto.timer = window.setTimeout(jQuery.iAuto.clear, 200) }) }) } }; jQuery.fn.Autocomplete = jQuery.iAuto.build; jQuery.iAutoscroller = { timer: null, elToScroll: null, elsToScroll: null, step: 10, start: function(el, els, step, interval) { jQuery.iAutoscroller.elToScroll = el; jQuery.iAutoscroller.elsToScroll = els; jQuery.iAutoscroller.step = parseInt(step) || 10; jQuery.iAutoscroller.timer = window.setInterval(jQuery.iAutoscroller.doScroll, parseInt(interval) || 40) }, doScroll: function() { for (i = 0; i < jQuery.iAutoscroller.elsToScroll.length; i++) { if (!jQuery.iAutoscroller.elsToScroll[i].parentData) { jQuery.iAutoscroller.elsToScroll[i].parentData = jQuery.extend(jQuery.iUtil.getPositionLite(jQuery.iAutoscroller.elsToScroll[i]), jQuery.iUtil.getSizeLite(jQuery.iAutoscroller.elsToScroll[i]), jQuery.iUtil.getScroll(jQuery.iAutoscroller.elsToScroll[i])) } else { jQuery.iAutoscroller.elsToScroll[i].parentData.t = jQuery.iAutoscroller.elsToScroll[i].scrollTop; jQuery.iAutoscroller.elsToScroll[i].parentData.l = jQuery.iAutoscroller.elsToScroll[i].scrollLeft } if (jQuery.iAutoscroller.elToScroll.dragCfg && jQuery.iAutoscroller.elToScroll.dragCfg.init == true) { elementData = { x: jQuery.iAutoscroller.elToScroll.dragCfg.nx, y: jQuery.iAutoscroller.elToScroll.dragCfg.ny, wb: jQuery.iAutoscroller.elToScroll.dragCfg.oC.wb, hb: jQuery.iAutoscroller.elToScroll.dragCfg.oC.hb } } else { elementData = jQuery.extend(jQuery.iUtil.getPositionLite(jQuery.iAutoscroller.elToScroll), jQuery.iUtil.getSizeLite(jQuery.iAutoscroller.elToScroll)) } if (jQuery.iAutoscroller.elsToScroll[i].parentData.t > 0 && jQuery.iAutoscroller.elsToScroll[i].parentData.y + jQuery.iAutoscroller.elsToScroll[i].parentData.t > elementData.y) { jQuery.iAutoscroller.elsToScroll[i].scrollTop -= jQuery.iAutoscroller.step } else if (jQuery.iAutoscroller.elsToScroll[i].parentData.t <= jQuery.iAutoscroller.elsToScroll[i].parentData.h && jQuery.iAutoscroller.elsToScroll[i].parentData.t + jQuery.iAutoscroller.elsToScroll[i].parentData.hb < elementData.y + elementData.hb) { jQuery.iAutoscroller.elsToScroll[i].scrollTop += jQuery.iAutoscroller.step } if (jQuery.iAutoscroller.elsToScroll[i].parentData.l > 0 && jQuery.iAutoscroller.elsToScroll[i].parentData.x + jQuery.iAutoscroller.elsToScroll[i].parentData.l > elementData.x) { jQuery.iAutoscroller.elsToScroll[i].scrollLeft -= jQuery.iAutoscroller.step } else if (jQuery.iAutoscroller.elsToScroll[i].parentData.l <= jQuery.iAutoscroller.elsToScroll[i].parentData.wh && jQuery.iAutoscroller.elsToScroll[i].parentData.l + jQuery.iAutoscroller.elsToScroll[i].parentData.wb < elementData.x + elementData.wb) { jQuery.iAutoscroller.elsToScroll[i].scrollLeft += jQuery.iAutoscroller.step } } }, stop: function() { window.clearInterval(jQuery.iAutoscroller.timer); jQuery.iAutoscroller.elToScroll = null; jQuery.iAutoscroller.elsToScroll = null; for (i in jQuery.iAutoscroller.elsToScroll) { jQuery.iAutoscroller.elsToScroll[i].parentData = null } } }; jQuery.iDrag = { helper: null, dragged: null, destroy: function() { return this.each(function() { if (this.isDraggable) { this.dragCfg.dhe.unbind('mousedown', jQuery.iDrag.draginit); this.dragCfg = null; this.isDraggable = false; if (jQuery.browser.msie) { this.unselectable = "off" } else { this.style.MozUserSelect = ''; this.style.KhtmlUserSelect = ''; this.style.userSelect = '' } } }) }, draginit: function(e) { if (jQuery.iDrag.dragged != null) { jQuery.iDrag.dragstop(e); return false } var elm = this.dragElem; jQuery(document).bind('mousemove', jQuery.iDrag.dragmove).bind('mouseup', jQuery.iDrag.dragstop); elm.dragCfg.pointer = jQuery.iUtil.getPointer(e); elm.dragCfg.currentPointer = elm.dragCfg.pointer; elm.dragCfg.init = false; elm.dragCfg.fromHandler = this != this.dragElem; jQuery.iDrag.dragged = elm; if (elm.dragCfg.si && this != this.dragElem) { parentPos = jQuery.iUtil.getPosition(elm.parentNode); sliderSize = jQuery.iUtil.getSize(elm); sliderPos = { x: parseInt(jQuery.css(elm, 'left')) || 0, y: parseInt(jQuery.css(elm, 'top')) || 0 }; dx = elm.dragCfg.currentPointer.x - parentPos.x - sliderSize.wb / 2 - sliderPos.x; dy = elm.dragCfg.currentPointer.y - parentPos.y - sliderSize.hb / 2 - sliderPos.y; jQuery.iSlider.dragmoveBy(elm, [dx, dy]) } return jQuery.selectKeyHelper || false }, dragstart: function(e) { var elm = jQuery.iDrag.dragged; elm.dragCfg.init = true; var dEs = elm.style; elm.dragCfg.oD = jQuery.css(elm, 'display'); elm.dragCfg.oP = jQuery.css(elm, 'position'); if (!elm.dragCfg.initialPosition) elm.dragCfg.initialPosition = elm.dragCfg.oP; elm.dragCfg.oR = { x: parseInt(jQuery.css(elm, 'left')) || 0, y: parseInt(jQuery.css(elm, 'top')) || 0 }; elm.dragCfg.diffX = 0; elm.dragCfg.diffY = 0; if (jQuery.browser.msie) { var oldBorder = jQuery.iUtil.getBorder(elm, true); elm.dragCfg.diffX = oldBorder.l || 0; elm.dragCfg.diffY = oldBorder.t || 0 } elm.dragCfg.oC = jQuery.extend(jQuery.iUtil.getPosition(elm), jQuery.iUtil.getSize(elm)); if (elm.dragCfg.oP != 'relative' && elm.dragCfg.oP != 'absolute') { dEs.position = 'relative' } jQuery.iDrag.helper.empty(); var clonedEl = elm.cloneNode(true); jQuery(clonedEl).css({ display: 'block', left: '0px', top: '0px' }); clonedEl.style.marginTop = '0'; clonedEl.style.marginRight = '0'; clonedEl.style.marginBottom = '0'; clonedEl.style.marginLeft = '0'; jQuery.iDrag.helper.append(clonedEl); var dhs = jQuery.iDrag.helper.get(0).style; if (elm.dragCfg.autoSize) { dhs.width = 'auto'; dhs.height = 'auto' } else { dhs.height = elm.dragCfg.oC.hb + 'px'; dhs.width = elm.dragCfg.oC.wb + 'px' } dhs.display = 'block'; dhs.marginTop = '0px'; dhs.marginRight = '0px'; dhs.marginBottom = '0px'; dhs.marginLeft = '0px'; jQuery.extend(elm.dragCfg.oC, jQuery.iUtil.getSize(clonedEl)); if (elm.dragCfg.cursorAt) { if (elm.dragCfg.cursorAt.left) { elm.dragCfg.oR.x += elm.dragCfg.pointer.x - elm.dragCfg.oC.x - elm.dragCfg.cursorAt.left; elm.dragCfg.oC.x = elm.dragCfg.pointer.x - elm.dragCfg.cursorAt.left } if (elm.dragCfg.cursorAt.top) { elm.dragCfg.oR.y += elm.dragCfg.pointer.y - elm.dragCfg.oC.y - elm.dragCfg.cursorAt.top; elm.dragCfg.oC.y = elm.dragCfg.pointer.y - elm.dragCfg.cursorAt.top } if (elm.dragCfg.cursorAt.right) { elm.dragCfg.oR.x += elm.dragCfg.pointer.x - elm.dragCfg.oC.x - elm.dragCfg.oC.hb + elm.dragCfg.cursorAt.right; elm.dragCfg.oC.x = elm.dragCfg.pointer.x - elm.dragCfg.oC.wb + elm.dragCfg.cursorAt.right } if (elm.dragCfg.cursorAt.bottom) { elm.dragCfg.oR.y += elm.dragCfg.pointer.y - elm.dragCfg.oC.y - elm.dragCfg.oC.hb + elm.dragCfg.cursorAt.bottom; elm.dragCfg.oC.y = elm.dragCfg.pointer.y - elm.dragCfg.oC.hb + elm.dragCfg.cursorAt.bottom } } elm.dragCfg.nx = elm.dragCfg.oR.x; elm.dragCfg.ny = elm.dragCfg.oR.y; if (elm.dragCfg.insideParent || elm.dragCfg.containment == 'parent') { parentBorders = jQuery.iUtil.getBorder(elm.parentNode, true); elm.dragCfg.oC.x = elm.offsetLeft + (jQuery.browser.msie ? 0: jQuery.browser.opera ? -parentBorders.l: parentBorders.l); elm.dragCfg.oC.y = elm.offsetTop + (jQuery.browser.msie ? 0: jQuery.browser.opera ? -parentBorders.t: parentBorders.t); jQuery(elm.parentNode).append(jQuery.iDrag.helper.get(0)) } if (elm.dragCfg.containment) { jQuery.iDrag.getContainment(elm); elm.dragCfg.onDragModifier.containment = jQuery.iDrag.fitToContainer } if (elm.dragCfg.si) { jQuery.iSlider.modifyContainer(elm) } dhs.left = elm.dragCfg.oC.x - elm.dragCfg.diffX + 'px'; dhs.top = elm.dragCfg.oC.y - elm.dragCfg.diffY + 'px'; dhs.width = elm.dragCfg.oC.wb + 'px'; dhs.height = elm.dragCfg.oC.hb + 'px'; jQuery.iDrag.dragged.dragCfg.prot = false; if (elm.dragCfg.gx) { elm.dragCfg.onDragModifier.grid = jQuery.iDrag.snapToGrid } if (elm.dragCfg.zIndex != false) { jQuery.iDrag.helper.css('zIndex', elm.dragCfg.zIndex) } if (elm.dragCfg.opacity) { jQuery.iDrag.helper.css('opacity', elm.dragCfg.opacity); if (window.ActiveXObject) { jQuery.iDrag.helper.css('filter', 'alpha(opacity=' + elm.dragCfg.opacity * 100 + ')') } } if (elm.dragCfg.frameClass) { jQuery.iDrag.helper.addClass(elm.dragCfg.frameClass); jQuery.iDrag.helper.get(0).firstChild.style.display = 'none' } if (elm.dragCfg.onStart) elm.dragCfg.onStart.apply(elm, [clonedEl, elm.dragCfg.oR.x, elm.dragCfg.oR.y]); if (jQuery.iDrop && jQuery.iDrop.count > 0) { jQuery.iDrop.highlight(elm) } if (elm.dragCfg.ghosting == false) { dEs.display = 'none' } return false }, getContainment: function(elm) { if (elm.dragCfg.containment.constructor == String) { if (elm.dragCfg.containment == 'parent') { elm.dragCfg.cont = jQuery.extend({ x: 0, y: 0 }, jQuery.iUtil.getSize(elm.parentNode)); var contBorders = jQuery.iUtil.getBorder(elm.parentNode, true); elm.dragCfg.cont.w = elm.dragCfg.cont.wb - contBorders.l - contBorders.r; elm.dragCfg.cont.h = elm.dragCfg.cont.hb - contBorders.t - contBorders.b } else if (elm.dragCfg.containment == 'document') { var clnt = jQuery.iUtil.getClient(); elm.dragCfg.cont = { x: 0, y: 0, w: clnt.w, h: clnt.h } } } else if (elm.dragCfg.containment.constructor == Array) { elm.dragCfg.cont = { x: parseInt(elm.dragCfg.containment[0]) || 0, y: parseInt(elm.dragCfg.containment[1]) || 0, w: parseInt(elm.dragCfg.containment[2]) || 0, h: parseInt(elm.dragCfg.containment[3]) || 0 } } elm.dragCfg.cont.dx = elm.dragCfg.cont.x - elm.dragCfg.oC.x; elm.dragCfg.cont.dy = elm.dragCfg.cont.y - elm.dragCfg.oC.y }, hidehelper: function(dragged) { if (dragged.dragCfg.insideParent || dragged.dragCfg.containment == 'parent') { jQuery('body', document).append(jQuery.iDrag.helper.get(0)) } jQuery.iDrag.helper.empty().hide().css('opacity', 1); if (window.ActiveXObject) { jQuery.iDrag.helper.css('filter', 'alpha(opacity=100)') } }, dragstop: function(e) { jQuery(document).unbind('mousemove', jQuery.iDrag.dragmove).unbind('mouseup', jQuery.iDrag.dragstop); if (jQuery.iDrag.dragged == null) { return } var dragged = jQuery.iDrag.dragged; jQuery.iDrag.dragged = null; if (dragged.dragCfg.init == false) { return false } if (dragged.dragCfg.so == true) { jQuery(dragged).css('position', dragged.dragCfg.oP) } var dEs = dragged.style; if (dragged.si) { jQuery.iDrag.helper.css('cursor', 'move') } if (dragged.dragCfg.frameClass) { jQuery.iDrag.helper.removeClass(dragged.dragCfg.frameClass) } if (dragged.dragCfg.revert == false) { if (dragged.dragCfg.fx > 0) { if (!dragged.dragCfg.axis || dragged.dragCfg.axis == 'horizontally') { var x = new jQuery.fx(dragged, { duration: dragged.dragCfg.fx }, 'left'); x.custom(dragged.dragCfg.oR.x, dragged.dragCfg.nRx) } if (!dragged.dragCfg.axis || dragged.dragCfg.axis == 'vertically') { var y = new jQuery.fx(dragged, { duration: dragged.dragCfg.fx }, 'top'); y.custom(dragged.dragCfg.oR.y, dragged.dragCfg.nRy) } } else { if (!dragged.dragCfg.axis || dragged.dragCfg.axis == 'horizontally') dragged.style.left = dragged.dragCfg.nRx + 'px'; if (!dragged.dragCfg.axis || dragged.dragCfg.axis == 'vertically') dragged.style.top = dragged.dragCfg.nRy + 'px' } jQuery.iDrag.hidehelper(dragged); if (dragged.dragCfg.ghosting == false) { jQuery(dragged).css('display', dragged.dragCfg.oD) } } else if (dragged.dragCfg.fx > 0) { dragged.dragCfg.prot = true; var dh = false; if (jQuery.iDrop && jQuery.iSort && dragged.dragCfg.so) { dh = jQuery.iUtil.getPosition(jQuery.iSort.helper.get(0)) } jQuery.iDrag.helper.animate({ left: dh ? dh.x: dragged.dragCfg.oC.x, top: dh ? dh.y: dragged.dragCfg.oC.y }, dragged.dragCfg.fx, function() { dragged.dragCfg.prot = false; if (dragged.dragCfg.ghosting == false) { dragged.style.display = dragged.dragCfg.oD } jQuery.iDrag.hidehelper(dragged) }) } else { jQuery.iDrag.hidehelper(dragged); if (dragged.dragCfg.ghosting == false) { jQuery(dragged).css('display', dragged.dragCfg.oD) } } if (jQuery.iDrop && jQuery.iDrop.count > 0) { jQuery.iDrop.checkdrop(dragged) } if (jQuery.iSort && dragged.dragCfg.so) { jQuery.iSort.check(dragged) } if (dragged.dragCfg.onChange && (dragged.dragCfg.nRx != dragged.dragCfg.oR.x || dragged.dragCfg.nRy != dragged.dragCfg.oR.y)) { dragged.dragCfg.onChange.apply(dragged, dragged.dragCfg.lastSi || [0, 0, dragged.dragCfg.nRx, dragged.dragCfg.nRy]) } if (dragged.dragCfg.onStop) dragged.dragCfg.onStop.apply(dragged); return false }, snapToGrid: function(x, y, dx, dy) { if (dx != 0) dx = parseInt((dx + (this.dragCfg.gx * dx / Math.abs(dx)) / 2) / this.dragCfg.gx) * this.dragCfg.gx; if (dy != 0) dy = parseInt((dy + (this.dragCfg.gy * dy / Math.abs(dy)) / 2) / this.dragCfg.gy) * this.dragCfg.gy; return { dx: dx, dy: dy, x: 0, y: 0 } }, fitToContainer: function(x, y, dx, dy) { dx = Math.min(Math.max(dx, this.dragCfg.cont.dx), this.dragCfg.cont.w + this.dragCfg.cont.dx - this.dragCfg.oC.wb); dy = Math.min(Math.max(dy, this.dragCfg.cont.dy), this.dragCfg.cont.h + this.dragCfg.cont.dy - this.dragCfg.oC.hb); return { dx: dx, dy: dy, x: 0, y: 0 } }, dragmove: function(e) { if (jQuery.iDrag.dragged == null || jQuery.iDrag.dragged.dragCfg.prot == true) { return } var dragged = jQuery.iDrag.dragged; dragged.dragCfg.currentPointer = jQuery.iUtil.getPointer(e); if (dragged.dragCfg.init == false) { distance = Math.sqrt(Math.pow(dragged.dragCfg.pointer.x - dragged.dragCfg.currentPointer.x, 2) + Math.pow(dragged.dragCfg.pointer.y - dragged.dragCfg.currentPointer.y, 2)); if (distance < dragged.dragCfg.snapDistance) { return } else { jQuery.iDrag.dragstart(e) } } var dx = dragged.dragCfg.currentPointer.x - dragged.dragCfg.pointer.x; var dy = dragged.dragCfg.currentPointer.y - dragged.dragCfg.pointer.y; for (var i in dragged.dragCfg.onDragModifier) { var newCoords = dragged.dragCfg.onDragModifier[i].apply(dragged, [dragged.dragCfg.oR.x + dx, dragged.dragCfg.oR.y + dy, dx, dy]); if (newCoords && newCoords.constructor == Object) { dx = i != 'user' ? newCoords.dx: (newCoords.x - dragged.dragCfg.oR.x); dy = i != 'user' ? newCoords.dy: (newCoords.y - dragged.dragCfg.oR.y) } } dragged.dragCfg.nx = dragged.dragCfg.oC.x + dx - dragged.dragCfg.diffX; dragged.dragCfg.ny = dragged.dragCfg.oC.y + dy - dragged.dragCfg.diffY; if (dragged.dragCfg.si && (dragged.dragCfg.onSlide || dragged.dragCfg.onChange)) { jQuery.iSlider.onSlide(dragged, dragged.dragCfg.nx, dragged.dragCfg.ny) } if (dragged.dragCfg.onDrag) dragged.dragCfg.onDrag.apply(dragged, [dragged.dragCfg.oR.x + dx, dragged.dragCfg.oR.y + dy]); if (!dragged.dragCfg.axis || dragged.dragCfg.axis == 'horizontally') { dragged.dragCfg.nRx = dragged.dragCfg.oR.x + dx; jQuery.iDrag.helper.get(0).style.left = dragged.dragCfg.nx + 'px' } if (!dragged.dragCfg.axis || dragged.dragCfg.axis == 'vertically') { dragged.dragCfg.nRy = dragged.dragCfg.oR.y + dy; jQuery.iDrag.helper.get(0).style.top = dragged.dragCfg.ny + 'px' } if (jQuery.iDrop && jQuery.iDrop.count > 0) { jQuery.iDrop.checkhover(dragged) } return false }, build: function(o) { if (!jQuery.iDrag.helper) { jQuery('body', document).append('
    '); jQuery.iDrag.helper = jQuery('#dragHelper'); var el = jQuery.iDrag.helper.get(0); var els = el.style; els.position = 'absolute'; els.display = 'none'; els.cursor = 'move'; els.listStyle = 'none'; els.overflow = 'hidden'; if (window.ActiveXObject) { el.unselectable = "on" } else { els.mozUserSelect = 'none'; els.userSelect = 'none'; els.KhtmlUserSelect = 'none' } } if (!o) { o = {} } return this.each(function() { if (this.isDraggable || !jQuery.iUtil) return; if (window.ActiveXObject) { this.onselectstart = function() { return false }; this.ondragstart = function() { return false } } var el = this; var dhe = o.handle ? jQuery(this).find(o.handle) : jQuery(this); if (jQuery.browser.msie) { dhe.each(function() { this.unselectable = "on" }) } else { dhe.css('-moz-user-select', 'none'); dhe.css('user-select', 'none'); dhe.css('-khtml-user-select', 'none') } this.dragCfg = { dhe: dhe, revert: o.revert ? true: false, ghosting: o.ghosting ? true: false, so: o.so ? o.so: false, si: o.si ? o.si: false, insideParent: o.insideParent ? o.insideParent: false, zIndex: o.zIndex ? parseInt(o.zIndex) || 0: false, opacity: o.opacity ? parseFloat(o.opacity) : false, fx: parseInt(o.fx) || null, hpc: o.hpc ? o.hpc: false, onDragModifier: {}, pointer: {}, onStart: o.onStart && o.onStart.constructor == Function ? o.onStart: false, onStop: o.onStop && o.onStop.constructor == Function ? o.onStop: false, onChange: o.onChange && o.onChange.constructor == Function ? o.onChange: false, axis: /vertically|horizontally/.test(o.axis) ? o.axis: false, snapDistance: o.snapDistance ? parseInt(o.snapDistance) || 0: 0, cursorAt: o.cursorAt ? o.cursorAt: false, autoSize: o.autoSize ? true: false, frameClass: o.frameClass || false }; if (o.onDragModifier && o.onDragModifier.constructor == Function) this.dragCfg.onDragModifier.user = o.onDragModifier; if (o.onDrag && o.onDrag.constructor == Function) this.dragCfg.onDrag = o.onDrag; if (o.containment && ((o.containment.constructor == String && (o.containment == 'parent' || o.containment == 'document')) || (o.containment.constructor == Array && o.containment.length == 4))) { this.dragCfg.containment = o.containment } if (o.fractions) { this.dragCfg.fractions = o.fractions } if (o.grid) { if (typeof o.grid == 'number') { this.dragCfg.gx = parseInt(o.grid) || 1; this.dragCfg.gy = parseInt(o.grid) || 1 } else if (o.grid.length == 2) { this.dragCfg.gx = parseInt(o.grid[0]) || 1; this.dragCfg.gy = parseInt(o.grid[1]) || 1 } } if (o.onSlide && o.onSlide.constructor == Function) { this.dragCfg.onSlide = o.onSlide } this.isDraggable = true; dhe.each(function() { this.dragElem = el }); dhe.bind('mousedown', jQuery.iDrag.draginit) }) } }; jQuery.fn.extend({ DraggableDestroy: jQuery.iDrag.destroy, Draggable: jQuery.iDrag.build }); jQuery.iDrop = { fit: function(zonex, zoney, zonew, zoneh) { return zonex <= jQuery.iDrag.dragged.dragCfg.nx && (zonex + zonew) >= (jQuery.iDrag.dragged.dragCfg.nx + jQuery.iDrag.dragged.dragCfg.oC.w) && zoney <= jQuery.iDrag.dragged.dragCfg.ny && (zoney + zoneh) >= (jQuery.iDrag.dragged.dragCfg.ny + jQuery.iDrag.dragged.dragCfg.oC.h) ? true: false }, intersect: function(zonex, zoney, zonew, zoneh) { return ! (zonex > (jQuery.iDrag.dragged.dragCfg.nx + jQuery.iDrag.dragged.dragCfg.oC.w) || (zonex + zonew) < jQuery.iDrag.dragged.dragCfg.nx || zoney > (jQuery.iDrag.dragged.dragCfg.ny + jQuery.iDrag.dragged.dragCfg.oC.h) || (zoney + zoneh) < jQuery.iDrag.dragged.dragCfg.ny) ? true: false }, pointer: function(zonex, zoney, zonew, zoneh) { return zonex < jQuery.iDrag.dragged.dragCfg.currentPointer.x && (zonex + zonew) > jQuery.iDrag.dragged.dragCfg.currentPointer.x && zoney < jQuery.iDrag.dragged.dragCfg.currentPointer.y && (zoney + zoneh) > jQuery.iDrag.dragged.dragCfg.currentPointer.y ? true: false }, overzone: false, highlighted: {}, count: 0, zones: {}, highlight: function(elm) { if (jQuery.iDrag.dragged == null) { return } var i; jQuery.iDrop.highlighted = {}; var oneIsSortable = false; for (i in jQuery.iDrop.zones) { if (jQuery.iDrop.zones[i] != null) { var iEL = jQuery.iDrop.zones[i].get(0); if (jQuery(jQuery.iDrag.dragged).is('.' + iEL.dropCfg.a)) { if (iEL.dropCfg.m == false) { iEL.dropCfg.p = jQuery.extend(jQuery.iUtil.getPositionLite(iEL), jQuery.iUtil.getSizeLite(iEL)); iEL.dropCfg.m = true } if (iEL.dropCfg.ac) { jQuery.iDrop.zones[i].addClass(iEL.dropCfg.ac) } jQuery.iDrop.highlighted[i] = jQuery.iDrop.zones[i]; if (jQuery.iSort && iEL.dropCfg.s && jQuery.iDrag.dragged.dragCfg.so) { iEL.dropCfg.el = jQuery('.' + iEL.dropCfg.a, iEL); elm.style.display = 'none'; jQuery.iSort.measure(iEL); iEL.dropCfg.os = jQuery.iSort.serialize(jQuery.attr(iEL, 'id')).hash; elm.style.display = elm.dragCfg.oD; oneIsSortable = true } if (iEL.dropCfg.onActivate) { iEL.dropCfg.onActivate.apply(jQuery.iDrop.zones[i].get(0), [jQuery.iDrag.dragged]) } } } } if (oneIsSortable) { jQuery.iSort.start() } }, remeasure: function() { jQuery.iDrop.highlighted = {}; for (i in jQuery.iDrop.zones) { if (jQuery.iDrop.zones[i] != null) { var iEL = jQuery.iDrop.zones[i].get(0); if (jQuery(jQuery.iDrag.dragged).is('.' + iEL.dropCfg.a)) { iEL.dropCfg.p = jQuery.extend(jQuery.iUtil.getPositionLite(iEL), jQuery.iUtil.getSizeLite(iEL)); if (iEL.dropCfg.ac) { jQuery.iDrop.zones[i].addClass(iEL.dropCfg.ac) } jQuery.iDrop.highlighted[i] = jQuery.iDrop.zones[i]; if (jQuery.iSort && iEL.dropCfg.s && jQuery.iDrag.dragged.dragCfg.so) { iEL.dropCfg.el = jQuery('.' + iEL.dropCfg.a, iEL); elm.style.display = 'none'; jQuery.iSort.measure(iEL); elm.style.display = elm.dragCfg.oD } } } } }, checkhover: function(e) { if (jQuery.iDrag.dragged == null) { return } jQuery.iDrop.overzone = false; var i; var applyOnHover = false; var hlt = 0; for (i in jQuery.iDrop.highlighted) { var iEL = jQuery.iDrop.highlighted[i].get(0); if (jQuery.iDrop.overzone == false && jQuery.iDrop[iEL.dropCfg.t](iEL.dropCfg.p.x, iEL.dropCfg.p.y, iEL.dropCfg.p.wb, iEL.dropCfg.p.hb)) { if (iEL.dropCfg.hc && iEL.dropCfg.h == false) { jQuery.iDrop.highlighted[i].addClass(iEL.dropCfg.hc) } if (iEL.dropCfg.h == false && iEL.dropCfg.onHover) { applyOnHover = true } iEL.dropCfg.h = true; jQuery.iDrop.overzone = iEL; if (jQuery.iSort && iEL.dropCfg.s && jQuery.iDrag.dragged.dragCfg.so) { jQuery.iSort.helper.get(0).className = iEL.dropCfg.shc; jQuery.iSort.checkhover(iEL) } hlt++ } else if (iEL.dropCfg.h == true) { if (iEL.dropCfg.onOut) { iEL.dropCfg.onOut.apply(iEL, [e, jQuery.iDrag.helper.get(0).firstChild, iEL.dropCfg.fx]) } if (iEL.dropCfg.hc) { jQuery.iDrop.highlighted[i].removeClass(iEL.dropCfg.hc) } iEL.dropCfg.h = false } } if (jQuery.iSort && !jQuery.iDrop.overzone && jQuery.iDrag.dragged.so) { jQuery.iSort.helper.get(0).style.display = 'none' } if (applyOnHover) { jQuery.iDrop.overzone.dropCfg.onHover.apply(jQuery.iDrop.overzone, [e, jQuery.iDrag.helper.get(0).firstChild]) } }, checkdrop: function(e) { var i; for (i in jQuery.iDrop.highlighted) { var iEL = jQuery.iDrop.highlighted[i].get(0); if (iEL.dropCfg.ac) { jQuery.iDrop.highlighted[i].removeClass(iEL.dropCfg.ac) } if (iEL.dropCfg.hc) { jQuery.iDrop.highlighted[i].removeClass(iEL.dropCfg.hc) } if (iEL.dropCfg.s) { jQuery.iSort.changed[jQuery.iSort.changed.length] = i } if (iEL.dropCfg.onDrop && iEL.dropCfg.h == true) { iEL.dropCfg.h = false; iEL.dropCfg.onDrop.apply(iEL, [e, iEL.dropCfg.fx]) } iEL.dropCfg.m = false; iEL.dropCfg.h = false } jQuery.iDrop.highlighted = {} }, destroy: function() { return this.each(function() { if (this.isDroppable) { if (this.dropCfg.s) { id = jQuery.attr(this, 'id'); jQuery.iSort.collected[id] = null; jQuery('.' + this.dropCfg.a, this).DraggableDestroy() } jQuery.iDrop.zones['d' + this.idsa] = null; this.isDroppable = false; this.f = null } }) }, build: function(o) { return this.each(function() { if (this.isDroppable == true || !o.accept || !jQuery.iUtil || !jQuery.iDrag) { return } this.dropCfg = { a: o.accept, ac: o.activeclass || false, hc: o.hoverclass || false, shc: o.helperclass || false, onDrop: o.ondrop || o.onDrop || false, onHover: o.onHover || o.onhover || false, onOut: o.onOut || o.onout || false, onActivate: o.onActivate || false, t: o.tolerance && (o.tolerance == 'fit' || o.tolerance == 'intersect') ? o.tolerance: 'pointer', fx: o.fx ? o.fx: false, m: false, h: false }; if (o.sortable == true && jQuery.iSort) { id = jQuery.attr(this, 'id'); jQuery.iSort.collected[id] = this.dropCfg.a; this.dropCfg.s = true; if (o.onChange) { this.dropCfg.onChange = o.onChange; this.dropCfg.os = jQuery.iSort.serialize(id).hash } } this.isDroppable = true; this.idsa = parseInt(Math.random() * 10000); jQuery.iDrop.zones['d' + this.idsa] = jQuery(this); jQuery.iDrop.count++ }) } }; jQuery.fn.extend({ DroppableDestroy: jQuery.iDrop.destroy, Droppable: jQuery.iDrop.build }); jQuery.recallDroppables = jQuery.iDrop.remeasure; jQuery.iExpander = { helper: null, expand: function() { text = this.value; if (!text) return; style = { fontFamily: jQuery(this).css('fontFamily') || '', fontSize: jQuery(this).css('fontSize') || '', fontWeight: jQuery(this).css('fontWeight') || '', fontStyle: jQuery(this).css('fontStyle') || '', fontStretch: jQuery(this).css('fontStretch') || '', fontVariant: jQuery(this).css('fontVariant') || '', letterSpacing: jQuery(this).css('letterSpacing') || '', wordSpacing: jQuery(this).css('wordSpacing') || '' }; jQuery.iExpander.helper.css(style); html = jQuery.iExpander.htmlEntities(text); html = html.replace(new RegExp("\\n", "g"), "
    "); jQuery.iExpander.helper.html('pW'); spacer = jQuery.iExpander.helper.get(0).offsetWidth; jQuery.iExpander.helper.html(html); width = jQuery.iExpander.helper.get(0).offsetWidth + spacer; if (this.Expander.limit && width > this.Expander.limit[0]) { width = this.Expander.limit[0] } this.style.width = width + 'px'; if (this.tagName == 'TEXTAREA') { height = jQuery.iExpander.helper.get(0).offsetHeight + spacer; if (this.Expander.limit && height > this.Expander.limit[1]) { height = this.Expander.limit[1] } this.style.height = height + 'px' } }, htmlEntities: function(text) { entities = { '&': '&', '<': '<', '>': '>', '"': '"' }; for (i in entities) { text = text.replace(new RegExp(i, 'g'), entities[i]) } return text }, build: function(limit) { if (jQuery.iExpander.helper == null) { jQuery('body', document).append(''); jQuery.iExpander.helper = jQuery('#expanderHelper') } return this.each(function() { if (/TEXTAREA|INPUT/.test(this.tagName)) { if (this.tagName == 'INPUT') { elType = this.getAttribute('type'); if (!/text|password/.test(elType)) { return } } if (limit && (limit.constructor == Number || (limit.constructor == Array && limit.length == 2))) { if (limit.constructor == Number) limit = [limit, limit]; else { limit[0] = parseInt(limit[0]) || 400; limit[1] = parseInt(limit[1]) || 400 } this.Expander = { limit: limit } } jQuery(this).blur(jQuery.iExpander.expand).keyup(jQuery.iExpander.expand).keypress(jQuery.iExpander.expand); jQuery.iExpander.expand.apply(this) } }) } }; jQuery.fn.Autoexpand = jQuery.iExpander.build; jQuery.fxCheckTag = function(e) { if (/^tr$|^td$|^tbody$|^caption$|^thead$|^tfoot$|^col$|^colgroup$|^th$|^body$|^header$|^script$|^frame$|^frameset$|^option$|^optgroup$|^meta$/i.test(e.nodeName)) return false; else return true }; jQuery.fx.destroyWrapper = function(e, old) { var c = e.firstChild; var cs = c.style; cs.position = old.position; cs.marginTop = old.margins.t; cs.marginLeft = old.margins.l; cs.marginBottom = old.margins.b; cs.marginRight = old.margins.r; cs.top = old.top + 'px'; cs.left = old.left + 'px'; e.parentNode.insertBefore(c, e); e.parentNode.removeChild(e) }; jQuery.fx.buildWrapper = function(e) { if (!jQuery.fxCheckTag(e)) return false; var t = jQuery(e); var es = e.style; var restoreStyle = false; if (t.css('display') == 'none') { oldVisibility = t.css('visibility'); t.css('visibility', 'hidden').show(); restoreStyle = true } var oldStyle = {}; oldStyle.position = t.css('position'); oldStyle.sizes = jQuery.iUtil.getSize(e); oldStyle.margins = jQuery.iUtil.getMargins(e); var oldFloat = e.currentStyle ? e.currentStyle.styleFloat: t.css('float'); oldStyle.top = parseInt(t.css('top')) || 0; oldStyle.left = parseInt(t.css('left')) || 0; var wid = 'w_' + parseInt(Math.random() * 10000); var wr = document.createElement(/^img$|^br$|^input$|^hr$|^select$|^textarea$|^object$|^iframe$|^button$|^form$|^table$|^ul$|^dl$|^ol$/i.test(e.nodeName) ? 'div': e.nodeName); jQuery.attr(wr, 'id', wid); var wrapEl = jQuery(wr).addClass('fxWrapper'); var wrs = wr.style; var top = 0; var left = 0; if (oldStyle.position == 'relative' || oldStyle.position == 'absolute') { top = oldStyle.top; left = oldStyle.left } wrs.top = top + 'px'; wrs.left = left + 'px'; wrs.position = oldStyle.position != 'relative' && oldStyle.position != 'absolute' ? 'relative': oldStyle.position; wrs.height = oldStyle.sizes.hb + 'px'; wrs.width = oldStyle.sizes.wb + 'px'; wrs.marginTop = oldStyle.margins.t; wrs.marginRight = oldStyle.margins.r; wrs.marginBottom = oldStyle.margins.b; wrs.marginLeft = oldStyle.margins.l; wrs.overflow = 'hidden'; if (jQuery.browser.msie) { wrs.styleFloat = oldFloat } else { wrs.cssFloat = oldFloat } if (jQuery.browser == "msie") { es.filter = "alpha(opacity=" + 0.999 * 100 + ")" } es.opacity = 0.999; e.parentNode.insertBefore(wr, e); wr.appendChild(e); es.marginTop = '0px'; es.marginRight = '0px'; es.marginBottom = '0px'; es.marginLeft = '0px'; es.position = 'absolute'; es.listStyle = 'none'; es.top = '0px'; es.left = '0px'; if (restoreStyle) { t.hide(); es.visibility = oldVisibility } return { oldStyle: oldStyle, wrapper: jQuery(wr) } }; jQuery.fx.namedColors = { aqua: [0, 255, 255], azure: [240, 255, 255], beige: [245, 245, 220], black: [0, 0, 0], blue: [0, 0, 255], brown: [165, 42, 42], cyan: [0, 255, 255], darkblue: [0, 0, 139], darkcyan: [0, 139, 139], darkgrey: [169, 169, 169], darkgreen: [0, 100, 0], darkkhaki: [189, 183, 107], darkmagenta: [139, 0, 139], darkolivegreen: [85, 107, 47], darkorange: [255, 140, 0], darkorchid: [153, 50, 204], darkred: [139, 0, 0], darksalmon: [233, 150, 122], darkviolet: [148, 0, 211], fuchsia: [255, 0, 255], gold: [255, 215, 0], green: [0, 128, 0], indigo: [75, 0, 130], khaki: [240, 230, 140], lightblue: [173, 216, 230], lightcyan: [224, 255, 255], lightgreen: [144, 238, 144], lightgrey: [211, 211, 211], lightpink: [255, 182, 193], lightyellow: [255, 255, 224], lime: [0, 255, 0], magenta: [255, 0, 255], maroon: [128, 0, 0], navy: [0, 0, 128], olive: [128, 128, 0], orange: [255, 165, 0], pink: [255, 192, 203], purple: [128, 0, 128], red: [255, 0, 0], silver: [192, 192, 192], white: [255, 255, 255], yellow: [255, 255, 0] }; jQuery.fx.parseColor = function(color, notColor) { if (jQuery.fx.namedColors[color]) return { r: jQuery.fx.namedColors[color][0], g: jQuery.fx.namedColors[color][1], b: jQuery.fx.namedColors[color][2] }; else if (result = /^rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)$/.exec(color)) return { r: parseInt(result[1]), g: parseInt(result[2]), b: parseInt(result[3]) }; else if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)$/.exec(color)) return { r: parseFloat(result[1]) * 2.55, g: parseFloat(result[2]) * 2.55, b: parseFloat(result[3]) * 2.55 }; else if (result = /^#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])$/.exec(color)) return { r: parseInt("0x" + result[1] + result[1]), g: parseInt("0x" + result[2] + result[2]), b: parseInt("0x" + result[3] + result[3]) }; else if (result = /^#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})$/.exec(color)) return { r: parseInt("0x" + result[1]), g: parseInt("0x" + result[2]), b: parseInt("0x" + result[3]) }; else return notColor == true ? false: { r: 255, g: 255, b: 255 } }; jQuery.fx.cssProps = { borderBottomWidth: 1, borderLeftWidth: 1, borderRightWidth: 1, borderTopWidth: 1, bottom: 1, fontSize: 1, height: 1, left: 1, letterSpacing: 1, lineHeight: 1, marginBottom: 1, marginLeft: 1, marginRight: 1, marginTop: 1, maxHeight: 1, maxWidth: 1, minHeight: 1, minWidth: 1, opacity: 1, outlineOffset: 1, outlineWidth: 1, paddingBottom: 1, paddingLeft: 1, paddingRight: 1, paddingTop: 1, right: 1, textIndent: 1, top: 1, width: 1, zIndex: 1 }; jQuery.fx.colorCssProps = { backgroundColor: 1, borderBottomColor: 1, borderLeftColor: 1, borderRightColor: 1, borderTopColor: 1, color: 1, outlineColor: 1 }; jQuery.fx.cssSides = ['Top', 'Right', 'Bottom', 'Left']; jQuery.fx.cssSidesEnd = { 'borderWidth': ['border', 'Width'], 'borderColor': ['border', 'Color'], 'margin': ['margin', ''], 'padding': ['padding', ''] }; jQuery.fn.extend({ animate: function(prop, speed, easing, callback) { return this.queue(function() { var opt = jQuery.speed(speed, easing, callback); var e = new jQuery.fxe(this, opt, prop) }) }, pause: function(speed, callback) { return this.queue(function() { var opt = jQuery.speed(speed, callback); var e = new jQuery.pause(this, opt) }) }, stop: function(step) { return this.each(function() { if (this.animationHandler) jQuery.stopAnim(this, step) }) }, stopAll: function(step) { return this.each(function() { if (this.animationHandler) jQuery.stopAnim(this, step); if (this.queue && this.queue['fx']) this.queue.fx = [] }) } }); jQuery.extend({ pause: function(elem, options) { var z = this, values; z.step = function() { if (jQuery.isFunction(options.complete)) options.complete.apply(elem) }; z.timer = setInterval(function() { z.step() }, options.duration); elem.animationHandler = z }, easing: { linear: function(p, n, firstNum, delta, duration) { return (( - Math.cos(p * Math.PI) / 2) + 0.5) * delta + firstNum } }, fxe: function(elem, options, prop) { var z = this, values; var y = elem.style; var oldOverflow = jQuery.css(elem, "overflow"); var oldDisplay = jQuery.css(elem, "display"); var props = {}; z.startTime = (new Date()).getTime(); options.easing = options.easing && jQuery.easing[options.easing] ? options.easing: 'linear'; z.getValues = function(tp, vp) { if (jQuery.fx.cssProps[tp]) { if (vp == 'show' || vp == 'hide' || vp == 'toggle') { if (!elem.orig) elem.orig = {}; var r = parseFloat(jQuery.curCSS(elem, tp)); elem.orig[tp] = r && r > -10000 ? r: (parseFloat(jQuery.css(elem, tp)) || 0); vp = vp == 'toggle' ? (oldDisplay == 'none' ? 'show': 'hide') : vp; options[vp] = true; props[tp] = vp == 'show' ? [0, elem.orig[tp]] : [elem.orig[tp], 0]; if (tp != 'opacity') y[tp] = props[tp][0] + (tp != 'zIndex' && tp != 'fontWeight' ? 'px': ''); else jQuery.attr(y, "opacity", props[tp][0]) } else { props[tp] = [parseFloat(jQuery.curCSS(elem, tp)), parseFloat(vp) || 0] } } else if (jQuery.fx.colorCssProps[tp]) props[tp] = [jQuery.fx.parseColor(jQuery.curCSS(elem, tp)), jQuery.fx.parseColor(vp)]; else if (/^margin$|padding$|border$|borderColor$|borderWidth$/i.test(tp)) { var m = vp.replace(/\s+/g, ' ').replace(/rgb\s*\(\s*/g, 'rgb(').replace(/\s*,\s*/g, ',').replace(/\s*\)/g, ')').match(/([^\s]+)/g); switch (tp) { case 'margin': case 'padding': case 'borderWidth': case 'borderColor': m[3] = m[3] || m[1] || m[0]; m[2] = m[2] || m[0]; m[1] = m[1] || m[0]; for (var i = 0; i < jQuery.fx.cssSides.length; i++) { var nmp = jQuery.fx.cssSidesEnd[tp][0] + jQuery.fx.cssSides[i] + jQuery.fx.cssSidesEnd[tp][1]; props[nmp] = tp == 'borderColor' ? [jQuery.fx.parseColor(jQuery.curCSS(elem, nmp)), jQuery.fx.parseColor(m[i])] : [parseFloat(jQuery.curCSS(elem, nmp)), parseFloat(m[i])] } break; case 'border': for (var i = 0; i < m.length; i++) { var floatVal = parseFloat(m[i]); var sideEnd = !isNaN(floatVal) ? 'Width': (!/transparent|none|hidden|dotted|dashed|solid|double|groove|ridge|inset|outset/i.test(m[i]) ? 'Color': false); if (sideEnd) { for (var j = 0; j < jQuery.fx.cssSides.length; j++) { nmp = 'border' + jQuery.fx.cssSides[j] + sideEnd; props[nmp] = sideEnd == 'Color' ? [jQuery.fx.parseColor(jQuery.curCSS(elem, nmp)), jQuery.fx.parseColor(m[i])] : [parseFloat(jQuery.curCSS(elem, nmp)), floatVal] } } else { y['borderStyle'] = m[i] } } break } } else { y[tp] = vp } return false }; for (p in prop) { if (p == 'style') { var newStyles = jQuery.parseStyle(prop[p]); for (np in newStyles) { this.getValues(np, newStyles[np]) } } else if (p == 'className') { if (document.styleSheets) for (var i = 0; i < document.styleSheets.length; i++) { var cssRules = document.styleSheets[i].cssRules || document.styleSheets[i].rules || null; if (cssRules) { for (var j = 0; j < cssRules.length; j++) { if (cssRules[j].selectorText == '.' + prop[p]) { var rule = new RegExp('\.' + prop[p] + ' {'); var styles = cssRules[j].style.cssText; var newStyles = jQuery.parseStyle(styles.replace(rule, '').replace(/}/g, '')); for (np in newStyles) { this.getValues(np, newStyles[np]) } } } } } } else { this.getValues(p, prop[p]) } } y.display = oldDisplay == 'none' ? 'block': oldDisplay; y.overflow = 'hidden'; z.step = function() { try { var t = (new Date()).getTime(); if (t > options.duration + z.startTime) { clearInterval(z.timer); z.timer = null; for (p in props) { if (p == "opacity") jQuery.attr(y, "opacity", props[p][1]); else if (typeof props[p][1] == 'object') y[p] = 'rgb(' + props[p][1].r + ',' + props[p][1].g + ',' + props[p][1].b + ')'; else y[p] = props[p][1] + (p != 'zIndex' && p != 'fontWeight' ? 'px': '') } if (options.hide || options.show) for (var p in elem.orig) if (p == "opacity") jQuery.attr(y, p, elem.orig[p]); else y[p] = ""; y.display = options.hide ? 'none': (oldDisplay != 'none' ? oldDisplay: 'block'); y.overflow = oldOverflow; elem.animationHandler = null; if (jQuery.isFunction(options.complete)) options.complete.apply(elem) } else { var n = t - this.startTime; var pr = n / options.duration; for (p in props) { if (typeof props[p][1] == 'object') { y[p] = 'rgb(' + parseInt(jQuery.easing[options.easing](pr, n, props[p][0].r, (props[p][1].r - props[p][0].r), options.duration)) + ',' + parseInt(jQuery.easing[options.easing](pr, n, props[p][0].g, (props[p][1].g - props[p][0].g), options.duration)) + ',' + parseInt(jQuery.easing[options.easing](pr, n, props[p][0].b, (props[p][1].b - props[p][0].b), options.duration)) + ')' } else { try { var pValue = jQuery.easing[options.easing](pr, n, props[p][0], (props[p][1] - props[p][0]), options.duration); if (p == "opacity") jQuery.attr(y, "opacity", pValue); else y[p] = pValue + (p != 'zIndex' && p != 'fontWeight' ? 'px': ''); } catch( err ) { } } } } } catch( err ){} }; z.timer = setInterval(function() { z.step() }, 13); elem.animationHandler = z }, stopAnim: function(elem, step) { if (step) elem.animationHandler.startTime -= 100000000; else { window.clearInterval(elem.animationHandler.timer); elem.animationHandler = null; jQuery.dequeue(elem, "fx") } } }); jQuery.parseStyle = function(styles) { var newStyles = {}; if (typeof styles == 'string') { styles = styles.toLowerCase().split(';'); for (var i = 0; i < styles.length; i++) { rule = styles[i].split(':'); if (rule.length == 2) { newStyles[jQuery.trim(rule[0].replace(/\-(\w)/g, function(m, c) { return c.toUpperCase() }))] = jQuery.trim(rule[1]) } } } return newStyles }; jQuery.fn.extend({ BlindUp: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.BlindDirection(this, speed, callback, 'up', easing) }) }, BlindDown: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.BlindDirection(this, speed, callback, 'down', easing) }) }, BlindToggleVertically: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.BlindDirection(this, speed, callback, 'togglever', easing) }) }, BlindLeft: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.BlindDirection(this, speed, callback, 'left', easing) }) }, BlindRight: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.BlindDirection(this, speed, callback, 'right', easing) }) }, BlindToggleHorizontally: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.BlindDirection(this, speed, callback, 'togglehor', easing) }) } }); jQuery.fx.BlindDirection = function(e, speed, callback, direction, easing) { if (!jQuery.fxCheckTag(e)) { jQuery.dequeue(e, 'interfaceFX'); return false } var z = this; z.el = jQuery(e); z.size = jQuery.iUtil.getSize(e); z.easing = typeof callback == 'string' ? callback: easing || null; if (!e.ifxFirstDisplay) e.ifxFirstDisplay = z.el.css('display'); if (direction == 'togglever') { direction = z.el.css('display') == 'none' ? 'down': 'up' } else if (direction == 'togglehor') { direction = z.el.css('display') == 'none' ? 'right': 'left' } z.el.show(); z.speed = speed; z.callback = typeof callback == 'function' ? callback: null; z.fx = jQuery.fx.buildWrapper(e); z.direction = direction; z.complete = function() { if (z.callback && z.callback.constructor == Function) { z.callback.apply(z.el.get(0)) } if (z.direction == 'down' || z.direction == 'right') { z.el.css('display', z.el.get(0).ifxFirstDisplay == 'none' ? 'block': z.el.get(0).ifxFirstDisplay) } else { z.el.hide() } jQuery.fx.destroyWrapper(z.fx.wrapper.get(0), z.fx.oldStyle); jQuery.dequeue(z.el.get(0), 'interfaceFX') }; switch (z.direction) { case 'up': fxh = new jQuery.fx(z.fx.wrapper.get(0), jQuery.speed(z.speed, z.easing, z.complete), 'height'); fxh.custom(z.fx.oldStyle.sizes.hb, 0); break; case 'down': z.fx.wrapper.css('height', '1px'); z.el.show(); fxh = new jQuery.fx(z.fx.wrapper.get(0), jQuery.speed(z.speed, z.easing, z.complete), 'height'); fxh.custom(0, z.fx.oldStyle.sizes.hb); break; case 'left': fxh = new jQuery.fx(z.fx.wrapper.get(0), jQuery.speed(z.speed, z.easing, z.complete), 'width'); fxh.custom(z.fx.oldStyle.sizes.wb, 0); break; case 'right': z.fx.wrapper.css('width', '1px'); z.el.show(); fxh = new jQuery.fx(z.fx.wrapper.get(0), jQuery.speed(z.speed, z.easing, z.complete), 'width'); fxh.custom(0, z.fx.oldStyle.sizes.wb); break } }; jQuery.fn.Bounce = function(hight, callback) { return this.queue('interfaceFX', function() { if (!jQuery.fxCheckTag(this)) { jQuery.dequeue(this, 'interfaceFX'); return false } var e = new jQuery.fx.iBounce(this, hight, callback); e.bounce() }) }; jQuery.fx.iBounce = function(e, hight, callback) { var z = this; z.el = jQuery(e); z.el.show(); z.callback = callback; z.hight = parseInt(hight) || 40; z.oldStyle = {}; z.oldStyle.position = z.el.css('position'); z.oldStyle.top = parseInt(z.el.css('top')) || 0; z.oldStyle.left = parseInt(z.el.css('left')) || 0; if (z.oldStyle.position != 'relative' && z.oldStyle.position != 'absolute') { z.el.css('position', 'relative') } z.times = 5; z.cnt = 1; z.bounce = function() { z.cnt++; z.e = new jQuery.fx(z.el.get(0), { duration: 120, complete: function() { z.e = new jQuery.fx(z.el.get(0), { duration: 80, complete: function() { z.hight = parseInt(z.hight / 2); if (z.cnt <= z.times) z.bounce(); else { z.el.css('position', z.oldStyle.position).css('top', z.oldStyle.top + 'px').css('left', z.oldStyle.left + 'px'); jQuery.dequeue(z.el.get(0), 'interfaceFX'); if (z.callback && z.callback.constructor == Function) { z.callback.apply(z.el.get(0)) } } } }, 'top'); z.e.custom(z.oldStyle.top - z.hight, z.oldStyle.top) } }, 'top'); z.e.custom(z.oldStyle.top, z.oldStyle.top - z.hight) } }; jQuery.fn.extend({ DropOutDown: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.DropOutDirectiont(this, speed, callback, 'down', 'out', easing) }) }, DropInDown: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.DropOutDirectiont(this, speed, callback, 'down', 'in', easing) }) }, DropToggleDown: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.DropOutDirectiont(this, speed, callback, 'down', 'toggle', easing) }) }, DropOutUp: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.DropOutDirectiont(this, speed, callback, 'up', 'out', easing) }) }, DropInUp: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.DropOutDirectiont(this, speed, callback, 'up', 'in', easing) }) }, DropToggleUp: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.DropOutDirectiont(this, speed, callback, 'up', 'toggle', easing) }) }, DropOutLeft: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.DropOutDirectiont(this, speed, callback, 'left', 'out', easing) }) }, DropInLeft: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.DropOutDirectiont(this, speed, callback, 'left', 'in', easing) }) }, DropToggleLeft: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.DropOutDirectiont(this, speed, callback, 'left', 'toggle', easing) }) }, DropOutRight: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.DropOutDirectiont(this, speed, callback, 'right', 'out', easing) }) }, DropInRight: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.DropOutDirectiont(this, speed, callback, 'right', 'in', easing) }) }, DropToggleRight: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.DropOutDirectiont(this, speed, callback, 'right', 'toggle', easing) }) } }); jQuery.fx.DropOutDirectiont = function(e, speed, callback, direction, type, easing) { if (!jQuery.fxCheckTag(e)) { jQuery.dequeue(e, 'interfaceFX'); return false } var z = this; z.el = jQuery(e); z.easing = typeof callback == 'string' ? callback: easing || null; z.oldStyle = {}; z.oldStyle.position = z.el.css('position'); z.oldStyle.top = z.el.css('top'); z.oldStyle.left = z.el.css('left'); if (!e.ifxFirstDisplay) e.ifxFirstDisplay = z.el.css('display'); if (type == 'toggle') { type = z.el.css('display') == 'none' ? 'in': 'out' } z.el.show(); if (z.oldStyle.position != 'relative' && z.oldStyle.position != 'absolute') { z.el.css('position', 'relative') } z.type = type; callback = typeof callback == 'function' ? callback: null; directionIncrement = 1; switch (direction) { case 'up': z.e = new jQuery.fx(z.el.get(0), jQuery.speed(speed - 15, z.easing, callback), 'top'); z.point = parseFloat(z.oldStyle.top) || 0; z.unit = z.topUnit; directionIncrement = -1; break; case 'down': z.e = new jQuery.fx(z.el.get(0), jQuery.speed(speed - 15, z.easing, callback), 'top'); z.point = parseFloat(z.oldStyle.top) || 0; z.unit = z.topUnit; break; case 'right': z.e = new jQuery.fx(z.el.get(0), jQuery.speed(speed - 15, z.easing, callback), 'left'); z.point = parseFloat(z.oldStyle.left) || 0; z.unit = z.leftUnit; break; case 'left': z.e = new jQuery.fx(z.el.get(0), jQuery.speed(speed - 15, z.easing, callback), 'left'); z.point = parseFloat(z.oldStyle.left) || 0; z.unit = z.leftUnit; directionIncrement = -1; break } z.e2 = new jQuery.fx(z.el.get(0), jQuery.speed(speed, z.easing, function() { z.el.css(z.oldStyle); if (z.type == 'out') { z.el.css('display', 'none') } else z.el.css('display', z.el.get(0).ifxFirstDisplay == 'none' ? 'block': z.el.get(0).ifxFirstDisplay); jQuery.dequeue(z.el.get(0), 'interfaceFX') }), 'opacity'); if (type == 'in') { z.e.custom(z.point + 100 * directionIncrement, z.point); z.e2.custom(0, 1) } else { z.e.custom(z.point, z.point + 100 * directionIncrement); z.e2.custom(1, 0) } }; jQuery.fn.extend({ Fold: function(speed, height, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.DoFold(this, speed, height, callback, 'fold', easing) }) }, UnFold: function(speed, height, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.DoFold(this, speed, height, callback, 'unfold', easing) }) }, FoldToggle: function(speed, height, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.DoFold(this, speed, height, callback, 'toggle', easing) }) } }); jQuery.fx.DoFold = function(e, speed, height, callback, type, easing) { if (!jQuery.fxCheckTag(e)) { jQuery.dequeue(e, 'interfaceFX'); return false } var z = this; z.el = jQuery(e); z.easing = typeof callback == 'string' ? callback: easing || null; z.callback = typeof callback == 'function' ? callback: null; if (type == 'toggle') { type = z.el.css('display') == 'none' ? 'unfold': 'fold' } z.speed = speed; z.height = height && height.constructor == Number ? height: 20; z.fx = jQuery.fx.buildWrapper(e); z.type = type; z.complete = function() { if (z.callback && z.callback.constructor == Function) { z.callback.apply(z.el.get(0)) } if (z.type == 'unfold') { z.el.show() } else { z.el.hide() } jQuery.fx.destroyWrapper(z.fx.wrapper.get(0), z.fx.oldStyle); jQuery.dequeue(z.el.get(0), 'interfaceFX') }; if (z.type == 'unfold') { z.el.show(); z.fx.wrapper.css('height', z.height + 'px').css('width', '1px'); z.ef = new jQuery.fx(z.fx.wrapper.get(0), jQuery.speed(z.speed, z.easing, function() { z.ef = new jQuery.fx(z.fx.wrapper.get(0), jQuery.speed(z.speed, z.easing, z.complete), 'height'); z.ef.custom(z.height, z.fx.oldStyle.sizes.hb) }), 'width'); z.ef.custom(0, z.fx.oldStyle.sizes.wb) } else { z.ef = new jQuery.fx(z.fx.wrapper.get(0), jQuery.speed(z.speed, z.easing, function() { z.ef = new jQuery.fx(z.fx.wrapper.get(0), jQuery.speed(z.speed, z.easing, z.complete), 'width'); z.ef.custom(z.fx.oldStyle.sizes.wb, 0) }), 'height'); z.ef.custom(z.fx.oldStyle.sizes.hb, z.height) } }; jQuery.fn.Highlight = function(speed, color, callback, easing) { return this.queue('interfaceColorFX', function() { this.oldStyleAttr = jQuery(this).attr("style") || ''; easing = typeof callback == 'string' ? callback: easing || null; callback = typeof callback == 'function' ? callback: null; var oldColor = jQuery(this).css('backgroundColor'); var parentEl = this.parentNode; while (oldColor == 'transparent' && parentEl) { oldColor = jQuery(parentEl).css('backgroundColor'); parentEl = parentEl.parentNode } jQuery(this).css('backgroundColor', color); if (typeof this.oldStyleAttr == 'object') this.oldStyleAttr = this.oldStyleAttr["cssText"]; jQuery(this).animate({ 'backgroundColor': oldColor }, speed, easing, function() { jQuery.dequeue(this, 'interfaceColorFX'); if (typeof jQuery(this).attr("style") == 'object') { jQuery(this).attr("style")["cssText"] = ""; jQuery(this).attr("style")["cssText"] = this.oldStyleAttr } else { jQuery(this).attr("style", this.oldStyleAttr) } if (callback) callback.apply(this) }) }) }; jQuery.fn.extend({ CloseVertically: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.OpenClose(this, speed, callback, 'vertically', 'close', easing) }) }, CloseHorizontally: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.OpenClose(this, speed, callback, 'horizontally', 'close', easing) }) }, SwitchHorizontally: function(speed, callback, easing) { return this.queue('interfaceFX', function() { if (jQuery.css(this, 'display') == 'none') { new jQuery.fx.OpenClose(this, speed, callback, 'horizontally', 'open', easing) } else { new jQuery.fx.OpenClose(this, speed, callback, 'horizontally', 'close', easing) } }) }, SwitchVertically: function(speed, callback, easing) { return this.queue('interfaceFX', function() { if (jQuery.css(this, 'display') == 'none') { new jQuery.fx.OpenClose(this, speed, callback, 'vertically', 'open', easing) } else { new jQuery.fx.OpenClose(this, speed, callback, 'vertically', 'close', easing) } }) }, OpenVertically: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.OpenClose(this, speed, callback, 'vertically', 'open', easing) }) }, OpenHorizontally: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.OpenClose(this, speed, callback, 'horizontally', 'open', easing) }) } }); jQuery.fx.OpenClose = function(e, speed, callback, direction, type, easing) { if (!jQuery.fxCheckTag(e)) { jQuery.dequeue(e, 'interfaceFX'); return false } var z = this; var restoreStyle = false; z.el = jQuery(e); z.easing = typeof callback == 'string' ? callback: easing || null; z.callback = typeof callback == 'function' ? callback: null; z.type = type; z.speed = speed; z.oldP = jQuery.iUtil.getSize(e); z.oldStyle = {}; z.oldStyle.position = z.el.css('position'); z.oldStyle.display = z.el.css('display'); if (z.oldStyle.display == 'none') { oldVisibility = z.el.css('visibility'); z.el.show(); restoreStyle = true } z.oldStyle.top = z.el.css('top'); z.oldStyle.left = z.el.css('left'); if (restoreStyle) { z.el.hide(); z.el.css('visibility', oldVisibility) } z.oldStyle.width = z.oldP.w + 'px'; z.oldStyle.height = z.oldP.h + 'px'; z.oldStyle.overflow = z.el.css('overflow'); z.oldP.top = parseInt(z.oldStyle.top) || 0; z.oldP.left = parseInt(z.oldStyle.left) || 0; if (z.oldStyle.position != 'relative' && z.oldStyle.position != 'absolute') { z.el.css('position', 'relative') } z.el.css('overflow', 'hidden').css('height', type == 'open' && direction == 'vertically' ? 1: z.oldP.h + 'px').css('width', type == 'open' && direction == 'horizontally' ? 1: z.oldP.w + 'px'); z.complete = function() { z.el.css(z.oldStyle); if (z.type == 'close') z.el.hide(); else z.el.show(); jQuery.dequeue(z.el.get(0), 'interfaceFX') }; switch (direction) { case 'vertically': z.eh = new jQuery.fx(z.el.get(0), jQuery.speed(speed - 15, z.easing, callback), 'height'); z.et = new jQuery.fx(z.el.get(0), jQuery.speed(z.speed, z.easing, z.complete), 'top'); if (z.type == 'close') { z.eh.custom(z.oldP.h, 0); z.et.custom(z.oldP.top, z.oldP.top + z.oldP.h / 2) } else { z.eh.custom(0, z.oldP.h); z.et.custom(z.oldP.top + z.oldP.h / 2, z.oldP.top) } break; case 'horizontally': z.eh = new jQuery.fx(z.el.get(0), jQuery.speed(speed - 15, z.easing, callback), 'width'); z.et = new jQuery.fx(z.el.get(0), jQuery.speed(z.speed, z.easing, z.complete), 'left'); if (z.type == 'close') { z.eh.custom(z.oldP.w, 0); z.et.custom(z.oldP.left, z.oldP.left + z.oldP.w / 2) } else { z.eh.custom(0, z.oldP.w); z.et.custom(z.oldP.left + z.oldP.w / 2, z.oldP.left) } break } }; jQuery.fn.Pulsate = function(speed, times, callback) { return this.queue('interfaceFX', function() { if (!jQuery.fxCheckTag(this)) { jQuery.dequeue(this, 'interfaceFX'); return false } var fx = new jQuery.fx.Pulsate(this, speed, times, callback); fx.pulse() }) }; jQuery.fx.Pulsate = function(el, speed, times, callback) { var z = this; z.times = times; z.cnt = 1; z.el = el; z.speed = speed; z.callback = callback; jQuery(z.el).show(); z.pulse = function() { z.cnt++; z.e = new jQuery.fx(z.el, jQuery.speed(z.speed, function() { z.ef = new jQuery.fx(z.el, jQuery.speed(z.speed, function() { if (z.cnt <= z.times) z.pulse(); else { jQuery.dequeue(z.el, 'interfaceFX'); if (z.callback && z.callback.constructor == Function) { z.callback.apply(z.el) } } }), 'opacity'); z.ef.custom(0, 1) }), 'opacity'); z.e.custom(1, 0) } }; jQuery.fn.extend({ Grow: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.Scale(this, speed, 1, 100, true, callback, 'grow', easing) }) }, Shrink: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.Scale(this, speed, 100, 1, true, callback, 'shrink', easing) }) }, Puff: function(speed, callback, easing) { return this.queue('interfaceFX', function() { var easing = easing || 'easeout'; new jQuery.fx.Scale(this, speed, 100, 150, true, callback, 'puff', easing) }) }, Scale: function(speed, from, to, restore, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.Scale(this, speed, from, to, restore, callback, 'Scale', easing) }) } }); jQuery.fx.Scale = function(e, speed, from, to, restore, callback, type, easing) { if (!jQuery.fxCheckTag(e)) { jQuery.dequeue(e, 'interfaceFX'); return false } var z = this; z.el = jQuery(e); z.from = parseInt(from) || 100; z.to = parseInt(to) || 100; z.easing = typeof callback == 'string' ? callback: easing || null; z.callback = typeof callback == 'function' ? callback: null; z.duration = jQuery.speed(speed).duration; z.restore = restore || null; z.oldP = jQuery.iUtil.getSize(e); z.oldStyle = { width: z.el.css('width'), height: z.el.css('height'), fontSize: z.el.css('fontSize') || '100%', position: z.el.css('position'), display: z.el.css('display'), top: z.el.css('top'), left: z.el.css('left'), overflow: z.el.css('overflow'), borderTopWidth: z.el.css('borderTopWidth'), borderRightWidth: z.el.css('borderRightWidth'), borderBottomWidth: z.el.css('borderBottomWidth'), borderLeftWidth: z.el.css('borderLeftWidth'), paddingTop: z.el.css('paddingTop'), paddingRight: z.el.css('paddingRight'), paddingBottom: z.el.css('paddingBottom'), paddingLeft: z.el.css('paddingLeft') }; z.width = parseInt(z.oldStyle.width) || e.offsetWidth || 0; z.height = parseInt(z.oldStyle.height) || e.offsetHeight || 0; z.top = parseInt(z.oldStyle.top) || 0; z.left = parseInt(z.oldStyle.left) || 0; sizes = ['em', 'px', 'pt', '%']; for (i in sizes) { if (z.oldStyle.fontSize.indexOf(sizes[i]) > 0) { z.fontUnit = sizes[i]; z.fontSize = parseFloat(z.oldStyle.fontSize) } if (z.oldStyle.borderTopWidth.indexOf(sizes[i]) > 0) { z.borderTopUnit = sizes[i]; z.borderTopSize = parseFloat(z.oldStyle.borderTopWidth) || 0 } if (z.oldStyle.borderRightWidth.indexOf(sizes[i]) > 0) { z.borderRightUnit = sizes[i]; z.borderRightSize = parseFloat(z.oldStyle.borderRightWidth) || 0 } if (z.oldStyle.borderBottomWidth.indexOf(sizes[i]) > 0) { z.borderBottomUnit = sizes[i]; z.borderBottomSize = parseFloat(z.oldStyle.borderBottomWidth) || 0 } if (z.oldStyle.borderLeftWidth.indexOf(sizes[i]) > 0) { z.borderLeftUnit = sizes[i]; z.borderLeftSize = parseFloat(z.oldStyle.borderLeftWidth) || 0 } if (z.oldStyle.paddingTop.indexOf(sizes[i]) > 0) { z.paddingTopUnit = sizes[i]; z.paddingTopSize = parseFloat(z.oldStyle.paddingTop) || 0 } if (z.oldStyle.paddingRight.indexOf(sizes[i]) > 0) { z.paddingRightUnit = sizes[i]; z.paddingRightSize = parseFloat(z.oldStyle.paddingRight) || 0 } if (z.oldStyle.paddingBottom.indexOf(sizes[i]) > 0) { z.paddingBottomUnit = sizes[i]; z.paddingBottomSize = parseFloat(z.oldStyle.paddingBottom) || 0 } if (z.oldStyle.paddingLeft.indexOf(sizes[i]) > 0) { z.paddingLeftUnit = sizes[i]; z.paddingLeftSize = parseFloat(z.oldStyle.paddingLeft) || 0 } } if (z.oldStyle.position != 'relative' && z.oldStyle.position != 'absolute') { z.el.css('position', 'relative') } z.el.css('overflow', 'hidden'); z.type = type; switch (z.type) { case 'grow': z.startTop = z.top + z.oldP.h / 2; z.endTop = z.top; z.startLeft = z.left + z.oldP.w / 2; z.endLeft = z.left; break; case 'shrink': z.endTop = z.top + z.oldP.h / 2; z.startTop = z.top; z.endLeft = z.left + z.oldP.w / 2; z.startLeft = z.left; break; case 'puff': z.endTop = z.top - z.oldP.h / 4; z.startTop = z.top; z.endLeft = z.left - z.oldP.w / 4; z.startLeft = z.left; break } z.firstStep = false; z.t = (new Date).getTime(); z.clear = function() { clearInterval(z.timer); z.timer = null }; z.step = function() { if (z.firstStep == false) { z.el.show(); z.firstStep = true } var t = (new Date).getTime(); var n = t - z.t; var p = n / z.duration; if (t >= z.duration + z.t) { setTimeout(function() { o = 1; if (z.type) { t = z.endTop; l = z.endLeft; if (z.type == 'puff') o = 0 } z.zoom(z.to, l, t, true, o) }, 13); z.clear() } else { o = 1; if (!jQuery.easing || !jQuery.easing[z.easing]) { s = (( - Math.cos(p * Math.PI) / 2) + 0.5) * (z.to - z.from) + z.from } else { s = jQuery.easing[z.easing](p, n, z.from, (z.to - z.from), z.duration) } if (z.type) { if (!jQuery.easing || !jQuery.easing[z.easing]) { t = (( - Math.cos(p * Math.PI) / 2) + 0.5) * (z.endTop - z.startTop) + z.startTop; l = (( - Math.cos(p * Math.PI) / 2) + 0.5) * (z.endLeft - z.startLeft) + z.startLeft; if (z.type == 'puff') o = (( - Math.cos(p * Math.PI) / 2) + 0.5) * ( - 0.9999) + 0.9999 } else { t = jQuery.easing[z.easing](p, n, z.startTop, (z.endTop - z.startTop), z.duration); l = jQuery.easing[z.easing](p, n, z.startLeft, (z.endLeft - z.startLeft), z.duration); if (z.type == 'puff') o = jQuery.easing[z.easing](p, n, 0.9999, -0.9999, z.duration) } } z.zoom(s, l, t, false, o) } }; z.timer = setInterval(function() { z.step() }, 13); z.zoom = function(percent, left, top, finish, opacity) { z.el.css('height', z.height * percent / 100 + 'px').css('width', z.width * percent / 100 + 'px').css('left', left + 'px').css('top', top + 'px').css('fontSize', z.fontSize * percent / 100 + z.fontUnit); if (z.borderTopSize) z.el.css('borderTopWidth', z.borderTopSize * percent / 100 + z.borderTopUnit); if (z.borderRightSize) z.el.css('borderRightWidth', z.borderRightSize * percent / 100 + z.borderRightUnit); if (z.borderBottomSize) z.el.css('borderBottomWidth', z.borderBottomSize * percent / 100 + z.borderBottomUnit); if (z.borderLeftSize) z.el.css('borderLeftWidth', z.borderLeftSize * percent / 100 + z.borderLeftUnit); if (z.paddingTopSize) z.el.css('paddingTop', z.paddingTopSize * percent / 100 + z.paddingTopUnit); if (z.paddingRightSize) z.el.css('paddingRight', z.paddingRightSize * percent / 100 + z.paddingRightUnit); if (z.paddingBottomSize) z.el.css('paddingBottom', z.paddingBottomSize * percent / 100 + z.paddingBottomUnit); if (z.paddingLeftSize) z.el.css('paddingLeft', z.paddingLeftSize * percent / 100 + z.paddingLeftUnit); if (z.type == 'puff') { if (window.ActiveXObject) z.el.get(0).style.filter = "alpha(opacity=" + opacity * 100 + ")"; z.el.get(0).style.opacity = opacity } if (finish) { if (z.restore) { z.el.css(z.oldStyle) } if (z.type == 'shrink' || z.type == 'puff') { z.el.css('display', 'none'); if (z.type == 'puff') { if (window.ActiveXObject) z.el.get(0).style.filter = "alpha(opacity=" + 100 + ")"; z.el.get(0).style.opacity = 1 } } else z.el.css('display', 'block'); if (z.callback) z.callback.apply(z.el.get(0)); jQuery.dequeue(z.el.get(0), 'interfaceFX') } } }; jQuery.fn.extend({ ScrollTo: function(speed, axis, easing) { o = jQuery.speed(speed); return this.queue('interfaceFX', function() { new jQuery.fx.ScrollTo(this, o, axis, easing) }) }, ScrollToAnchors: function(speed, axis, easing) { return this.each(function() { jQuery('a[@href*="#"]', this).click(function(e) { parts = this.href.split('#'); jQuery('#' + parts[1]).ScrollTo(speed, axis, easing); return false }) }) } }); jQuery.fx.ScrollTo = function(e, o, axis, easing) { var z = this; z.o = o; z.e = e; z.axis = /vertical|horizontal/.test(axis) ? axis: false; z.easing = easing; p = jQuery.iUtil.getPosition(e); s = jQuery.iUtil.getScroll(); z.clear = function() { clearInterval(z.timer); z.timer = null; jQuery.dequeue(z.e, 'interfaceFX') }; z.t = (new Date).getTime(); s.h = s.h > s.ih ? (s.h - s.ih) : s.h; s.w = s.w > s.iw ? (s.w - s.iw) : s.w; z.endTop = p.y > s.h ? s.h: p.y; z.endLeft = p.x > s.w ? s.w: p.x; z.startTop = s.t; z.startLeft = s.l; z.step = function() { var t = (new Date).getTime(); var n = t - z.t; var p = n / z.o.duration; if (t >= z.o.duration + z.t) { z.clear(); setTimeout(function() { z.scroll(z.endTop, z.endLeft) }, 13) } else { if (!z.axis || z.axis == 'vertical') { if (!jQuery.easing || !jQuery.easing[z.easing]) { st = (( - Math.cos(p * Math.PI) / 2) + 0.5) * (z.endTop - z.startTop) + z.startTop } else { st = jQuery.easing[z.easing](p, n, z.startTop, (z.endTop - z.startTop), z.o.duration) } } else { st = z.startTop } if (!z.axis || z.axis == 'horizontal') { if (!jQuery.easing || !jQuery.easing[z.easing]) { sl = (( - Math.cos(p * Math.PI) / 2) + 0.5) * (z.endLeft - z.startLeft) + z.startLeft } else { sl = jQuery.easing[z.easing](p, n, z.startLeft, (z.endLeft - z.startLeft), z.o.duration) } } else { sl = z.startLeft } z.scroll(st, sl) } }; z.scroll = function(t, l) { window.scrollTo(l, t) }; z.timer = setInterval(function() { z.step() }, 13) }; jQuery.fn.Shake = function(times, callback) { return this.queue('interfaceFX', function() { if (!jQuery.fxCheckTag(this)) { jQuery.dequeue(this, 'interfaceFX'); return false } var e = new jQuery.fx.Shake(this, times, callback); e.shake() }) }; jQuery.fx.Shake = function(e, times, callback) { var z = this; z.el = jQuery(e); z.el.show(); z.times = parseInt(times) || 3; z.callback = callback; z.cnt = 1; z.oldStyle = {}; z.oldStyle.position = z.el.css('position'); z.oldStyle.top = parseInt(z.el.css('top')) || 0; z.oldStyle.left = parseInt(z.el.css('left')) || 0; if (z.oldStyle.position != 'relative' && z.oldStyle.position != 'absolute') { z.el.css('position', 'relative') } z.shake = function() { z.cnt++; z.e = new jQuery.fx(z.el.get(0), { duration: 60, complete: function() { z.e = new jQuery.fx(z.el.get(0), { duration: 60, complete: function() { z.e = new jQuery.fx(e, { duration: 60, complete: function() { if (z.cnt <= z.times) z.shake(); else { z.el.css('position', z.oldStyle.position).css('top', z.oldStyle.top + 'px').css('left', z.oldStyle.left + 'px'); jQuery.dequeue(z.el.get(0), 'interfaceFX'); if (z.callback && z.callback.constructor == Function) { z.callback.apply(z.el.get(0)) } } } }, 'left'); z.e.custom(z.oldStyle.left - 20, z.oldStyle.left) } }, 'left'); z.e.custom(z.oldStyle.left + 20, z.oldStyle.left - 20) } }, 'left'); z.e.custom(z.oldStyle.left, z.oldStyle.left + 20) } }; jQuery.fn.extend({ SlideInUp: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.slide(this, speed, callback, 'up', 'in', easing) }) }, SlideOutUp: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.slide(this, speed, callback, 'up', 'out', easing) }) }, SlideToggleUp: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.slide(this, speed, callback, 'up', 'toggle', easing) }) }, SlideInDown: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.slide(this, speed, callback, 'down', 'in', easing) }) }, SlideOutDown: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.slide(this, speed, callback, 'down', 'out', easing) }) }, SlideToggleDown: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.slide(this, speed, callback, 'down', 'toggle', easing) }) }, SlideInLeft: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.slide(this, speed, callback, 'left', 'in', easing) }) }, SlideOutLeft: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.slide(this, speed, callback, 'left', 'out', easing) }) }, SlideToggleLeft: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.slide(this, speed, callback, 'left', 'toggle', easing) }) }, SlideInRight: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.slide(this, speed, callback, 'right', 'in', easing) }) }, SlideOutRight: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.slide(this, speed, callback, 'right', 'out', easing) }) }, SlideToggleRight: function(speed, callback, easing) { return this.queue('interfaceFX', function() { new jQuery.fx.slide(this, speed, callback, 'right', 'toggle', easing) }) } }); jQuery.fx.slide = function(e, speed, callback, direction, type, easing) { if (!jQuery.fxCheckTag(e)) { jQuery.dequeue(e, 'interfaceFX'); return false } var z = this; z.el = jQuery(e); z.easing = typeof callback == 'string' ? callback: easing || null; z.callback = typeof callback == 'function' ? callback: null; if (type == 'toggle') { type = z.el.css('display') == 'none' ? 'in': 'out' } if (!e.ifxFirstDisplay) e.ifxFirstDisplay = z.el.css('display'); z.el.show(); z.speed = speed; z.fx = jQuery.fx.buildWrapper(e); z.type = type; z.direction = direction; z.complete = function() { if (z.type == 'out') z.el.css('visibility', 'hidden'); jQuery.fx.destroyWrapper(z.fx.wrapper.get(0), z.fx.oldStyle); if (z.type == 'in') { z.el.css('display', z.el.get(0).ifxFirstDisplay == 'none' ? 'block': z.el.get(0).ifxFirstDisplay) } else { z.el.css('display', 'none'); z.el.css('visibility', 'visible') } if (z.callback && z.callback.constructor == Function) { z.callback.apply(z.el.get(0)) } jQuery.dequeue(z.el.get(0), 'interfaceFX') }; switch (z.direction) { case 'up': z.ef = new jQuery.fx(z.el.get(0), jQuery.speed(z.speed, z.easing, z.complete), 'top'); z.efx = new jQuery.fx(z.fx.wrapper.get(0), jQuery.speed(z.speed, z.easing), 'height'); if (z.type == 'in') { z.ef.custom( - z.fx.oldStyle.sizes.hb, 0); z.efx.custom(0, z.fx.oldStyle.sizes.hb) } else { z.ef.custom(0, -z.fx.oldStyle.sizes.hb); z.efx.custom(z.fx.oldStyle.sizes.hb, 0) } break; case 'down': z.ef = new jQuery.fx(z.el.get(0), jQuery.speed(z.speed, z.easing, z.complete), 'top'); if (z.type == 'in') { z.ef.custom(z.fx.oldStyle.sizes.hb, 0) } else { z.ef.custom(0, z.fx.oldStyle.sizes.hb) } break; case 'left': z.ef = new jQuery.fx(z.el.get(0), jQuery.speed(z.speed, z.easing, z.complete), 'left'); z.efx = new jQuery.fx(z.fx.wrapper.get(0), jQuery.speed(z.speed, z.easing), 'width'); if (z.type == 'in') { z.ef.custom( - z.fx.oldStyle.sizes.wb, 0); z.efx.custom(0, z.fx.oldStyle.sizes.wb) } else { z.ef.custom(0, -z.fx.oldStyle.sizes.wb); z.efx.custom(z.fx.oldStyle.sizes.wb, 0) } break; case 'right': z.ef = new jQuery.fx(z.el.get(0), jQuery.speed(z.speed, z.easing, z.complete), 'left'); if (z.type == 'in') { z.ef.custom(z.fx.oldStyle.sizes.wb, 0) } else { z.ef.custom(0, z.fx.oldStyle.sizes.wb) } break } }; jQuery.transferHelper = null; jQuery.fn.TransferTo = function(o) { return this.queue('interfaceFX', function() { new jQuery.fx.itransferTo(this, o) }) }; jQuery.fx.itransferTo = function(e, o) { if (jQuery.transferHelper == null) { jQuery('body', document).append('
    '); jQuery.transferHelper = jQuery('#transferHelper') } jQuery.transferHelper.css('display', 'block').css('position', 'absolute'); var z = this; z.el = jQuery(e); if (!o || !o.to) { return } if (o.to.constructor == String && document.getElementById(o.to)) { o.to = document.getElementById(o.to) } else if (!o.to.childNodes) { return } if (!o.duration) { o.duration = 500 } z.duration = o.duration; z.to = o.to; z.classname = o.className; z.complete = o.complete; if (z.classname) { jQuery.transferHelper.addClass(z.classname) } z.diffWidth = 0; z.diffHeight = 0; if (jQuery.boxModel) { z.diffWidth = (parseInt(jQuery.transferHelper.css('borderLeftWidth')) || 0) + (parseInt(jQuery.transferHelper.css('borderRightWidth')) || 0) + (parseInt(jQuery.transferHelper.css('paddingLeft')) || 0) + (parseInt(jQuery.transferHelper.css('paddingRight')) || 0); z.diffHeight = (parseInt(jQuery.transferHelper.css('borderTopWidth')) || 0) + (parseInt(jQuery.transferHelper.css('borderBottomWidth')) || 0) + (parseInt(jQuery.transferHelper.css('paddingTop')) || 0) + (parseInt(jQuery.transferHelper.css('paddingBottom')) || 0) } z.start = jQuery.extend(jQuery.iUtil.getPosition(z.el.get(0)), jQuery.iUtil.getSize(z.el.get(0))); z.end = jQuery.extend(jQuery.iUtil.getPosition(z.to), jQuery.iUtil.getSize(z.to)); z.start.wb -= z.diffWidth; z.start.hb -= z.diffHeight; z.end.wb -= z.diffWidth; z.end.hb -= z.diffHeight; z.callback = o.complete; jQuery.transferHelper.css('width', z.start.wb + 'px').css('height', z.start.hb + 'px').css('top', z.start.y + 'px').css('left', z.start.x + 'px').animate({ top: z.end.y, left: z.end.x, width: z.end.wb, height: z.end.hb }, z.duration, function() { if (z.classname) jQuery.transferHelper.removeClass(z.classname); jQuery.transferHelper.css('display', 'none'); if (z.complete && z.complete.constructor == Function) { z.complete.apply(z.el.get(0), [z.to]) } jQuery.dequeue(z.el.get(0), 'interfaceFX') }) }; jQuery.ImageBox = { options: { border: 10, loaderSRC: 'images/loading.gif', closeHTML: '', overlayOpacity: 0.8, textImage: 'Showing image', textImageFrom: 'from', fadeDuration: 400 }, imageLoaded: false, firstResize: false, currentRel: null, animationInProgress: false, opened: false, keyPressed: function(event) { if (!jQuery.ImageBox.opened || jQuery.ImageBox.animationInProgress) return; var pressedKey = event.charCode || event.keyCode || -1; switch (pressedKey) { case 35: if (jQuery.ImageBox.currentRel) jQuery.ImageBox.start(null, jQuery('a[@rel=' + jQuery.ImageBox.currentRel + ']:last').get(0)); break; case 36: if (jQuery.ImageBox.currentRel) jQuery.ImageBox.start(null, jQuery('a[@rel=' + jQuery.ImageBox.currentRel + ']:first').get(0)); break; case 37: case 8: case 33: case 80: case 112: var prevEl = jQuery('#ImageBoxPrevImage'); if (prevEl.get(0).onclick != null) { prevEl.get(0).onclick.apply(prevEl.get(0)) } break; case 38: break; case 39: case 34: case 32: case 110: case 78: var nextEl = jQuery('#ImageBoxNextImage'); if (nextEl.get(0).onclick != null) { nextEl.get(0).onclick.apply(nextEl.get(0)) } break; case 40: break; case 27: jQuery.ImageBox.hideImage(); break } }, init: function(options) { if (options) jQuery.extend(jQuery.ImageBox.options, options); if (window.event) { jQuery('body', document).bind('keyup', jQuery.ImageBox.keyPressed) } else { jQuery(document).bind('keyup', jQuery.ImageBox.keyPressed) } jQuery('a').each(function() { el = jQuery(this); relAttr = el.attr('rel') || ''; hrefAttr = el.attr('href') || ''; imageTypes = /\.jpg|\.jpeg|\.png|\.gif|\.bmp/g; if (hrefAttr.toLowerCase().match(imageTypes) != null && relAttr.toLowerCase().indexOf('imagebox') == 0) { el.bind('click', jQuery.ImageBox.start) } }); if (jQuery.browser.msie) { iframe = document.createElement('iframe'); jQuery(iframe).attr({ id: 'ImageBoxIframe', src: 'javascript:false;', frameborder: 'no', scrolling: 'no' }).css({ display: 'none', position: 'absolute', top: '0', left: '0', filter: 'progid:DXImageTransform.Microsoft.Alpha(opacity=0)' }); jQuery('body').append(iframe) } overlay = document.createElement('div'); jQuery(overlay).attr('id', 'ImageBoxOverlay').css({ position: 'absolute', display: 'none', top: '0', left: '0', opacity: 0 }).append(document.createTextNode(' ')).bind('click', jQuery.ImageBox.hideImage); captionText = document.createElement('div'); jQuery(captionText).attr('id', 'ImageBoxCaptionText').css({ paddingLeft: jQuery.ImageBox.options.border + 'px' }).append(document.createTextNode(' ')); captionImages = document.createElement('div'); jQuery(captionImages).attr('id', 'ImageBoxCaptionImages').css({ paddingLeft: jQuery.ImageBox.options.border + 'px', paddingBottom: jQuery.ImageBox.options.border + 'px' }).append(document.createTextNode(' ')); closeEl = document.createElement('a'); jQuery(closeEl).attr({ id: 'ImageBoxClose', href: '#' }).css({ position: 'absolute', right: jQuery.ImageBox.options.border + 'px', top: '0' }).append(jQuery.ImageBox.options.closeHTML).bind('click', jQuery.ImageBox.hideImage); captionEl = document.createElement('div'); jQuery(captionEl).attr('id', 'ImageBoxCaption').css({ position: 'relative', textAlign: 'left', margin: '0 auto', zIndex: 1 }).append(captionText).append(captionImages).append(closeEl); loader = document.createElement('img'); loader.src = jQuery.ImageBox.options.loaderSRC; jQuery(loader).attr('id', 'ImageBoxLoader').css({ position: 'absolute' }); prevImage = document.createElement('a'); jQuery(prevImage).attr({ id: 'ImageBoxPrevImage', href: '#' }).css({ position: 'absolute', display: 'none', overflow: 'hidden', textDecoration: 'none' }).append(document.createTextNode(' ')); nextImage = document.createElement('a'); jQuery(nextImage).attr({ id: 'ImageBoxNextImage', href: '#' }).css({ position: 'absolute', overflow: 'hidden', textDecoration: 'none' }).append(document.createTextNode(' ')); container = document.createElement('div'); jQuery(container).attr('id', 'ImageBoxContainer').css({ display: 'none', position: 'relative', overflow: 'hidden', textAlign: 'left', margin: '0 auto', top: '0', left: '0', zIndex: 2 }).append([loader, prevImage, nextImage]); outerContainer = document.createElement('div'); jQuery(outerContainer).attr('id', 'ImageBoxOuterContainer').css({ display: 'none', position: 'absolute', overflow: 'hidden', top: '0', left: '0', textAlign: 'center', backgroundColor: 'transparent', lineHeigt: '0' }).append([container, captionEl]); jQuery('body').append(overlay).append(outerContainer) }, start: function(e, elm) { el = elm ? jQuery(elm) : jQuery(this); linkRel = el.attr('rel'); var totalImages, iteration, prevImage, nextImage; if (linkRel != 'imagebox') { jQuery.ImageBox.currentRel = linkRel; gallery = jQuery('a[@rel=' + linkRel + ']'); totalImages = gallery.size(); iteration = gallery.index(elm ? elm: this); prevImage = gallery.get(iteration - 1); nextImage = gallery.get(iteration + 1) } imageSrc = el.attr('href'); captionText = el.attr('title'); pageSize = jQuery.iUtil.getScroll(); overlay = jQuery('#ImageBoxOverlay'); if (!jQuery.ImageBox.opened) { jQuery.ImageBox.opened = true; if (jQuery.browser.msie) { jQuery('#ImageBoxIframe').css('height', Math.max(pageSize.ih, pageSize.h) + 'px').css('width', Math.max(pageSize.iw, pageSize.w) + 'px').show() } overlay.css('height', Math.max(pageSize.ih, pageSize.h) + 'px').css('width', Math.max(pageSize.iw, pageSize.w) + 'px').show().fadeTo(300, jQuery.ImageBox.options.overlayOpacity, function() { jQuery.ImageBox.loadImage(imageSrc, captionText, pageSize, totalImages, iteration, prevImage, nextImage) }); jQuery('#ImageBoxOuterContainer').css('width', Math.max(pageSize.iw, pageSize.w) + 'px') } else { jQuery('#ImageBoxPrevImage').get(0).onclick = null; jQuery('#ImageBoxNextImage').get(0).onclick = null; jQuery.ImageBox.loadImage(imageSrc, captionText, pageSize, totalImages, iteration, prevImage, nextImage) } return false }, loadImage: function(imageSrc, captiontext, pageSize, totalImages, iteration, prevImage, nextImage) { jQuery('#ImageBoxCurrentImage').remove(); prevImageEl = jQuery('#ImageBoxPrevImage'); prevImageEl.hide(); nextImageEl = jQuery('#ImageBoxNextImage'); nextImageEl.hide(); loader = jQuery('#ImageBoxLoader'); container = jQuery('#ImageBoxContainer'); outerContainer = jQuery('#ImageBoxOuterContainer'); captionEl = jQuery('#ImageBoxCaption').css('visibility', 'hidden'); jQuery('#ImageBoxCaptionText').html(captionText); jQuery.ImageBox.animationInProgress = true; if (totalImages) jQuery('#ImageBoxCaptionImages').html(jQuery.ImageBox.options.textImage + ' ' + (iteration + 1) + ' ' + jQuery.ImageBox.options.textImageFrom + ' ' + totalImages); if (prevImage) { prevImageEl.get(0).onclick = function() { this.blur(); jQuery.ImageBox.start(null, prevImage); return false } } if (nextImage) { nextImageEl.get(0).onclick = function() { this.blur(); jQuery.ImageBox.start(null, nextImage); return false } } loader.show(); containerSize = jQuery.iUtil.getSize(container.get(0)); containerW = Math.max(containerSize.wb, loader.get(0).width + jQuery.ImageBox.options.border * 2); containerH = Math.max(containerSize.hb, loader.get(0).height + jQuery.ImageBox.options.border * 2); loader.css({ left: (containerW - loader.get(0).width) / 2 + 'px', top: (containerH - loader.get(0).height) / 2 + 'px' }); container.css({ width: containerW + 'px', height: containerH + 'px' }).show(); clientSize = jQuery.iUtil.getClient(); outerContainer.css('top', pageSize.t + (clientSize.h / 15) + 'px'); if (outerContainer.css('display') == 'none') { outerContainer.show().fadeIn(jQuery.ImageBox.options.fadeDuration) } imageEl = new Image; jQuery(imageEl).attr('id', 'ImageBoxCurrentImage').bind('load', function() { containerW = imageEl.width + jQuery.ImageBox.options.border * 2; containerH = imageEl.height + jQuery.ImageBox.options.border * 2; loader.hide(); container.animate({ height: containerH }, containerSize.hb != containerH ? jQuery.ImageBox.options.fadeDuration: 1, function() { container.animate({ width: containerW }, containerSize.wb != containerW ? jQuery.ImageBox.options.fadeDuration: 1, function() { container.prepend(imageEl); jQuery(imageEl).css({ position: 'absolute', left: jQuery.ImageBox.options.border + 'px', top: jQuery.ImageBox.options.border + 'px' }).fadeIn(jQuery.ImageBox.options.fadeDuration, function() { captionSize = jQuery.iUtil.getSize(captionEl.get(0)); if (prevImage) { prevImageEl.css({ left: jQuery.ImageBox.options.border + 'px', top: jQuery.ImageBox.options.border + 'px', width: containerW / 2 - jQuery.ImageBox.options.border * 3 + 'px', height: containerH - jQuery.ImageBox.options.border * 2 + 'px' }).show() } if (nextImage) { nextImageEl.css({ left: containerW / 2 + jQuery.ImageBox.options.border * 2 + 'px', top: jQuery.ImageBox.options.border + 'px', width: containerW / 2 - jQuery.ImageBox.options.border * 3 + 'px', height: containerH - jQuery.ImageBox.options.border * 2 + 'px' }).show() } captionEl.css({ width: containerW + 'px', top: -captionSize.hb + 'px', visibility: 'visible' }).animate({ top: -1 }, jQuery.ImageBox.options.fadeDuration, function() { jQuery.ImageBox.animationInProgress = false }) }) }) }) }); imageEl.src = imageSrc }, hideImage: function() { jQuery('#ImageBoxCurrentImage').remove(); jQuery('#ImageBoxOuterContainer').hide(); jQuery('#ImageBoxCaption').css('visibility', 'hidden'); jQuery('#ImageBoxOverlay').fadeTo(300, 0, function() { jQuery(this).hide(); if (jQuery.browser.msie) { jQuery('#ImageBoxIframe').hide() } }); jQuery('#ImageBoxPrevImage').get(0).onclick = null; jQuery('#ImageBoxNextImage').get(0).onclick = null; jQuery.ImageBox.currentRel = null; jQuery.ImageBox.opened = false; jQuery.ImageBox.animationInProgress = false; return false } }; jQuery.iResize = { resizeElement: null, resizeDirection: null, dragged: null, pointer: null, sizes: null, position: null, startDrag: function(e) { jQuery.iResize.dragged = (this.dragEl) ? this.dragEl: this; jQuery.iResize.pointer = jQuery.iUtil.getPointer(e); jQuery.iResize.sizes = { width: parseInt(jQuery(jQuery.iResize.dragged).css('width')) || 0, height: parseInt(jQuery(jQuery.iResize.dragged).css('height')) || 0 }; jQuery.iResize.position = { top: parseInt(jQuery(jQuery.iResize.dragged).css('top')) || 0, left: parseInt(jQuery(jQuery.iResize.dragged).css('left')) || 0 }; jQuery(document).bind('mousemove', jQuery.iResize.moveDrag).bind('mouseup', jQuery.iResize.stopDrag); if (typeof jQuery.iResize.dragged.resizeOptions.onDragStart === 'function') { jQuery.iResize.dragged.resizeOptions.onDragStart.apply(jQuery.iResize.dragged) } return false }, stopDrag: function(e) { jQuery(document).unbind('mousemove', jQuery.iResize.moveDrag).unbind('mouseup', jQuery.iResize.stopDrag); if (typeof jQuery.iResize.dragged.resizeOptions.onDragStop === 'function') { jQuery.iResize.dragged.resizeOptions.onDragStop.apply(jQuery.iResize.dragged) } jQuery.iResize.dragged = null }, moveDrag: function(e) { if (!jQuery.iResize.dragged) { return } pointer = jQuery.iUtil.getPointer(e); newTop = jQuery.iResize.position.top - jQuery.iResize.pointer.y + pointer.y; newLeft = jQuery.iResize.position.left - jQuery.iResize.pointer.x + pointer.x; newTop = Math.max(Math.min(newTop, jQuery.iResize.dragged.resizeOptions.maxBottom - jQuery.iResize.sizes.height), jQuery.iResize.dragged.resizeOptions.minTop); newLeft = Math.max(Math.min(newLeft, jQuery.iResize.dragged.resizeOptions.maxRight - jQuery.iResize.sizes.width), jQuery.iResize.dragged.resizeOptions.minLeft); if (typeof jQuery.iResize.dragged.resizeOptions.onDrag === 'function') { var newPos = jQuery.iResize.dragged.resizeOptions.onDrag.apply(jQuery.iResize.dragged, [newLeft, newTop]); if (typeof newPos == 'array' && newPos.length == 2) { newLeft = newPos[0]; newTop = newPos[1] } } jQuery.iResize.dragged.style.top = newTop + 'px'; jQuery.iResize.dragged.style.left = newLeft + 'px'; return false }, start: function(e) { jQuery(document).bind('mousemove', jQuery.iResize.move).bind('mouseup', jQuery.iResize.stop); jQuery.iResize.resizeElement = this.resizeElement; jQuery.iResize.resizeDirection = this.resizeDirection; jQuery.iResize.pointer = jQuery.iUtil.getPointer(e); jQuery.iResize.sizes = { width: parseInt(jQuery(this.resizeElement).css('width')) || 0, height: parseInt(jQuery(this.resizeElement).css('height')) || 0 }; jQuery.iResize.position = { top: parseInt(jQuery(this.resizeElement).css('top')) || 0, left: parseInt(jQuery(this.resizeElement).css('left')) || 0 }; if (jQuery.iResize.resizeElement.resizeOptions.onStart) { jQuery.iResize.resizeElement.resizeOptions.onStart.apply(jQuery.iResize.resizeElement, [this]) } return false }, stop: function() { jQuery(document).unbind('mousemove', jQuery.iResize.move).unbind('mouseup', jQuery.iResize.stop); if (jQuery.iResize.resizeElement.resizeOptions.onStop) { jQuery.iResize.resizeElement.resizeOptions.onStop.apply(jQuery.iResize.resizeElement, [jQuery.iResize.resizeDirection]) } jQuery.iResize.resizeElement = null; jQuery.iResize.resizeDirection = null }, getWidth: function(dx, side) { return Math.min(Math.max(jQuery.iResize.sizes.width + dx * side, jQuery.iResize.resizeElement.resizeOptions.minWidth), jQuery.iResize.resizeElement.resizeOptions.maxWidth) }, getHeight: function(dy, side) { return Math.min(Math.max(jQuery.iResize.sizes.height + dy * side, jQuery.iResize.resizeElement.resizeOptions.minHeight), jQuery.iResize.resizeElement.resizeOptions.maxHeight) }, getHeightMinMax: function(height) { return Math.min(Math.max(height, jQuery.iResize.resizeElement.resizeOptions.minHeight), jQuery.iResize.resizeElement.resizeOptions.maxHeight) }, move: function(e) { if (jQuery.iResize.resizeElement == null) { return } pointer = jQuery.iUtil.getPointer(e); dx = pointer.x - jQuery.iResize.pointer.x; dy = pointer.y - jQuery.iResize.pointer.y; newSizes = { width: jQuery.iResize.sizes.width, height: jQuery.iResize.sizes.height }; newPosition = { top: jQuery.iResize.position.top, left: jQuery.iResize.position.left }; switch (jQuery.iResize.resizeDirection) { case 'e': newSizes.width = jQuery.iResize.getWidth(dx, 1); break; case 'se': newSizes.width = jQuery.iResize.getWidth(dx, 1); newSizes.height = jQuery.iResize.getHeight(dy, 1); break; case 'w': newSizes.width = jQuery.iResize.getWidth(dx, -1); newPosition.left = jQuery.iResize.position.left - newSizes.width + jQuery.iResize.sizes.width; break; case 'sw': newSizes.width = jQuery.iResize.getWidth(dx, -1); newPosition.left = jQuery.iResize.position.left - newSizes.width + jQuery.iResize.sizes.width; newSizes.height = jQuery.iResize.getHeight(dy, 1); break; case 'nw': newSizes.height = jQuery.iResize.getHeight(dy, -1); newPosition.top = jQuery.iResize.position.top - newSizes.height + jQuery.iResize.sizes.height; newSizes.width = jQuery.iResize.getWidth(dx, -1); newPosition.left = jQuery.iResize.position.left - newSizes.width + jQuery.iResize.sizes.width; break; case 'n': newSizes.height = jQuery.iResize.getHeight(dy, -1); newPosition.top = jQuery.iResize.position.top - newSizes.height + jQuery.iResize.sizes.height; break; case 'ne': newSizes.height = jQuery.iResize.getHeight(dy, -1); newPosition.top = jQuery.iResize.position.top - newSizes.height + jQuery.iResize.sizes.height; newSizes.width = jQuery.iResize.getWidth(dx, 1); break; case 's': newSizes.height = jQuery.iResize.getHeight(dy, 1); break } if (jQuery.iResize.resizeElement.resizeOptions.ratio) { if (jQuery.iResize.resizeDirection == 'n' || jQuery.iResize.resizeDirection == 's') nWidth = newSizes.height * jQuery.iResize.resizeElement.resizeOptions.ratio; else nWidth = newSizes.width; nHeight = jQuery.iResize.getHeightMinMax(nWidth * jQuery.iResize.resizeElement.resizeOptions.ratio); nWidth = nHeight / jQuery.iResize.resizeElement.resizeOptions.ratio; switch (jQuery.iResize.resizeDirection) { case 'n': case 'nw': case 'ne': newPosition.top += newSizes.height - nHeight; break } switch (jQuery.iResize.resizeDirection) { case 'nw': case 'w': case 'sw': newPosition.left += newSizes.width - nWidth; break } newSizes.height = nHeight; newSizes.width = nWidth } if (newPosition.top < jQuery.iResize.resizeElement.resizeOptions.minTop) { nHeight = newSizes.height + newPosition.top - jQuery.iResize.resizeElement.resizeOptions.minTop; newPosition.top = jQuery.iResize.resizeElement.resizeOptions.minTop; if (jQuery.iResize.resizeElement.resizeOptions.ratio) { nWidth = nHeight / jQuery.iResize.resizeElement.resizeOptions.ratio; switch (jQuery.iResize.resizeDirection) { case 'nw': case 'w': case 'sw': newPosition.left += newSizes.width - nWidth; break } newSizes.width = nWidth } newSizes.height = nHeight } if (newPosition.left < jQuery.iResize.resizeElement.resizeOptions.minLeft) { nWidth = newSizes.width + newPosition.left - jQuery.iResize.resizeElement.resizeOptions.minLeft; newPosition.left = jQuery.iResize.resizeElement.resizeOptions.minLeft; if (jQuery.iResize.resizeElement.resizeOptions.ratio) { nHeight = nWidth * jQuery.iResize.resizeElement.resizeOptions.ratio; switch (jQuery.iResize.resizeDirection) { case 'n': case 'nw': case 'ne': newPosition.top += newSizes.height - nHeight; break } newSizes.height = nHeight } newSizes.width = nWidth } if (newPosition.top + newSizes.height > jQuery.iResize.resizeElement.resizeOptions.maxBottom) { newSizes.height = jQuery.iResize.resizeElement.resizeOptions.maxBottom - newPosition.top; if (jQuery.iResize.resizeElement.resizeOptions.ratio) { newSizes.width = newSizes.height / jQuery.iResize.resizeElement.resizeOptions.ratio } } if (newPosition.left + newSizes.width > jQuery.iResize.resizeElement.resizeOptions.maxRight) { newSizes.width = jQuery.iResize.resizeElement.resizeOptions.maxRight - newPosition.left; if (jQuery.iResize.resizeElement.resizeOptions.ratio) { newSizes.height = newSizes.width * jQuery.iResize.resizeElement.resizeOptions.ratio } } var newDimensions = false; if (jQuery.iResize.resizeElement.resizeOptions.onResize) { newDimensions = jQuery.iResize.resizeElement.resizeOptions.onResize.apply(jQuery.iResize.resizeElement, [newSizes, newPosition]); if (newDimensions) { if (newDimensions.sizes) { jQuery.extend(newSizes, newDimensions.sizes) } if (newDimensions.position) { jQuery.extend(newPosition, newDimensions.position) } } } elS = jQuery.iResize.resizeElement.style; elS.left = newPosition.left + 'px'; elS.top = newPosition.top + 'px'; elS.width = newSizes.width + 'px'; elS.height = newSizes.height + 'px'; return false }, build: function(options) { if (!options || !options.handlers || options.handlers.constructor != Object) { return } return this.each(function() { var el = this; el.resizeOptions = options; el.resizeOptions.minWidth = options.minWidth || 10; el.resizeOptions.minHeight = options.minHeight || 10; el.resizeOptions.maxWidth = options.maxWidth || 3000; el.resizeOptions.maxHeight = options.maxHeight || 3000; el.resizeOptions.minTop = options.minTop || -1000; el.resizeOptions.minLeft = options.minLeft || -1000; el.resizeOptions.maxRight = options.maxRight || 3000; el.resizeOptions.maxBottom = options.maxBottom || 3000; elPosition = jQuery(el).css('position'); if (! (elPosition == 'relative' || elPosition == 'absolute')) { el.style.position = 'relative' } directions = /n|ne|e|se|s|sw|w|nw/g; for (i in el.resizeOptions.handlers) { if (i.toLowerCase().match(directions) != null) { if (el.resizeOptions.handlers[i].constructor == String) { handle = jQuery(el.resizeOptions.handlers[i]); if (handle.size() > 0) { el.resizeOptions.handlers[i] = handle.get(0) } } if (el.resizeOptions.handlers[i].tagName) { el.resizeOptions.handlers[i].resizeElement = el; el.resizeOptions.handlers[i].resizeDirection = i; jQuery(el.resizeOptions.handlers[i]).bind('mousedown', jQuery.iResize.start) } } } if (el.resizeOptions.dragHandle) { if (typeof el.resizeOptions.dragHandle === 'string') { handleEl = jQuery(el.resizeOptions.dragHandle); if (handleEl.size() > 0) { handleEl.each(function() { this.dragEl = el }); handleEl.bind('mousedown', jQuery.iResize.startDrag) } } else if (el.resizeOptions.dragHandle == true) { jQuery(this).bind('mousedown', jQuery.iResize.startDrag) } } }) }, destroy: function() { return this.each(function() { var el = this; for (i in el.resizeOptions.handlers) { el.resizeOptions.handlers[i].resizeElement = null; el.resizeOptions.handlers[i].resizeDirection = null; jQuery(el.resizeOptions.handlers[i]).unbind('mousedown', jQuery.iResize.start) } if (el.resizeOptions.dragHandle) { if (typeof el.resizeOptions.dragHandle === 'string') { handle = jQuery(el.resizeOptions.dragHandle); if (handle.size() > 0) { handle.unbind('mousedown', jQuery.iResize.startDrag) } } else if (el.resizeOptions.dragHandle == true) { jQuery(this).unbind('mousedown', jQuery.iResize.startDrag) } } el.resizeOptions = null }) } }; jQuery.fn.extend({ Resizable: jQuery.iResize.build, ResizableDestroy: jQuery.iResize.destroy }); jQuery.selectHelper = null; jQuery.selectKeyHelper = false; jQuery.selectdrug = null; jQuery.selectCurrent = []; jQuery.selectKeyDown = function(e) { var pressedKey = e.charCode || e.keyCode || -1; if (pressedKey == 17 || pressedKey == 16) { jQuery.selectKeyHelper = true } }; jQuery.selectKeyUp = function(e) { jQuery.selectKeyHelper = false }; jQuery.selectstart = function(e) { this.f.pointer = jQuery.iUtil.getPointer(e); this.f.pos = jQuery.extend(jQuery.iUtil.getPosition(this), jQuery.iUtil.getSize(this)); this.f.scr = jQuery.iUtil.getScroll(this); this.f.pointer.x -= this.f.pos.x; this.f.pointer.y -= this.f.pos.y; jQuery(this).append(jQuery.selectHelper.get(0)); if (this.f.hc) jQuery.selectHelper.addClass(this.f.hc).css('display', 'block'); jQuery.selectHelper.css({ display: 'block', width: '0px', height: '0px' }); if (this.f.o) { jQuery.selectHelper.css('opacity', this.f.o) } jQuery.selectdrug = this; jQuery.selectedone = false; jQuery.selectCurrent = []; this.f.el.each(function() { this.pos = { x: this.offsetLeft + (this.currentStyle && !jQuery.browser.opera ? parseInt(this.currentStyle.borderLeftWidth) || 0: 0) + (jQuery.selectdrug.scrollLeft || 0), y: this.offsetTop + (this.currentStyle && !jQuery.browser.opera ? parseInt(this.currentStyle.borderTopWidth) || 0: 0) + (jQuery.selectdrug.scrollTop || 0), wb: this.offsetWidth, hb: this.offsetHeight }; if (this.s == true) { if (jQuery.selectKeyHelper == false) { this.s = false; jQuery(this).removeClass(jQuery.selectdrug.f.sc) } else { jQuery.selectedone = true; jQuery.selectCurrent[jQuery.selectCurrent.length] = jQuery.attr(this, 'id') } } }); jQuery.selectcheck.apply(this, [e]); jQuery(document).bind('mousemove', jQuery.selectcheck).bind('mouseup', jQuery.selectstop); return false }; jQuery.selectcheck = function(e) { if (!jQuery.selectdrug) return; jQuery.selectcheckApply.apply(jQuery.selectdrug, [e]) }; jQuery.selectcheckApply = function(e) { if (!jQuery.selectdrug) return; var pointer = jQuery.iUtil.getPointer(e); var scr = jQuery.iUtil.getScroll(jQuery.selectdrug); pointer.x += scr.l - this.f.scr.l - this.f.pos.x; pointer.y += scr.t - this.f.scr.t - this.f.pos.y; var sx = Math.min(pointer.x, this.f.pointer.x); var sw = Math.min(Math.abs(pointer.x - this.f.pointer.x), Math.abs(this.f.scr.w - sx)); var sy = Math.min(pointer.y, this.f.pointer.y); var sh = Math.min(Math.abs(pointer.y - this.f.pointer.y), Math.abs(this.f.scr.h - sy)); if (this.scrollTop > 0 && pointer.y - 20 < this.scrollTop) { var diff = Math.min(scr.t, 10); sy -= diff; sh += diff; this.scrollTop -= diff } else if (this.scrollTop + this.f.pos.h < this.f.scr.h && pointer.y + 20 > this.scrollTop + this.f.pos.h) { var diff = Math.min(this.f.scr.h - this.scrollTop, 10); this.scrollTop += diff; if (this.scrollTop != scr.t) sh += diff } if (this.scrollLeft > 0 && pointer.x - 20 < this.scrollLeft) { var diff = Math.min(scr.l, 10); sx -= diff; sw += diff; this.scrollLeft -= diff } else if (this.scrollLeft + this.f.pos.w < this.f.scr.w && pointer.x + 20 > this.scrollLeft + this.f.pos.w) { var diff = Math.min(this.f.scr.w - this.scrollLeft, 10); this.scrollLeft += diff; if (this.scrollLeft != scr.l) sw += diff } jQuery.selectHelper.css({ left: sx + 'px', top: sy + 'px', width: sw + 'px', height: sh + 'px' }); jQuery.selectHelper.l = sx + this.f.scr.l; jQuery.selectHelper.t = sy + this.f.scr.t; jQuery.selectHelper.r = jQuery.selectHelper.l + sw; jQuery.selectHelper.b = jQuery.selectHelper.t + sh; jQuery.selectedone = false; this.f.el.each(function() { iIndex = jQuery.selectCurrent.indexOf(jQuery.attr(this, 'id')); if (! (this.pos.x > jQuery.selectHelper.r || (this.pos.x + this.pos.wb) < jQuery.selectHelper.l || this.pos.y > jQuery.selectHelper.b || (this.pos.y + this.pos.hb) < jQuery.selectHelper.t)) { jQuery.selectedone = true; if (this.s != true) { this.s = true; jQuery(this).addClass(jQuery.selectdrug.f.sc) } if (iIndex != -1) { this.s = false; jQuery(this).removeClass(jQuery.selectdrug.f.sc) } } else if ((this.s == true) && (iIndex == -1)) { this.s = false; jQuery(this).removeClass(jQuery.selectdrug.f.sc) } else if ((!this.s) && (jQuery.selectKeyHelper == true) && (iIndex != -1)) { this.s = true; jQuery(this).addClass(jQuery.selectdrug.f.sc) } }); return false }; jQuery.selectstop = function(e) { if (!jQuery.selectdrug) return; jQuery.selectstopApply.apply(jQuery.selectdrug, [e]) }; jQuery.selectstopApply = function(e) { jQuery(document).unbind('mousemove', jQuery.selectcheck).unbind('mouseup', jQuery.selectstop); if (!jQuery.selectdrug) return; jQuery.selectHelper.css('display', 'none'); if (this.f.hc) jQuery.selectHelper.removeClass(this.f.hc); jQuery.selectdrug = false; jQuery('body').append(jQuery.selectHelper.get(0)); if (jQuery.selectedone == true) { if (this.f.onselect) this.f.onselect(jQuery.Selectserialize(jQuery.attr(this, 'id'))) } else { if (this.f.onselectstop) this.f.onselectstop(jQuery.Selectserialize(jQuery.attr(this, 'id'))) } jQuery.selectCurrent = [] }; jQuery.Selectserialize = function(s) { var h = ''; var o = []; if (a = jQuery('#' + s)) { a.get(0).f.el.each(function() { if (this.s == true) { if (h.length > 0) { h += '&' } h += s + '[]=' + jQuery.attr(this, 'id'); o[o.length] = jQuery.attr(this, 'id') } }) } return { hash: h, o: o } }; jQuery.fn.Selectable = function(o) { if (!jQuery.selectHelper) { jQuery('body', document).append('
    ').bind('keydown', jQuery.selectKeyDown).bind('keyup', jQuery.selectKeyUp); jQuery.selectHelper = jQuery('#selectHelper'); jQuery.selectHelper.css({ position: 'absolute', display: 'none' }); if (window.event) { jQuery('body', document).bind('keydown', jQuery.selectKeyDown).bind('keyup', jQuery.selectKeyUp) } else { jQuery(document).bind('keydown', jQuery.selectKeyDown).bind('keyup', jQuery.selectKeyUp) } } if (!o) { o = {} } return this.each(function() { if (this.isSelectable) return; this.isSelectable = true; this.f = { a: o.accept, o: o.opacity ? parseFloat(o.opacity) : false, sc: o.selectedclass ? o.selectedclass: false, hc: o.helperclass ? o.helperclass: false, onselect: o.onselect ? o.onselect: false, onselectstop: o.onselectstop ? o.onselectstop: false }; this.f.el = jQuery('.' + o.accept); jQuery(this).bind('mousedown', jQuery.selectstart).css('position', 'relative') }) }; jQuery.iSlider = { tabindex: 1, set: function(values) { var values = values; return this.each(function() { this.slideCfg.sliders.each(function(key) { jQuery.iSlider.dragmoveBy(this, values[key]) }) }) }, get: function() { var values = []; this.each(function(slider) { if (this.isSlider) { values[slider] = []; var elm = this; var sizes = jQuery.iUtil.getSize(this); this.slideCfg.sliders.each(function(key) { var x = this.offsetLeft; var y = this.offsetTop; xproc = parseInt(x * 100 / (sizes.w - this.offsetWidth)); yproc = parseInt(y * 100 / (sizes.h - this.offsetHeight)); values[slider][key] = [xproc || 0, yproc || 0, x || 0, y || 0] }) } }); return values }, modifyContainer: function(elm) { elm.dragCfg.containerMaxx = elm.dragCfg.cont.w - elm.dragCfg.oC.wb; elm.dragCfg.containerMaxy = elm.dragCfg.cont.h - elm.dragCfg.oC.hb; if (elm.SliderContainer.slideCfg.restricted) { next = elm.SliderContainer.slideCfg.sliders.get(elm.SliderIteration + 1); if (next) { elm.dragCfg.cont.w = (parseInt(jQuery(next).css('left')) || 0) + elm.dragCfg.oC.wb; elm.dragCfg.cont.h = (parseInt(jQuery(next).css('top')) || 0) + elm.dragCfg.oC.hb } prev = elm.SliderContainer.slideCfg.sliders.get(elm.SliderIteration - 1); if (prev) { var prevLeft = parseInt(jQuery(prev).css('left')) || 0; var prevTop = parseInt(jQuery(prev).css('left')) || 0; elm.dragCfg.cont.x += prevLeft; elm.dragCfg.cont.y += prevTop; elm.dragCfg.cont.w -= prevLeft; elm.dragCfg.cont.h -= prevTop } } elm.dragCfg.maxx = elm.dragCfg.cont.w - elm.dragCfg.oC.wb; elm.dragCfg.maxy = elm.dragCfg.cont.h - elm.dragCfg.oC.hb; if (elm.dragCfg.fractions) { elm.dragCfg.gx = ((elm.dragCfg.cont.w - elm.dragCfg.oC.wb) / elm.dragCfg.fractions) || 1; elm.dragCfg.gy = ((elm.dragCfg.cont.h - elm.dragCfg.oC.hb) / elm.dragCfg.fractions) || 1; elm.dragCfg.fracW = elm.dragCfg.maxx / elm.dragCfg.fractions; elm.dragCfg.fracH = elm.dragCfg.maxy / elm.dragCfg.fractions } elm.dragCfg.cont.dx = elm.dragCfg.cont.x - elm.dragCfg.oR.x; elm.dragCfg.cont.dy = elm.dragCfg.cont.y - elm.dragCfg.oR.y; jQuery.iDrag.helper.css('cursor', 'default') }, onSlide: function(elm, x, y) { if (elm.dragCfg.fractions) { xfrac = parseInt(x / elm.dragCfg.fracW); xproc = xfrac * 100 / elm.dragCfg.fractions; yfrac = parseInt(y / elm.dragCfg.fracH); yproc = yfrac * 100 / elm.dragCfg.fractions } else { xproc = parseInt(x * 100 / elm.dragCfg.containerMaxx); yproc = parseInt(y * 100 / elm.dragCfg.containerMaxy) } elm.dragCfg.lastSi = [xproc || 0, yproc || 0, x || 0, y || 0]; if (elm.dragCfg.onSlide) elm.dragCfg.onSlide.apply(elm, elm.dragCfg.lastSi) }, dragmoveByKey: function(event) { pressedKey = event.charCode || event.keyCode || -1; switch (pressedKey) { case 35: jQuery.iSlider.dragmoveBy(this.dragElem, [2000, 2000]); break; case 36: jQuery.iSlider.dragmoveBy(this.dragElem, [ - 2000, -2000]); break; case 37: jQuery.iSlider.dragmoveBy(this.dragElem, [ - this.dragElem.dragCfg.gx || -1, 0]); break; case 38: jQuery.iSlider.dragmoveBy(this.dragElem, [0, -this.dragElem.dragCfg.gy || -1]); break; case 39: jQuery.iSlider.dragmoveBy(this.dragElem, [this.dragElem.dragCfg.gx || 1, 0]); break; case 40: jQuery.iDrag.dragmoveBy(this.dragElem, [0, this.dragElem.dragCfg.gy || 1]); break } }, dragmoveBy: function(elm, position) { if (!elm.dragCfg) { return } elm.dragCfg.oC = jQuery.extend(jQuery.iUtil.getPosition(elm), jQuery.iUtil.getSize(elm)); elm.dragCfg.oR = { x: parseInt(jQuery.css(elm, 'left')) || 0, y: parseInt(jQuery.css(elm, 'top')) || 0 }; elm.dragCfg.oP = jQuery.css(elm, 'position'); if (elm.dragCfg.oP != 'relative' && elm.dragCfg.oP != 'absolute') { elm.style.position = 'relative' } jQuery.iDrag.getContainment(elm); jQuery.iSlider.modifyContainer(elm); dx = parseInt(position[0]) || 0; dy = parseInt(position[1]) || 0; nx = elm.dragCfg.oR.x + dx; ny = elm.dragCfg.oR.y + dy; if (elm.dragCfg.fractions) { newCoords = jQuery.iDrag.snapToGrid.apply(elm, [nx, ny, dx, dy]); if (newCoords.constructor == Object) { dx = newCoords.dx; dy = newCoords.dy } nx = elm.dragCfg.oR.x + dx; ny = elm.dragCfg.oR.y + dy } newCoords = jQuery.iDrag.fitToContainer.apply(elm, [nx, ny, dx, dy]); if (newCoords && newCoords.constructor == Object) { dx = newCoords.dx; dy = newCoords.dy } nx = elm.dragCfg.oR.x + dx; ny = elm.dragCfg.oR.y + dy; if (elm.dragCfg.si && (elm.dragCfg.onSlide || elm.dragCfg.onChange)) { jQuery.iSlider.onSlide(elm, nx, ny) } nx = !elm.dragCfg.axis || elm.dragCfg.axis == 'horizontally' ? nx: elm.dragCfg.oR.x || 0; ny = !elm.dragCfg.axis || elm.dragCfg.axis == 'vertically' ? ny: elm.dragCfg.oR.y || 0; elm.style.left = nx + 'px'; elm.style.top = ny + 'px' }, build: function(o) { return this.each(function() { if (this.isSlider == true || !o.accept || !jQuery.iUtil || !jQuery.iDrag || !jQuery.iDrop) { return } toDrag = jQuery(o.accept, this); if (toDrag.size() == 0) { return } var params = { containment: 'parent', si: true, onSlide: o.onSlide && o.onSlide.constructor == Function ? o.onSlide: null, onChange: o.onChange && o.onChange.constructor == Function ? o.onChange: null, handle: this, opacity: o.opacity || false }; if (o.fractions && parseInt(o.fractions)) { params.fractions = parseInt(o.fractions) || 1; params.fractions = params.fractions > 0 ? params.fractions: 1 } if (toDrag.size() == 1) toDrag.Draggable(params); else { jQuery(toDrag.get(0)).Draggable(params); params.handle = null; toDrag.Draggable(params) } toDrag.keydown(jQuery.iSlider.dragmoveByKey); toDrag.attr('tabindex', jQuery.iSlider.tabindex++); this.isSlider = true; this.slideCfg = {}; this.slideCfg.onslide = params.onslide; this.slideCfg.fractions = params.fractions; this.slideCfg.sliders = toDrag; this.slideCfg.restricted = o.restricted ? true: false; sliderEl = this; sliderEl.slideCfg.sliders.each(function(nr) { this.SliderIteration = nr; this.SliderContainer = sliderEl }); if (o.values && o.values.constructor == Array) { for (i = o.values.length - 1; i >= 0; i--) { if (o.values[i].constructor == Array && o.values[i].length == 2) { el = this.slideCfg.sliders.get(i); if (el.tagName) { jQuery.iSlider.dragmoveBy(el, o.values[i]) } } } } }) } }; jQuery.fn.extend({ Slider: jQuery.iSlider.build, SliderSetValues: jQuery.iSlider.set, SliderGetValues: jQuery.iSlider.get }); jQuery.islideshow = { slideshows: [], gonext: function() { this.blur(); slideshow = this.parentNode; id = jQuery.attr(slideshow, 'id'); if (jQuery.islideshow.slideshows[id] != null) { window.clearInterval(jQuery.islideshow.slideshows[id]) } slide = slideshow.ss.currentslide + 1; if (slideshow.ss.images.length < slide) { slide = 1 } images = jQuery('img', slideshow.ss.holder); slideshow.ss.currentslide = slide; if (images.size() > 0) { images.fadeOut(slideshow.ss.fadeDuration, jQuery.islideshow.showImage) } }, goprev: function() { this.blur(); slideshow = this.parentNode; id = jQuery.attr(slideshow, 'id'); if (jQuery.islideshow.slideshows[id] != null) { window.clearInterval(jQuery.islideshow.slideshows[id]) } slide = slideshow.ss.currentslide - 1; images = jQuery('img', slideshow.ss.holder); if (slide < 1) { slide = slideshow.ss.images.length } slideshow.ss.currentslide = slide; if (images.size() > 0) { images.fadeOut(slideshow.ss.fadeDuration, jQuery.islideshow.showImage) } }, timer: function(c) { slideshow = document.getElementById(c); if (slideshow.ss.random) { slide = slideshow.ss.currentslide; while (slide == slideshow.ss.currentslide) { slide = 1 + parseInt(Math.random() * slideshow.ss.images.length) } } else { slide = slideshow.ss.currentslide + 1; if (slideshow.ss.images.length < slide) { slide = 1 } } images = jQuery('img', slideshow.ss.holder); slideshow.ss.currentslide = slide; if (images.size() > 0) { images.fadeOut(slideshow.ss.fadeDuration, jQuery.islideshow.showImage) } }, go: function(o) { var slideshow; if (o && o.constructor == Object) { if (o.loader) { slideshow = document.getElementById(o.loader.slideshow); url = window.location.href.split("#"); o.loader.onload = null; if (url.length == 2) { slide = parseInt(url[1]); show = url[1].replace(slide, ''); if (jQuery.attr(slideshow, 'id') != show) { slide = 1 } } else { slide = 1 } } if (o.link) { o.link.blur(); slideshow = o.link.parentNode.parentNode; id = jQuery.attr(slideshow, 'id'); if (jQuery.islideshow.slideshows[id] != null) { window.clearInterval(jQuery.islideshow.slideshows[id]) } url = o.link.href.split("#"); slide = parseInt(url[1]); show = url[1].replace(slide, ''); if (jQuery.attr(slideshow, 'id') != show) { slide = 1 } } if (slideshow.ss.images.length < slide || slide < 1) { slide = 1 } slideshow.ss.currentslide = slide; slidePos = jQuery.iUtil.getSize(slideshow); slidePad = jQuery.iUtil.getPadding(slideshow); slideBor = jQuery.iUtil.getBorder(slideshow); if (slideshow.ss.prevslide) { slideshow.ss.prevslide.o.css('display', 'none') } if (slideshow.ss.nextslide) { slideshow.ss.nextslide.o.css('display', 'none') } if (slideshow.ss.loader) { y = parseInt(slidePad.t) + parseInt(slideBor.t); if (slideshow.ss.slideslinks) { if (slideshow.ss.slideslinks.linksPosition == 'top') { y += slideshow.ss.slideslinks.dimm.hb } else { slidePos.h -= slideshow.ss.slideslinks.dimm.hb } } if (slideshow.ss.slideCaption) { if (slideshow.ss.slideCaption && slideshow.ss.slideCaption.captionPosition == 'top') { y += slideshow.ss.slideCaption.dimm.hb } else { slidePos.h -= slideshow.ss.slideCaption.dimm.hb } } if (!slideshow.ss.loaderWidth) { slideshow.ss.loaderHeight = o.loader ? o.loader.height: (parseInt(slideshow.ss.loader.css('height')) || 0); slideshow.ss.loaderWidth = o.loader ? o.loader.width: (parseInt(slideshow.ss.loader.css('width')) || 0) } slideshow.ss.loader.css('top', y + (slidePos.h - slideshow.ss.loaderHeight) / 2 + 'px'); slideshow.ss.loader.css('left', (slidePos.wb - slideshow.ss.loaderWidth) / 2 + 'px'); slideshow.ss.loader.css('display', 'block') } images = jQuery('img', slideshow.ss.holder); if (images.size() > 0) { images.fadeOut(slideshow.ss.fadeDuration, jQuery.islideshow.showImage) } else { lnk = jQuery('a', slideshow.ss.slideslinks.o).get(slide - 1); jQuery(lnk).addClass(slideshow.ss.slideslinks.activeLinkClass); var img = new Image(); img.slideshow = jQuery.attr(slideshow, 'id'); img.slide = slide - 1; img.src = slideshow.ss.images[slideshow.ss.currentslide - 1].src; if (img.complete) { img.onload = null; jQuery.islideshow.display.apply(img) } else { img.onload = jQuery.islideshow.display } if (slideshow.ss.slideCaption) { slideshow.ss.slideCaption.o.html(slideshow.ss.images[slide - 1].caption) } } } }, showImage: function() { slideshow = this.parentNode.parentNode; slideshow.ss.holder.css('display', 'none'); if (slideshow.ss.slideslinks.activeLinkClass) { lnk = jQuery('a', slideshow.ss.slideslinks.o).removeClass(slideshow.ss.slideslinks.activeLinkClass).get(slideshow.ss.currentslide - 1); jQuery(lnk).addClass(slideshow.ss.slideslinks.activeLinkClass) } var img = new Image(); img.slideshow = jQuery.attr(slideshow, 'id'); img.slide = slideshow.ss.currentslide - 1; img.src = slideshow.ss.images[slideshow.ss.currentslide - 1].src; if (img.complete) { img.onload = null; jQuery.islideshow.display.apply(img) } else { img.onload = jQuery.islideshow.display } if (slideshow.ss.slideCaption) { slideshow.ss.slideCaption.o.html(slideshow.ss.images[slideshow.ss.currentslide - 1].caption) } }, display: function() { slideshow = document.getElementById(this.slideshow); if (slideshow.ss.prevslide) { slideshow.ss.prevslide.o.css('display', 'none') } if (slideshow.ss.nextslide) { slideshow.ss.nextslide.o.css('display', 'none') } slidePos = jQuery.iUtil.getSize(slideshow); y = 0; if (slideshow.ss.slideslinks) { if (slideshow.ss.slideslinks.linksPosition == 'top') { y += slideshow.ss.slideslinks.dimm.hb } else { slidePos.h -= slideshow.ss.slideslinks.dimm.hb } } if (slideshow.ss.slideCaption) { if (slideshow.ss.slideCaption && slideshow.ss.slideCaption.captionPosition == 'top') { y += slideshow.ss.slideCaption.dimm.hb } else { slidePos.h -= slideshow.ss.slideCaption.dimm.hb } } par = jQuery('.slideshowHolder', slideshow); y = y + (slidePos.h - this.height) / 2; x = (slidePos.wb - this.width) / 2; slideshow.ss.holder.css('top', y + 'px').css('left', x + 'px').html(''); slideshow.ss.holder.fadeIn(slideshow.ss.fadeDuration); nextslide = slideshow.ss.currentslide + 1; if (nextslide > slideshow.ss.images.length) { nextslide = 1 } prevslide = slideshow.ss.currentslide - 1; if (prevslide < 1) { prevslide = slideshow.ss.images.length } slideshow.ss.nextslide.o.css('display', 'block').css('top', y + 'px').css('left', x + 2 * this.width / 3 + 'px').css('width', this.width / 3 + 'px').css('height', this.height + 'px').attr('title', slideshow.ss.images[nextslide - 1].caption); slideshow.ss.nextslide.o.get(0).href = '#' + nextslide + jQuery.attr(slideshow, 'id'); slideshow.ss.prevslide.o.css('display', 'block').css('top', y + 'px').css('left', x + 'px').css('width', this.width / 3 + 'px').css('height', this.height + 'px').attr('title', slideshow.ss.images[prevslide - 1].caption); slideshow.ss.prevslide.o.get(0).href = '#' + prevslide + jQuery.attr(slideshow, 'id') }, build: function(o) { if (!o || !o.container || jQuery.islideshow.slideshows[o.container]) return; var container = jQuery('#' + o.container); var el = container.get(0); if (el.style.position != 'absolute' && el.style.position != 'relative') { el.style.position = 'relative' } el.style.overflow = 'hidden'; if (container.size() == 0) return; el.ss = {}; el.ss.images = o.images ? o.images: []; el.ss.random = o.random && o.random == true || false; imgs = el.getElementsByTagName('IMG'); for (i = 0; i < imgs.length; i++) { indic = el.ss.images.length; el.ss.images[indic] = { src: imgs[i].src, caption: imgs[i].title || imgs[i].alt || '' } } if (el.ss.images.length == 0) { return } el.ss.oP = jQuery.extend(jQuery.iUtil.getPosition(el), jQuery.iUtil.getSize(el)); el.ss.oPad = jQuery.iUtil.getPadding(el); el.ss.oBor = jQuery.iUtil.getBorder(el); t = parseInt(el.ss.oPad.t) + parseInt(el.ss.oBor.t); b = parseInt(el.ss.oPad.b) + parseInt(el.ss.oBor.b); jQuery('img', el).remove(); el.ss.fadeDuration = o.fadeDuration ? o.fadeDuration: 500; if (o.linksPosition || o.linksClass || o.activeLinkClass) { el.ss.slideslinks = {}; container.append(''); el.ss.slideslinks.o = jQuery('.slideshowLinks', el); if (o.linksClass) { el.ss.slideslinks.linksClass = o.linksClass; el.ss.slideslinks.o.addClass(o.linksClass) } if (o.activeLinkClass) { el.ss.slideslinks.activeLinkClass = o.activeLinkClass } el.ss.slideslinks.o.css('position', 'absolute').css('width', el.ss.oP.w + 'px'); if (o.linksPosition && o.linksPosition == 'top') { el.ss.slideslinks.linksPosition = 'top'; el.ss.slideslinks.o.css('top', t + 'px') } else { el.ss.slideslinks.linksPosition = 'bottom'; el.ss.slideslinks.o.css('bottom', b + 'px') } el.ss.slideslinks.linksSeparator = o.linksSeparator ? o.linksSeparator: ' '; for (var i = 0; i < el.ss.images.length; i++) { indic = parseInt(i) + 1; el.ss.slideslinks.o.append('' + indic + '' + (indic != el.ss.images.length ? el.ss.slideslinks.linksSeparator: '')) } jQuery('a', el.ss.slideslinks.o).bind('click', function() { jQuery.islideshow.go({ link: this }) }); el.ss.slideslinks.dimm = jQuery.iUtil.getSize(el.ss.slideslinks.o.get(0)) } if (o.captionPosition || o.captionClass) { el.ss.slideCaption = {}; container.append('
     
    '); el.ss.slideCaption.o = jQuery('.slideshowCaption', el); if (o.captionClass) { el.ss.slideCaption.captionClass = o.captionClass; el.ss.slideCaption.o.addClass(o.captionClass) } el.ss.slideCaption.o.css('position', 'absolute').css('width', el.ss.oP.w + 'px'); if (o.captionPosition && o.captionPosition == 'top') { el.ss.slideCaption.captionPosition = 'top'; el.ss.slideCaption.o.css('top', (el.ss.slideslinks && el.ss.slideslinks.linksPosition == 'top' ? el.ss.slideslinks.dimm.hb + t: t) + 'px') } else { el.ss.slideCaption.captionPosition = 'bottom'; el.ss.slideCaption.o.css('bottom', (el.ss.slideslinks && el.ss.slideslinks.linksPosition == 'bottom' ? el.ss.slideslinks.dimm.hb + b: b) + 'px') } el.ss.slideCaption.dimm = jQuery.iUtil.getSize(el.ss.slideCaption.o.get(0)) } if (o.nextslideClass) { el.ss.nextslide = { nextslideClass: o.nextslideClass }; container.append(' '); el.ss.nextslide.o = jQuery('.slideshowNextSlide', el); el.ss.nextslide.o.css('position', 'absolute').css('display', 'none').css('overflow', 'hidden').css('fontSize', '30px').addClass(el.ss.nextslide.nextslideClass); el.ss.nextslide.o.bind('click', jQuery.islideshow.gonext) } if (o.prevslideClass) { el.ss.prevslide = { prevslideClass: o.prevslideClass }; container.append(' '); el.ss.prevslide.o = jQuery('.slideshowPrevslide', el); el.ss.prevslide.o.css('position', 'absolute').css('display', 'none').css('overflow', 'hidden').css('fontSize', '30px').addClass(el.ss.prevslide.prevslideClass); el.ss.prevslide.o.bind('click', jQuery.islideshow.goprev) } container.prepend('
    '); el.ss.holder = jQuery('.slideshowHolder', el); el.ss.holder.css('position', 'absolute').css('top', '0px').css('left', '0px').css('display', 'none'); if (o.loader) { container.prepend(''); el.ss.loader = jQuery('.slideshowLoader', el); el.ss.loader.css('position', 'absolute'); var img = new Image(); img.slideshow = o.container; img.src = o.loader; if (img.complete) { img.onload = null; jQuery.islideshow.go({ loader: img }) } else { img.onload = function() { jQuery.islideshow.go({ loader: this }) } } } else { jQuery.islideshow.go({ container: el }) } if (o.autoplay) { time = parseInt(o.autoplay) * 1000 } jQuery.islideshow.slideshows[o.container] = o.autoplay ? window.setInterval('jQuery.islideshow.timer(\'' + o.container + '\')', time) : null } }; jQuery.slideshow = jQuery.islideshow.build; jQuery.iSort = { changed: [], collected: {}, helper: false, inFrontOf: null, start: function() { if (jQuery.iDrag.dragged == null) { return } var shs, margins, c, cs; jQuery.iSort.helper.get(0).className = jQuery.iDrag.dragged.dragCfg.hpc; shs = jQuery.iSort.helper.get(0).style; shs.display = 'block'; jQuery.iSort.helper.oC = jQuery.extend(jQuery.iUtil.getPosition(jQuery.iSort.helper.get(0)), jQuery.iUtil.getSize(jQuery.iSort.helper.get(0))); shs.width = jQuery.iDrag.dragged.dragCfg.oC.wb + 'px'; shs.height = jQuery.iDrag.dragged.dragCfg.oC.hb + 'px'; margins = jQuery.iUtil.getMargins(jQuery.iDrag.dragged); shs.marginTop = margins.t; shs.marginRight = margins.r; shs.marginBottom = margins.b; shs.marginLeft = margins.l; if (jQuery.iDrag.dragged.dragCfg.ghosting == true) { c = jQuery.iDrag.dragged.cloneNode(true); cs = c.style; cs.marginTop = '0px'; cs.marginRight = '0px'; cs.marginBottom = '0px'; cs.marginLeft = '0px'; cs.display = 'block'; jQuery.iSort.helper.empty().append(c) } jQuery(jQuery.iDrag.dragged).after(jQuery.iSort.helper.get(0)); jQuery.iDrag.dragged.style.display = 'none' }, check: function(e) { if (!e.dragCfg.so && jQuery.iDrop.overzone.sortable) { if (e.dragCfg.onStop) e.dragCfg.onStop.apply(dragged); jQuery(e).css('position', e.dragCfg.initialPosition || e.dragCfg.oP); jQuery(e).DraggableDestroy(); jQuery(jQuery.iDrop.overzone).SortableAddItem(e) } jQuery.iSort.helper.removeClass(e.dragCfg.hpc).html(' '); jQuery.iSort.inFrontOf = null; var shs = jQuery.iSort.helper.get(0).style; shs.display = 'none'; jQuery.iSort.helper.after(e); if (e.dragCfg.fx > 0) { jQuery(e).fadeIn(e.dragCfg.fx) } jQuery('body').append(jQuery.iSort.helper.get(0)); var ts = []; var fnc = false; for (var i = 0; i < jQuery.iSort.changed.length; i++) { var iEL = jQuery.iDrop.zones[jQuery.iSort.changed[i]].get(0); var id = jQuery.attr(iEL, 'id'); var ser = jQuery.iSort.serialize(id); if (iEL.dropCfg.os != ser.hash) { iEL.dropCfg.os = ser.hash; if (fnc == false && iEL.dropCfg.onChange) { fnc = iEL.dropCfg.onChange } ser.id = id; ts[ts.length] = ser } } jQuery.iSort.changed = []; if (fnc != false && ts.length > 0) { fnc(ts) } }, checkhover: function(e, o) { if (!jQuery.iDrag.dragged) return; var cur = false; var i = 0; if (e.dropCfg.el.size() > 0) { for (i = e.dropCfg.el.size(); i > 0; i--) { if (e.dropCfg.el.get(i - 1) != jQuery.iDrag.dragged) { if (!e.sortCfg.floats) { if ((e.dropCfg.el.get(i - 1).pos.y + e.dropCfg.el.get(i - 1).pos.hb / 2) > jQuery.iDrag.dragged.dragCfg.ny) { cur = e.dropCfg.el.get(i - 1) } else { break } } else { if ((e.dropCfg.el.get(i - 1).pos.x + e.dropCfg.el.get(i - 1).pos.wb / 2) > jQuery.iDrag.dragged.dragCfg.nx && (e.dropCfg.el.get(i - 1).pos.y + e.dropCfg.el.get(i - 1).pos.hb / 2) > jQuery.iDrag.dragged.dragCfg.ny) { cur = e.dropCfg.el.get(i - 1) } } } } } if (cur && jQuery.iSort.inFrontOf != cur) { jQuery.iSort.inFrontOf = cur; jQuery(cur).before(jQuery.iSort.helper.get(0)) } else if (!cur && (jQuery.iSort.inFrontOf != null || jQuery.iSort.helper.get(0).parentNode != e)) { jQuery.iSort.inFrontOf = null; jQuery(e).append(jQuery.iSort.helper.get(0)) } jQuery.iSort.helper.get(0).style.display = 'block' }, measure: function(e) { if (jQuery.iDrag.dragged == null) { return } e.dropCfg.el.each(function() { this.pos = jQuery.extend(jQuery.iUtil.getSizeLite(this), jQuery.iUtil.getPositionLite(this)) }) }, serialize: function(s) { var i; var h = ''; var o = {}; if (s) { if (jQuery.iSort.collected[s]) { o[s] = []; jQuery('#' + s + ' .' + jQuery.iSort.collected[s]).each(function() { if (h.length > 0) { h += '&' } h += s + '[]=' + jQuery.attr(this, 'id'); o[s][o[s].length] = jQuery.attr(this, 'id') }) } else { for (a in s) { if (jQuery.iSort.collected[s[a]]) { o[s[a]] = []; jQuery('#' + s[a] + ' .' + jQuery.iSort.collected[s[a]]).each(function() { if (h.length > 0) { h += '&' } h += s[a] + '[]=' + jQuery.attr(this, 'id'); o[s[a]][o[s[a]].length] = jQuery.attr(this, 'id') }) } } } } else { for (i in jQuery.iSort.collected) { o[i] = []; jQuery('#' + i + ' .' + jQuery.iSort.collected[i]).each(function() { if (h.length > 0) { h += '&' } h += i + '[]=' + jQuery.attr(this, 'id'); o[i][o[i].length] = jQuery.attr(this, 'id') }) } } return { hash: h, o: o } }, addItem: function(e) { if (!e.childNodes) { return } return this.each(function() { if (!this.sortCfg || !jQuery(e).is('.' + this.sortCfg.accept)) jQuery(e).addClass(this.sortCfg.accept); jQuery(e).Draggable(this.sortCfg.dragCfg) }) }, destroy: function() { return this.each(function() { jQuery('.' + this.sortCfg.accept).DraggableDestroy(); jQuery(this).DroppableDestroy(); this.sortCfg = null; this.isSortable = null }) }, build: function(o) { if (o.accept && jQuery.iUtil && jQuery.iDrag && jQuery.iDrop) { if (!jQuery.iSort.helper) { jQuery('body', document).append('
     
    '); jQuery.iSort.helper = jQuery('#sortHelper'); jQuery.iSort.helper.get(0).style.display = 'none' } this.Droppable({ accept: o.accept, activeclass: o.activeclass ? o.activeclass: false, hoverclass: o.hoverclass ? o.hoverclass: false, helperclass: o.helperclass ? o.helperclass: false, onHover: o.onHover || o.onhover, onOut: o.onOut || o.onout, sortable: true, onChange: o.onChange || o.onchange, fx: o.fx ? o.fx: false, ghosting: o.ghosting ? true: false, tolerance: o.tolerance ? o.tolerance: 'intersect' }); return this.each(function() { var dragCfg = { revert: o.revert ? true: false, zindex: 3000, opacity: o.opacity ? parseFloat(o.opacity) : false, hpc: o.helperclass ? o.helperclass: false, fx: o.fx ? o.fx: false, so: true, ghosting: o.ghosting ? true: false, handle: o.handle ? o.handle: null, containment: o.containment ? o.containment: null, onStart: o.onStart && o.onStart.constructor == Function ? o.onStart: false, onDrag: o.onDrag && o.onDrag.constructor == Function ? o.onDrag: false, onStop: o.onStop && o.onStop.constructor == Function ? o.onStop: false, axis: /vertically|horizontally/.test(o.axis) ? o.axis: false, snapDistance: o.snapDistance ? parseInt(o.snapDistance) || 0: false, cursorAt: o.cursorAt ? o.cursorAt: false }; jQuery('.' + o.accept, this).Draggable(dragCfg); this.isSortable = true; this.sortCfg = { accept: o.accept, revert: o.revert ? true: false, zindex: 3000, opacity: o.opacity ? parseFloat(o.opacity) : false, hpc: o.helperclass ? o.helperclass: false, fx: o.fx ? o.fx: false, so: true, ghosting: o.ghosting ? true: false, handle: o.handle ? o.handle: null, containment: o.containment ? o.containment: null, floats: o.floats ? true: false, dragCfg: dragCfg } }) } } }; jQuery.fn.extend({ Sortable: jQuery.iSort.build, SortableAddItem: jQuery.iSort.addItem, SortableDestroy: jQuery.iSort.destroy }); jQuery.SortSerialize = jQuery.iSort.serialize; jQuery.iTooltip = { current: null, focused: false, oldTitle: null, focus: function(e) { jQuery.iTooltip.focused = true; jQuery.iTooltip.show(e, this, true) }, hidefocused: function(e) { if (jQuery.iTooltip.current != this) return; jQuery.iTooltip.focused = false; jQuery.iTooltip.hide(e, this) }, show: function(e, el, focused) { if (jQuery.iTooltip.current != null) return; if (!el) { el = this } jQuery.iTooltip.current = el; pos = jQuery.extend(jQuery.iUtil.getPosition(el), jQuery.iUtil.getSize(el)); jEl = jQuery(el); title = jEl.attr('title'); href = jEl.attr('href'); if (title) { jQuery.iTooltip.oldTitle = title; jEl.attr('title', ''); jQuery('#tooltipTitle').html(title); if (href) jQuery('#tooltipURL').html(href.replace('http://', '')); else jQuery('#tooltipURL').html(''); helper = jQuery('#tooltipHelper'); if (el.tooltipCFG.className) { helper.get(0).className = el.tooltipCFG.className } else { helper.get(0).className = '' } helperSize = jQuery.iUtil.getSize(helper.get(0)); filteredPosition = focused && el.tooltipCFG.position == 'mouse' ? 'bottom': el.tooltipCFG.position; switch (filteredPosition) { case 'top': ny = pos.y - helperSize.hb; nx = pos.x; break; case 'left': ny = pos.y; nx = pos.x - helperSize.wb; break; case 'right': ny = pos.y; nx = pos.x + pos.wb; break; case 'mouse': jQuery('body').bind('mousemove', jQuery.iTooltip.mousemove); pointer = jQuery.iUtil.getPointer(e); ny = pointer.y + 15; nx = pointer.x + 15; break; default: ny = pos.y + pos.hb; nx = pos.x; break } helper.css({ top: ny + 'px', left: nx + 'px' }); if (el.tooltipCFG.delay == false) { helper.show() } else { helper.fadeIn(el.tooltipCFG.delay) } if (el.tooltipCFG.onShow) el.tooltipCFG.onShow.apply(el); jEl.bind('mouseout', jQuery.iTooltip.hide).bind('blur', jQuery.iTooltip.hidefocused) } }, mousemove: function(e) { if (jQuery.iTooltip.current == null) { jQuery('body').unbind('mousemove', jQuery.iTooltip.mousemove); return } pointer = jQuery.iUtil.getPointer(e); jQuery('#tooltipHelper').css({ top: pointer.y + 15 + 'px', left: pointer.x + 15 + 'px' }) }, hide: function(e, el) { if (!el) { el = this } if (jQuery.iTooltip.focused != true && jQuery.iTooltip.current == el) { jQuery.iTooltip.current = null; jQuery('#tooltipHelper').fadeOut(1); jQuery(el).attr('title', jQuery.iTooltip.oldTitle).unbind('mouseout', jQuery.iTooltip.hide).unbind('blur', jQuery.iTooltip.hidefocused); if (el.tooltipCFG.onHide) el.tooltipCFG.onHide.apply(el); jQuery.iTooltip.oldTitle = null } }, build: function(options) { if (!jQuery.iTooltip.helper) { jQuery('body').append('
    '); jQuery('#tooltipHelper').css({ position: 'absolute', zIndex: 3000, display: 'none' }); jQuery.iTooltip.helper = true } return this.each(function() { if (jQuery.attr(this, 'title')) { this.tooltipCFG = { position: /top|bottom|left|right|mouse/.test(options.position) ? options.position: 'bottom', className: options.className ? options.className: false, delay: options.delay ? options.delay: false, onShow: options.onShow && options.onShow.constructor == Function ? options.onShow: false, onHide: options.onHide && options.onHide.constructor == Function ? options.onHide: false }; var el = jQuery(this); el.bind('mouseover', jQuery.iTooltip.show); el.bind('focus', jQuery.iTooltip.focus) } }) } }; jQuery.fn.ToolTip = jQuery.iTooltip.build; jQuery.iTTabs = { doTab: function(e) { pressedKey = e.charCode || e.keyCode || -1; if (pressedKey == 9) { if (window.event) { window.event.cancelBubble = true; window.event.returnValue = false } else { e.preventDefault(); e.stopPropagation() } if (this.createTextRange) { document.selection.createRange().text = "\t"; this.onblur = function() { this.focus(); this.onblur = null } } else if (this.setSelectionRange) { start = this.selectionStart; end = this.selectionEnd; this.value = this.value.substring(0, start) + "\t" + this.value.substr(end); this.setSelectionRange(start + 1, start + 1); this.focus() } return false } }, destroy: function() { return this.each(function() { if (this.hasTabsEnabled && this.hasTabsEnabled == true) { jQuery(this).unbind('keydown', jQuery.iTTabs.doTab); this.hasTabsEnabled = false } }) }, build: function() { return this.each(function() { if (this.tagName == 'TEXTAREA' && (!this.hasTabsEnabled || this.hasTabsEnabled == false)) { jQuery(this).bind('keydown', jQuery.iTTabs.doTab); this.hasTabsEnabled = true } }) } }; jQuery.fn.extend({ EnableTabs: jQuery.iTTabs.build, DisableTabs: jQuery.iTTabs.destroy }); jQuery.iUtil = { getPosition: function(e) { var x = 0; var y = 0; var es = e.style; var restoreStyles = false; if (jQuery(e).css('display') == 'none') { var oldVisibility = es.visibility; var oldPosition = es.position; restoreStyles = true; es.visibility = 'hidden'; es.display = 'block'; es.position = 'absolute' } var el = e; while (el) { x += el.offsetLeft + (el.currentStyle && !jQuery.browser.opera ? parseInt(el.currentStyle.borderLeftWidth) || 0: 0); y += el.offsetTop + (el.currentStyle && !jQuery.browser.opera ? parseInt(el.currentStyle.borderTopWidth) || 0: 0); el = el.offsetParent } el = e; while (el && el.tagName && el.tagName.toLowerCase() != 'body') { x -= el.scrollLeft || 0; y -= el.scrollTop || 0; el = el.parentNode } if (restoreStyles == true) { es.display = 'none'; es.position = oldPosition; es.visibility = oldVisibility } return { x: x, y: y } }, getPositionLite: function(el) { var x = 0, y = 0; while (el) { x += el.offsetLeft || 0; y += el.offsetTop || 0; el = el.offsetParent } return { x: x, y: y } }, getSize: function(e) { var w = jQuery.css(e, 'width'); var h = jQuery.css(e, 'height'); var wb = 0; var hb = 0; var es = e.style; if (jQuery(e).css('display') != 'none') { wb = e.offsetWidth; hb = e.offsetHeight } else { var oldVisibility = es.visibility; var oldPosition = es.position; es.visibility = 'hidden'; es.display = 'block'; es.position = 'absolute'; wb = e.offsetWidth; hb = e.offsetHeight; es.display = 'none'; es.position = oldPosition; es.visibility = oldVisibility } return { w: w, h: h, wb: wb, hb: hb } }, getSizeLite: function(el) { return { wb: el.offsetWidth || 0, hb: el.offsetHeight || 0 } }, getClient: function(e) { var h, w, de; if (e) { w = e.clientWidth; h = e.clientHeight } else { de = document.documentElement; w = window.innerWidth || self.innerWidth || (de && de.clientWidth) || document.body.clientWidth; h = window.innerHeight || self.innerHeight || (de && de.clientHeight) || document.body.clientHeight } return { w: w, h: h } }, getScroll: function(e) { var t = 0, l = 0, w = 0, h = 0, iw = 0, ih = 0; if (e && e.nodeName.toLowerCase() != 'body') { t = e.scrollTop; l = e.scrollLeft; w = e.scrollWidth; h = e.scrollHeight; iw = 0; ih = 0 } else { if (document.documentElement) { t = document.documentElement.scrollTop; l = document.documentElement.scrollLeft; w = document.documentElement.scrollWidth; h = document.documentElement.scrollHeight } else if (document.body) { t = document.body.scrollTop; l = document.body.scrollLeft; w = document.body.scrollWidth; h = document.body.scrollHeight } iw = self.innerWidth || document.documentElement.clientWidth || document.body.clientWidth || 0; ih = self.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0 } return { t: t, l: l, w: w, h: h, iw: iw, ih: ih } }, getMargins: function(e, toInteger) { var el = jQuery(e); var t = el.css('marginTop') || ''; var r = el.css('marginRight') || ''; var b = el.css('marginBottom') || ''; var l = el.css('marginLeft') || ''; if (toInteger) return { t: parseInt(t) || 0, r: parseInt(r) || 0, b: parseInt(b) || 0, l: parseInt(l) }; else return { t: t, r: r, b: b, l: l } }, getPadding: function(e, toInteger) { var el = jQuery(e); var t = el.css('paddingTop') || ''; var r = el.css('paddingRight') || ''; var b = el.css('paddingBottom') || ''; var l = el.css('paddingLeft') || ''; if (toInteger) return { t: parseInt(t) || 0, r: parseInt(r) || 0, b: parseInt(b) || 0, l: parseInt(l) }; else return { t: t, r: r, b: b, l: l } }, getBorder: function(e, toInteger) { var el = jQuery(e); var t = el.css('borderTopWidth') || ''; var r = el.css('borderRightWidth') || ''; var b = el.css('borderBottomWidth') || ''; var l = el.css('borderLeftWidth') || ''; if (toInteger) return { t: parseInt(t) || 0, r: parseInt(r) || 0, b: parseInt(b) || 0, l: parseInt(l) || 0 }; else return { t: t, r: r, b: b, l: l } }, getPointer: function(event) { var x = event.pageX || (event.clientX + (document.documentElement.scrollLeft || document.body.scrollLeft)) || 0; var y = event.pageY || (event.clientY + (document.documentElement.scrollTop || document.body.scrollTop)) || 0; return { x: x, y: y } }, traverseDOM: function(nodeEl, func) { func(nodeEl); nodeEl = nodeEl.firstChild; while (nodeEl) { jQuery.iUtil.traverseDOM(nodeEl, func); nodeEl = nodeEl.nextSibling } }, purgeEvents: function(nodeEl) { jQuery.iUtil.traverseDOM(nodeEl, function(el) { for (var attr in el) { if (typeof el[attr] === 'function') { el[attr] = null } } }) }, centerEl: function(el, axis) { var clientScroll = jQuery.iUtil.getScroll(); var windowSize = jQuery.iUtil.getSize(el); if (!axis || axis == 'vertically') jQuery(el).css({ top: clientScroll.t + ((Math.max(clientScroll.h, clientScroll.ih) - clientScroll.t - windowSize.hb) / 2) + 'px' }); if (!axis || axis == 'horizontally') jQuery(el).css({ left: clientScroll.l + ((Math.max(clientScroll.w, clientScroll.iw) - clientScroll.l - windowSize.wb) / 2) + 'px' }) }, fixPNG: function(el, emptyGIF) { var images = jQuery('img[@src*="png"]', el || document), png; images.each(function() { png = this.src; this.src = emptyGIF; this.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + png + "')" }) } }; [].indexOf || (Array.prototype.indexOf = function(v, n) { n = (n == null) ? 0: n; var m = this.length; for (var i = n; i < m; i++) if (this[i] == v) return i; return - 1 });