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> ' +
'<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> ' +
'<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> ' +
'<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> ' +
'<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