CREATE view vw_Indoo_template_0108a AS SELECT id, ROW_NUMBER() OVER (ORDER BY id) AS rownum FROM Indoo_template_0108 GO create view vw_Indoo_template_0108b as SELECT id, rownum, (rownum - 1) % 4 AS rg, FLOOR((rownum - 1) / 4) AS cg FROM vw_Indoo_template_0108a GO create view vw_Indoo_template_0108c as SELECT cg, max([0]) as m0, max([1]) as m1, max([2]) as m2, max([3]) as m3 FROM vw_Indoo_template_0108b PIVOT (max(id) FOR rg IN ([0], [1], [2], [3])) AS pvt group by cg GO create view vw_Indoo_template_0108d as SELECT dbo.vw_Indoo_template_0108c.cg AS newID, Indoo_template_0108_1.Title AS Title_1, Indoo_template_0108_1.ID AS ID_1, Indoo_template_0108_1.FileLink AS FileLink_1, Indoo_template_0108_2.Title AS Title_2, Indoo_template_0108_2.ID AS ID_2, Indoo_template_0108_2.FileLink AS FileLink_2, Indoo_template_0108_3.Title AS Title_3, Indoo_template_0108_3.ID AS ID_3, Indoo_template_0108_3.FileLink AS FileLink_3, Indoo_template_0108_4.Title AS Title_4, Indoo_template_0108_4.ID AS ID_4, Indoo_template_0108_4.FileLink AS FileLink_4, Indoo_template_0108_2.FileDate AS FileDate_2, Indoo_template_0108_2.UserID AS UserID_2, Indoo_template_0108_2.FileDescription AS FileDescription_2, Indoo_template_0108_1.FileDate AS FileDate_1, Indoo_template_0108_1.UserID AS UserID_1, Indoo_template_0108_1.FileDescription AS FileDescription_1, Indoo_template_0108_3.FileDate AS FileDate_3, Indoo_template_0108_3.UserID AS UserID_3, Indoo_template_0108_3.FileDescription AS FileDescription_3, Indoo_template_0108_4.UserID AS UserID_4, Indoo_template_0108_4.FileDescription AS FileDescription_4, Indoo_template_0108_4.FileDate AS FileDate_4 FROM dbo.vw_Indoo_template_0108c LEFT OUTER JOIN dbo.Indoo_template_0108 AS Indoo_template_0108_1 ON dbo.vw_Indoo_template_0108c.m0 = Indoo_template_0108_1.ID LEFT OUTER JOIN dbo.Indoo_template_0108 AS Indoo_template_0108_2 ON dbo.vw_Indoo_template_0108c.m1 = Indoo_template_0108_2.ID LEFT OUTER JOIN dbo.Indoo_template_0108 AS Indoo_template_0108_3 ON dbo.vw_Indoo_template_0108c.m2 = Indoo_template_0108_3.ID LEFT OUTER JOIN dbo.Indoo_template_0108 AS Indoo_template_0108_4 ON dbo.vw_Indoo_template_0108c.m3 = Indoo_template_0108_4.ID tablename vw_Indoo_template_0108d binaryData.fileSytemDBPath notSkipSqlOnImport on gridView.recordcount 2 gridView.inlineEdit version 01.05.00 connectionType 0 connectionString tableKeyColumn newId gridview.bulkimport gridview.bulkexport gridview.bulkdelete gridview.insertrecord gridview.editrecord gridview.deleterecord gridview.viewrecord hidegridview gridView.hideElement 2 gridView.pagerecord hidegridviewonedit grideditshowabovegridview editbuttonsinlastcoulumns gridedit.captionposition gridedit.checkwebpageonexit gridEdit.mode gridEdit.valueID gridEdit.TextboxWidth gridEdit.redirectURL gridEdit.txt_Save gridEdit.txt_Insert gridEdit.txt_Back gridEdit.txt_Next gridEdit.txt_Finish gridEdit.txt_cancel gridEdit_customHTMLForm gridEdit.isBinary networkCredential.userName networkCredential.passWord sqldeveloperwindowcb importexportcb gridView.importStopAfterErrorCount 10 isEmptyCaptionReplaced gridedit.allowunecryptedquerystring gridedit.isgridvieweditredirected gridview.ispagenumbertextbox gridView.gridDdlForm 0 gridView.ID gridEdit.ID gridEdit.validRedirectURLSetParameter gridEdit.validRedirectURLDelParameter gridEdit.sendToMail gridView.OrderBy gridView.SqlWhere moduleHeader [setObject:viewPage.gridView.txt_filter=Filter row(s)] moduleFooter htmlHeadBlock <style type="text/css"> .boxIndoo_template_0108 { overIndoo_template_0108flow: none; border: 5px ridge #ccc; z-index: 150; background: #fff; font-size:11px; font-family: Tahoma, Arial, Sans-Serif; } .boxIndoo_template_01081 { padding-right: 10px; padding-left: 10px; } .boxIndoo_template_01082 { padding-right: 10px; text-align:right; } .boxIndoo_template_01083 { padding-left: 10px; text-align:left; } </style> <script type="text/javascript"> Indoo_template_0108_ids = new Array; function Indoo_template_0108_getOther(ids,value){ var j=-1; for(var i = 0; i < Indoo_template_0108_ids.length; i++) { if (Indoo_template_0108_ids[i]==ids){ j=i } } var out; if (j+value<Indoo_template_0108_ids.length && j+value>-1){ out = Indoo_template_0108_ids[j+value]; el=document.getElementById(out); Control.Modal.close(); if(typeof(el.click)!='undefined'){ el.click(); }else{ el.onclick(); } }else{ out = Indoo_template_0108_ids[j]; } ; //alert(document.getElementById(Indoo_template_0108_ids[j+value]).onclick()); } </script> <script src="http://prototypejs.org/assets/2007/6/20/prototype.js"></script> <style> #modal_container { padding:5px; background-color:#fff; border:1px solid #666; overflow:auto; font-family:"Lucida Grande",Verdana; font-size:12px; color:#333; text-align:left; } #modal_overlay { background-color:#000; } </style> <!-- �e en modal ki dela tukaj, ne pa na dnn-ju... --> <script> // script.aculo.us effects.js v1.7.1_beta3, Fri May 25 17:19:41 +0200 2007 // Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) // Contributors: // Justin Palmer (http://encytemedia.com/) // Mark Pilgrim (http://diveintomark.org/) // Martin Bialasinki // // script.aculo.us is freely distributable under the terms of an MIT-style license. // For details, see the script.aculo.us web site: http://script.aculo.us/ // converts rgb() and #xxx to #xxxxxx format, // returns self (or first argument) if not convertable String.prototype.parseColor = function() { var color = '#'; if(this.slice(0,4) == 'rgb(') { var cols = this.slice(4,this.length-1).split(','); var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3); } else { if(this.slice(0,1) == '#') { if(this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase(); if(this.length==7) color = this.toLowerCase(); } } return(color.length==7 ? color : (arguments[0] || this)); } /*--------------------------------------------------------------------------*/ Element.collectTextNodes = function(element) { return $A($(element).childNodes).collect( function(node) { return (node.nodeType==3 ? node.nodeValue : (node.hasChildNodes() ? Element.collectTextNodes(node) : '')); }).flatten().join(''); } Element.collectTextNodesIgnoreClass = function(element, className) { return $A($(element).childNodes).collect( function(node) { return (node.nodeType==3 ? node.nodeValue : ((node.hasChildNodes() && !Element.hasClassName(node,className)) ? Element.collectTextNodesIgnoreClass(node, className) : '')); }).flatten().join(''); } Element.setContentZoom = function(element, percent) { element = $(element); element.setStyle({fontSize: (percent/100) + 'em'}); if(Prototype.Browser.WebKit) window.scrollBy(0,0); return element; } Element.getInlineOpacity = function(element){ return $(element).style.opacity || ''; } Element.forceRerendering = function(element) { try { element = $(element); var n = document.createTextNode(' '); element.appendChild(n); element.removeChild(n); } catch(e) { } }; /*--------------------------------------------------------------------------*/ Array.prototype.call = function() { var args = arguments; this.each(function(f){ f.apply(this, args) }); } /*--------------------------------------------------------------------------*/ var Effect = { _elementDoesNotExistError: { name: 'ElementDoesNotExistError', message: 'The specified DOM element does not exist, but is required for this effect to operate' }, tagifyText: function(element) { if(typeof Builder == 'undefined') throw("Effect.tagifyText requires including script.aculo.us' builder.js library"); var tagifyStyle = 'position:relative'; if(Prototype.Browser.IE) tagifyStyle += ';zoom:1'; element = $(element); $A(element.childNodes).each( function(child) { if(child.nodeType==3) { child.nodeValue.toArray().each( function(character) { element.insertBefore( Builder.node('span',{style: tagifyStyle}, character == ' ' ? String.fromCharCode(160) : character), child); }); Element.remove(child); } }); }, multiple: function(element, effect) { var elements; if(((typeof element == 'object') || (typeof element == 'function')) && (element.length)) elements = element; else elements = $(element).childNodes; var options = Object.extend({ speed: 0.1, delay: 0.0 }, arguments[2] || {}); var masterDelay = options.delay; $A(elements).each( function(element, index) { new effect(element, Object.extend(options, { delay: index * options.speed + masterDelay })); }); }, PAIRS: { 'slide': ['SlideDown','SlideUp'], 'blind': ['BlindDown','BlindUp'], 'appear': ['Appear','Fade'] }, toggle: function(element, effect) { element = $(element); effect = (effect || 'appear').toLowerCase(); var options = Object.extend({ queue: { position:'end', scope:(element.id || 'global'), limit: 1 } }, arguments[2] || {}); Effect[element.visible() ? Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, options); } }; var Effect2 = Effect; // deprecated /* ------------- transitions ------------- */ Effect.Transitions = { linear: Prototype.K, sinoidal: function(pos) { return (-Math.cos(pos*Math.PI)/2) + 0.5; }, reverse: function(pos) { return 1-pos; }, flicker: function(pos) { var pos = ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4; return (pos > 1 ? 1 : pos); }, wobble: function(pos) { return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5; }, pulse: function(pos, pulses) { pulses = pulses || 5; return ( Math.round((pos % (1/pulses)) * pulses) == 0 ? ((pos * pulses * 2) - Math.floor(pos * pulses * 2)) : 1 - ((pos * pulses * 2) - Math.floor(pos * pulses * 2)) ); }, none: function(pos) { return 0; }, full: function(pos) { return 1; } }; /* ------------- core effects ------------- */ Effect.ScopedQueue = Class.create(); Object.extend(Object.extend(Effect.ScopedQueue.prototype, Enumerable), { initialize: function() { this.effects = []; this.interval = null; }, _each: function(iterator) { this.effects._each(iterator); }, add: function(effect) { var timestamp = new Date().getTime(); var position = (typeof effect.options.queue == 'string') ? effect.options.queue : effect.options.queue.position; switch(position) { case 'front': // move unstarted effects after this effect this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) { e.startOn += effect.finishOn; e.finishOn += effect.finishOn; }); break; case 'with-last': timestamp = this.effects.pluck('startOn').max() || timestamp; break; case 'end': // start effect after last queued effect has finished timestamp = this.effects.pluck('finishOn').max() || timestamp; break; } effect.startOn += timestamp; effect.finishOn += timestamp; if(!effect.options.queue.limit || (this.effects.length < effect.options.queue.limit)) this.effects.push(effect); if(!this.interval) this.interval = setInterval(this.loop.bind(this), 15); }, remove: function(effect) { this.effects = this.effects.reject(function(e) { return e==effect }); if(this.effects.length == 0) { clearInterval(this.interval); this.interval = null; } }, loop: function() { var timePos = new Date().getTime(); for(var i=0, len=this.effects.length;i<len;i++) this.effects[i] && this.effects[i].loop(timePos); } }); Effect.Queues = { instances: $H(), get: function(queueName) { if(typeof queueName != 'string') return queueName; if(!this.instances[queueName]) this.instances[queueName] = new Effect.ScopedQueue(); return this.instances[queueName]; } } Effect.Queue = Effect.Queues.get('global'); Effect.DefaultOptions = { transition: Effect.Transitions.sinoidal, duration: 1.0, // seconds fps: 100, // 100= assume 66fps max. sync: false, // true for combining from: 0.0, to: 1.0, delay: 0.0, queue: 'parallel' } Effect.Base = function() {}; Effect.Base.prototype = { position: null, start: function(options) { function codeForEvent(options,eventName){ return ( (options[eventName+'Internal'] ? 'this.options.'+eventName+'Internal(this);' : '') + (options[eventName] ? 'this.options.'+eventName+'(this);' : '') ); } if(options.transition === false) options.transition = Effect.Transitions.linear; this.options = Object.extend(Object.extend({},Effect.DefaultOptions), options || {}); this.currentFrame = 0; this.state = 'idle'; this.startOn = this.options.delay*1000; this.finishOn = this.startOn+(this.options.duration*1000); this.fromToDelta = this.options.to-this.options.from; this.totalTime = this.finishOn-this.startOn; this.totalFrames = this.options.fps*this.options.duration; eval('this.render = function(pos){ '+ 'if(this.state=="idle"){this.state="running";'+ codeForEvent(options,'beforeSetup')+ (this.setup ? 'this.setup();':'')+ codeForEvent(options,'afterSetup')+ '};if(this.state=="running"){'+ 'pos=this.options.transition(pos)*'+this.fromToDelta+'+'+this.options.from+';'+ 'this.position=pos;'+ codeForEvent(options,'beforeUpdate')+ (this.update ? 'this.update(pos);':'')+ codeForEvent(options,'afterUpdate')+ '}}'); this.event('beforeStart'); if(!this.options.sync) Effect.Queues.get(typeof this.options.queue == 'string' ? 'global' : this.options.queue.scope).add(this); }, loop: function(timePos) { if(timePos >= this.startOn) { if(timePos >= this.finishOn) { this.render(1.0); this.cancel(); this.event('beforeFinish'); if(this.finish) this.finish(); this.event('afterFinish'); return; } var pos = (timePos - this.startOn) / this.totalTime, frame = Math.round(pos * this.totalFrames); if(frame > this.currentFrame) { this.render(pos); this.currentFrame = frame; } } }, cancel: function() { if(!this.options.sync) Effect.Queues.get(typeof this.options.queue == 'string' ? 'global' : this.options.queue.scope).remove(this); this.state = 'finished'; }, event: function(eventName) { if(this.options[eventName + 'Internal']) this.options[eventName + 'Internal'](this); if(this.options[eventName]) this.options[eventName](this); }, inspect: function() { var data = $H(); for(property in this) if(typeof this[property] != 'function') data[property] = this[property]; return '#<Effect:' + data.inspect() + ',options:' + $H(this.options).inspect() + '>'; } } Effect.Parallel = Class.create(); Object.extend(Object.extend(Effect.Parallel.prototype, Effect.Base.prototype), { initialize: function(effects) { this.effects = effects || []; this.start(arguments[1]); }, update: function(position) { this.effects.invoke('render', position); }, finish: function(position) { this.effects.each( function(effect) { effect.render(1.0); effect.cancel(); effect.event('beforeFinish'); if(effect.finish) effect.finish(position); effect.event('afterFinish'); }); } }); Effect.Event = Class.create(); Object.extend(Object.extend(Effect.Event.prototype, Effect.Base.prototype), { initialize: function() { var options = Object.extend({ duration: 0 }, arguments[0] || {}); this.start(options); }, update: Prototype.emptyFunction }); Effect.Opacity = Class.create(); Object.extend(Object.extend(Effect.Opacity.prototype, Effect.Base.prototype), { initialize: function(element) { this.element = $(element); if(!this.element) throw(Effect._elementDoesNotExistError); // make this work on IE on elements without 'layout' if(Prototype.Browser.IE && (!this.element.currentStyle.hasLayout)) this.element.setStyle({zoom: 1}); var options = Object.extend({ from: this.element.getOpacity() || 0.0, to: 1.0 }, arguments[1] || {}); this.start(options); }, update: function(position) { this.element.setOpacity(position); } }); Effect.Move = Class.create(); Object.extend(Object.extend(Effect.Move.prototype, Effect.Base.prototype), { initialize: function(element) { this.element = $(element); if(!this.element) throw(Effect._elementDoesNotExistError); var options = Object.extend({ x: 0, y: 0, mode: 'relative' }, arguments[1] || {}); this.start(options); }, setup: function() { // Bug in Opera: Opera returns the "real" position of a static element or // relative element that does not have top/left explicitly set. // ==> Always set top and left for position relative elements in your stylesheets // (to 0 if you do not need them) this.element.makePositioned(); this.originalLeft = parseFloat(this.element.getStyle('left') || '0'); this.originalTop = parseFloat(this.element.getStyle('top') || '0'); if(this.options.mode == 'absolute') { // absolute movement, so we need to calc deltaX and deltaY this.options.x = this.options.x - this.originalLeft; this.options.y = this.options.y - this.originalTop; } }, update: function(position) { this.element.setStyle({ left: Math.round(this.options.x * position + this.originalLeft) + 'px', top: Math.round(this.options.y * position + this.originalTop) + 'px' }); } }); // for backwards compatibility Effect.MoveBy = function(element, toTop, toLeft) { return new Effect.Move(element, Object.extend({ x: toLeft, y: toTop }, arguments[3] || {})); }; Effect.Scale = Class.create(); Object.extend(Object.extend(Effect.Scale.prototype, Effect.Base.prototype), { initialize: function(element, percent) { this.element = $(element); if(!this.element) throw(Effect._elementDoesNotExistError); var options = Object.extend({ scaleX: true, scaleY: true, scaleContent: true, scaleFromCenter: false, scaleMode: 'box', // 'box' or 'contents' or {} with provided values scaleFrom: 100.0, scaleTo: percent }, arguments[2] || {}); this.start(options); }, setup: function() { this.restoreAfterFinish = this.options.restoreAfterFinish || false; this.elementPositioning = this.element.getStyle('position'); this.originalStyle = {}; ['top','left','width','height','fontSize'].each( function(k) { this.originalStyle[k] = this.element.style[k]; }.bind(this)); this.originalTop = this.element.offsetTop; this.originalLeft = this.element.offsetLeft; var fontSize = this.element.getStyle('font-size') || '100%'; ['em','px','%','pt'].each( function(fontSizeType) { if(fontSize.indexOf(fontSizeType)>0) { this.fontSize = parseFloat(fontSize); this.fontSizeType = fontSizeType; } }.bind(this)); this.factor = (this.options.scaleTo - this.options.scaleFrom)/100; this.dims = null; if(this.options.scaleMode=='box') this.dims = [this.element.offsetHeight, this.element.offsetWidth]; if(/^content/.test(this.options.scaleMode)) this.dims = [this.element.scrollHeight, this.element.scrollWidth]; if(!this.dims) this.dims = [this.options.scaleMode.originalHeight, this.options.scaleMode.originalWidth]; }, update: function(position) { var currentScale = (this.options.scaleFrom/100.0) + (this.factor * position); if(this.options.scaleContent && this.fontSize) this.element.setStyle({fontSize: this.fontSize * currentScale + this.fontSizeType }); this.setDimensions(this.dims[0] * currentScale, this.dims[1] * currentScale); }, finish: function(position) { if(this.restoreAfterFinish) this.element.setStyle(this.originalStyle); }, setDimensions: function(height, width) { var d = {}; if(this.options.scaleX) d.width = Math.round(width) + 'px'; if(this.options.scaleY) d.height = Math.round(height) + 'px'; if(this.options.scaleFromCenter) { var topd = (height - this.dims[0])/2; var leftd = (width - this.dims[1])/2; if(this.elementPositioning == 'absolute') { if(this.options.scaleY) d.top = this.originalTop-topd + 'px'; if(this.options.scaleX) d.left = this.originalLeft-leftd + 'px'; } else { if(this.options.scaleY) d.top = -topd + 'px'; if(this.options.scaleX) d.left = -leftd + 'px'; } } this.element.setStyle(d); } }); Effect.Highlight = Class.create(); Object.extend(Object.extend(Effect.Highlight.prototype, Effect.Base.prototype), { initialize: function(element) { this.element = $(element); if(!this.element) throw(Effect._elementDoesNotExistError); var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || {}); this.start(options); }, setup: function() { // Prevent executing on elements not in the layout flow if(this.element.getStyle('display')=='none') { this.cancel(); return; } // Disable background image during the effect this.oldStyle = {}; if (!this.options.keepBackgroundImage) { this.oldStyle.backgroundImage = this.element.getStyle('background-image'); this.element.setStyle({backgroundImage: 'none'}); } if(!this.options.endcolor) this.options.endcolor = this.element.getStyle('background-color').parseColor('#ffffff'); if(!this.options.restorecolor) this.options.restorecolor = this.element.getStyle('background-color'); // init color calculations this._base = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this)); this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this)); }, update: function(position) { this.element.setStyle({backgroundColor: $R(0,2).inject('#',function(m,v,i){ return m+(Math.round(this._base[i]+(this._delta[i]*position)).toColorPart()); }.bind(this)) }); }, finish: function() { this.element.setStyle(Object.extend(this.oldStyle, { backgroundColor: this.options.restorecolor })); } }); Effect.ScrollTo = Class.create(); Object.extend(Object.extend(Effect.ScrollTo.prototype, Effect.Base.prototype), { initialize: function(element) { this.element = $(element); this.start(arguments[1] || {}); }, setup: function() { Position.prepare(); var offsets = Position.cumulativeOffset(this.element); if(this.options.offset) offsets[1] += this.options.offset; var max = window.innerHeight ? window.height - window.innerHeight : document.body.scrollHeight - (document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight); this.scrollStart = Position.deltaY; this.delta = (offsets[1] > max ? max : offsets[1]) - this.scrollStart; }, update: function(position) { Position.prepare(); window.scrollTo(Position.deltaX, this.scrollStart + (position*this.delta)); } }); /* ------------- combination effects ------------- */ Effect.Fade = function(element) { element = $(element); var oldOpacity = element.getInlineOpacity(); var options = Object.extend({ from: element.getOpacity() || 1.0, to: 0.0, afterFinishInternal: function(effect) { if(effect.options.to!=0) return; effect.element.hide().setStyle({opacity: oldOpacity}); }}, arguments[1] || {}); return new Effect.Opacity(element,options); } Effect.Appear = function(element) { element = $(element); var options = Object.extend({ from: (element.getStyle('display') == 'none' ? 0.0 : element.getOpacity() || 0.0), to: 1.0, // force Safari to render floated elements properly afterFinishInternal: function(effect) { effect.element.forceRerendering(); }, beforeSetup: function(effect) { effect.element.setOpacity(effect.options.from).show(); }}, arguments[1] || {}); return new Effect.Opacity(element,options); } Effect.Puff = function(element) { element = $(element); var oldStyle = { opacity: element.getInlineOpacity(), position: element.getStyle('position'), top: element.style.top, left: element.style.left, width: element.style.width, height: element.style.height }; return new Effect.Parallel( [ new Effect.Scale(element, 200, { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }), new Effect.Opacity(element, { sync: true, to: 0.0 } ) ], Object.extend({ duration: 1.0, beforeSetupInternal: function(effect) { Position.absolutize(effect.effects[0].element) }, afterFinishInternal: function(effect) { effect.effects[0].element.hide().setStyle(oldStyle); } }, arguments[1] || {}) ); } Effect.BlindUp = function(element) { element = $(element); element.makeClipping(); return new Effect.Scale(element, 0, Object.extend({ scaleContent: false, scaleX: false, restoreAfterFinish: true, afterFinishInternal: function(effect) { effect.element.hide().undoClipping(); } }, arguments[1] || {}) ); } Effect.BlindDown = function(element) { element = $(element); var elementDimensions = element.getDimensions(); return new Effect.Scale(element, 100, Object.extend({ scaleContent: false, scaleX: false, scaleFrom: 0, scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, restoreAfterFinish: true, afterSetup: function(effect) { effect.element.makeClipping().setStyle({height: '0px'}).show(); }, afterFinishInternal: function(effect) { effect.element.undoClipping(); } }, arguments[1] || {})); } Effect.SwitchOff = function(element) { element = $(element); var oldOpacity = element.getInlineOpacity(); return new Effect.Appear(element, Object.extend({ duration: 0.4, from: 0, transition: Effect.Transitions.flicker, afterFinishInternal: function(effect) { new Effect.Scale(effect.element, 1, { duration: 0.3, scaleFromCenter: true, scaleX: false, scaleContent: false, restoreAfterFinish: true, beforeSetup: function(effect) { effect.element.makePositioned().makeClipping(); }, afterFinishInternal: function(effect) { effect.element.hide().undoClipping().undoPositioned().setStyle({opacity: oldOpacity}); } }) } }, arguments[1] || {})); } Effect.DropOut = function(element) { element = $(element); var oldStyle = { top: element.getStyle('top'), left: element.getStyle('left'), opacity: element.getInlineOpacity() }; return new Effect.Parallel( [ new Effect.Move(element, {x: 0, y: 100, sync: true }), new Effect.Opacity(element, { sync: true, to: 0.0 }) ], Object.extend( { duration: 0.5, beforeSetup: function(effect) { effect.effects[0].element.makePositioned(); }, afterFinishInternal: function(effect) { effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle); } }, arguments[1] || {})); } Effect.Shake = function(element) { element = $(element); var oldStyle = { top: element.getStyle('top'), left: element.getStyle('left') }; return new Effect.Move(element, { x: 20, y: 0, duration: 0.05, afterFinishInternal: function(effect) { new Effect.Move(effect.element, { x: -40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { new Effect.Move(effect.element, { x: 40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { new Effect.Move(effect.element, { x: -40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { new Effect.Move(effect.element, { x: 40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { new Effect.Move(effect.element, { x: -20, y: 0, duration: 0.05, afterFinishInternal: function(effect) { effect.element.undoPositioned().setStyle(oldStyle); }}) }}) }}) }}) }}) }}); } Effect.SlideDown = function(element) { element = $(element).cleanWhitespace(); // SlideDown need to have the content of the element wrapped in a container element with fixed height! var oldInnerBottom = element.down().getStyle('bottom'); var elementDimensions = element.getDimensions(); return new Effect.Scale(element, 100, Object.extend({ scaleContent: false, scaleX: false, scaleFrom: window.opera ? 0 : 1, scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, restoreAfterFinish: true, afterSetup: function(effect) { effect.element.makePositioned(); effect.element.down().makePositioned(); if(window.opera) effect.element.setStyle({top: ''}); effect.element.makeClipping().setStyle({height: '0px'}).show(); }, afterUpdateInternal: function(effect) { effect.element.down().setStyle({bottom: (effect.dims[0] - effect.element.clientHeight) + 'px' }); }, afterFinishInternal: function(effect) { effect.element.undoClipping().undoPositioned(); effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom}); } }, arguments[1] || {}) ); } Effect.SlideUp = function(element) { element = $(element).cleanWhitespace(); var oldInnerBottom = element.down().getStyle('bottom'); return new Effect.Scale(element, window.opera ? 0 : 1, Object.extend({ scaleContent: false, scaleX: false, scaleMode: 'box', scaleFrom: 100, restoreAfterFinish: true, beforeStartInternal: function(effect) { effect.element.makePositioned(); effect.element.down().makePositioned(); if(window.opera) effect.element.setStyle({top: ''}); effect.element.makeClipping().show(); }, afterUpdateInternal: function(effect) { effect.element.down().setStyle({bottom: (effect.dims[0] - effect.element.clientHeight) + 'px' }); }, afterFinishInternal: function(effect) { effect.element.hide().undoClipping().undoPositioned().setStyle({bottom: oldInnerBottom}); effect.element.down().undoPositioned(); } }, arguments[1] || {}) ); } // Bug in opera makes the TD containing this element expand for a instance after finish Effect.Squish = function(element) { return new Effect.Scale(element, window.opera ? 1 : 0, { restoreAfterFinish: true, beforeSetup: function(effect) { effect.element.makeClipping(); }, afterFinishInternal: function(effect) { effect.element.hide().undoClipping(); } }); } Effect.Grow = function(element) { element = $(element); var options = Object.extend({ direction: 'center', moveTransition: Effect.Transitions.sinoidal, scaleTransition: Effect.Transitions.sinoidal, opacityTransition: Effect.Transitions.full }, arguments[1] || {}); var oldStyle = { top: element.style.top, left: element.style.left, height: element.style.height, width: element.style.width, opacity: element.getInlineOpacity() }; var dims = element.getDimensions(); var initialMoveX, initialMoveY; var moveX, moveY; switch (options.direction) { case 'top-left': initialMoveX = initialMoveY = moveX = moveY = 0; break; case 'top-right': initialMoveX = dims.width; initialMoveY = moveY = 0; moveX = -dims.width; break; case 'bottom-left': initialMoveX = moveX = 0; initialMoveY = dims.height; moveY = -dims.height; break; case 'bottom-right': initialMoveX = dims.width; initialMoveY = dims.height; moveX = -dims.width; moveY = -dims.height; break; case 'center': initialMoveX = dims.width / 2; initialMoveY = dims.height / 2; moveX = -dims.width / 2; moveY = -dims.height / 2; break; } return new Effect.Move(element, { x: initialMoveX, y: initialMoveY, duration: 0.01, beforeSetup: function(effect) { effect.element.hide().makeClipping().makePositioned(); }, afterFinishInternal: function(effect) { new Effect.Parallel( [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }), new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }), new Effect.Scale(effect.element, 100, { scaleMode: { originalHeight: dims.height, originalWidth: dims.width }, sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true}) ], Object.extend({ beforeSetup: function(effect) { effect.effects[0].element.setStyle({height: '0px'}).show(); }, afterFinishInternal: function(effect) { effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle); } }, options) ) } }); } Effect.Shrink = function(element) { element = $(element); var options = Object.extend({ direction: 'center', moveTransition: Effect.Transitions.sinoidal, scaleTransition: Effect.Transitions.sinoidal, opacityTransition: Effect.Transitions.none }, arguments[1] || {}); var oldStyle = { top: element.style.top, left: element.style.left, height: element.style.height, width: element.style.width, opacity: element.getInlineOpacity() }; var dims = element.getDimensions(); var moveX, moveY; switch (options.direction) { case 'top-left': moveX = moveY = 0; break; case 'top-right': moveX = dims.width; moveY = 0; break; case 'bottom-left': moveX = 0; moveY = dims.height; break; case 'bottom-right': moveX = dims.width; moveY = dims.height; break; case 'center': moveX = dims.width / 2; moveY = dims.height / 2; break; } return new Effect.Parallel( [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }), new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}), new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }) ], Object.extend({ beforeStartInternal: function(effect) { effect.effects[0].element.makePositioned().makeClipping(); }, afterFinishInternal: function(effect) { effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle); } }, options) ); } Effect.Pulsate = function(element) { element = $(element); var options = arguments[1] || {}; var oldOpacity = element.getInlineOpacity(); var transition = options.transition || Effect.Transitions.sinoidal; var reverser = function(pos){ return transition(1-Effect.Transitions.pulse(pos, options.pulses)) }; reverser.bind(transition); return new Effect.Opacity(element, Object.extend(Object.extend({ duration: 2.0, from: 0, afterFinishInternal: function(effect) { effect.element.setStyle({opacity: oldOpacity}); } }, options), {transition: reverser})); } Effect.Fold = function(element) { element = $(element); var oldStyle = { top: element.style.top, left: element.style.left, width: element.style.width, height: element.style.height }; element.makeClipping(); return new Effect.Scale(element, 5, Object.extend({ scaleContent: false, scaleX: false, afterFinishInternal: function(effect) { new Effect.Scale(element, 1, { scaleContent: false, scaleY: false, afterFinishInternal: function(effect) { effect.element.hide().undoClipping().setStyle(oldStyle); } }); }}, arguments[1] || {})); }; Effect.Morph = Class.create(); Object.extend(Object.extend(Effect.Morph.prototype, Effect.Base.prototype), { initialize: function(element) { this.element = $(element); if(!this.element) throw(Effect._elementDoesNotExistError); var options = Object.extend({ style: {} }, arguments[1] || {}); if (typeof options.style == 'string') { if(options.style.indexOf(':') == -1) { var cssText = '', selector = '.' + options.style; $A(document.styleSheets).reverse().each(function(styleSheet) { if (styleSheet.cssRules) cssRules = styleSheet.cssRules; else if (styleSheet.rules) cssRules = styleSheet.rules; $A(cssRules).reverse().each(function(rule) { if (selector == rule.selectorText) { cssText = rule.style.cssText; throw $break; } }); if (cssText) throw $break; }); this.style = cssText.parseStyle(); options.afterFinishInternal = function(effect){ effect.element.addClassName(effect.options.style); effect.transforms.each(function(transform) { if(transform.style != 'opacity') effect.element.style[transform.style] = ''; }); } } else this.style = options.style.parseStyle(); } else this.style = $H(options.style) this.start(options); }, setup: function(){ function parseColor(color){ if(!color || ['rgba(0, 0, 0, 0)','transparent'].include(color)) color = '#ffffff'; color = color.parseColor(); return $R(0,2).map(function(i){ return parseInt( color.slice(i*2+1,i*2+3), 16 ) }); } this.transforms = this.style.map(function(pair){ var property = pair[0], value = pair[1], unit = null; if(value.parseColor('#zzzzzz') != '#zzzzzz') { value = value.parseColor(); unit = 'color'; } else if(property == 'opacity') { value = parseFloat(value); if(Prototype.Browser.IE && (!this.element.currentStyle.hasLayout)) this.element.setStyle({zoom: 1}); } else if(Element.CSS_LENGTH.test(value)) { var components = value.match(/^([\+\-]?[0-9\.]+)(.*)$/); value = parseFloat(components[1]); unit = (components.length == 3) ? components[2] : null; } var originalValue = this.element.getStyle(property); return { style: property.camelize(), originalValue: unit=='color' ? parseColor(originalValue) : parseFloat(originalValue || 0), targetValue: unit=='color' ? parseColor(value) : value, unit: unit }; }.bind(this)).reject(function(transform){ return ( (transform.originalValue == transform.targetValue) || ( transform.unit != 'color' && (isNaN(transform.originalValue) || isNaN(transform.targetValue)) ) ) }); }, update: function(position) { var style = {}, transform, i = this.transforms.length; while(i--) style[(transform = this.transforms[i]).style] = transform.unit=='color' ? '#'+ (Math.round(transform.originalValue[0]+ (transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart() + (Math.round(transform.originalValue[1]+ (transform.targetValue[1]-transform.originalValue[1])*position)).toColorPart() + (Math.round(transform.originalValue[2]+ (transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart() : transform.originalValue + Math.round( ((transform.targetValue - transform.originalValue) * position) * 1000)/1000 + transform.unit; this.element.setStyle(style, true); } }); Effect.Transform = Class.create(); Object.extend(Effect.Transform.prototype, { initialize: function(tracks){ this.tracks = []; this.options = arguments[1] || {}; this.addTracks(tracks); }, addTracks: function(tracks){ tracks.each(function(track){ var data = $H(track).values().first(); this.tracks.push($H({ ids: $H(track).keys().first(), effect: Effect.Morph, options: { style: data } })); }.bind(this)); return this; }, play: function(){ return new Effect.Parallel( this.tracks.map(function(track){ var elements = [$(track.ids) || $$(track.ids)].flatten(); return elements.map(function(e){ return new track.effect(e, Object.extend({ sync:true }, track.options)) }); }).flatten(), this.options ); } }); Element.CSS_PROPERTIES = $w( 'backgroundColor backgroundPosition borderBottomColor borderBottomStyle ' + 'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' + 'borderRightColor borderRightStyle borderRightWidth borderSpacing ' + 'borderTopColor borderTopStyle borderTopWidth bottom clip color ' + 'fontSize fontWeight height left letterSpacing lineHeight ' + 'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+ 'maxWidth minHeight minWidth opacity outlineColor outlineOffset ' + 'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' + 'right textIndent top width wordSpacing zIndex'); Element.CSS_LENGTH = /^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/; String.prototype.parseStyle = function(){ var element = document.createElement('div'); element.innerHTML = '<div style="' + this + '"></div>'; var style = element.childNodes[0].style, styleRules = $H(); Element.CSS_PROPERTIES.each(function(property){ if(style[property]) styleRules[property] = style[property]; }); if(Prototype.Browser.IE && this.indexOf('opacity') > -1) { styleRules.opacity = this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]; } return styleRules; }; Element.morph = function(element, style) { new Effect.Morph(element, Object.extend({ style: style }, arguments[2] || {})); return element; }; ['getInlineOpacity','forceRerendering','setContentZoom', 'collectTextNodes','collectTextNodesIgnoreClass','morph'].each( function(f) { Element.Methods[f] = Element[f]; } ); Element.Methods.visualEffect = function(element, effect, options) { s = effect.dasherize().camelize(); effect_class = s.charAt(0).toUpperCase() + s.substring(1); new Effect[effect_class](element, options); return $(element); }; Element.addMethods(); /** * @author Ryan Johnson <ryan@livepipe.net> * @copyright 2007 LivePipe LLC * @package Object.Event * @license MIT * @url http://livepipe.net/projects/object_event/ * @version 1.0.0 */ Object.Event = { extend: function(object){ object._objectEventSetup = function(event_name){ this._observers = this._observers || {}; this._observers[event_name] = this._observers[event_name] || []; }; object.observe = function(event_name,observer){ if(typeof(event_name) == 'string' && typeof(observer) != 'undefined'){ this._objectEventSetup(event_name); if(!this._observers[event_name].include(observer)) this._observers[event_name].push(observer); }else for(var e in event_name) this.observe(e,event_name[e]); }; object.stopObserving = function(event_name,observer){ this._objectEventSetup(event_name); this._observers[event_name] = this._observers[event_name].without(observer); }; object.notify = function(event_name){ this._objectEventSetup(event_name); var collected_return_values = []; var args = $A(arguments).slice(1); try{ for(var i = 0; i < this._observers[event_name].length; ++i) collected_return_values.push(this._observers[event_name][i].apply(this._observers[event_name][i],args) || null); }catch(e){ if(e == $break) return false; else throw e; } return collected_return_values; }; if(object.prototype){ object.prototype._objectEventSetup = object._objectEventSetup; object.prototype.observe = object.observe; object.prototype.stopObserving = object.stopObserving; object.prototype.notify = function(event_name){ if(object.notify){ var args = $A(arguments).slice(1); args.unshift(this); args.unshift(event_name); object.notify.apply(object,args); } this._objectEventSetup(event_name); var args = $A(arguments).slice(1); var collected_return_values = []; try{ if(this.options && this.options[event_name] && typeof(this.options[event_name]) == 'function') collected_return_values.push(this.options[event_name].apply(this,args) || null); for(var i = 0; i < this._observers[event_name].length; ++i) collected_return_values.push(this._observers[event_name][i].apply(this._observers[event_name][i],args) || null); }catch(e){ if(e == $break) return false; else throw e; } return collected_return_values; };; } } }; /** * @author Ryan Johnson <ryan@livepipe.net> * @copyright 2007 LivePipe LLC * @package Control.Modal * @license MIT * @url http://livepipe.net/projects/control_modal/ * @version 2.2.3 */ if(typeof(Control) == "undefined") Control = {}; Control.Modal = Class.create(); Object.extend(Control.Modal,{ loaded: false, loading: false, loadingTimeout: false, overlay: false, container: false, current: false, ie: false, effects: { containerFade: false, containerAppear: false, overlayFade: false, overlayAppear: false }, targetRegexp: /#(.+)$/, imgRegexp: /\.(jpe?g|gif|png|tiff?)$/i, overlayStyles: { position: 'absolute',// change indoo sql grid for ff, original value fixed top: 0, left: 0, width: '100%', height: '1000%', zIndex: 9998 }, overlayIEStyles: { position: 'absolute', top: 0, left: 0, zIndex: 9998 }, disableHoverClose: false, load: function(){ if(!Control.Modal.loaded){ Control.Modal.loaded = true; Control.Modal.ie = !(typeof document.body.style.maxHeight != 'undefined'); Control.Modal.overlay = $(document.createElement('div')); Control.Modal.overlay.id = 'modal_overlay'; Object.extend(Control.Modal.overlay.style,Control.Modal['overlay' + (Control.Modal.ie ? 'IE' : '') + 'Styles']); Control.Modal.overlay.hide(); Control.Modal.container = $(document.createElement('div')); Control.Modal.container.id = 'modal_container'; Control.Modal.container.hide(); Control.Modal.loading = $(document.createElement('div')); Control.Modal.loading.id = 'modal_loading'; Control.Modal.loading.hide(); var body_tag = document.getElementsByTagName('body')[0]; body_tag.appendChild(Control.Modal.overlay); body_tag.appendChild(Control.Modal.container); body_tag.appendChild(Control.Modal.loading); Control.Modal.container.observe('mouseout',function(event){ if(!Control.Modal.disableHoverClose && Control.Modal.current && Control.Modal.current.options.hover && !Position.within(Control.Modal.container,Event.pointerX(event),Event.pointerY(event))) Control.Modal.close(); }); } }, open: function(contents,options){ options = options || {}; if(!options.contents) options.contents = contents; var modal_instance = new Control.Modal(false,options); modal_instance.open(); return modal_instance; }, close: function(force){ if(typeof(force) != 'boolean') force = false; if(Control.Modal.current) Control.Modal.current.close(force); }, attachEvents: function(){ Event.observe(window,'load',Control.Modal.load); Event.observe(window,'unload',Event.unloadCache,false); }, center: function(element){ if(!element._absolutized){ element.setStyle({ position: 'absolute' }); element._absolutized = true; } var dimensions = element.getDimensions(); Position.prepare(); var offset_left = (Position.deltaX + Math.floor((Control.Modal.getWindowWidth() - dimensions.width) / 2)); var offset_top = (Position.deltaY + ((Control.Modal.getWindowHeight() > dimensions.height) ? Math.floor((Control.Modal.getWindowHeight() - dimensions.height) / 2) : 0)); element.setStyle({ top: ((dimensions.height <= Control.Modal.getDocumentHeight()) ? ((offset_top != null && offset_top > 0) ? offset_top : '0') + 'px' : 0), left: ((dimensions.width <= Control.Modal.getDocumentWidth()) ? ((offset_left != null && offset_left > 0) ? offset_left : '0') + 'px' : 0) }); }, getWindowWidth: function(){ return (self.innerWidth || document.documentElement.clientWidth || document.body.clientWidth || 0); }, getWindowHeight: function(){ return (self.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0); }, getDocumentWidth: function(){ return Math.min(document.body.scrollWidth,Control.Modal.getWindowWidth()); }, getDocumentHeight: function(){ return Math.max(document.body.scrollHeight,Control.Modal.getWindowHeight()); }, onKeyDown: function(event){ if(event.keyCode == Event.KEY_ESC) Control.Modal.close(); } }); Object.extend(Control.Modal.prototype,{ mode: '', html: false, href: '', element: false, src: false, imageLoaded: false, ajaxRequest: false, initialize: function(element,options){ this.element = $(element); this.options = { beforeOpen: Prototype.emptyFunction, afterOpen: Prototype.emptyFunction, beforeClose: Prototype.emptyFunction, afterClose: Prototype.emptyFunction, onSuccess: Prototype.emptyFunction, onFailure: Prototype.emptyFunction, onException: Prototype.emptyFunction, beforeImageLoad: Prototype.emptyFunction, afterImageLoad: Prototype.emptyFunction, autoOpenIfLinked: true, contents: false, loading: false, //display loading indicator fade: false, fadeDuration: 0.75, image: false, imageCloseOnClick: true, hover: false, iframe: false, iframeTemplate: new Template('<iframe src="#{href}" width="100%" height="100%" frameborder="0" id="#{id}"></iframe>'), evalScripts: true, //for Ajax, define here instead of in requestOptions requestOptions: {}, //for Ajax.Request overlayDisplay: true, overlayClassName: '', overlayCloseOnClick: true, containerClassName: '', opacity: 0.3, zIndex: 9998, width: null, height: null, offsetLeft: 0, //for use with 'relative' offsetTop: 0, //for use with 'relative' position: 'absolute' //'absolute' or 'relative' }; Object.extend(this.options,options || {}); var target_match = false; var image_match = false; if(this.element){ target_match = Control.Modal.targetRegexp.exec(this.element.href); image_match = Control.Modal.imgRegexp.exec(this.element.href); } if(this.options.position == 'mouse') this.options.hover = true; if(this.options.contents){ this.mode = 'contents'; }else if(this.options.image || image_match){ this.mode = 'image'; this.src = this.element.href; }else if(target_match){ this.mode = 'named'; var x = $(target_match[1]); this.html = x.innerHTML; x.remove(); this.href = target_match[1]; }else{ this.mode = (this.options.iframe) ? 'iframe' : 'ajax'; this.href = this.element.href; } if(this.element){ if(this.options.hover){ this.element.observe('mouseover',this.open.bind(this)); this.element.observe('mouseout',function(event){ if(!Position.within(Control.Modal.container,Event.pointerX(event),Event.pointerY(event))) this.close(); }.bindAsEventListener(this)); }else{ this.element.onclick = function(event){ this.open(); Event.stop(event); return false; }.bindAsEventListener(this); } } var targets = Control.Modal.targetRegexp.exec(window.location); this.position = function(event){ if(this.options.position == 'absolute') Control.Modal.center(Control.Modal.container); else{ var xy = (event && this.options.position == 'mouse' ? [Event.pointerX(event),Event.pointerY(event)] : Position.cumulativeOffset(this.element)); Control.Modal.container.setStyle({ position: 'absolute', top: xy[1] + (typeof(this.options.offsetTop) == 'function' ? this.options.offsetTop() : this.options.offsetTop) + 'px', left: xy[0] + (typeof(this.options.offsetLeft) == 'function' ? this.options.offsetLeft() : this.options.offsetLeft) + 'px' }); } if(Control.Modal.ie){ Control.Modal.overlay.setStyle({ height: Control.Modal.getDocumentHeight() + 'px', width: Control.Modal.getDocumentWidth() + 'px' }); } }.bind(this); if(this.mode == 'named' && this.options.autoOpenIfLinked && targets && targets[1] && targets[1] == this.href) this.open(); }, showLoadingIndicator: function(){ if(this.options.loading){ Control.Modal.loadingTimeout = window.setTimeout(function(){ var modal_image = $('modal_image'); if(modal_image) modal_image.hide(); Control.Modal.loading.style.zIndex = this.options.zIndex + 1; Control.Modal.loading.update('<img id="modal_loading" src="' + this.options.loading + '"/>'); Control.Modal.loading.show(); Control.Modal.center(Control.Modal.loading); }.bind(this),250); } }, hideLoadingIndicator: function(){ if(this.options.loading){ if(Control.Modal.loadingTimeout) window.clearTimeout(Control.Modal.loadingTimeout); var modal_image = $('modal_image'); if(modal_image) modal_image.show(); Control.Modal.loading.hide(); } }, open: function(force){ if(!force && this.notify('beforeOpen') === false) return; if(!Control.Modal.loaded) Control.Modal.load(); Control.Modal.close(); if(!this.options.hover) Event.observe($(document.getElementsByTagName('body')[0]),'keydown',Control.Modal.onKeyDown); Control.Modal.current = this; if(!this.options.hover) Control.Modal.overlay.setStyle({ zIndex: this.options.zIndex, opacity: this.options.opacity }); Control.Modal.container.setStyle({ zIndex: this.options.zIndex + 1, width: (this.options.width ? (typeof(this.options.width) == 'function' ? this.options.width() : this.options.width) + 'px' : null), height: (this.options.height ? (typeof(this.options.height) == 'function' ? this.options.height() : this.options.height) + 'px' : null) }); if(Control.Modal.ie && !this.options.hover){ $A(document.getElementsByTagName('select')).each(function(select){ select.style.visibility = 'hidden'; }); } Control.Modal.overlay.addClassName(this.options.overlayClassName); Control.Modal.container.addClassName(this.options.containerClassName); switch(this.mode){ case 'image': this.imageLoaded = false; this.notify('beforeImageLoad'); this.showLoadingIndicator(); var img = document.createElement('img'); img.onload = function(img){ this.hideLoadingIndicator(); this.update([img]); if(this.options.imageCloseOnClick) $(img).observe('click',Control.Modal.close); this.position(); this.notify('afterImageLoad'); img.onload = null; }.bind(this,img); img.src = this.src; img.id = 'modal_image'; break; case 'ajax': this.notify('beforeLoad'); var options = { method: 'post', onSuccess: function(request){ this.hideLoadingIndicator(); this.update(request.responseText); this.notify('onSuccess',request); this.ajaxRequest = false; }.bind(this), onFailure: function(){ this.notify('onFailure'); }.bind(this), onException: function(){ this.notify('onException'); }.bind(this) }; Object.extend(options,this.options.requestOptions); this.showLoadingIndicator(); this.ajaxRequest = new Ajax.Request(this.href,options); break; case 'iframe': this.update(this.options.iframeTemplate.evaluate({href: this.href, id: 'modal_iframe'})); break; case 'contents': this.update((typeof(this.options.contents) == 'function' ? this.options.contents() : this.options.contents)); break; case 'named': this.update(this.html); break; } if(!this.options.hover){ if(this.options.overlayCloseOnClick && this.options.overlayDisplay) Control.Modal.overlay.observe('click',Control.Modal.close); if(this.options.overlayDisplay){ if(this.options.fade){ if(Control.Modal.effects.overlayFade) Control.Modal.effects.overlayFade.cancel(); Control.Modal.effects.overlayAppear = new Effect.Appear(Control.Modal.overlay,{ queue: { position: 'front', scope: 'Control.Modal' }, to: this.options.opacity, duration: this.options.fadeDuration / 2 }); }else Control.Modal.overlay.show(); } } if(this.options.position == 'mouse'){ this.mouseHoverListener = this.position.bindAsEventListener(this); this.element.observe('mousemove',this.mouseHoverListener); } this.notify('afterOpen'); }, update: function(html){ if(typeof(html) == 'string') Control.Modal.container.update(html); else{ Control.Modal.container.update(''); (html.each) ? html.each(function(node){ Control.Modal.container.appendChild(node); }) : Control.Modal.container.appendChild(node); } if(this.options.fade){ if(Control.Modal.effects.containerFade) Control.Modal.effects.containerFade.cancel(); Control.Modal.effects.containerAppear = new Effect.Appear(Control.Modal.container,{ queue: { position: 'end', scope: 'Control.Modal' }, to: 1, duration: this.options.fadeDuration / 2 }); }else Control.Modal.container.show(); this.position(); Event.observe(window,'resize',this.position,false); Event.observe(window,'scroll',this.position,false); }, close: function(force){ if(!force && this.notify('beforeClose') === false) return; if(this.ajaxRequest) this.ajaxRequest.transport.abort(); this.hideLoadingIndicator(); if(this.mode == 'image'){ var modal_image = $('modal_image'); if(this.options.imageCloseOnClick && modal_image) modal_image.stopObserving('click',Control.Modal.close); } if(Control.Modal.ie && !this.options.hover){ $A(document.getElementsByTagName('select')).each(function(select){ select.style.visibility = 'visible'; }); } if(!this.options.hover) Event.stopObserving(window,'keyup',Control.Modal.onKeyDown); Control.Modal.current = false; Event.stopObserving(window,'resize',this.position,false); Event.stopObserving(window,'scroll',this.position,false); if(!this.options.hover){ if(this.options.overlayCloseOnClick && this.options.overlayDisplay) Control.Modal.overlay.stopObserving('click',Control.Modal.close); if(this.options.overlayDisplay){ if(this.options.fade){ if(Control.Modal.effects.overlayAppear) Control.Modal.effects.overlayAppear.cancel(); Control.Modal.effects.overlayFade = new Effect.Fade(Control.Modal.overlay,{ queue: { position: 'end', scope: 'Control.Modal' }, from: this.options.opacity, to: 0, duration: this.options.fadeDuration / 2 }); }else Control.Modal.overlay.hide(); } } if(this.options.fade){ if(Control.Modal.effects.containerAppear) Control.Modal.effects.containerAppear.cancel(); Control.Modal.effects.containerFade = new Effect.Fade(Control.Modal.container,{ queue: { position: 'front', scope: 'Control.Modal' }, from: 1, to: 0, duration: this.options.fadeDuration / 2, afterFinish: function(){ Control.Modal.container.update(''); this.resetClassNameAndStyles(); }.bind(this) }); }else{ //Control.Modal.container.hide(); Control.Modal.container.update(''); this.resetClassNameAndStyles(); } if(this.options.position == 'mouse') this.element.stopObserving('mousemove',this.mouseHoverListener); this.notify('afterClose'); }, resetClassNameAndStyles: function(){ Control.Modal.overlay.removeClassName(this.options.overlayClassName); Control.Modal.container.removeClassName(this.options.containerClassName); Control.Modal.container.setStyle({ height: null, width: null, top: null, left: null }); }, notify: function(event_name){ try{ if(this.options[event_name]) return [this.options[event_name].apply(this.options[event_name],$A(arguments).slice(1))]; }catch(e){ if(e != $break) throw e; else return false; } } }); if(typeof(Object.Event) != 'undefined') Object.Event.extend(Control.Modal); Control.Modal.attachEvents(); </script> <script> function Indoo_template_0108_f(el_id, link){ return '<table class="boxIndoo_template_0108" ><tr>' + '<td class="boxIndoo_template_01083"><a href="javascript:Indoo_template_0108_getOther(\'' + el_id + '\',-1)">Previous</a>&nbsp;&nbsp;' + '<a href="javascript:Indoo_template_0108_getOther(\'' + el_id + '\',+1)">Next</a></td>' + '<td class="boxIndoo_template_01082"><a href="#" onclick="Control.Modal.close()">Close</a></td>' + '</tr><tr><td class="boxIndoo_template_01083" colspan="2"><center><br /><strong>' + document.getElementById(el_id+'y').innerHTML + '</strong><br /></center></td>' + '</tr><tr><td class="boxIndoo_template_01081" colspan="2"><center>' + link + '</center></td></tr><tr>' + '<td class="boxIndoo_template_01083" colspan="2"><br />' + document.getElementById(el_id+'x').innerHTML + '<br /><br /></td></tr><tr>' + '<td class="boxIndoo_template_01083"><a href="#" onclick="Control.Modal.close()">Close</a></td>' + '<td class="boxIndoo_template_01082"><a href="javascript:Indoo_template_0108_getOther(\'' + el_id + '\',-1)">Previous</a>&nbsp;&nbsp;' + '<a href="javascript:Indoo_template_0108_getOther(\'' + el_id + '\',+1)">Next</a></td>' + '</tr></table>' } function funcIndoo_template_0108a__(imgId,text){ vid=text.substring(text.indexOf('http://www.youtube.com/v/')+25,text.indexOf('&')) img =document.getElementById(imgId);img.src="http://img.youtube.com/vi/" + vid + "/default.jpg" ;if(vid==''){img.style.display='none'} } </script> startupScriptBlock onSubmitScriptBlock sqlOnInsertRecord sqlOnUpdateRecord sqlOnViewModule sqlOnViewRecord addcreatestatement createKeyColumn gridviewcolumn.1.binarydata.isforcedownload gridviewcolumn.0.binarydata.isforcedownload gridviewcolumn.2.binarydata.isforcedownload gridviewcolumn.3.binarydata.isforcedownload sqlOnUpdateFinishRecord gridViewColumn.4.Visible gridViewColumn.4.allowExport gridViewColumn.4.allowEdit gridViewColumn.4.allowFilter 0 gridViewColumn.4.allowSort gridViewColumn.4.allowImport gridViewColumn.4.columnName ID_1 gridViewColumn.4.caption gridViewColumn.4.width gridViewColumn.4.defaultContent gridViewColumn.4.formatData gridViewColumn.4.importDefault gridViewColumn.4.filterAdditionalColumn gridViewColumn.4.defaultSortColumn gridViewColumn.4.isBoolean gridViewColumn.4.isLink gridViewColumn.4.isOther 0 gridViewColumn.4.isBinary gridViewColumn.4.isJoin gridViewColumn.4.isHtmlAttributes gridViewColumn.5.Visible gridViewColumn.5.allowExport gridViewColumn.5.allowEdit gridViewColumn.5.allowFilter 0 gridViewColumn.5.allowSort gridViewColumn.5.allowImport gridViewColumn.5.columnName ID_2 gridViewColumn.5.caption gridViewColumn.5.width gridViewColumn.5.defaultContent gridViewColumn.5.formatData gridViewColumn.5.importDefault gridViewColumn.5.filterAdditionalColumn gridViewColumn.5.defaultSortColumn gridViewColumn.5.isBoolean gridViewColumn.5.isLink gridViewColumn.5.isOther 0 gridViewColumn.5.isBinary gridViewColumn.5.isJoin gridViewColumn.5.isHtmlAttributes gridViewColumn.6.Visible gridViewColumn.6.allowExport gridViewColumn.6.allowEdit gridViewColumn.6.allowFilter 0 gridViewColumn.6.allowSort gridViewColumn.6.allowImport gridViewColumn.6.columnName ID_3 gridViewColumn.6.caption gridViewColumn.6.width gridViewColumn.6.defaultContent gridViewColumn.6.formatData gridViewColumn.6.importDefault gridViewColumn.6.filterAdditionalColumn gridViewColumn.6.defaultSortColumn gridViewColumn.6.isBoolean gridViewColumn.6.isLink gridViewColumn.6.isOther 0 gridViewColumn.6.isBinary gridViewColumn.6.isJoin gridViewColumn.6.isHtmlAttributes gridViewColumn.7.Visible gridViewColumn.7.allowExport gridViewColumn.7.allowEdit gridViewColumn.7.allowFilter 0 gridViewColumn.7.allowSort gridViewColumn.7.allowImport gridViewColumn.7.columnName ID_4 gridViewColumn.7.caption gridViewColumn.7.width gridViewColumn.7.defaultContent gridViewColumn.7.formatData gridViewColumn.7.importDefault gridViewColumn.7.filterAdditionalColumn gridViewColumn.7.defaultSortColumn gridViewColumn.7.isBoolean gridViewColumn.7.isLink gridViewColumn.7.isOther 0 gridViewColumn.7.isBinary gridViewColumn.7.isJoin gridViewColumn.7.isHtmlAttributes gridViewColumn.8.columnName FileDate_2 gridViewColumn.8.Visible gridViewColumn.8.allowExport gridViewColumn.8.allowEdit gridViewColumn.8.allowFilter 0 gridViewColumn.8.allowSort gridViewColumn.8.allowImport gridViewColumn.8.isOther 0 gridViewColumn.9.columnName UserID_2 gridViewColumn.9.Visible gridViewColumn.9.allowExport gridViewColumn.9.allowEdit gridViewColumn.9.allowFilter 0 gridViewColumn.9.allowSort gridViewColumn.9.allowImport gridViewColumn.9.isOther 0 gridViewColumn.10.columnName FileDescription_2 gridViewColumn.10.Visible gridViewColumn.10.allowExport gridViewColumn.10.allowEdit gridViewColumn.10.allowFilter 0 gridViewColumn.10.allowSort gridViewColumn.10.allowImport gridViewColumn.10.isOther 0 gridViewColumn.11.columnName FileDate_1 gridViewColumn.11.Visible gridViewColumn.11.allowExport gridViewColumn.11.allowEdit gridViewColumn.11.allowFilter 1 gridViewColumn.11.allowSort gridViewColumn.11.allowImport gridViewColumn.11.isOther 0 gridViewColumn.12.columnName UserID_1 gridViewColumn.12.Visible gridViewColumn.12.allowExport gridViewColumn.12.allowEdit gridViewColumn.12.allowFilter 1 gridViewColumn.12.allowSort gridViewColumn.12.allowImport gridViewColumn.12.isOther 0 gridViewColumn.13.columnName FileDescription_1 gridViewColumn.13.Visible gridViewColumn.13.allowExport gridViewColumn.13.allowEdit gridViewColumn.13.allowFilter 1 gridViewColumn.13.allowSort gridViewColumn.13.allowImport gridViewColumn.13.isOther 0 gridViewColumn.14.columnName FileDate_3 gridViewColumn.14.Visible gridViewColumn.14.allowExport gridViewColumn.14.allowEdit gridViewColumn.14.allowFilter 0 gridViewColumn.14.allowSort gridViewColumn.14.allowImport gridViewColumn.14.isOther 0 gridViewColumn.15.columnName UserID_3 gridViewColumn.15.Visible gridViewColumn.15.allowExport gridViewColumn.15.allowEdit gridViewColumn.15.allowFilter 0 gridViewColumn.15.allowSort gridViewColumn.15.allowImport gridViewColumn.15.isOther 0 gridViewColumn.16.columnName FileDescription_3 gridViewColumn.16.Visible gridViewColumn.16.allowExport gridViewColumn.16.allowEdit gridViewColumn.16.allowFilter 0 gridViewColumn.16.allowSort gridViewColumn.16.allowImport gridViewColumn.16.isOther 0 gridViewColumn.17.columnName UserID_4 gridViewColumn.17.Visible gridViewColumn.17.allowExport gridViewColumn.17.allowEdit gridViewColumn.17.allowFilter 0 gridViewColumn.17.allowSort gridViewColumn.17.allowImport gridViewColumn.17.isOther 0 gridViewColumn.18.columnName FileDescription_4 gridViewColumn.18.Visible gridViewColumn.18.allowExport gridViewColumn.18.allowEdit gridViewColumn.18.allowFilter 0 gridViewColumn.18.allowSort gridViewColumn.18.allowImport gridViewColumn.18.isOther 0 gridViewColumn.19.columnName FileDate_4 gridViewColumn.19.Visible gridViewColumn.19.allowExport gridViewColumn.19.allowEdit gridViewColumn.19.allowFilter 0 gridViewColumn.19.allowSort gridViewColumn.19.allowImport gridViewColumn.19.isOther 0 gridViewColumn.8.caption gridViewColumn.9.caption gridViewColumn.10.caption gridViewColumn.11.caption Date gridViewColumn.12.caption Username gridViewColumn.13.caption Description gridViewColumn.14.caption gridViewColumn.15.caption gridViewColumn.16.caption gridViewColumn.17.caption gridViewColumn.18.caption gridViewColumn.19.caption gridViewColumn.9.width gridViewColumn.9.defaultContent gridViewColumn.9.formatData gridViewColumn.9.importDefault gridViewColumn.9.filterAdditionalColumn gridViewColumn.9.defaultSortColumn gridViewColumn.9.isBoolean gridViewColumn.9.isLink gridViewColumn.9.isBinary gridViewColumn.9.isJoin on gridViewColumn.9.isHtmlAttributes gridViewColumn.9.navigateUrlTarget _blank gridViewColumn.9.joinTableName Users gridViewColumn.9.joinTableIdColumnName UserID gridViewColumn.9.joinTableColumnName Username gridViewColumn.11.width gridViewColumn.11.defaultContent gridViewColumn.11.formatData gridViewColumn.11.importDefault gridViewColumn.11.filterAdditionalColumn FileDate_2,FileDate_3,FileDate_4 gridViewColumn.11.defaultSortColumn gridViewColumn.11.isBoolean gridViewColumn.11.isLink gridViewColumn.11.isBinary gridViewColumn.11.isJoin gridViewColumn.11.isHtmlAttributes gridViewColumn.12.width gridViewColumn.12.defaultContent gridViewColumn.12.formatData gridViewColumn.12.importDefault gridViewColumn.12.filterAdditionalColumn UserID_2,UserID_3,UserID_4 gridViewColumn.12.defaultSortColumn gridViewColumn.12.isBoolean gridViewColumn.12.isLink gridViewColumn.12.isBinary gridViewColumn.12.isJoin on gridViewColumn.12.isHtmlAttributes gridViewColumn.12.navigateUrlTarget _blank gridViewColumn.12.joinTableName Users gridViewColumn.12.joinTableIdColumnName UserID gridViewColumn.12.joinTableColumnName Username gridViewColumn.15.width gridViewColumn.15.defaultContent gridViewColumn.15.formatData gridViewColumn.15.importDefault gridViewColumn.15.filterAdditionalColumn gridViewColumn.15.defaultSortColumn gridViewColumn.15.isBoolean gridViewColumn.15.isLink gridViewColumn.15.isBinary gridViewColumn.15.isJoin on gridViewColumn.15.isHtmlAttributes gridViewColumn.15.navigateUrlTarget _blank gridViewColumn.15.joinTableName Users gridViewColumn.15.joinTableIdColumnName UserID gridViewColumn.15.joinTableColumnName Username gridViewColumn.17.width gridViewColumn.17.defaultContent gridViewColumn.17.formatData gridViewColumn.17.importDefault gridViewColumn.17.filterAdditionalColumn gridViewColumn.17.defaultSortColumn gridViewColumn.17.isBoolean gridViewColumn.17.isLink gridViewColumn.17.isBinary gridViewColumn.17.isJoin on gridViewColumn.17.isHtmlAttributes gridViewColumn.17.navigateUrlTarget _blank gridViewColumn.17.joinTableName Users gridViewColumn.17.joinTableIdColumnName UserID gridViewColumn.17.joinTableColumnName Username gridViewColumn.13.width gridViewColumn.13.defaultContent gridViewColumn.13.formatData gridViewColumn.13.importDefault gridViewColumn.13.filterAdditionalColumn FileDescription_2,FileDescription_3,FileDescription_4 gridViewColumn.13.defaultSortColumn gridViewColumn.13.isBoolean gridViewColumn.13.isLink gridViewColumn.13.isBinary gridViewColumn.13.isJoin gridViewColumn.13.isHtmlAttributes gridViewColumn.20.Visible gridViewColumn.20.allowExport gridViewColumn.20.allowEdit gridViewColumn.20.allowFilter 0 gridViewColumn.20.allowSort gridViewColumn.20.allowImport gridViewColumn.20.columnName newID gridViewColumn.20.caption gridViewColumn.20.width gridViewColumn.20.defaultContent gridViewColumn.20.formatData gridViewColumn.20.importDefault gridViewColumn.20.filterAdditionalColumn gridViewColumn.20.defaultSortColumn gridViewColumn.20.isBoolean gridViewColumn.20.isLink gridViewColumn.20.isOther 0 gridViewColumn.20.isBinary gridViewColumn.20.isJoin gridViewColumn.20.isHtmlAttributes showGridView on showGridEdit on gridview.sqlstatementquery gridViewColumn.0.Visible on gridViewColumn.0.allowExport gridViewColumn.0.allowEdit gridViewColumn.0.allowFilter 0 gridViewColumn.0.allowSort gridViewColumn.0.allowImport gridViewColumn.0.columnName FileLink_1 gridViewColumn.0.caption gridViewColumn.0.width gridViewColumn.0.defaultContent gridViewColumn.0.formatData gridViewColumn.0.importDefault gridViewColumn.0.filterAdditionalColumn gridViewColumn.0.defaultSortColumn gridViewColumn.0.isBoolean gridViewColumn.0.isLink gridViewColumn.0.isOther 2 gridViewColumn.0.isBinary gridViewColumn.0.isJoin gridViewColumn.0.isHtmlAttributes gridViewColumn.1.Visible on gridViewColumn.1.allowExport gridViewColumn.1.allowEdit gridViewColumn.1.allowFilter 0 gridViewColumn.1.allowSort gridViewColumn.1.allowImport gridViewColumn.1.columnName FileLink_2 gridViewColumn.1.caption gridViewColumn.1.width gridViewColumn.1.defaultContent gridViewColumn.1.formatData gridViewColumn.1.importDefault gridViewColumn.1.filterAdditionalColumn gridViewColumn.1.defaultSortColumn gridViewColumn.1.isBoolean gridViewColumn.1.isLink gridViewColumn.1.isOther 2 gridViewColumn.1.isBinary gridViewColumn.1.isJoin gridViewColumn.1.isHtmlAttributes gridViewColumn.2.Visible on gridViewColumn.2.allowExport gridViewColumn.2.allowEdit gridViewColumn.2.allowFilter 0 gridViewColumn.2.allowSort gridViewColumn.2.allowImport gridViewColumn.2.columnName FileLink_3 gridViewColumn.2.caption gridViewColumn.2.width gridViewColumn.2.defaultContent gridViewColumn.2.formatData gridViewColumn.2.importDefault gridViewColumn.2.filterAdditionalColumn gridViewColumn.2.defaultSortColumn gridViewColumn.2.isBoolean gridViewColumn.2.isLink gridViewColumn.2.isOther 2 gridViewColumn.2.isBinary gridViewColumn.2.isJoin gridViewColumn.2.isHtmlAttributes gridViewColumn.3.Visible on gridViewColumn.3.allowExport gridViewColumn.3.allowEdit gridViewColumn.3.allowFilter 0 gridViewColumn.3.allowSort gridViewColumn.3.allowImport gridViewColumn.3.columnName FileLink_4 gridViewColumn.3.caption gridViewColumn.3.width gridViewColumn.3.defaultContent gridViewColumn.3.formatData gridViewColumn.3.importDefault gridViewColumn.3.filterAdditionalColumn gridViewColumn.3.defaultSortColumn gridViewColumn.3.isBoolean gridViewColumn.3.isLink gridViewColumn.3.isOther 2 gridViewColumn.3.isBinary gridViewColumn.3.isJoin gridViewColumn.3.isHtmlAttributes gridViewColumn.21.Visible gridViewColumn.21.allowExport gridViewColumn.21.allowEdit gridViewColumn.21.allowFilter 1 gridViewColumn.21.allowSort gridViewColumn.21.allowImport gridViewColumn.21.columnName Title_1 gridViewColumn.21.caption Title gridViewColumn.21.width gridViewColumn.21.defaultContent gridViewColumn.21.formatData gridViewColumn.21.importDefault gridViewColumn.21.filterAdditionalColumn Title_2,Title_3,Title_4 gridViewColumn.21.defaultSortColumn gridViewColumn.21.isBoolean gridViewColumn.21.isLink gridViewColumn.21.isOther 0 gridViewColumn.21.isBinary gridViewColumn.21.isJoin gridViewColumn.21.isHtmlAttributes gridViewColumn.22.Visible gridViewColumn.22.allowExport gridViewColumn.22.allowEdit gridViewColumn.22.allowFilter 0 gridViewColumn.22.allowSort gridViewColumn.22.allowImport gridViewColumn.22.columnName Title_2 gridViewColumn.22.caption gridViewColumn.22.width gridViewColumn.22.defaultContent gridViewColumn.22.formatData gridViewColumn.22.importDefault gridViewColumn.22.filterAdditionalColumn gridViewColumn.22.defaultSortColumn gridViewColumn.22.isBoolean gridViewColumn.22.isLink gridViewColumn.22.isOther 0 gridViewColumn.22.isBinary gridViewColumn.22.isJoin gridViewColumn.22.isHtmlAttributes gridViewColumn.23.Visible gridViewColumn.23.allowExport gridViewColumn.23.allowEdit gridViewColumn.23.allowFilter 0 gridViewColumn.23.allowSort gridViewColumn.23.allowImport gridViewColumn.23.columnName Title_3 gridViewColumn.23.caption gridViewColumn.23.width gridViewColumn.23.defaultContent gridViewColumn.23.formatData gridViewColumn.23.importDefault gridViewColumn.23.filterAdditionalColumn gridViewColumn.23.defaultSortColumn gridViewColumn.23.isBoolean gridViewColumn.23.isLink gridViewColumn.23.isOther 0 gridViewColumn.23.isBinary gridViewColumn.23.isJoin gridViewColumn.23.isHtmlAttributes gridViewColumn.24.Visible gridViewColumn.24.allowExport gridViewColumn.24.allowEdit gridViewColumn.24.allowFilter 0 gridViewColumn.24.allowSort gridViewColumn.24.allowImport gridViewColumn.24.columnName Title_4 gridViewColumn.24.caption gridViewColumn.24.width gridViewColumn.24.defaultContent gridViewColumn.24.formatData gridViewColumn.24.importDefault gridViewColumn.24.filterAdditionalColumn gridViewColumn.24.defaultSortColumn gridViewColumn.24.isBoolean gridViewColumn.24.isLink gridViewColumn.24.isOther 0 gridViewColumn.24.isBinary gridViewColumn.24.isJoin gridViewColumn.24.isHtmlAttributes gridViewColumn.0.customHTMLForm <SCRIPT> var Indoo_template_0108id_[columnField:newID]_[columnIndex] = 'Indoo_template_0108_x[columnField:newID]_[columnIndex]'; var Indoo_template_0108_c[columnField:newID]_[columnIndex] = '[columnField:FileLink_1]'; document.write('<a href="" id="'+Indoo_template_0108id_[columnField:newID]_[columnIndex]+'"><img id="'+Indoo_template_0108id_[columnField:newID]_[columnIndex]+'a" src="" border="0" /></a>') funcIndoo_template_0108a__(Indoo_template_0108id_[columnField:newID]_[columnIndex]+'a',Indoo_template_0108_c[columnField:newID]_[columnIndex]) new Control.Modal(Indoo_template_0108id_[columnField:newID]_[columnIndex],{overlayDisplay: true,contents: function(){return Indoo_template_0108_f(Indoo_template_0108id_[columnField:newID]_[columnIndex],Indoo_template_0108_c[columnField:newID]_[columnIndex])}}); Indoo_template_0108_ids[Indoo_template_0108_ids.length]=Indoo_template_0108id_[columnField:newID]_[columnIndex]; </SCRIPT> <TEXTAREA id=Indoo_template_0108_x[columnField:newID]_[columnIndex]x style="DISPLAY: none">[columnField:FileDescription_1]</TEXTAREA><TEXTAREA id=Indoo_template_0108_x[columnField:newID]_[columnIndex]y style="DISPLAY: none">[columnField:Title_1]</TEXTAREA> gridViewColumn.1.customHTMLForm <SCRIPT> var Indoo_template_0108id_[columnField:newID]_[columnIndex] = 'Indoo_template_0108_x[columnField:newID]_[columnIndex]'; var Indoo_template_0108_c[columnField:newID]_[columnIndex] = '[columnField:FileLink_2]'; document.write('<a href="" id="'+Indoo_template_0108id_[columnField:newID]_[columnIndex]+'"><img id="'+Indoo_template_0108id_[columnField:newID]_[columnIndex]+'a" src="" border="0" /></a>') funcIndoo_template_0108a__(Indoo_template_0108id_[columnField:newID]_[columnIndex]+'a',Indoo_template_0108_c[columnField:newID]_[columnIndex]) new Control.Modal(Indoo_template_0108id_[columnField:newID]_[columnIndex],{overlayDisplay: true,contents: function(){return Indoo_template_0108_f(Indoo_template_0108id_[columnField:newID]_[columnIndex],Indoo_template_0108_c[columnField:newID]_[columnIndex])}}); Indoo_template_0108_ids[Indoo_template_0108_ids.length]=Indoo_template_0108id_[columnField:newID]_[columnIndex]; </SCRIPT> <TEXTAREA id=Indoo_template_0108_x[columnField:newID]_[columnIndex]x style="DISPLAY: none">[columnField:FileDescription_2]</TEXTAREA><TEXTAREA id=Indoo_template_0108_x[columnField:newID]_[columnIndex]y style="DISPLAY: none">[columnField:Title_2]</TEXTAREA> gridViewColumn.2.customHTMLForm <SCRIPT> var Indoo_template_0108id_[columnField:newID]_[columnIndex] = 'Indoo_template_0108_x[columnField:newID]_[columnIndex]'; var Indoo_template_0108_c[columnField:newID]_[columnIndex] = '[columnField:FileLink_3]'; document.write('<a href="" id="'+Indoo_template_0108id_[columnField:newID]_[columnIndex]+'"><img id="'+Indoo_template_0108id_[columnField:newID]_[columnIndex]+'a" src="" border="0" /></a>') funcIndoo_template_0108a__(Indoo_template_0108id_[columnField:newID]_[columnIndex]+'a',Indoo_template_0108_c[columnField:newID]_[columnIndex]) new Control.Modal(Indoo_template_0108id_[columnField:newID]_[columnIndex],{overlayDisplay: true,contents: function(){return Indoo_template_0108_f(Indoo_template_0108id_[columnField:newID]_[columnIndex],Indoo_template_0108_c[columnField:newID]_[columnIndex])}}); Indoo_template_0108_ids[Indoo_template_0108_ids.length]=Indoo_template_0108id_[columnField:newID]_[columnIndex]; </SCRIPT> <TEXTAREA id=Indoo_template_0108_x[columnField:newID]_[columnIndex]x style="DISPLAY: none">[columnField:FileDescription_3]</TEXTAREA><TEXTAREA id=Indoo_template_0108_x[columnField:newID]_[columnIndex]y style="DISPLAY: none">[columnField:Title_3]</TEXTAREA> gridViewColumn.3.customHTMLForm <SCRIPT> var Indoo_template_0108id_[columnField:newID]_[columnIndex] = 'Indoo_template_0108_x[columnField:newID]_[columnIndex]'; var Indoo_template_0108_c[columnField:newID]_[columnIndex] = '[columnField:FileLink_4]'; document.write('<a href="" id="'+Indoo_template_0108id_[columnField:newID]_[columnIndex]+'"><img id="'+Indoo_template_0108id_[columnField:newID]_[columnIndex]+'a" src="" border="0" /></a>') funcIndoo_template_0108a__(Indoo_template_0108id_[columnField:newID]_[columnIndex]+'a',Indoo_template_0108_c[columnField:newID]_[columnIndex]) new Control.Modal(Indoo_template_0108id_[columnField:newID]_[columnIndex],{overlayDisplay: true,contents: function(){return Indoo_template_0108_f(Indoo_template_0108id_[columnField:newID]_[columnIndex],Indoo_template_0108_c[columnField:newID]_[columnIndex])}}); Indoo_template_0108_ids[Indoo_template_0108_ids.length]=Indoo_template_0108id_[columnField:newID]_[columnIndex]; </SCRIPT> <TEXTAREA id=Indoo_template_0108_x[columnField:newID]_[columnIndex]x style="DISPLAY: none">[columnField:FileDescription_4]</TEXTAREA><TEXTAREA id=Indoo_template_0108_x[columnField:newID]_[columnIndex]y style="DISPLAY: none">[columnField:Title_4]</TEXTAREA> gridViewColumn.17.customHTMLForm <SCRIPT> var Indoo_template_0108id_[columnField:ID] = 'Indoo_template_0108_x[columnField:ID]'; var Indoo_template_0108_c[columnField:ID] = '[columnField:YouTubeEmbededLink]'; document.write('<a href="" id="'+Indoo_template_0108id_[columnField:ID]+'"><img id="'+Indoo_template_0108id_[columnField:ID]+'a" src="" border="0" /></a>') funcIndoo_template_0108a__(Indoo_template_0108id_[columnField:ID]+'a',Indoo_template_0108_c[columnField:ID]) new Control.Modal(Indoo_template_0108id_[columnField:ID],{overlayDisplay: true,contents: function(){return Indoo_template_0108_f(Indoo_template_0108id_[columnField:ID],Indoo_template_0108_c[columnField:ID])}}); Indoo_template_0108_ids[Indoo_template_0108_ids.length]=Indoo_template_0108id_[columnField:ID]; </SCRIPT> alternateTablename alternateConnectionString tablename vw_Indoo_template_0108d binaryData.fileSytemDBPath |DataDirectory|indooGrid\ notSkipSqlOnImport on gridView.recordcount 2 gridView.inlineEdit version 01.05.00 connectionType 0 connectionString tableKeyColumn newId gridview.bulkimport gridview.bulkexport gridview.bulkdelete gridview.insertrecord gridview.editrecord gridview.deleterecord gridview.viewrecord hidegridview gridView.hideElement 2 gridView.pagerecord hidegridviewonedit grideditshowabovegridview editbuttonsinlastcoulumns gridedit.captionposition gridedit.checkwebpageonexit gridEdit.mode gridEdit.valueID gridEdit.TextboxWidth gridEdit.redirectURL gridEdit.txt_Save gridEdit.txt_Insert gridEdit.txt_Back gridEdit.txt_Next gridEdit.txt_Finish gridEdit.txt_cancel gridEdit_customHTMLForm gridEdit.isBinary networkCredential.userName networkCredential.passWord sqldeveloperwindowcb importexportcb gridView.importStopAfterErrorCount 10 isEmptyCaptionReplaced gridedit.allowunecryptedquerystring gridedit.isgridvieweditredirected gridview.ispagenumbertextbox gridView.gridDdlForm 0 gridView.ID gridEdit.ID gridEdit.validRedirectURLSetParameter gridEdit.validRedirectURLDelParameter gridEdit.sendToMail gridView.OrderBy gridView.SqlWhere moduleHeader [setObject:viewPage.gridView.txt_filter=Filter row(s)] moduleFooter htmlHeadBlock <style type="text/css"> .boxIndoo_template_0108 { overIndoo_template_0108flow: none; border: 5px ridge #ccc; z-index: 150; background: #fff; font-size:11px; font-family: Tahoma, Arial, Sans-Serif; } .boxIndoo_template_01081 { padding-right: 10px; padding-left: 10px; } .boxIndoo_template_01082 { padding-right: 10px; text-align:right; } .boxIndoo_template_01083 { padding-left: 10px; text-align:left; } </style> <script type="text/javascript"> Indoo_template_0108_ids = new Array; function Indoo_template_0108_getOther(ids,value){ var j=-1; for(var i = 0; i < Indoo_template_0108_ids.length; i++) { if (Indoo_template_0108_ids[i]==ids){ j=i } } var out; if (j+value<Indoo_template_0108_ids.length && j+value>-1){ out = Indoo_template_0108_ids[j+value]; el=document.getElementById(out); Control.Modal.close(); if(typeof(el.click)!='undefined'){ el.click(); }else{ el.onclick(); } }else{ out = Indoo_template_0108_ids[j]; } ; //alert(document.getElementById(Indoo_template_0108_ids[j+value]).onclick()); } </script> <script src="http://prototypejs.org/assets/2007/6/20/prototype.js"></script> <style> #modal_container { padding:5px; background-color:#fff; border:1px solid #666; overflow:auto; font-family:"Lucida Grande",Verdana; font-size:12px; color:#333; text-align:left; } #modal_overlay { background-color:#000; } </style> <!-- �e en modal ki dela tukaj, ne pa na dnn-ju... --> <script> // script.aculo.us effects.js v1.7.1_beta3, Fri May 25 17:19:41 +0200 2007 // Copyright (c) 2005-2007 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us) // Contributors: // Justin Palmer (http://encytemedia.com/) // Mark Pilgrim (http://diveintomark.org/) // Martin Bialasinki // // script.aculo.us is freely distributable under the terms of an MIT-style license. // For details, see the script.aculo.us web site: http://script.aculo.us/ // converts rgb() and #xxx to #xxxxxx format, // returns self (or first argument) if not convertable String.prototype.parseColor = function() { var color = '#'; if(this.slice(0,4) == 'rgb(') { var cols = this.slice(4,this.length-1).split(','); var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3); } else { if(this.slice(0,1) == '#') { if(this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase(); if(this.length==7) color = this.toLowerCase(); } } return(color.length==7 ? color : (arguments[0] || this)); } /*--------------------------------------------------------------------------*/ Element.collectTextNodes = function(element) { return $A($(element).childNodes).collect( function(node) { return (node.nodeType==3 ? node.nodeValue : (node.hasChildNodes() ? Element.collectTextNodes(node) : '')); }).flatten().join(''); } Element.collectTextNodesIgnoreClass = function(element, className) { return $A($(element).childNodes).collect( function(node) { return (node.nodeType==3 ? node.nodeValue : ((node.hasChildNodes() && !Element.hasClassName(node,className)) ? Element.collectTextNodesIgnoreClass(node, className) : '')); }).flatten().join(''); } Element.setContentZoom = function(element, percent) { element = $(element); element.setStyle({fontSize: (percent/100) + 'em'}); if(Prototype.Browser.WebKit) window.scrollBy(0,0); return element; } Element.getInlineOpacity = function(element){ return $(element).style.opacity || ''; } Element.forceRerendering = function(element) { try { element = $(element); var n = document.createTextNode(' '); element.appendChild(n); element.removeChild(n); } catch(e) { } }; /*--------------------------------------------------------------------------*/ Array.prototype.call = function() { var args = arguments; this.each(function(f){ f.apply(this, args) }); } /*--------------------------------------------------------------------------*/ var Effect = { _elementDoesNotExistError: { name: 'ElementDoesNotExistError', message: 'The specified DOM element does not exist, but is required for this effect to operate' }, tagifyText: function(element) { if(typeof Builder == 'undefined') throw("Effect.tagifyText requires including script.aculo.us' builder.js library"); var tagifyStyle = 'position:relative'; if(Prototype.Browser.IE) tagifyStyle += ';zoom:1'; element = $(element); $A(element.childNodes).each( function(child) { if(child.nodeType==3) { child.nodeValue.toArray().each( function(character) { element.insertBefore( Builder.node('span',{style: tagifyStyle}, character == ' ' ? String.fromCharCode(160) : character), child); }); Element.remove(child); } }); }, multiple: function(element, effect) { var elements; if(((typeof element == 'object') || (typeof element == 'function')) && (element.length)) elements = element; else elements = $(element).childNodes; var options = Object.extend({ speed: 0.1, delay: 0.0 }, arguments[2] || {}); var masterDelay = options.delay; $A(elements).each( function(element, index) { new effect(element, Object.extend(options, { delay: index * options.speed + masterDelay })); }); }, PAIRS: { 'slide': ['SlideDown','SlideUp'], 'blind': ['BlindDown','BlindUp'], 'appear': ['Appear','Fade'] }, toggle: function(element, effect) { element = $(element); effect = (effect || 'appear').toLowerCase(); var options = Object.extend({ queue: { position:'end', scope:(element.id || 'global'), limit: 1 } }, arguments[2] || {}); Effect[element.visible() ? Effect.PAIRS[effect][1] : Effect.PAIRS[effect][0]](element, options); } }; var Effect2 = Effect; // deprecated /* ------------- transitions ------------- */ Effect.Transitions = { linear: Prototype.K, sinoidal: function(pos) { return (-Math.cos(pos*Math.PI)/2) + 0.5; }, reverse: function(pos) { return 1-pos; }, flicker: function(pos) { var pos = ((-Math.cos(pos*Math.PI)/4) + 0.75) + Math.random()/4; return (pos > 1 ? 1 : pos); }, wobble: function(pos) { return (-Math.cos(pos*Math.PI*(9*pos))/2) + 0.5; }, pulse: function(pos, pulses) { pulses = pulses || 5; return ( Math.round((pos % (1/pulses)) * pulses) == 0 ? ((pos * pulses * 2) - Math.floor(pos * pulses * 2)) : 1 - ((pos * pulses * 2) - Math.floor(pos * pulses * 2)) ); }, none: function(pos) { return 0; }, full: function(pos) { return 1; } }; /* ------------- core effects ------------- */ Effect.ScopedQueue = Class.create(); Object.extend(Object.extend(Effect.ScopedQueue.prototype, Enumerable), { initialize: function() { this.effects = []; this.interval = null; }, _each: function(iterator) { this.effects._each(iterator); }, add: function(effect) { var timestamp = new Date().getTime(); var position = (typeof effect.options.queue == 'string') ? effect.options.queue : effect.options.queue.position; switch(position) { case 'front': // move unstarted effects after this effect this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) { e.startOn += effect.finishOn; e.finishOn += effect.finishOn; }); break; case 'with-last': timestamp = this.effects.pluck('startOn').max() || timestamp; break; case 'end': // start effect after last queued effect has finished timestamp = this.effects.pluck('finishOn').max() || timestamp; break; } effect.startOn += timestamp; effect.finishOn += timestamp; if(!effect.options.queue.limit || (this.effects.length < effect.options.queue.limit)) this.effects.push(effect); if(!this.interval) this.interval = setInterval(this.loop.bind(this), 15); }, remove: function(effect) { this.effects = this.effects.reject(function(e) { return e==effect }); if(this.effects.length == 0) { clearInterval(this.interval); this.interval = null; } }, loop: function() { var timePos = new Date().getTime(); for(var i=0, len=this.effects.length;i<len;i++) this.effects[i] && this.effects[i].loop(timePos); } }); Effect.Queues = { instances: $H(), get: function(queueName) { if(typeof queueName != 'string') return queueName; if(!this.instances[queueName]) this.instances[queueName] = new Effect.ScopedQueue(); return this.instances[queueName]; } } Effect.Queue = Effect.Queues.get('global'); Effect.DefaultOptions = { transition: Effect.Transitions.sinoidal, duration: 1.0, // seconds fps: 100, // 100= assume 66fps max. sync: false, // true for combining from: 0.0, to: 1.0, delay: 0.0, queue: 'parallel' } Effect.Base = function() {}; Effect.Base.prototype = { position: null, start: function(options) { function codeForEvent(options,eventName){ return ( (options[eventName+'Internal'] ? 'this.options.'+eventName+'Internal(this);' : '') + (options[eventName] ? 'this.options.'+eventName+'(this);' : '') ); } if(options.transition === false) options.transition = Effect.Transitions.linear; this.options = Object.extend(Object.extend({},Effect.DefaultOptions), options || {}); this.currentFrame = 0; this.state = 'idle'; this.startOn = this.options.delay*1000; this.finishOn = this.startOn+(this.options.duration*1000); this.fromToDelta = this.options.to-this.options.from; this.totalTime = this.finishOn-this.startOn; this.totalFrames = this.options.fps*this.options.duration; eval('this.render = function(pos){ '+ 'if(this.state=="idle"){this.state="running";'+ codeForEvent(options,'beforeSetup')+ (this.setup ? 'this.setup();':'')+ codeForEvent(options,'afterSetup')+ '};if(this.state=="running"){'+ 'pos=this.options.transition(pos)*'+this.fromToDelta+'+'+this.options.from+';'+ 'this.position=pos;'+ codeForEvent(options,'beforeUpdate')+ (this.update ? 'this.update(pos);':'')+ codeForEvent(options,'afterUpdate')+ '}}'); this.event('beforeStart'); if(!this.options.sync) Effect.Queues.get(typeof this.options.queue == 'string' ? 'global' : this.options.queue.scope).add(this); }, loop: function(timePos) { if(timePos >= this.startOn) { if(timePos >= this.finishOn) { this.render(1.0); this.cancel(); this.event('beforeFinish'); if(this.finish) this.finish(); this.event('afterFinish'); return; } var pos = (timePos - this.startOn) / this.totalTime, frame = Math.round(pos * this.totalFrames); if(frame > this.currentFrame) { this.render(pos); this.currentFrame = frame; } } }, cancel: function() { if(!this.options.sync) Effect.Queues.get(typeof this.options.queue == 'string' ? 'global' : this.options.queue.scope).remove(this); this.state = 'finished'; }, event: function(eventName) { if(this.options[eventName + 'Internal']) this.options[eventName + 'Internal'](this); if(this.options[eventName]) this.options[eventName](this); }, inspect: function() { var data = $H(); for(property in this) if(typeof this[property] != 'function') data[property] = this[property]; return '#<Effect:' + data.inspect() + ',options:' + $H(this.options).inspect() + '>'; } } Effect.Parallel = Class.create(); Object.extend(Object.extend(Effect.Parallel.prototype, Effect.Base.prototype), { initialize: function(effects) { this.effects = effects || []; this.start(arguments[1]); }, update: function(position) { this.effects.invoke('render', position); }, finish: function(position) { this.effects.each( function(effect) { effect.render(1.0); effect.cancel(); effect.event('beforeFinish'); if(effect.finish) effect.finish(position); effect.event('afterFinish'); }); } }); Effect.Event = Class.create(); Object.extend(Object.extend(Effect.Event.prototype, Effect.Base.prototype), { initialize: function() { var options = Object.extend({ duration: 0 }, arguments[0] || {}); this.start(options); }, update: Prototype.emptyFunction }); Effect.Opacity = Class.create(); Object.extend(Object.extend(Effect.Opacity.prototype, Effect.Base.prototype), { initialize: function(element) { this.element = $(element); if(!this.element) throw(Effect._elementDoesNotExistError); // make this work on IE on elements without 'layout' if(Prototype.Browser.IE && (!this.element.currentStyle.hasLayout)) this.element.setStyle({zoom: 1}); var options = Object.extend({ from: this.element.getOpacity() || 0.0, to: 1.0 }, arguments[1] || {}); this.start(options); }, update: function(position) { this.element.setOpacity(position); } }); Effect.Move = Class.create(); Object.extend(Object.extend(Effect.Move.prototype, Effect.Base.prototype), { initialize: function(element) { this.element = $(element); if(!this.element) throw(Effect._elementDoesNotExistError); var options = Object.extend({ x: 0, y: 0, mode: 'relative' }, arguments[1] || {}); this.start(options); }, setup: function() { // Bug in Opera: Opera returns the "real" position of a static element or // relative element that does not have top/left explicitly set. // ==> Always set top and left for position relative elements in your stylesheets // (to 0 if you do not need them) this.element.makePositioned(); this.originalLeft = parseFloat(this.element.getStyle('left') || '0'); this.originalTop = parseFloat(this.element.getStyle('top') || '0'); if(this.options.mode == 'absolute') { // absolute movement, so we need to calc deltaX and deltaY this.options.x = this.options.x - this.originalLeft; this.options.y = this.options.y - this.originalTop; } }, update: function(position) { this.element.setStyle({ left: Math.round(this.options.x * position + this.originalLeft) + 'px', top: Math.round(this.options.y * position + this.originalTop) + 'px' }); } }); // for backwards compatibility Effect.MoveBy = function(element, toTop, toLeft) { return new Effect.Move(element, Object.extend({ x: toLeft, y: toTop }, arguments[3] || {})); }; Effect.Scale = Class.create(); Object.extend(Object.extend(Effect.Scale.prototype, Effect.Base.prototype), { initialize: function(element, percent) { this.element = $(element); if(!this.element) throw(Effect._elementDoesNotExistError); var options = Object.extend({ scaleX: true, scaleY: true, scaleContent: true, scaleFromCenter: false, scaleMode: 'box', // 'box' or 'contents' or {} with provided values scaleFrom: 100.0, scaleTo: percent }, arguments[2] || {}); this.start(options); }, setup: function() { this.restoreAfterFinish = this.options.restoreAfterFinish || false; this.elementPositioning = this.element.getStyle('position'); this.originalStyle = {}; ['top','left','width','height','fontSize'].each( function(k) { this.originalStyle[k] = this.element.style[k]; }.bind(this)); this.originalTop = this.element.offsetTop; this.originalLeft = this.element.offsetLeft; var fontSize = this.element.getStyle('font-size') || '100%'; ['em','px','%','pt'].each( function(fontSizeType) { if(fontSize.indexOf(fontSizeType)>0) { this.fontSize = parseFloat(fontSize); this.fontSizeType = fontSizeType; } }.bind(this)); this.factor = (this.options.scaleTo - this.options.scaleFrom)/100; this.dims = null; if(this.options.scaleMode=='box') this.dims = [this.element.offsetHeight, this.element.offsetWidth]; if(/^content/.test(this.options.scaleMode)) this.dims = [this.element.scrollHeight, this.element.scrollWidth]; if(!this.dims) this.dims = [this.options.scaleMode.originalHeight, this.options.scaleMode.originalWidth]; }, update: function(position) { var currentScale = (this.options.scaleFrom/100.0) + (this.factor * position); if(this.options.scaleContent && this.fontSize) this.element.setStyle({fontSize: this.fontSize * currentScale + this.fontSizeType }); this.setDimensions(this.dims[0] * currentScale, this.dims[1] * currentScale); }, finish: function(position) { if(this.restoreAfterFinish) this.element.setStyle(this.originalStyle); }, setDimensions: function(height, width) { var d = {}; if(this.options.scaleX) d.width = Math.round(width) + 'px'; if(this.options.scaleY) d.height = Math.round(height) + 'px'; if(this.options.scaleFromCenter) { var topd = (height - this.dims[0])/2; var leftd = (width - this.dims[1])/2; if(this.elementPositioning == 'absolute') { if(this.options.scaleY) d.top = this.originalTop-topd + 'px'; if(this.options.scaleX) d.left = this.originalLeft-leftd + 'px'; } else { if(this.options.scaleY) d.top = -topd + 'px'; if(this.options.scaleX) d.left = -leftd + 'px'; } } this.element.setStyle(d); } }); Effect.Highlight = Class.create(); Object.extend(Object.extend(Effect.Highlight.prototype, Effect.Base.prototype), { initialize: function(element) { this.element = $(element); if(!this.element) throw(Effect._elementDoesNotExistError); var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || {}); this.start(options); }, setup: function() { // Prevent executing on elements not in the layout flow if(this.element.getStyle('display')=='none') { this.cancel(); return; } // Disable background image during the effect this.oldStyle = {}; if (!this.options.keepBackgroundImage) { this.oldStyle.backgroundImage = this.element.getStyle('background-image'); this.element.setStyle({backgroundImage: 'none'}); } if(!this.options.endcolor) this.options.endcolor = this.element.getStyle('background-color').parseColor('#ffffff'); if(!this.options.restorecolor) this.options.restorecolor = this.element.getStyle('background-color'); // init color calculations this._base = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this)); this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this)); }, update: function(position) { this.element.setStyle({backgroundColor: $R(0,2).inject('#',function(m,v,i){ return m+(Math.round(this._base[i]+(this._delta[i]*position)).toColorPart()); }.bind(this)) }); }, finish: function() { this.element.setStyle(Object.extend(this.oldStyle, { backgroundColor: this.options.restorecolor })); } }); Effect.ScrollTo = Class.create(); Object.extend(Object.extend(Effect.ScrollTo.prototype, Effect.Base.prototype), { initialize: function(element) { this.element = $(element); this.start(arguments[1] || {}); }, setup: function() { Position.prepare(); var offsets = Position.cumulativeOffset(this.element); if(this.options.offset) offsets[1] += this.options.offset; var max = window.innerHeight ? window.height - window.innerHeight : document.body.scrollHeight - (document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight); this.scrollStart = Position.deltaY; this.delta = (offsets[1] > max ? max : offsets[1]) - this.scrollStart; }, update: function(position) { Position.prepare(); window.scrollTo(Position.deltaX, this.scrollStart + (position*this.delta)); } }); /* ------------- combination effects ------------- */ Effect.Fade = function(element) { element = $(element); var oldOpacity = element.getInlineOpacity(); var options = Object.extend({ from: element.getOpacity() || 1.0, to: 0.0, afterFinishInternal: function(effect) { if(effect.options.to!=0) return; effect.element.hide().setStyle({opacity: oldOpacity}); }}, arguments[1] || {}); return new Effect.Opacity(element,options); } Effect.Appear = function(element) { element = $(element); var options = Object.extend({ from: (element.getStyle('display') == 'none' ? 0.0 : element.getOpacity() || 0.0), to: 1.0, // force Safari to render floated elements properly afterFinishInternal: function(effect) { effect.element.forceRerendering(); }, beforeSetup: function(effect) { effect.element.setOpacity(effect.options.from).show(); }}, arguments[1] || {}); return new Effect.Opacity(element,options); } Effect.Puff = function(element) { element = $(element); var oldStyle = { opacity: element.getInlineOpacity(), position: element.getStyle('position'), top: element.style.top, left: element.style.left, width: element.style.width, height: element.style.height }; return new Effect.Parallel( [ new Effect.Scale(element, 200, { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }), new Effect.Opacity(element, { sync: true, to: 0.0 } ) ], Object.extend({ duration: 1.0, beforeSetupInternal: function(effect) { Position.absolutize(effect.effects[0].element) }, afterFinishInternal: function(effect) { effect.effects[0].element.hide().setStyle(oldStyle); } }, arguments[1] || {}) ); } Effect.BlindUp = function(element) { element = $(element); element.makeClipping(); return new Effect.Scale(element, 0, Object.extend({ scaleContent: false, scaleX: false, restoreAfterFinish: true, afterFinishInternal: function(effect) { effect.element.hide().undoClipping(); } }, arguments[1] || {}) ); } Effect.BlindDown = function(element) { element = $(element); var elementDimensions = element.getDimensions(); return new Effect.Scale(element, 100, Object.extend({ scaleContent: false, scaleX: false, scaleFrom: 0, scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, restoreAfterFinish: true, afterSetup: function(effect) { effect.element.makeClipping().setStyle({height: '0px'}).show(); }, afterFinishInternal: function(effect) { effect.element.undoClipping(); } }, arguments[1] || {})); } Effect.SwitchOff = function(element) { element = $(element); var oldOpacity = element.getInlineOpacity(); return new Effect.Appear(element, Object.extend({ duration: 0.4, from: 0, transition: Effect.Transitions.flicker, afterFinishInternal: function(effect) { new Effect.Scale(effect.element, 1, { duration: 0.3, scaleFromCenter: true, scaleX: false, scaleContent: false, restoreAfterFinish: true, beforeSetup: function(effect) { effect.element.makePositioned().makeClipping(); }, afterFinishInternal: function(effect) { effect.element.hide().undoClipping().undoPositioned().setStyle({opacity: oldOpacity}); } }) } }, arguments[1] || {})); } Effect.DropOut = function(element) { element = $(element); var oldStyle = { top: element.getStyle('top'), left: element.getStyle('left'), opacity: element.getInlineOpacity() }; return new Effect.Parallel( [ new Effect.Move(element, {x: 0, y: 100, sync: true }), new Effect.Opacity(element, { sync: true, to: 0.0 }) ], Object.extend( { duration: 0.5, beforeSetup: function(effect) { effect.effects[0].element.makePositioned(); }, afterFinishInternal: function(effect) { effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle); } }, arguments[1] || {})); } Effect.Shake = function(element) { element = $(element); var oldStyle = { top: element.getStyle('top'), left: element.getStyle('left') }; return new Effect.Move(element, { x: 20, y: 0, duration: 0.05, afterFinishInternal: function(effect) { new Effect.Move(effect.element, { x: -40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { new Effect.Move(effect.element, { x: 40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { new Effect.Move(effect.element, { x: -40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { new Effect.Move(effect.element, { x: 40, y: 0, duration: 0.1, afterFinishInternal: function(effect) { new Effect.Move(effect.element, { x: -20, y: 0, duration: 0.05, afterFinishInternal: function(effect) { effect.element.undoPositioned().setStyle(oldStyle); }}) }}) }}) }}) }}) }}); } Effect.SlideDown = function(element) { element = $(element).cleanWhitespace(); // SlideDown need to have the content of the element wrapped in a container element with fixed height! var oldInnerBottom = element.down().getStyle('bottom'); var elementDimensions = element.getDimensions(); return new Effect.Scale(element, 100, Object.extend({ scaleContent: false, scaleX: false, scaleFrom: window.opera ? 0 : 1, scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width}, restoreAfterFinish: true, afterSetup: function(effect) { effect.element.makePositioned(); effect.element.down().makePositioned(); if(window.opera) effect.element.setStyle({top: ''}); effect.element.makeClipping().setStyle({height: '0px'}).show(); }, afterUpdateInternal: function(effect) { effect.element.down().setStyle({bottom: (effect.dims[0] - effect.element.clientHeight) + 'px' }); }, afterFinishInternal: function(effect) { effect.element.undoClipping().undoPositioned(); effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom}); } }, arguments[1] || {}) ); } Effect.SlideUp = function(element) { element = $(element).cleanWhitespace(); var oldInnerBottom = element.down().getStyle('bottom'); return new Effect.Scale(element, window.opera ? 0 : 1, Object.extend({ scaleContent: false, scaleX: false, scaleMode: 'box', scaleFrom: 100, restoreAfterFinish: true, beforeStartInternal: function(effect) { effect.element.makePositioned(); effect.element.down().makePositioned(); if(window.opera) effect.element.setStyle({top: ''}); effect.element.makeClipping().show(); }, afterUpdateInternal: function(effect) { effect.element.down().setStyle({bottom: (effect.dims[0] - effect.element.clientHeight) + 'px' }); }, afterFinishInternal: function(effect) { effect.element.hide().undoClipping().undoPositioned().setStyle({bottom: oldInnerBottom}); effect.element.down().undoPositioned(); } }, arguments[1] || {}) ); } // Bug in opera makes the TD containing this element expand for a instance after finish Effect.Squish = function(element) { return new Effect.Scale(element, window.opera ? 1 : 0, { restoreAfterFinish: true, beforeSetup: function(effect) { effect.element.makeClipping(); }, afterFinishInternal: function(effect) { effect.element.hide().undoClipping(); } }); } Effect.Grow = function(element) { element = $(element); var options = Object.extend({ direction: 'center', moveTransition: Effect.Transitions.sinoidal, scaleTransition: Effect.Transitions.sinoidal, opacityTransition: Effect.Transitions.full }, arguments[1] || {}); var oldStyle = { top: element.style.top, left: element.style.left, height: element.style.height, width: element.style.width, opacity: element.getInlineOpacity() }; var dims = element.getDimensions(); var initialMoveX, initialMoveY; var moveX, moveY; switch (options.direction) { case 'top-left': initialMoveX = initialMoveY = moveX = moveY = 0; break; case 'top-right': initialMoveX = dims.width; initialMoveY = moveY = 0; moveX = -dims.width; break; case 'bottom-left': initialMoveX = moveX = 0; initialMoveY = dims.height; moveY = -dims.height; break; case 'bottom-right': initialMoveX = dims.width; initialMoveY = dims.height; moveX = -dims.width; moveY = -dims.height; break; case 'center': initialMoveX = dims.width / 2; initialMoveY = dims.height / 2; moveX = -dims.width / 2; moveY = -dims.height / 2; break; } return new Effect.Move(element, { x: initialMoveX, y: initialMoveY, duration: 0.01, beforeSetup: function(effect) { effect.element.hide().makeClipping().makePositioned(); }, afterFinishInternal: function(effect) { new Effect.Parallel( [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }), new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }), new Effect.Scale(effect.element, 100, { scaleMode: { originalHeight: dims.height, originalWidth: dims.width }, sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true}) ], Object.extend({ beforeSetup: function(effect) { effect.effects[0].element.setStyle({height: '0px'}).show(); }, afterFinishInternal: function(effect) { effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle); } }, options) ) } }); } Effect.Shrink = function(element) { element = $(element); var options = Object.extend({ direction: 'center', moveTransition: Effect.Transitions.sinoidal, scaleTransition: Effect.Transitions.sinoidal, opacityTransition: Effect.Transitions.none }, arguments[1] || {}); var oldStyle = { top: element.style.top, left: element.style.left, height: element.style.height, width: element.style.width, opacity: element.getInlineOpacity() }; var dims = element.getDimensions(); var moveX, moveY; switch (options.direction) { case 'top-left': moveX = moveY = 0; break; case 'top-right': moveX = dims.width; moveY = 0; break; case 'bottom-left': moveX = 0; moveY = dims.height; break; case 'bottom-right': moveX = dims.width; moveY = dims.height; break; case 'center': moveX = dims.width / 2; moveY = dims.height / 2; break; } return new Effect.Parallel( [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }), new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}), new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }) ], Object.extend({ beforeStartInternal: function(effect) { effect.effects[0].element.makePositioned().makeClipping(); }, afterFinishInternal: function(effect) { effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle); } }, options) ); } Effect.Pulsate = function(element) { element = $(element); var options = arguments[1] || {}; var oldOpacity = element.getInlineOpacity(); var transition = options.transition || Effect.Transitions.sinoidal; var reverser = function(pos){ return transition(1-Effect.Transitions.pulse(pos, options.pulses)) }; reverser.bind(transition); return new Effect.Opacity(element, Object.extend(Object.extend({ duration: 2.0, from: 0, afterFinishInternal: function(effect) { effect.element.setStyle({opacity: oldOpacity}); } }, options), {transition: reverser})); } Effect.Fold = function(element) { element = $(element); var oldStyle = { top: element.style.top, left: element.style.left, width: element.style.width, height: element.style.height }; element.makeClipping(); return new Effect.Scale(element, 5, Object.extend({ scaleContent: false, scaleX: false, afterFinishInternal: function(effect) { new Effect.Scale(element, 1, { scaleContent: false, scaleY: false, afterFinishInternal: function(effect) { effect.element.hide().undoClipping().setStyle(oldStyle); } }); }}, arguments[1] || {})); }; Effect.Morph = Class.create(); Object.extend(Object.extend(Effect.Morph.prototype, Effect.Base.prototype), { initialize: function(element) { this.element = $(element); if(!this.element) throw(Effect._elementDoesNotExistError); var options = Object.extend({ style: {} }, arguments[1] || {}); if (typeof options.style == 'string') { if(options.style.indexOf(':') == -1) { var cssText = '', selector = '.' + options.style; $A(document.styleSheets).reverse().each(function(styleSheet) { if (styleSheet.cssRules) cssRules = styleSheet.cssRules; else if (styleSheet.rules) cssRules = styleSheet.rules; $A(cssRules).reverse().each(function(rule) { if (selector == rule.selectorText) { cssText = rule.style.cssText; throw $break; } }); if (cssText) throw $break; }); this.style = cssText.parseStyle(); options.afterFinishInternal = function(effect){ effect.element.addClassName(effect.options.style); effect.transforms.each(function(transform) { if(transform.style != 'opacity') effect.element.style[transform.style] = ''; }); } } else this.style = options.style.parseStyle(); } else this.style = $H(options.style) this.start(options); }, setup: function(){ function parseColor(color){ if(!color || ['rgba(0, 0, 0, 0)','transparent'].include(color)) color = '#ffffff'; color = color.parseColor(); return $R(0,2).map(function(i){ return parseInt( color.slice(i*2+1,i*2+3), 16 ) }); } this.transforms = this.style.map(function(pair){ var property = pair[0], value = pair[1], unit = null; if(value.parseColor('#zzzzzz') != '#zzzzzz') { value = value.parseColor(); unit = 'color'; } else if(property == 'opacity') { value = parseFloat(value); if(Prototype.Browser.IE && (!this.element.currentStyle.hasLayout)) this.element.setStyle({zoom: 1}); } else if(Element.CSS_LENGTH.test(value)) { var components = value.match(/^([\+\-]?[0-9\.]+)(.*)$/); value = parseFloat(components[1]); unit = (components.length == 3) ? components[2] : null; } var originalValue = this.element.getStyle(property); return { style: property.camelize(), originalValue: unit=='color' ? parseColor(originalValue) : parseFloat(originalValue || 0), targetValue: unit=='color' ? parseColor(value) : value, unit: unit }; }.bind(this)).reject(function(transform){ return ( (transform.originalValue == transform.targetValue) || ( transform.unit != 'color' && (isNaN(transform.originalValue) || isNaN(transform.targetValue)) ) ) }); }, update: function(position) { var style = {}, transform, i = this.transforms.length; while(i--) style[(transform = this.transforms[i]).style] = transform.unit=='color' ? '#'+ (Math.round(transform.originalValue[0]+ (transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart() + (Math.round(transform.originalValue[1]+ (transform.targetValue[1]-transform.originalValue[1])*position)).toColorPart() + (Math.round(transform.originalValue[2]+ (transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart() : transform.originalValue + Math.round( ((transform.targetValue - transform.originalValue) * position) * 1000)/1000 + transform.unit; this.element.setStyle(style, true); } }); Effect.Transform = Class.create(); Object.extend(Effect.Transform.prototype, { initialize: function(tracks){ this.tracks = []; this.options = arguments[1] || {}; this.addTracks(tracks); }, addTracks: function(tracks){ tracks.each(function(track){ var data = $H(track).values().first(); this.tracks.push($H({ ids: $H(track).keys().first(), effect: Effect.Morph, options: { style: data } })); }.bind(this)); return this; }, play: function(){ return new Effect.Parallel( this.tracks.map(function(track){ var elements = [$(track.ids) || $$(track.ids)].flatten(); return elements.map(function(e){ return new track.effect(e, Object.extend({ sync:true }, track.options)) }); }).flatten(), this.options ); } }); Element.CSS_PROPERTIES = $w( 'backgroundColor backgroundPosition borderBottomColor borderBottomStyle ' + 'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' + 'borderRightColor borderRightStyle borderRightWidth borderSpacing ' + 'borderTopColor borderTopStyle borderTopWidth bottom clip color ' + 'fontSize fontWeight height left letterSpacing lineHeight ' + 'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+ 'maxWidth minHeight minWidth opacity outlineColor outlineOffset ' + 'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' + 'right textIndent top width wordSpacing zIndex'); Element.CSS_LENGTH = /^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/; String.prototype.parseStyle = function(){ var element = document.createElement('div'); element.innerHTML = '<div style="' + this + '"></div>'; var style = element.childNodes[0].style, styleRules = $H(); Element.CSS_PROPERTIES.each(function(property){ if(style[property]) styleRules[property] = style[property]; }); if(Prototype.Browser.IE && this.indexOf('opacity') > -1) { styleRules.opacity = this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]; } return styleRules; }; Element.morph = function(element, style) { new Effect.Morph(element, Object.extend({ style: style }, arguments[2] || {})); return element; }; ['getInlineOpacity','forceRerendering','setContentZoom', 'collectTextNodes','collectTextNodesIgnoreClass','morph'].each( function(f) { Element.Methods[f] = Element[f]; } ); Element.Methods.visualEffect = function(element, effect, options) { s = effect.dasherize().camelize(); effect_class = s.charAt(0).toUpperCase() + s.substring(1); new Effect[effect_class](element, options); return $(element); }; Element.addMethods(); /** * @author Ryan Johnson <ryan@livepipe.net> * @copyright 2007 LivePipe LLC * @package Object.Event * @license MIT * @url http://livepipe.net/projects/object_event/ * @version 1.0.0 */ Object.Event = { extend: function(object){ object._objectEventSetup = function(event_name){ this._observers = this._observers || {}; this._observers[event_name] = this._observers[event_name] || []; }; object.observe = function(event_name,observer){ if(typeof(event_name) == 'string' && typeof(observer) != 'undefined'){ this._objectEventSetup(event_name); if(!this._observers[event_name].include(observer)) this._observers[event_name].push(observer); }else for(var e in event_name) this.observe(e,event_name[e]); }; object.stopObserving = function(event_name,observer){ this._objectEventSetup(event_name); this._observers[event_name] = this._observers[event_name].without(observer); }; object.notify = function(event_name){ this._objectEventSetup(event_name); var collected_return_values = []; var args = $A(arguments).slice(1); try{ for(var i = 0; i < this._observers[event_name].length; ++i) collected_return_values.push(this._observers[event_name][i].apply(this._observers[event_name][i],args) || null); }catch(e){ if(e == $break) return false; else throw e; } return collected_return_values; }; if(object.prototype){ object.prototype._objectEventSetup = object._objectEventSetup; object.prototype.observe = object.observe; object.prototype.stopObserving = object.stopObserving; object.prototype.notify = function(event_name){ if(object.notify){ var args = $A(arguments).slice(1); args.unshift(this); args.unshift(event_name); object.notify.apply(object,args); } this._objectEventSetup(event_name); var args = $A(arguments).slice(1); var collected_return_values = []; try{ if(this.options && this.options[event_name] && typeof(this.options[event_name]) == 'function') collected_return_values.push(this.options[event_name].apply(this,args) || null); for(var i = 0; i < this._observers[event_name].length; ++i) collected_return_values.push(this._observers[event_name][i].apply(this._observers[event_name][i],args) || null); }catch(e){ if(e == $break) return false; else throw e; } return collected_return_values; };; } } }; /** * @author Ryan Johnson <ryan@livepipe.net> * @copyright 2007 LivePipe LLC * @package Control.Modal * @license MIT * @url http://livepipe.net/projects/control_modal/ * @version 2.2.3 */ if(typeof(Control) == "undefined") Control = {}; Control.Modal = Class.create(); Object.extend(Control.Modal,{ loaded: false, loading: false, loadingTimeout: false, overlay: false, container: false, current: false, ie: false, effects: { containerFade: false, containerAppear: false, overlayFade: false, overlayAppear: false }, targetRegexp: /#(.+)$/, imgRegexp: /\.(jpe?g|gif|png|tiff?)$/i, overlayStyles: { position: 'absolute',// change indoo sql grid for ff, original value fixed top: 0, left: 0, width: '100%', height: '1000%', zIndex: 9998 }, overlayIEStyles: { position: 'absolute', top: 0, left: 0, zIndex: 9998 }, disableHoverClose: false, load: function(){ if(!Control.Modal.loaded){ Control.Modal.loaded = true; Control.Modal.ie = !(typeof document.body.style.maxHeight != 'undefined'); Control.Modal.overlay = $(document.createElement('div')); Control.Modal.overlay.id = 'modal_overlay'; Object.extend(Control.Modal.overlay.style,Control.Modal['overlay' + (Control.Modal.ie ? 'IE' : '') + 'Styles']); Control.Modal.overlay.hide(); Control.Modal.container = $(document.createElement('div')); Control.Modal.container.id = 'modal_container'; Control.Modal.container.hide(); Control.Modal.loading = $(document.createElement('div')); Control.Modal.loading.id = 'modal_loading'; Control.Modal.loading.hide(); var body_tag = document.getElementsByTagName('body')[0]; body_tag.appendChild(Control.Modal.overlay); body_tag.appendChild(Control.Modal.container); body_tag.appendChild(Control.Modal.loading); Control.Modal.container.observe('mouseout',function(event){ if(!Control.Modal.disableHoverClose && Control.Modal.current && Control.Modal.current.options.hover && !Position.within(Control.Modal.container,Event.pointerX(event),Event.pointerY(event))) Control.Modal.close(); }); } }, open: function(contents,options){ options = options || {}; if(!options.contents) options.contents = contents; var modal_instance = new Control.Modal(false,options); modal_instance.open(); return modal_instance; }, close: function(force){ if(typeof(force) != 'boolean') force = false; if(Control.Modal.current) Control.Modal.current.close(force); }, attachEvents: function(){ Event.observe(window,'load',Control.Modal.load); Event.observe(window,'unload',Event.unloadCache,false); }, center: function(element){ if(!element._absolutized){ element.setStyle({ position: 'absolute' }); element._absolutized = true; } var dimensions = element.getDimensions(); Position.prepare(); var offset_left = (Position.deltaX + Math.floor((Control.Modal.getWindowWidth() - dimensions.width) / 2)); var offset_top = (Position.deltaY + ((Control.Modal.getWindowHeight() > dimensions.height) ? Math.floor((Control.Modal.getWindowHeight() - dimensions.height) / 2) : 0)); element.setStyle({ top: ((dimensions.height <= Control.Modal.getDocumentHeight()) ? ((offset_top != null && offset_top > 0) ? offset_top : '0') + 'px' : 0), left: ((dimensions.width <= Control.Modal.getDocumentWidth()) ? ((offset_left != null && offset_left > 0) ? offset_left : '0') + 'px' : 0) }); }, getWindowWidth: function(){ return (self.innerWidth || document.documentElement.clientWidth || document.body.clientWidth || 0); }, getWindowHeight: function(){ return (self.innerHeight || document.documentElement.clientHeight || document.body.clientHeight || 0); }, getDocumentWidth: function(){ return Math.min(document.body.scrollWidth,Control.Modal.getWindowWidth()); }, getDocumentHeight: function(){ return Math.max(document.body.scrollHeight,Control.Modal.getWindowHeight()); }, onKeyDown: function(event){ if(event.keyCode == Event.KEY_ESC) Control.Modal.close(); } }); Object.extend(Control.Modal.prototype,{ mode: '', html: false, href: '', element: false, src: false, imageLoaded: false, ajaxRequest: false, initialize: function(element,options){ this.element = $(element); this.options = { beforeOpen: Prototype.emptyFunction, afterOpen: Prototype.emptyFunction, beforeClose: Prototype.emptyFunction, afterClose: Prototype.emptyFunction, onSuccess: Prototype.emptyFunction, onFailure: Prototype.emptyFunction, onException: Prototype.emptyFunction, beforeImageLoad: Prototype.emptyFunction, afterImageLoad: Prototype.emptyFunction, autoOpenIfLinked: true, contents: false, loading: false, //display loading indicator fade: false, fadeDuration: 0.75, image: false, imageCloseOnClick: true, hover: false, iframe: false, iframeTemplate: new Template('<iframe src="#{href}" width="100%" height="100%" frameborder="0" id="#{id}"></iframe>'), evalScripts: true, //for Ajax, define here instead of in requestOptions requestOptions: {}, //for Ajax.Request overlayDisplay: true, overlayClassName: '', overlayCloseOnClick: true, containerClassName: '', opacity: 0.3, zIndex: 9998, width: null, height: null, offsetLeft: 0, //for use with 'relative' offsetTop: 0, //for use with 'relative' position: 'absolute' //'absolute' or 'relative' }; Object.extend(this.options,options || {}); var target_match = false; var image_match = false; if(this.element){ target_match = Control.Modal.targetRegexp.exec(this.element.href); image_match = Control.Modal.imgRegexp.exec(this.element.href); } if(this.options.position == 'mouse') this.options.hover = true; if(this.options.contents){ this.mode = 'contents'; }else if(this.options.image || image_match){ this.mode = 'image'; this.src = this.element.href; }else if(target_match){ this.mode = 'named'; var x = $(target_match[1]); this.html = x.innerHTML; x.remove(); this.href = target_match[1]; }else{ this.mode = (this.options.iframe) ? 'iframe' : 'ajax'; this.href = this.element.href; } if(this.element){ if(this.options.hover){ this.element.observe('mouseover',this.open.bind(this)); this.element.observe('mouseout',function(event){ if(!Position.within(Control.Modal.container,Event.pointerX(event),Event.pointerY(event))) this.close(); }.bindAsEventListener(this)); }else{ this.element.onclick = function(event){ this.open(); Event.stop(event); return false; }.bindAsEventListener(this); } } var targets = Control.Modal.targetRegexp.exec(window.location); this.position = function(event){ if(this.options.position == 'absolute') Control.Modal.center(Control.Modal.container); else{ var xy = (event && this.options.position == 'mouse' ? [Event.pointerX(event),Event.pointerY(event)] : Position.cumulativeOffset(this.element)); Control.Modal.container.setStyle({ position: 'absolute', top: xy[1] + (typeof(this.options.offsetTop) == 'function' ? this.options.offsetTop() : this.options.offsetTop) + 'px', left: xy[0] + (typeof(this.options.offsetLeft) == 'function' ? this.options.offsetLeft() : this.options.offsetLeft) + 'px' }); } if(Control.Modal.ie){ Control.Modal.overlay.setStyle({ height: Control.Modal.getDocumentHeight() + 'px', width: Control.Modal.getDocumentWidth() + 'px' }); } }.bind(this); if(this.mode == 'named' && this.options.autoOpenIfLinked && targets && targets[1] && targets[1] == this.href) this.open(); }, showLoadingIndicator: function(){ if(this.options.loading){ Control.Modal.loadingTimeout = window.setTimeout(function(){ var modal_image = $('modal_image'); if(modal_image) modal_image.hide(); Control.Modal.loading.style.zIndex = this.options.zIndex + 1; Control.Modal.loading.update('<img id="modal_loading" src="' + this.options.loading + '"/>'); Control.Modal.loading.show(); Control.Modal.center(Control.Modal.loading); }.bind(this),250); } }, hideLoadingIndicator: function(){ if(this.options.loading){ if(Control.Modal.loadingTimeout) window.clearTimeout(Control.Modal.loadingTimeout); var modal_image = $('modal_image'); if(modal_image) modal_image.show(); Control.Modal.loading.hide(); } }, open: function(force){ if(!force && this.notify('beforeOpen') === false) return; if(!Control.Modal.loaded) Control.Modal.load(); Control.Modal.close(); if(!this.options.hover) Event.observe($(document.getElementsByTagName('body')[0]),'keydown',Control.Modal.onKeyDown); Control.Modal.current = this; if(!this.options.hover) Control.Modal.overlay.setStyle({ zIndex: this.options.zIndex, opacity: this.options.opacity }); Control.Modal.container.setStyle({ zIndex: this.options.zIndex + 1, width: (this.options.width ? (typeof(this.options.width) == 'function' ? this.options.width() : this.options.width) + 'px' : null), height: (this.options.height ? (typeof(this.options.height) == 'function' ? this.options.height() : this.options.height) + 'px' : null) }); if(Control.Modal.ie && !this.options.hover){ $A(document.getElementsByTagName('select')).each(function(select){ select.style.visibility = 'hidden'; }); } Control.Modal.overlay.addClassName(this.options.overlayClassName); Control.Modal.container.addClassName(this.options.containerClassName); switch(this.mode){ case 'image': this.imageLoaded = false; this.notify('beforeImageLoad'); this.showLoadingIndicator(); var img = document.createElement('img'); img.onload = function(img){ this.hideLoadingIndicator(); this.update([img]); if(this.options.imageCloseOnClick) $(img).observe('click',Control.Modal.close); this.position(); this.notify('afterImageLoad'); img.onload = null; }.bind(this,img); img.src = this.src; img.id = 'modal_image'; break; case 'ajax': this.notify('beforeLoad'); var options = { method: 'post', onSuccess: function(request){ this.hideLoadingIndicator(); this.update(request.responseText); this.notify('onSuccess',request); this.ajaxRequest = false; }.bind(this), onFailure: function(){ this.notify('onFailure'); }.bind(this), onException: function(){ this.notify('onException'); }.bind(this) }; Object.extend(options,this.options.requestOptions); this.showLoadingIndicator(); this.ajaxRequest = new Ajax.Request(this.href,options); break; case 'iframe': this.update(this.options.iframeTemplate.evaluate({href: this.href, id: 'modal_iframe'})); break; case 'contents': this.update((typeof(this.options.contents) == 'function' ? this.options.contents() : this.options.contents)); break; case 'named': this.update(this.html); break; } if(!this.options.hover){ if(this.options.overlayCloseOnClick && this.options.overlayDisplay) Control.Modal.overlay.observe('click',Control.Modal.close); if(this.options.overlayDisplay){ if(this.options.fade){ if(Control.Modal.effects.overlayFade) Control.Modal.effects.overlayFade.cancel(); Control.Modal.effects.overlayAppear = new Effect.Appear(Control.Modal.overlay,{ queue: { position: 'front', scope: 'Control.Modal' }, to: this.options.opacity, duration: this.options.fadeDuration / 2 }); }else Control.Modal.overlay.show(); } } if(this.options.position == 'mouse'){ this.mouseHoverListener = this.position.bindAsEventListener(this); this.element.observe('mousemove',this.mouseHoverListener); } this.notify('afterOpen'); }, update: function(html){ if(typeof(html) == 'string') Control.Modal.container.update(html); else{ Control.Modal.container.update(''); (html.each) ? html.each(function(node){ Control.Modal.container.appendChild(node); }) : Control.Modal.container.appendChild(node); } if(this.options.fade){ if(Control.Modal.effects.containerFade) Control.Modal.effects.containerFade.cancel(); Control.Modal.effects.containerAppear = new Effect.Appear(Control.Modal.container,{ queue: { position: 'end', scope: 'Control.Modal' }, to: 1, duration: this.options.fadeDuration / 2 }); }else Control.Modal.container.show(); this.position(); Event.observe(window,'resize',this.position,false); Event.observe(window,'scroll',this.position,false); }, close: function(force){ if(!force && this.notify('beforeClose') === false) return; if(this.ajaxRequest) this.ajaxRequest.transport.abort(); this.hideLoadingIndicator(); if(this.mode == 'image'){ var modal_image = $('modal_image'); if(this.options.imageCloseOnClick && modal_image) modal_image.stopObserving('click',Control.Modal.close); } if(Control.Modal.ie && !this.options.hover){ $A(document.getElementsByTagName('select')).each(function(select){ select.style.visibility = 'visible'; }); } if(!this.options.hover) Event.stopObserving(window,'keyup',Control.Modal.onKeyDown); Control.Modal.current = false; Event.stopObserving(window,'resize',this.position,false); Event.stopObserving(window,'scroll',this.position,false); if(!this.options.hover){ if(this.options.overlayCloseOnClick && this.options.overlayDisplay) Control.Modal.overlay.stopObserving('click',Control.Modal.close); if(this.options.overlayDisplay){ if(this.options.fade){ if(Control.Modal.effects.overlayAppear) Control.Modal.effects.overlayAppear.cancel(); Control.Modal.effects.overlayFade = new Effect.Fade(Control.Modal.overlay,{ queue: { position: 'end', scope: 'Control.Modal' }, from: this.options.opacity, to: 0, duration: this.options.fadeDuration / 2 }); }else Control.Modal.overlay.hide(); } } if(this.options.fade){ if(Control.Modal.effects.containerAppear) Control.Modal.effects.containerAppear.cancel(); Control.Modal.effects.containerFade = new Effect.Fade(Control.Modal.container,{ queue: { position: 'front', scope: 'Control.Modal' }, from: 1, to: 0, duration: this.options.fadeDuration / 2, afterFinish: function(){ Control.Modal.container.update(''); this.resetClassNameAndStyles(); }.bind(this) }); }else{ //Control.Modal.container.hide(); Control.Modal.container.update(''); this.resetClassNameAndStyles(); } if(this.options.position == 'mouse') this.element.stopObserving('mousemove',this.mouseHoverListener); this.notify('afterClose'); }, resetClassNameAndStyles: function(){ Control.Modal.overlay.removeClassName(this.options.overlayClassName); Control.Modal.container.removeClassName(this.options.containerClassName); Control.Modal.container.setStyle({ height: null, width: null, top: null, left: null }); }, notify: function(event_name){ try{ if(this.options[event_name]) return [this.options[event_name].apply(this.options[event_name],$A(arguments).slice(1))]; }catch(e){ if(e != $break) throw e; else return false; } } }); if(typeof(Object.Event) != 'undefined') Object.Event.extend(Control.Modal); Control.Modal.attachEvents(); </script> <script> function Indoo_template_0108_f(el_id, link){ return '<table class="boxIndoo_template_0108" ><tr>' + '<td class="boxIndoo_template_01083"><a href="javascript:Indoo_template_0108_getOther(\'' + el_id + '\',-1)">Previous</a>&nbsp;&nbsp;' + '<a href="javascript:Indoo_template_0108_getOther(\'' + el_id + '\',+1)">Next</a></td>' + '<td class="boxIndoo_template_01082"><a href="#" onclick="Control.Modal.close()">Close</a></td>' + '</tr><tr><td class="boxIndoo_template_01083" colspan="2"><center><br /><strong>' + document.getElementById(el_id+'y').innerHTML + '</strong><br /></center></td>' + '</tr><tr><td class="boxIndoo_template_01081" colspan="2"><center>' + link + '</center></td></tr><tr>' + '<td class="boxIndoo_template_01083" colspan="2"><br />' + document.getElementById(el_id+'x').innerHTML + '<br /><br /></td></tr><tr>' + '<td class="boxIndoo_template_01083"><a href="#" onclick="Control.Modal.close()">Close</a></td>' + '<td class="boxIndoo_template_01082"><a href="javascript:Indoo_template_0108_getOther(\'' + el_id + '\',-1)">Previous</a>&nbsp;&nbsp;' + '<a href="javascript:Indoo_template_0108_getOther(\'' + el_id + '\',+1)">Next</a></td>' + '</tr></table>' } function funcIndoo_template_0108a__(imgId,text){ vid=text.substring(text.indexOf('http://www.youtube.com/v/')+25,text.indexOf('&')) img =document.getElementById(imgId);img.src="http://img.youtube.com/vi/" + vid + "/default.jpg" ;if(vid==''){img.style.display='none'} } </script> startupScriptBlock onSubmitScriptBlock sqlOnInsertRecord sqlOnUpdateRecord sqlOnViewModule sqlOnViewRecord addcreatestatement createKeyColumn gridviewcolumn.1.binarydata.isforcedownload gridviewcolumn.0.binarydata.isforcedownload gridviewcolumn.2.binarydata.isforcedownload gridviewcolumn.3.binarydata.isforcedownload sqlOnUpdateFinishRecord gridViewColumn.4.Visible gridViewColumn.4.allowExport gridViewColumn.4.allowEdit gridViewColumn.4.allowFilter 0 gridViewColumn.4.allowSort gridViewColumn.4.allowImport gridViewColumn.4.columnName ID_1 gridViewColumn.4.caption gridViewColumn.4.width gridViewColumn.4.defaultContent gridViewColumn.4.formatData gridViewColumn.4.importDefault gridViewColumn.4.filterAdditionalColumn gridViewColumn.4.defaultSortColumn gridViewColumn.4.isBoolean gridViewColumn.4.isLink gridViewColumn.4.isOther 0 gridViewColumn.4.isBinary gridViewColumn.4.isJoin gridViewColumn.4.isHtmlAttributes gridViewColumn.5.Visible gridViewColumn.5.allowExport gridViewColumn.5.allowEdit gridViewColumn.5.allowFilter 0 gridViewColumn.5.allowSort gridViewColumn.5.allowImport gridViewColumn.5.columnName ID_2 gridViewColumn.5.caption gridViewColumn.5.width gridViewColumn.5.defaultContent gridViewColumn.5.formatData gridViewColumn.5.importDefault gridViewColumn.5.filterAdditionalColumn gridViewColumn.5.defaultSortColumn gridViewColumn.5.isBoolean gridViewColumn.5.isLink gridViewColumn.5.isOther 0 gridViewColumn.5.isBinary gridViewColumn.5.isJoin gridViewColumn.5.isHtmlAttributes gridViewColumn.6.Visible gridViewColumn.6.allowExport gridViewColumn.6.allowEdit gridViewColumn.6.allowFilter 0 gridViewColumn.6.allowSort gridViewColumn.6.allowImport gridViewColumn.6.columnName ID_3 gridViewColumn.6.caption gridViewColumn.6.width gridViewColumn.6.defaultContent gridViewColumn.6.formatData gridViewColumn.6.importDefault gridViewColumn.6.filterAdditionalColumn gridViewColumn.6.defaultSortColumn gridViewColumn.6.isBoolean gridViewColumn.6.isLink gridViewColumn.6.isOther 0 gridViewColumn.6.isBinary gridViewColumn.6.isJoin gridViewColumn.6.isHtmlAttributes gridViewColumn.7.Visible gridViewColumn.7.allowExport gridViewColumn.7.allowEdit gridViewColumn.7.allowFilter 0 gridViewColumn.7.allowSort gridViewColumn.7.allowImport gridViewColumn.7.columnName ID_4 gridViewColumn.7.caption gridViewColumn.7.width gridViewColumn.7.defaultContent gridViewColumn.7.formatData gridViewColumn.7.importDefault gridViewColumn.7.filterAdditionalColumn gridViewColumn.7.defaultSortColumn gridViewColumn.7.isBoolean gridViewColumn.7.isLink gridViewColumn.7.isOther 0 gridViewColumn.7.isBinary gridViewColumn.7.isJoin gridViewColumn.7.isHtmlAttributes gridViewColumn.8.columnName FileDate_2 gridViewColumn.8.Visible gridViewColumn.8.allowExport gridViewColumn.8.allowEdit gridViewColumn.8.allowFilter 0 gridViewColumn.8.allowSort gridViewColumn.8.allowImport gridViewColumn.8.isOther 0 gridViewColumn.9.columnName UserID_2 gridViewColumn.9.Visible gridViewColumn.9.allowExport gridViewColumn.9.allowEdit gridViewColumn.9.allowFilter 0 gridViewColumn.9.allowSort gridViewColumn.9.allowImport gridViewColumn.9.isOther 0 gridViewColumn.10.columnName FileDescription_2 gridViewColumn.10.Visible gridViewColumn.10.allowExport gridViewColumn.10.allowEdit gridViewColumn.10.allowFilter 0 gridViewColumn.10.allowSort gridViewColumn.10.allowImport gridViewColumn.10.isOther 0 gridViewColumn.11.columnName FileDate_1 gridViewColumn.11.Visible gridViewColumn.11.allowExport gridViewColumn.11.allowEdit gridViewColumn.11.allowFilter 1 gridViewColumn.11.allowSort gridViewColumn.11.allowImport gridViewColumn.11.isOther 0 gridViewColumn.12.columnName UserID_1 gridViewColumn.12.Visible gridViewColumn.12.allowExport gridViewColumn.12.allowEdit gridViewColumn.12.allowFilter 1 gridViewColumn.12.allowSort gridViewColumn.12.allowImport gridViewColumn.12.isOther 0 gridViewColumn.13.columnName FileDescription_1 gridViewColumn.13.Visible gridViewColumn.13.allowExport gridViewColumn.13.allowEdit gridViewColumn.13.allowFilter 1 gridViewColumn.13.allowSort gridViewColumn.13.allowImport gridViewColumn.13.isOther 0 gridViewColumn.14.columnName FileDate_3 gridViewColumn.14.Visible gridViewColumn.14.allowExport gridViewColumn.14.allowEdit gridViewColumn.14.allowFilter 0 gridViewColumn.14.allowSort gridViewColumn.14.allowImport gridViewColumn.14.isOther 0 gridViewColumn.15.columnName UserID_3 gridViewColumn.15.Visible gridViewColumn.15.allowExport gridViewColumn.15.allowEdit gridViewColumn.15.allowFilter 0 gridViewColumn.15.allowSort gridViewColumn.15.allowImport gridViewColumn.15.isOther 0 gridViewColumn.16.columnName FileDescription_3 gridViewColumn.16.Visible gridViewColumn.16.allowExport gridViewColumn.16.allowEdit gridViewColumn.16.allowFilter 0 gridViewColumn.16.allowSort gridViewColumn.16.allowImport gridViewColumn.16.isOther 0 gridViewColumn.17.columnName UserID_4 gridViewColumn.17.Visible gridViewColumn.17.allowExport gridViewColumn.17.allowEdit gridViewColumn.17.allowFilter 0 gridViewColumn.17.allowSort gridViewColumn.17.allowImport gridViewColumn.17.isOther 0 gridViewColumn.18.columnName FileDescription_4 gridViewColumn.18.Visible gridViewColumn.18.allowExport gridViewColumn.18.allowEdit gridViewColumn.18.allowFilter 0 gridViewColumn.18.allowSort gridViewColumn.18.allowImport gridViewColumn.18.isOther 0 gridViewColumn.19.columnName FileDate_4 gridViewColumn.19.Visible gridViewColumn.19.allowExport gridViewColumn.19.allowEdit gridViewColumn.19.allowFilter 0 gridViewColumn.19.allowSort gridViewColumn.19.allowImport gridViewColumn.19.isOther 0 gridViewColumn.8.caption gridViewColumn.9.caption gridViewColumn.10.caption gridViewColumn.11.caption Date gridViewColumn.12.caption Username gridViewColumn.13.caption Description gridViewColumn.14.caption gridViewColumn.15.caption gridViewColumn.16.caption gridViewColumn.17.caption gridViewColumn.18.caption gridViewColumn.19.caption gridViewColumn.9.width gridViewColumn.9.defaultContent gridViewColumn.9.formatData gridViewColumn.9.importDefault gridViewColumn.9.filterAdditionalColumn gridViewColumn.9.defaultSortColumn gridViewColumn.9.isBoolean gridViewColumn.9.isLink gridViewColumn.9.isBinary gridViewColumn.9.isJoin on gridViewColumn.9.isHtmlAttributes gridViewColumn.9.navigateUrlTarget _blank gridViewColumn.9.joinTableName Users gridViewColumn.9.joinTableIdColumnName UserID gridViewColumn.9.joinTableColumnName Username gridViewColumn.11.width gridViewColumn.11.defaultContent gridViewColumn.11.formatData gridViewColumn.11.importDefault gridViewColumn.11.filterAdditionalColumn FileDate_2,FileDate_3,FileDate_4 gridViewColumn.11.defaultSortColumn gridViewColumn.11.isBoolean gridViewColumn.11.isLink gridViewColumn.11.isBinary gridViewColumn.11.isJoin gridViewColumn.11.isHtmlAttributes gridViewColumn.12.width gridViewColumn.12.defaultContent gridViewColumn.12.formatData gridViewColumn.12.importDefault gridViewColumn.12.filterAdditionalColumn UserID_2,UserID_3,UserID_4 gridViewColumn.12.defaultSortColumn gridViewColumn.12.isBoolean gridViewColumn.12.isLink gridViewColumn.12.isBinary gridViewColumn.12.isJoin on gridViewColumn.12.isHtmlAttributes gridViewColumn.12.navigateUrlTarget _blank gridViewColumn.12.joinTableName Users gridViewColumn.12.joinTableIdColumnName UserID gridViewColumn.12.joinTableColumnName Username gridViewColumn.15.width gridViewColumn.15.defaultContent gridViewColumn.15.formatData gridViewColumn.15.importDefault gridViewColumn.15.filterAdditionalColumn gridViewColumn.15.defaultSortColumn gridViewColumn.15.isBoolean gridViewColumn.15.isLink gridViewColumn.15.isBinary gridViewColumn.15.isJoin on gridViewColumn.15.isHtmlAttributes gridViewColumn.15.navigateUrlTarget _blank gridViewColumn.15.joinTableName Users gridViewColumn.15.joinTableIdColumnName UserID gridViewColumn.15.joinTableColumnName Username gridViewColumn.17.width gridViewColumn.17.defaultContent gridViewColumn.17.formatData gridViewColumn.17.importDefault gridViewColumn.17.filterAdditionalColumn gridViewColumn.17.defaultSortColumn gridViewColumn.17.isBoolean gridViewColumn.17.isLink gridViewColumn.17.isBinary gridViewColumn.17.isJoin on gridViewColumn.17.isHtmlAttributes gridViewColumn.17.navigateUrlTarget _blank gridViewColumn.17.joinTableName Users gridViewColumn.17.joinTableIdColumnName UserID gridViewColumn.17.joinTableColumnName Username gridViewColumn.13.width gridViewColumn.13.defaultContent gridViewColumn.13.formatData gridViewColumn.13.importDefault gridViewColumn.13.filterAdditionalColumn FileDescription_2,FileDescription_3,FileDescription_4 gridViewColumn.13.defaultSortColumn gridViewColumn.13.isBoolean gridViewColumn.13.isLink gridViewColumn.13.isBinary gridViewColumn.13.isJoin gridViewColumn.13.isHtmlAttributes gridViewColumn.20.Visible gridViewColumn.20.allowExport gridViewColumn.20.allowEdit gridViewColumn.20.allowFilter 0 gridViewColumn.20.allowSort gridViewColumn.20.allowImport gridViewColumn.20.columnName newID gridViewColumn.20.caption gridViewColumn.20.width gridViewColumn.20.defaultContent gridViewColumn.20.formatData gridViewColumn.20.importDefault gridViewColumn.20.filterAdditionalColumn gridViewColumn.20.defaultSortColumn gridViewColumn.20.isBoolean gridViewColumn.20.isLink gridViewColumn.20.isOther 0 gridViewColumn.20.isBinary gridViewColumn.20.isJoin gridViewColumn.20.isHtmlAttributes showGridView on showGridEdit on gridview.sqlstatementquery gridViewColumn.0.Visible on gridViewColumn.0.allowExport gridViewColumn.0.allowEdit gridViewColumn.0.allowFilter 0 gridViewColumn.0.allowSort gridViewColumn.0.allowImport gridViewColumn.0.columnName FileLink_1 gridViewColumn.0.caption gridViewColumn.0.width gridViewColumn.0.defaultContent gridViewColumn.0.formatData gridViewColumn.0.importDefault gridViewColumn.0.filterAdditionalColumn gridViewColumn.0.defaultSortColumn gridViewColumn.0.isBoolean gridViewColumn.0.isLink gridViewColumn.0.isOther 2 gridViewColumn.0.isBinary gridViewColumn.0.isJoin gridViewColumn.0.isHtmlAttributes gridViewColumn.1.Visible on gridViewColumn.1.allowExport gridViewColumn.1.allowEdit gridViewColumn.1.allowFilter 0 gridViewColumn.1.allowSort gridViewColumn.1.allowImport gridViewColumn.1.columnName FileLink_2 gridViewColumn.1.caption gridViewColumn.1.width gridViewColumn.1.defaultContent gridViewColumn.1.formatData gridViewColumn.1.importDefault gridViewColumn.1.filterAdditionalColumn gridViewColumn.1.defaultSortColumn gridViewColumn.1.isBoolean gridViewColumn.1.isLink gridViewColumn.1.isOther 2 gridViewColumn.1.isBinary gridViewColumn.1.isJoin gridViewColumn.1.isHtmlAttributes gridViewColumn.2.Visible on gridViewColumn.2.allowExport gridViewColumn.2.allowEdit gridViewColumn.2.allowFilter 0 gridViewColumn.2.allowSort gridViewColumn.2.allowImport gridViewColumn.2.columnName FileLink_3 gridViewColumn.2.caption gridViewColumn.2.width gridViewColumn.2.defaultContent gridViewColumn.2.formatData gridViewColumn.2.importDefault gridViewColumn.2.filterAdditionalColumn gridViewColumn.2.defaultSortColumn gridViewColumn.2.isBoolean gridViewColumn.2.isLink gridViewColumn.2.isOther 2 gridViewColumn.2.isBinary gridViewColumn.2.isJoin gridViewColumn.2.isHtmlAttributes gridViewColumn.3.Visible on gridViewColumn.3.allowExport gridViewColumn.3.allowEdit gridViewColumn.3.allowFilter 0 gridViewColumn.3.allowSort gridViewColumn.3.allowImport gridViewColumn.3.columnName FileLink_4 gridViewColumn.3.caption gridViewColumn.3.width gridViewColumn.3.defaultContent gridViewColumn.3.formatData gridViewColumn.3.importDefault gridViewColumn.3.filterAdditionalColumn gridViewColumn.3.defaultSortColumn gridViewColumn.3.isBoolean gridViewColumn.3.isLink gridViewColumn.3.isOther 2 gridViewColumn.3.isBinary gridViewColumn.3.isJoin gridViewColumn.3.isHtmlAttributes gridViewColumn.21.Visible gridViewColumn.21.allowExport gridViewColumn.21.allowEdit gridViewColumn.21.allowFilter 1 gridViewColumn.21.allowSort gridViewColumn.21.allowImport gridViewColumn.21.columnName Title_1 gridViewColumn.21.caption Title gridViewColumn.21.width gridViewColumn.21.defaultContent gridViewColumn.21.formatData gridViewColumn.21.importDefault gridViewColumn.21.filterAdditionalColumn Title_2,Title_3,Title_4 gridViewColumn.21.defaultSortColumn gridViewColumn.21.isBoolean gridViewColumn.21.isLink gridViewColumn.21.isOther 0 gridViewColumn.21.isBinary gridViewColumn.21.isJoin gridViewColumn.21.isHtmlAttributes gridViewColumn.22.Visible gridViewColumn.22.allowExport gridViewColumn.22.allowEdit gridViewColumn.22.allowFilter 0 gridViewColumn.22.allowSort gridViewColumn.22.allowImport gridViewColumn.22.columnName Title_2 gridViewColumn.22.caption gridViewColumn.22.width gridViewColumn.22.defaultContent gridViewColumn.22.formatData gridViewColumn.22.importDefault gridViewColumn.22.filterAdditionalColumn gridViewColumn.22.defaultSortColumn gridViewColumn.22.isBoolean gridViewColumn.22.isLink gridViewColumn.22.isOther 0 gridViewColumn.22.isBinary gridViewColumn.22.isJoin gridViewColumn.22.isHtmlAttributes gridViewColumn.23.Visible gridViewColumn.23.allowExport gridViewColumn.23.allowEdit gridViewColumn.23.allowFilter 0 gridViewColumn.23.allowSort gridViewColumn.23.allowImport gridViewColumn.23.columnName Title_3 gridViewColumn.23.caption gridViewColumn.23.width gridViewColumn.23.defaultContent gridViewColumn.23.formatData gridViewColumn.23.importDefault gridViewColumn.23.filterAdditionalColumn gridViewColumn.23.defaultSortColumn gridViewColumn.23.isBoolean gridViewColumn.23.isLink gridViewColumn.23.isOther 0 gridViewColumn.23.isBinary gridViewColumn.23.isJoin gridViewColumn.23.isHtmlAttributes gridViewColumn.24.Visible gridViewColumn.24.allowExport gridViewColumn.24.allowEdit gridViewColumn.24.allowFilter 0 gridViewColumn.24.allowSort gridViewColumn.24.allowImport gridViewColumn.24.columnName Title_4 gridViewColumn.24.caption gridViewColumn.24.width gridViewColumn.24.defaultContent gridViewColumn.24.formatData gridViewColumn.24.importDefault gridViewColumn.24.filterAdditionalColumn gridViewColumn.24.defaultSortColumn gridViewColumn.24.isBoolean gridViewColumn.24.isLink gridViewColumn.24.isOther 0 gridViewColumn.24.isBinary gridViewColumn.24.isJoin gridViewColumn.24.isHtmlAttributes gridViewColumn.0.customHTMLForm <SCRIPT> var Indoo_template_0108id_[columnField:newID]_[columnIndex] = 'Indoo_template_0108_x[columnField:newID]_[columnIndex]'; var Indoo_template_0108_c[columnField:newID]_[columnIndex] = '[columnField:FileLink_1]'; document.write('<a href="" id="'+Indoo_template_0108id_[columnField:newID]_[columnIndex]+'"><img id="'+Indoo_template_0108id_[columnField:newID]_[columnIndex]+'a" src="" border="0" /></a>') funcIndoo_template_0108a__(Indoo_template_0108id_[columnField:newID]_[columnIndex]+'a',Indoo_template_0108_c[columnField:newID]_[columnIndex]) new Control.Modal(Indoo_template_0108id_[columnField:newID]_[columnIndex],{overlayDisplay: true,contents: function(){return Indoo_template_0108_f(Indoo_template_0108id_[columnField:newID]_[columnIndex],Indoo_template_0108_c[columnField:newID]_[columnIndex])}}); Indoo_template_0108_ids[Indoo_template_0108_ids.length]=Indoo_template_0108id_[columnField:newID]_[columnIndex]; </SCRIPT> <TEXTAREA id=Indoo_template_0108_x[columnField:newID]_[columnIndex]x style="DISPLAY: none">[columnField:FileDescription_1]</TEXTAREA><TEXTAREA id=Indoo_template_0108_x[columnField:newID]_[columnIndex]y style="DISPLAY: none">[columnField:Title_1]</TEXTAREA> gridViewColumn.1.customHTMLForm <SCRIPT> var Indoo_template_0108id_[columnField:newID]_[columnIndex] = 'Indoo_template_0108_x[columnField:newID]_[columnIndex]'; var Indoo_template_0108_c[columnField:newID]_[columnIndex] = '[columnField:FileLink_2]'; document.write('<a href="" id="'+Indoo_template_0108id_[columnField:newID]_[columnIndex]+'"><img id="'+Indoo_template_0108id_[columnField:newID]_[columnIndex]+'a" src="" border="0" /></a>') funcIndoo_template_0108a__(Indoo_template_0108id_[columnField:newID]_[columnIndex]+'a',Indoo_template_0108_c[columnField:newID]_[columnIndex]) new Control.Modal(Indoo_template_0108id_[columnField:newID]_[columnIndex],{overlayDisplay: true,contents: function(){return Indoo_template_0108_f(Indoo_template_0108id_[columnField:newID]_[columnIndex],Indoo_template_0108_c[columnField:newID]_[columnIndex])}}); Indoo_template_0108_ids[Indoo_template_0108_ids.length]=Indoo_template_0108id_[columnField:newID]_[columnIndex]; </SCRIPT> <TEXTAREA id=Indoo_template_0108_x[columnField:newID]_[columnIndex]x style="DISPLAY: none">[columnField:FileDescription_2]</TEXTAREA><TEXTAREA id=Indoo_template_0108_x[columnField:newID]_[columnIndex]y style="DISPLAY: none">[columnField:Title_2]</TEXTAREA> gridViewColumn.2.customHTMLForm <SCRIPT> var Indoo_template_0108id_[columnField:newID]_[columnIndex] = 'Indoo_template_0108_x[columnField:newID]_[columnIndex]'; var Indoo_template_0108_c[columnField:newID]_[columnIndex] = '[columnField:FileLink_3]'; document.write('<a href="" id="'+Indoo_template_0108id_[columnField:newID]_[columnIndex]+'"><img id="'+Indoo_template_0108id_[columnField:newID]_[columnIndex]+'a" src="" border="0" /></a>') funcIndoo_template_0108a__(Indoo_template_0108id_[columnField:newID]_[columnIndex]+'a',Indoo_template_0108_c[columnField:newID]_[columnIndex]) new Control.Modal(Indoo_template_0108id_[columnField:newID]_[columnIndex],{overlayDisplay: true,contents: function(){return Indoo_template_0108_f(Indoo_template_0108id_[columnField:newID]_[columnIndex],Indoo_template_0108_c[columnField:newID]_[columnIndex])}}); Indoo_template_0108_ids[Indoo_template_0108_ids.length]=Indoo_template_0108id_[columnField:newID]_[columnIndex]; </SCRIPT> <TEXTAREA id=Indoo_template_0108_x[columnField:newID]_[columnIndex]x style="DISPLAY: none">[columnField:FileDescription_3]</TEXTAREA><TEXTAREA id=Indoo_template_0108_x[columnField:newID]_[columnIndex]y style="DISPLAY: none">[columnField:Title_3]</TEXTAREA> gridViewColumn.3.customHTMLForm <SCRIPT> var Indoo_template_0108id_[columnField:newID]_[columnIndex] = 'Indoo_template_0108_x[columnField:newID]_[columnIndex]'; var Indoo_template_0108_c[columnField:newID]_[columnIndex] = '[columnField:FileLink_4]'; document.write('<a href="" id="'+Indoo_template_0108id_[columnField:newID]_[columnIndex]+'"><img id="'+Indoo_template_0108id_[columnField:newID]_[columnIndex]+'a" src="" border="0" /></a>') funcIndoo_template_0108a__(Indoo_template_0108id_[columnField:newID]_[columnIndex]+'a',Indoo_template_0108_c[columnField:newID]_[columnIndex]) new Control.Modal(Indoo_template_0108id_[columnField:newID]_[columnIndex],{overlayDisplay: true,contents: function(){return Indoo_template_0108_f(Indoo_template_0108id_[columnField:newID]_[columnIndex],Indoo_template_0108_c[columnField:newID]_[columnIndex])}}); Indoo_template_0108_ids[Indoo_template_0108_ids.length]=Indoo_template_0108id_[columnField:newID]_[columnIndex]; </SCRIPT> <TEXTAREA id=Indoo_template_0108_x[columnField:newID]_[columnIndex]x style="DISPLAY: none">[columnField:FileDescription_4]</TEXTAREA><TEXTAREA id=Indoo_template_0108_x[columnField:newID]_[columnIndex]y style="DISPLAY: none">[columnField:Title_4]</TEXTAREA> gridViewColumn.17.customHTMLForm <SCRIPT> var Indoo_template_0108id_[columnField:ID] = 'Indoo_template_0108_x[columnField:ID]'; var Indoo_template_0108_c[columnField:ID] = '[columnField:YouTubeEmbededLink]'; document.write('<a href="" id="'+Indoo_template_0108id_[columnField:ID]+'"><img id="'+Indoo_template_0108id_[columnField:ID]+'a" src="" border="0" /></a>') funcIndoo_template_0108a__(Indoo_template_0108id_[columnField:ID]+'a',Indoo_template_0108_c[columnField:ID]) new Control.Modal(Indoo_template_0108id_[columnField:ID],{overlayDisplay: true,contents: function(){return Indoo_template_0108_f(Indoo_template_0108id_[columnField:ID],Indoo_template_0108_c[columnField:ID])}}); Indoo_template_0108_ids[Indoo_template_0108_ids.length]=Indoo_template_0108id_[columnField:ID]; </SCRIPT> alternateTablename alternateConnectionString