DECLARE @tsql VARCHAR(MAX)
if not exists (select * from sysobjects where id = object_id(N'vw_Indoo_template_0107a') and OBJECTPROPERTY(id, N'IsView') = 1)
BEGIN
SET @tsql = 'CREATE VIEW vw_Indoo_template_0107a AS SELECT cg, max([0]) as m0, max([1]) as m1, max([2]) as m2, max([3]) as m3 FROM (SELECT id, rownum, (rownum - 1) % 4 AS rg, FLOOR((rownum - 1) / 4) AS cg FROM (SELECT id, ROW_NUMBER() OVER (ORDER BY id) AS rownum FROM Indoo_template_0107) as select1) as select2 PIVOT (max(id) FOR rg IN ([0], [1], [2], [3])) AS pvt group by cg'
EXEC (@tsql)
END
GO
DECLARE @tsql VARCHAR(MAX)
if not exists (select * from sysobjects where id = object_id(N'vw_Indoo_template_0107b') and OBJECTPROPERTY(id, N'IsView') = 1)
BEGIN
SET @tsql = 'create view vw_Indoo_template_0107b as
SELECT dbo.vw_Indoo_template_0107a.cg AS newID, Indoo_template_0107_1.Title AS Title_1, Indoo_template_0107_1.ID AS ID_1, Indoo_template_0107_1.FileContent AS FileContent_1,
Indoo_template_0107_1.FileMimeType AS FileFileMimeType_1, Indoo_template_0107_2.Title AS Title_2, Indoo_template_0107_2.ID AS ID_2,
Indoo_template_0107_2.FileContent AS FileContent_2, Indoo_template_0107_2.FileMimeType AS FileFileMimeType_2, Indoo_template_0107_3.Title AS Title_3,
Indoo_template_0107_3.ID AS ID_3, Indoo_template_0107_3.FileContent AS FileContent_3, Indoo_template_0107_3.FileMimeType AS FileFileMimeType_3,
Indoo_template_0107_4.Title AS Title_4, Indoo_template_0107_4.ID AS ID_4, Indoo_template_0107_4.FileContent AS FileContent_4,
Indoo_template_0107_4.FileMimeType AS FileFileMimeType_4, Indoo_template_0107_2.FileDate AS FileDate_2, Indoo_template_0107_2.UserID AS UserID_2,
Indoo_template_0107_2.FileName AS FileName_2, Indoo_template_0107_2.FileSize AS FileSize_2, Indoo_template_0107_2.FileDescription AS FileDescription_2,
Indoo_template_0107_1.FileDate AS FileDate_1, Indoo_template_0107_1.UserID AS UserID_1, Indoo_template_0107_1.FileName AS FileName_1,
Indoo_template_0107_1.FileSize AS FileSize_1, Indoo_template_0107_1.FileDescription AS FileDescription_1, Indoo_template_0107_3.FileDate AS FileDate_3,
Indoo_template_0107_3.UserID AS UserID_3, Indoo_template_0107_3.FileName AS FileName_3, Indoo_template_0107_3.FileSize AS FileSize_3,
Indoo_template_0107_3.FileDescription AS FileDescription_3, Indoo_template_0107_4.UserID AS UserID_4, Indoo_template_0107_4.FileName AS FileName_4,
Indoo_template_0107_4.FileSize AS FileSize_4, Indoo_template_0107_4.FileDescription AS FileDescription_4, Indoo_template_0107_4.FileDate AS FileDate_4
FROM dbo.vw_Indoo_template_0107a LEFT OUTER JOIN
dbo.Indoo_template_0107 AS Indoo_template_0107_1 ON dbo.vw_Indoo_template_0107a.m0 = Indoo_template_0107_1.ID LEFT OUTER JOIN
dbo.Indoo_template_0107 AS Indoo_template_0107_2 ON dbo.vw_Indoo_template_0107a.m1 = Indoo_template_0107_2.ID LEFT OUTER JOIN
dbo.Indoo_template_0107 AS Indoo_template_0107_3 ON dbo.vw_Indoo_template_0107a.m2 = Indoo_template_0107_3.ID LEFT OUTER JOIN
dbo.Indoo_template_0107 AS Indoo_template_0107_4 ON dbo.vw_Indoo_template_0107a.m3 = Indoo_template_0107_4.ID'
EXEC (@tsql)
END
tablename
vw_Indoo_template_0107b
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
on
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_0107 {
overIndoo_template_0107flow: none;
border: 5px ridge #ccc;
z-index: 150;
background: #fff;
font-size:11px;
font-family: Tahoma, Arial, Sans-Serif;
}
.boxIndoo_template_01071 {
padding-right: 10px;
padding-left: 10px;
}
.boxIndoo_template_01072 {
padding-right: 10px;
text-align:right;
}
.boxIndoo_template_01073 {
padding-left: 10px;
text-align:left;
}
</style>
<script type="text/javascript">
Indoo_template_0107_ids = new Array;
function Indoo_template_0107_getOther(ids,value){
var j=-1;
for(var i = 0; i < Indoo_template_0107_ids.length; i++) {
if (Indoo_template_0107_ids[i]==ids){
j=i
}
}
var out;
if (j+value<Indoo_template_0107_ids.length && j+value>-1){
out = Indoo_template_0107_ids[j+value];
el=document.getElementById(out);
Control.Modal.close();
if(typeof(el.click)!='undefined'){
el.click();
}else{
el.onclick();
}
}else{
out = Indoo_template_0107_ids[j];
}
;
//alert(document.getElementById(Indoo_template_0107_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_0107_f(el_id, link){
return '<table class="boxIndoo_template_0107" ><tr>' +
'<td class="boxIndoo_template_01073"><a href="javascript:Indoo_template_0107_getOther(\'' +
el_id +
'\',-1)">Previous</a> ' +
'<a href="javascript:Indoo_template_0107_getOther(\'' +
el_id +
'\',+1)">Next</a></td>' +
'<td class="boxIndoo_template_01072"><a href="#" onclick="Control.Modal.close()">Close</a></td>' +
'</tr><tr><td class="boxIndoo_template_01073" colspan="2"><center><br /><strong>' + document.getElementById(el_id+'y').innerHTML + '</strong><br /></center></td>' +
'</tr><tr><td class="boxIndoo_template_01071" colspan="2"><center>' +
link +
'</center></td></tr><tr>' +
'<td class="boxIndoo_template_01073" colspan="2"><br />' + document.getElementById(el_id+'x').innerHTML + '<br /><br /></td></tr><tr>' +
'<td class="boxIndoo_template_01073"><a href="#" onclick="Control.Modal.close()">Close</a></td>' +
'<td class="boxIndoo_template_01072"><a href="javascript:Indoo_template_0107_getOther(\'' +
el_id +
'\',-1)">Previous</a> ' +
'<a href="javascript:Indoo_template_0107_getOther(\'' +
el_id +
'\',+1)">Next</a></td>' +
'</tr></table>'
}
function funcIndoo_template_0107a__(imgId,text){
vid=text.substring(text.indexOf('http://www.youtube.com/v/')+25,text.indexOf('&'))
document.getElementById(imgId).src="http://img.youtube.com/vi/" + vid + "/default.jpg"
}
function func_indoo_template_0107_pr1(el){
el.previousSibling.style.display='none';
pn=el.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
pn.style.visibility ='hidden';
el.style.width='';
el.style.height='';
window.scrollBy(0,1);
window.scrollBy(0,-1);
pn.style.visibility ='visible';
}
function func_indoo_template_0107_pr2(el){
el.previousSibling.style.display='none';
el.width='1px';
el.height='1px'
}
</script>
startupScriptBlock
onSubmitScriptBlock
sqlOnInsertRecord
sqlOnUpdateRecord
sqlOnViewModule
sqlOnViewRecord
addcreatestatement
createKeyColumn
gridViewColumn.0.Visible
on
gridViewColumn.0.allowExport
gridViewColumn.0.allowEdit
gridViewColumn.0.allowFilter
1
gridViewColumn.0.allowSort
on
gridViewColumn.0.allowImport
gridViewColumn.0.columnName
Title_1
gridViewColumn.0.caption
Title
gridViewColumn.0.width
gridViewColumn.0.defaultContent
gridViewColumn.0.formatData
gridViewColumn.0.importDefault
gridViewColumn.0.filterAdditionalColumn
Title_2,Title_3,Title_4
gridViewColumn.0.defaultSortColumn
gridViewColumn.0.isBoolean
gridViewColumn.0.isLink
gridViewColumn.0.isOther
2
gridViewColumn.0.isBinary
on
gridViewColumn.0.isJoin
gridViewColumn.0.isHtmlAttributes
gridViewColumn.1.Visible
on
gridViewColumn.1.allowExport
gridViewColumn.1.allowEdit
gridViewColumn.1.allowFilter
0
gridViewColumn.1.allowSort
on
gridViewColumn.1.allowImport
gridViewColumn.1.columnName
Title_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
on
gridViewColumn.1.isJoin
gridViewColumn.1.isHtmlAttributes
gridViewColumn.1.binaryData.columnName
FileContent_2
gridViewColumn.1.binaryData.showType
1
gridViewColumn.1.binaryData.FilenameSource
2
gridViewColumn.1.binaryData.mimeTypeSource
2
gridviewcolumn.1.binarydata.isforcedownload
gridViewColumn.1.binaryData.allowExport
gridViewColumn.1.binaryData.allowImport
gridViewColumn.1.binaryData.target
_blank
gridViewColumn.1.binaryData.mimeTypeColumnName
FileFileMimeType_2
gridViewColumn.1.binaryData.Filename
gridViewColumn.1.binaryData.defaultImageUrl
gridViewColumn.0.binaryData.columnName
FileContent_1
gridViewColumn.0.binaryData.showType
1
gridViewColumn.0.binaryData.FilenameSource
2
gridViewColumn.0.binaryData.mimeTypeSource
2
gridviewcolumn.0.binarydata.isforcedownload
gridViewColumn.0.binaryData.allowExport
gridViewColumn.0.binaryData.allowImport
gridViewColumn.0.binaryData.target
_blank
gridViewColumn.0.binaryData.mimeTypeColumnName
FileFileMimeType_1
gridViewColumn.0.binaryData.Filename
gridViewColumn.0.binaryData.defaultImageUrl
gridViewColumn.2.Visible
on
gridViewColumn.2.allowExport
gridViewColumn.2.allowEdit
gridViewColumn.2.allowFilter
0
gridViewColumn.2.allowSort
on
gridViewColumn.2.allowImport
gridViewColumn.2.columnName
Title_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
on
gridViewColumn.2.isJoin
gridViewColumn.2.isHtmlAttributes
gridViewColumn.2.binaryData.columnName
FileContent_3
gridViewColumn.2.binaryData.showType
1
gridViewColumn.2.binaryData.FilenameSource
2
gridViewColumn.2.binaryData.mimeTypeSource
2
gridviewcolumn.2.binarydata.isforcedownload
gridViewColumn.2.binaryData.allowExport
gridViewColumn.2.binaryData.allowImport
gridViewColumn.2.binaryData.target
_blank
gridViewColumn.2.binaryData.mimeTypeColumnName
FileFileMimeType_3
gridViewColumn.2.binaryData.Filename
gridViewColumn.2.binaryData.defaultImageUrl
gridViewColumn.3.Visible
on
gridViewColumn.3.allowExport
gridViewColumn.3.allowEdit
gridViewColumn.3.allowFilter
0
gridViewColumn.3.allowSort
on
gridViewColumn.3.allowImport
gridViewColumn.3.columnName
Title_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
on
gridViewColumn.3.isJoin
gridViewColumn.3.isHtmlAttributes
gridViewColumn.3.binaryData.columnName
FileContent_4
gridViewColumn.3.binaryData.showType
1
gridViewColumn.3.binaryData.FilenameSource
2
gridViewColumn.3.binaryData.mimeTypeSource
2
gridviewcolumn.3.binarydata.isforcedownload
gridViewColumn.3.binaryData.allowExport
gridViewColumn.3.binaryData.allowImport
gridViewColumn.3.binaryData.target
_blank
gridViewColumn.3.binaryData.thumbnailWidth
gridViewColumn.3.binaryData.thumbnailHeight
gridViewColumn.3.binaryData.mimeTypeColumnName
FileFileMimeType_3
gridViewColumn.3.binaryData.Filename
gridViewColumn.3.binaryData.defaultImageUrl
gridViewColumn.0.binaryData.thumbnailWidth
gridViewColumn.0.binaryData.thumbnailHeight
gridViewColumn.1.binaryData.thumbnailWidth
gridViewColumn.1.binaryData.thumbnailHeight
gridViewColumn.2.binaryData.thumbnailWidth
gridViewColumn.2.binaryData.thumbnailHeight
sqlOnUpdateFinishRecord
gridViewColumn.0.binaryData.mimeType
gridViewColumn.0.binaryData.isBinaryIdFromColumn
on
gridViewColumn.0.binaryData.binaryIdFromColumn
ID_1
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.1.binaryData.isBinaryIdFromColumn
on
gridViewColumn.1.binaryData.binaryIdFromColumn
ID_2
gridViewColumn.2.binaryData.isBinaryIdFromColumn
on
gridViewColumn.2.binaryData.binaryIdFromColumn
ID_3
gridViewColumn.3.binaryData.isBinaryIdFromColumn
on
gridViewColumn.3.binaryData.binaryIdFromColumn
ID_4
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
FileName_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
FileSize_2
gridViewColumn.11.Visible
gridViewColumn.11.allowExport
gridViewColumn.11.allowEdit
gridViewColumn.11.allowFilter
0
gridViewColumn.11.allowSort
gridViewColumn.11.allowImport
gridViewColumn.11.isOther
0
gridViewColumn.12.columnName
FileDescription_2
gridViewColumn.12.Visible
gridViewColumn.12.allowExport
gridViewColumn.12.allowEdit
gridViewColumn.12.allowFilter
0
gridViewColumn.12.allowSort
gridViewColumn.12.allowImport
gridViewColumn.12.isOther
0
gridViewColumn.13.columnName
FileDate_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
UserID_1
gridViewColumn.14.Visible
gridViewColumn.14.allowExport
gridViewColumn.14.allowEdit
gridViewColumn.14.allowFilter
1
gridViewColumn.14.allowSort
gridViewColumn.14.allowImport
gridViewColumn.14.isOther
0
gridViewColumn.15.columnName
FileName_1
gridViewColumn.15.Visible
gridViewColumn.15.allowExport
gridViewColumn.15.allowEdit
gridViewColumn.15.allowFilter
1
gridViewColumn.15.allowSort
gridViewColumn.15.allowImport
gridViewColumn.15.isOther
0
gridViewColumn.16.columnName
FileSize_1
gridViewColumn.16.Visible
gridViewColumn.16.allowExport
gridViewColumn.16.allowEdit
gridViewColumn.16.allowFilter
1
gridViewColumn.16.allowSort
gridViewColumn.16.allowImport
gridViewColumn.16.isOther
0
gridViewColumn.17.columnName
FileDescription_1
gridViewColumn.17.Visible
gridViewColumn.17.allowExport
gridViewColumn.17.allowEdit
gridViewColumn.17.allowFilter
1
gridViewColumn.17.allowSort
gridViewColumn.17.allowImport
gridViewColumn.17.isOther
0
gridViewColumn.18.columnName
FileDate_3
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
UserID_3
gridViewColumn.19.Visible
gridViewColumn.19.allowExport
gridViewColumn.19.allowEdit
gridViewColumn.19.allowFilter
0
gridViewColumn.19.allowSort
gridViewColumn.19.allowImport
gridViewColumn.19.isOther
0
gridViewColumn.20.columnName
FileName_3
gridViewColumn.20.Visible
gridViewColumn.20.allowExport
gridViewColumn.20.allowEdit
gridViewColumn.20.allowFilter
0
gridViewColumn.20.allowSort
gridViewColumn.20.allowImport
gridViewColumn.20.isOther
0
gridViewColumn.21.columnName
FileSize_3
gridViewColumn.21.Visible
gridViewColumn.21.allowExport
gridViewColumn.21.allowEdit
gridViewColumn.21.allowFilter
0
gridViewColumn.21.allowSort
gridViewColumn.21.allowImport
gridViewColumn.21.isOther
0
gridViewColumn.22.columnName
FileDescription_3
gridViewColumn.22.Visible
gridViewColumn.22.allowExport
gridViewColumn.22.allowEdit
gridViewColumn.22.allowFilter
0
gridViewColumn.22.allowSort
gridViewColumn.22.allowImport
gridViewColumn.22.isOther
0
gridViewColumn.23.columnName
UserID_4
gridViewColumn.23.Visible
gridViewColumn.23.allowExport
gridViewColumn.23.allowEdit
gridViewColumn.23.allowFilter
0
gridViewColumn.23.allowSort
gridViewColumn.23.allowImport
gridViewColumn.23.isOther
0
gridViewColumn.24.columnName
FileName_4
gridViewColumn.24.Visible
gridViewColumn.24.allowExport
gridViewColumn.24.allowEdit
gridViewColumn.24.allowFilter
0
gridViewColumn.24.allowSort
gridViewColumn.24.allowImport
gridViewColumn.24.isOther
0
gridViewColumn.25.columnName
FileSize_4
gridViewColumn.25.Visible
gridViewColumn.25.allowExport
gridViewColumn.25.allowEdit
gridViewColumn.25.allowFilter
0
gridViewColumn.25.allowSort
gridViewColumn.25.allowImport
gridViewColumn.25.isOther
0
gridViewColumn.26.columnName
FileDescription_4
gridViewColumn.26.Visible
gridViewColumn.26.allowExport
gridViewColumn.26.allowEdit
gridViewColumn.26.allowFilter
0
gridViewColumn.26.allowSort
gridViewColumn.26.allowImport
gridViewColumn.26.isOther
0
gridViewColumn.27.columnName
FileDate_4
gridViewColumn.27.Visible
gridViewColumn.27.allowExport
gridViewColumn.27.allowEdit
gridViewColumn.27.allowFilter
0
gridViewColumn.27.allowSort
gridViewColumn.27.allowImport
gridViewColumn.27.isOther
0
gridViewColumn.8.caption
gridViewColumn.9.caption
gridViewColumn.10.caption
gridViewColumn.11.caption
gridViewColumn.12.caption
gridViewColumn.13.caption
Date
gridViewColumn.14.caption
Username
gridViewColumn.15.caption
File name
gridViewColumn.16.caption
File size
gridViewColumn.17.caption
Description
gridViewColumn.18.caption
gridViewColumn.19.caption
gridViewColumn.20.caption
gridViewColumn.21.caption
gridViewColumn.22.caption
gridViewColumn.23.caption
gridViewColumn.24.caption
gridViewColumn.25.caption
gridViewColumn.26.caption
gridViewColumn.27.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.13.width
gridViewColumn.13.defaultContent
gridViewColumn.13.formatData
gridViewColumn.13.importDefault
gridViewColumn.13.filterAdditionalColumn
FileDate_2,FileDate_3,FileDate_4
gridViewColumn.13.defaultSortColumn
gridViewColumn.13.isBoolean
gridViewColumn.13.isLink
gridViewColumn.13.isBinary
gridViewColumn.13.isJoin
gridViewColumn.13.isHtmlAttributes
gridViewColumn.14.width
gridViewColumn.14.defaultContent
gridViewColumn.14.formatData
gridViewColumn.14.importDefault
gridViewColumn.14.filterAdditionalColumn
UserID_2,UserID_3,UserID_4
gridViewColumn.14.defaultSortColumn
gridViewColumn.14.isBoolean
gridViewColumn.14.isLink
gridViewColumn.14.isBinary
gridViewColumn.14.isJoin
on
gridViewColumn.14.isHtmlAttributes
gridViewColumn.15.width
gridViewColumn.15.defaultContent
gridViewColumn.15.formatData
gridViewColumn.15.importDefault
gridViewColumn.15.filterAdditionalColumn
FileName_2;FileName_3,FileName_4
gridViewColumn.15.defaultSortColumn
gridViewColumn.15.isBoolean
gridViewColumn.15.isLink
gridViewColumn.15.isBinary
gridViewColumn.15.isJoin
gridViewColumn.15.isHtmlAttributes
gridViewColumn.14.navigateUrlTarget
_blank
gridViewColumn.14.joinTableName
Users
gridViewColumn.14.joinTableIdColumnName
UserID
gridViewColumn.14.joinTableColumnName
Username
gridViewColumn.19.width
gridViewColumn.19.defaultContent
gridViewColumn.19.formatData
gridViewColumn.19.importDefault
gridViewColumn.19.filterAdditionalColumn
gridViewColumn.19.defaultSortColumn
gridViewColumn.19.isBoolean
gridViewColumn.19.isLink
gridViewColumn.19.isBinary
gridViewColumn.19.isJoin
on
gridViewColumn.19.isHtmlAttributes
gridViewColumn.19.navigateUrlTarget
_blank
gridViewColumn.19.joinTableName
Users
gridViewColumn.19.joinTableIdColumnName
UserID
gridViewColumn.19.joinTableColumnName
Username
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.isBinary
gridViewColumn.23.isJoin
on
gridViewColumn.23.isHtmlAttributes
gridViewColumn.23.navigateUrlTarget
_blank
gridViewColumn.23.joinTableName
Users
gridViewColumn.23.joinTableIdColumnName
UserID
gridViewColumn.23.joinTableColumnName
Username
gridViewColumn.16.width
gridViewColumn.16.defaultContent
gridViewColumn.16.formatData
gridViewColumn.16.importDefault
gridViewColumn.16.filterAdditionalColumn
FileSize_2,FileSize_3,FileSize_4
gridViewColumn.16.defaultSortColumn
gridViewColumn.16.isBoolean
gridViewColumn.16.isLink
gridViewColumn.16.isBinary
gridViewColumn.16.isJoin
gridViewColumn.16.isHtmlAttributes
gridViewColumn.17.width
gridViewColumn.17.defaultContent
gridViewColumn.17.formatData
gridViewColumn.17.importDefault
gridViewColumn.17.filterAdditionalColumn
FileDescription_2,FileDescription_3,FileDescription_4
gridViewColumn.17.defaultSortColumn
gridViewColumn.17.isBoolean
gridViewColumn.17.isLink
gridViewColumn.17.isBinary
gridViewColumn.17.isJoin
gridViewColumn.17.isHtmlAttributes
gridViewColumn.28.Visible
gridViewColumn.28.allowExport
gridViewColumn.28.allowEdit
gridViewColumn.28.allowFilter
0
gridViewColumn.28.allowSort
gridViewColumn.28.allowImport
gridViewColumn.28.columnName
newID
gridViewColumn.28.caption
gridViewColumn.28.width
gridViewColumn.28.defaultContent
gridViewColumn.28.formatData
gridViewColumn.28.importDefault
gridViewColumn.28.filterAdditionalColumn
gridViewColumn.28.defaultSortColumn
gridViewColumn.28.isBoolean
gridViewColumn.28.isLink
gridViewColumn.28.isOther
0
gridViewColumn.28.isBinary
gridViewColumn.28.isJoin
gridViewColumn.28.isHtmlAttributes
showGridView
on
showGridEdit
on
gridview.sqlstatementquery
gridViewColumn.0.binaryData.FilenameColumnName
FileName_1
gridViewColumn.1.binaryData.FilenameColumnName
FileName_2
gridViewColumn.2.binaryData.FilenameColumnName
FileName_3
gridViewColumn.3.binaryData.FilenameColumnName
FileName_4
gridViewColumn.0.customHTMLForm
<SCRIPT>
id_[columnField:newID]_[columnIndex] = 'Indoo_template_0107_x[columnField:newID]_[columnIndex]';
Indoo_template_0107_c[columnField:newID]_[columnIndex] = '<IMG src="[indoogrid:moduleFolder]images/preload.gif" onerror="this.width=\'1px\';this.height=\'1px\'" /><img onerror="func_indoo_template_0107_pr2(this);" src="[indooGrid:binaryLink]" style="heght:1px;width:1px;" onload="func_indoo_template_0107_pr1(this);"/></';
document.write('<a href="" id="'+id_[columnField:newID]_[columnIndex]+'"><img src="[indooGrid:binaryLinkThumbnail]" border="0" onerror="this.width=\'1px\';this.height=\'1px\'" /></a>')
new Control.Modal(id_[columnField:newID]_[columnIndex],{overlayDisplay: true,contents: function(){return Indoo_template_0107_f(id_[columnField:newID]_[columnIndex],Indoo_template_0107_c[columnField:newID]_[columnIndex])}});
Indoo_template_0107_ids[Indoo_template_0107_ids.length]=id_[columnField:newID]_[columnIndex];
</SCRIPT>
<TEXTAREA id=Indoo_template_0107_x[columnField:newID]_[columnIndex]x style="DISPLAY: none">[columnField:FileDescription_2]</TEXTAREA><TEXTAREA id=Indoo_template_0107_x[columnField:newID]_[columnIndex]y style="DISPLAY: none">[columnField:Title_2]</TEXTAREA>
gridViewColumn.1.customHTMLForm
<SCRIPT>
id_[columnField:newID]_[columnIndex] = 'Indoo_template_0107_x[columnField:newID]_[columnIndex]';
Indoo_template_0107_c[columnField:newID]_[columnIndex] = '<IMG src="[indoogrid:moduleFolder]images/preload.gif" onerror="this.width=\'1px\';this.height=\'1px\'" /><img onerror="func_indoo_template_0107_pr2(this);" src="[indooGrid:binaryLink]" style="heght:1px;width:1px;" onload="func_indoo_template_0107_pr1(this);"/></';
document.write('<a href="" id="'+id_[columnField:newID]_[columnIndex]+'"><img src="[indooGrid:binaryLinkThumbnail]" border="0" onerror="this.width=\'1px\';this.height=\'1px\'" /></a>')
new Control.Modal(id_[columnField:newID]_[columnIndex],{overlayDisplay: true,contents: function(){return Indoo_template_0107_f(id_[columnField:newID]_[columnIndex],Indoo_template_0107_c[columnField:newID]_[columnIndex])}});
Indoo_template_0107_ids[Indoo_template_0107_ids.length]=id_[columnField:newID]_[columnIndex];
</SCRIPT>
<TEXTAREA id=Indoo_template_0107_x[columnField:newID]_[columnIndex]x style="DISPLAY: none">[columnField:FileDescription_2]</TEXTAREA><TEXTAREA id=Indoo_template_0107_x[columnField:newID]_[columnIndex]y style="DISPLAY: none">[columnField:Title_2]</TEXTAREA>
gridViewColumn.2.customHTMLForm
<SCRIPT>
id_[columnField:newID]_[columnIndex] = 'Indoo_template_0107_x[columnField:newID]_[columnIndex]';
Indoo_template_0107_c[columnField:newID]_[columnIndex] = '<IMG src="[indoogrid:moduleFolder]images/preload.gif" onerror="this.width=\'1px\';this.height=\'1px\'" /><img onerror="func_indoo_template_0107_pr2(this);" src="[indooGrid:binaryLink]" style="heght:1px;width:1px;" onload="func_indoo_template_0107_pr1(this);"/></';
document.write('<a href="" id="'+id_[columnField:newID]_[columnIndex]+'"><img src="[indooGrid:binaryLinkThumbnail]" border="0" onerror="this.width=\'1px\';this.height=\'1px\'" /></a>')
new Control.Modal(id_[columnField:newID]_[columnIndex],{overlayDisplay: true,contents: function(){return Indoo_template_0107_f(id_[columnField:newID]_[columnIndex],Indoo_template_0107_c[columnField:newID]_[columnIndex])}});
Indoo_template_0107_ids[Indoo_template_0107_ids.length]=id_[columnField:newID]_[columnIndex];
</SCRIPT>
<TEXTAREA id=Indoo_template_0107_x[columnField:newID]_[columnIndex]x style="DISPLAY: none">[columnField:FileDescription_2]</TEXTAREA><TEXTAREA id=Indoo_template_0107_x[columnField:newID]_[columnIndex]y style="DISPLAY: none">[columnField:Title_2]</TEXTAREA>
gridViewColumn.3.customHTMLForm
<SCRIPT>
id_[columnField:newID]_[columnIndex] = 'Indoo_template_0107_x[columnField:newID]_[columnIndex]';
Indoo_template_0107_c[columnField:newID]_[columnIndex] = '<IMG src="[indoogrid:moduleFolder]images/preload.gif" onerror="this.width=\'1px\';this.height=\'1px\'" /><img onerror="func_indoo_template_0107_pr2(this);" src="[indooGrid:binaryLink]" style="heght:1px;width:1px;" onload="func_indoo_template_0107_pr1(this);"/></';
document.write('<a href="" id="'+id_[columnField:newID]_[columnIndex]+'"><img src="[indooGrid:binaryLinkThumbnail]" border="0" onerror="this.width=\'1px\';this.height=\'1px\'" /></a>')
new Control.Modal(id_[columnField:newID]_[columnIndex],{overlayDisplay: true,contents: function(){return Indoo_template_0107_f(id_[columnField:newID]_[columnIndex],Indoo_template_0107_c[columnField:newID]_[columnIndex])}});
Indoo_template_0107_ids[Indoo_template_0107_ids.length]=id_[columnField:newID]_[columnIndex];
</SCRIPT>
<TEXTAREA id=Indoo_template_0107_x[columnField:newID]_[columnIndex]x style="DISPLAY: none">[columnField:FileDescription_2]</TEXTAREA><TEXTAREA id=Indoo_template_0107_x[columnField:newID]_[columnIndex]y style="DISPLAY: none">[columnField:Title_2]</TEXTAREA>
alternateTablename
alternateConnectionString
tablename
vw_Indoo_template_0107b
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
on
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_0107 {
overIndoo_template_0107flow: none;
border: 5px ridge #ccc;
z-index: 150;
background: #fff;
font-size:11px;
font-family: Tahoma, Arial, Sans-Serif;
}
.boxIndoo_template_01071 {
padding-right: 10px;
padding-left: 10px;
}
.boxIndoo_template_01072 {
padding-right: 10px;
text-align:right;
}
.boxIndoo_template_01073 {
padding-left: 10px;
text-align:left;
}
</style>
<script type="text/javascript">
Indoo_template_0107_ids = new Array;
function Indoo_template_0107_getOther(ids,value){
var j=-1;
for(var i = 0; i < Indoo_template_0107_ids.length; i++) {
if (Indoo_template_0107_ids[i]==ids){
j=i
}
}
var out;
if (j+value<Indoo_template_0107_ids.length && j+value>-1){
out = Indoo_template_0107_ids[j+value];
el=document.getElementById(out);
Control.Modal.close();
if(typeof(el.click)!='undefined'){
el.click();
}else{
el.onclick();
}
}else{
out = Indoo_template_0107_ids[j];
}
;
//alert(document.getElementById(Indoo_template_0107_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_0107_f(el_id, link){
return '<table class="boxIndoo_template_0107" ><tr>' +
'<td class="boxIndoo_template_01073"><a href="javascript:Indoo_template_0107_getOther(\'' +
el_id +
'\',-1)">Previous</a> ' +
'<a href="javascript:Indoo_template_0107_getOther(\'' +
el_id +
'\',+1)">Next</a></td>' +
'<td class="boxIndoo_template_01072"><a href="#" onclick="Control.Modal.close()">Close</a></td>' +
'</tr><tr><td class="boxIndoo_template_01073" colspan="2"><center><br /><strong>' + document.getElementById(el_id+'y').innerHTML + '</strong><br /></center></td>' +
'</tr><tr><td class="boxIndoo_template_01071" colspan="2"><center>' +
link +
'</center></td></tr><tr>' +
'<td class="boxIndoo_template_01073" colspan="2"><br />' + document.getElementById(el_id+'x').innerHTML + '<br /><br /></td></tr><tr>' +
'<td class="boxIndoo_template_01073"><a href="#" onclick="Control.Modal.close()">Close</a></td>' +
'<td class="boxIndoo_template_01072"><a href="javascript:Indoo_template_0107_getOther(\'' +
el_id +
'\',-1)">Previous</a> ' +
'<a href="javascript:Indoo_template_0107_getOther(\'' +
el_id +
'\',+1)">Next</a></td>' +
'</tr></table>'
}
function funcIndoo_template_0107a__(imgId,text){
vid=text.substring(text.indexOf('http://www.youtube.com/v/')+25,text.indexOf('&'))
document.getElementById(imgId).src="http://img.youtube.com/vi/" + vid + "/default.jpg"
}
function func_indoo_template_0107_pr1(el){
el.previousSibling.style.display='none';
pn=el.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode;
pn.style.visibility ='hidden';
el.style.width='';
el.style.height='';
window.scrollBy(0,1);
window.scrollBy(0,-1);
pn.style.visibility ='visible';
}
function func_indoo_template_0107_pr2(el){
el.previousSibling.style.display='none';
el.width='1px';
el.height='1px'
}
</script>
startupScriptBlock
onSubmitScriptBlock
sqlOnInsertRecord
sqlOnUpdateRecord
sqlOnViewModule
sqlOnViewRecord
addcreatestatement
createKeyColumn
gridViewColumn.0.Visible
on
gridViewColumn.0.allowExport
gridViewColumn.0.allowEdit
gridViewColumn.0.allowFilter
1
gridViewColumn.0.allowSort
on
gridViewColumn.0.allowImport
gridViewColumn.0.columnName
Title_1
gridViewColumn.0.caption
Title
gridViewColumn.0.width
gridViewColumn.0.defaultContent
gridViewColumn.0.formatData
gridViewColumn.0.importDefault
gridViewColumn.0.filterAdditionalColumn
Title_2,Title_3,Title_4
gridViewColumn.0.defaultSortColumn
gridViewColumn.0.isBoolean
gridViewColumn.0.isLink
gridViewColumn.0.isOther
2
gridViewColumn.0.isBinary
on
gridViewColumn.0.isJoin
gridViewColumn.0.isHtmlAttributes
gridViewColumn.1.Visible
on
gridViewColumn.1.allowExport
gridViewColumn.1.allowEdit
gridViewColumn.1.allowFilter
0
gridViewColumn.1.allowSort
on
gridViewColumn.1.allowImport
gridViewColumn.1.columnName
Title_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
on
gridViewColumn.1.isJoin
gridViewColumn.1.isHtmlAttributes
gridViewColumn.1.binaryData.columnName
FileContent_2
gridViewColumn.1.binaryData.showType
1
gridViewColumn.1.binaryData.FilenameSource
2
gridViewColumn.1.binaryData.mimeTypeSource
2
gridviewcolumn.1.binarydata.isforcedownload
gridViewColumn.1.binaryData.allowExport
gridViewColumn.1.binaryData.allowImport
gridViewColumn.1.binaryData.target
_blank
gridViewColumn.1.binaryData.mimeTypeColumnName
FileFileMimeType_2
gridViewColumn.1.binaryData.Filename
gridViewColumn.1.binaryData.defaultImageUrl
gridViewColumn.0.binaryData.columnName
FileContent_1
gridViewColumn.0.binaryData.showType
1
gridViewColumn.0.binaryData.FilenameSource
2
gridViewColumn.0.binaryData.mimeTypeSource
2
gridviewcolumn.0.binarydata.isforcedownload
gridViewColumn.0.binaryData.allowExport
gridViewColumn.0.binaryData.allowImport
gridViewColumn.0.binaryData.target
_blank
gridViewColumn.0.binaryData.mimeTypeColumnName
FileFileMimeType_1
gridViewColumn.0.binaryData.Filename
gridViewColumn.0.binaryData.defaultImageUrl
gridViewColumn.2.Visible
on
gridViewColumn.2.allowExport
gridViewColumn.2.allowEdit
gridViewColumn.2.allowFilter
0
gridViewColumn.2.allowSort
on
gridViewColumn.2.allowImport
gridViewColumn.2.columnName
Title_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
on
gridViewColumn.2.isJoin
gridViewColumn.2.isHtmlAttributes
gridViewColumn.2.binaryData.columnName
FileContent_3
gridViewColumn.2.binaryData.showType
1
gridViewColumn.2.binaryData.FilenameSource
2
gridViewColumn.2.binaryData.mimeTypeSource
2
gridviewcolumn.2.binarydata.isforcedownload
gridViewColumn.2.binaryData.allowExport
gridViewColumn.2.binaryData.allowImport
gridViewColumn.2.binaryData.target
_blank
gridViewColumn.2.binaryData.mimeTypeColumnName
FileFileMimeType_3
gridViewColumn.2.binaryData.Filename
gridViewColumn.2.binaryData.defaultImageUrl
gridViewColumn.3.Visible
on
gridViewColumn.3.allowExport
gridViewColumn.3.allowEdit
gridViewColumn.3.allowFilter
0
gridViewColumn.3.allowSort
on
gridViewColumn.3.allowImport
gridViewColumn.3.columnName
Title_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
on
gridViewColumn.3.isJoin
gridViewColumn.3.isHtmlAttributes
gridViewColumn.3.binaryData.columnName
FileContent_4
gridViewColumn.3.binaryData.showType
1
gridViewColumn.3.binaryData.FilenameSource
2
gridViewColumn.3.binaryData.mimeTypeSource
2
gridviewcolumn.3.binarydata.isforcedownload
gridViewColumn.3.binaryData.allowExport
gridViewColumn.3.binaryData.allowImport
gridViewColumn.3.binaryData.target
_blank
gridViewColumn.3.binaryData.thumbnailWidth
gridViewColumn.3.binaryData.thumbnailHeight
gridViewColumn.3.binaryData.mimeTypeColumnName
FileFileMimeType_3
gridViewColumn.3.binaryData.Filename
gridViewColumn.3.binaryData.defaultImageUrl
gridViewColumn.0.binaryData.thumbnailWidth
gridViewColumn.0.binaryData.thumbnailHeight
gridViewColumn.1.binaryData.thumbnailWidth
gridViewColumn.1.binaryData.thumbnailHeight
gridViewColumn.2.binaryData.thumbnailWidth
gridViewColumn.2.binaryData.thumbnailHeight
sqlOnUpdateFinishRecord
gridViewColumn.0.binaryData.mimeType
gridViewColumn.0.binaryData.isBinaryIdFromColumn
on
gridViewColumn.0.binaryData.binaryIdFromColumn
ID_1
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.1.binaryData.isBinaryIdFromColumn
on
gridViewColumn.1.binaryData.binaryIdFromColumn
ID_2
gridViewColumn.2.binaryData.isBinaryIdFromColumn
on
gridViewColumn.2.binaryData.binaryIdFromColumn
ID_3
gridViewColumn.3.binaryData.isBinaryIdFromColumn
on
gridViewColumn.3.binaryData.binaryIdFromColumn
ID_4
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
FileName_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
FileSize_2
gridViewColumn.11.Visible
gridViewColumn.11.allowExport
gridViewColumn.11.allowEdit
gridViewColumn.11.allowFilter
0
gridViewColumn.11.allowSort
gridViewColumn.11.allowImport
gridViewColumn.11.isOther
0
gridViewColumn.12.columnName
FileDescription_2
gridViewColumn.12.Visible
gridViewColumn.12.allowExport
gridViewColumn.12.allowEdit
gridViewColumn.12.allowFilter
0
gridViewColumn.12.allowSort
gridViewColumn.12.allowImport
gridViewColumn.12.isOther
0
gridViewColumn.13.columnName
FileDate_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
UserID_1
gridViewColumn.14.Visible
gridViewColumn.14.allowExport
gridViewColumn.14.allowEdit
gridViewColumn.14.allowFilter
1
gridViewColumn.14.allowSort
gridViewColumn.14.allowImport
gridViewColumn.14.isOther
0
gridViewColumn.15.columnName
FileName_1
gridViewColumn.15.Visible
gridViewColumn.15.allowExport
gridViewColumn.15.allowEdit
gridViewColumn.15.allowFilter
1
gridViewColumn.15.allowSort
gridViewColumn.15.allowImport
gridViewColumn.15.isOther
0
gridViewColumn.16.columnName
FileSize_1
gridViewColumn.16.Visible
gridViewColumn.16.allowExport
gridViewColumn.16.allowEdit
gridViewColumn.16.allowFilter
1
gridViewColumn.16.allowSort
gridViewColumn.16.allowImport
gridViewColumn.16.isOther
0
gridViewColumn.17.columnName
FileDescription_1
gridViewColumn.17.Visible
gridViewColumn.17.allowExport
gridViewColumn.17.allowEdit
gridViewColumn.17.allowFilter
1
gridViewColumn.17.allowSort
gridViewColumn.17.allowImport
gridViewColumn.17.isOther
0
gridViewColumn.18.columnName
FileDate_3
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
UserID_3
gridViewColumn.19.Visible
gridViewColumn.19.allowExport
gridViewColumn.19.allowEdit
gridViewColumn.19.allowFilter
0
gridViewColumn.19.allowSort
gridViewColumn.19.allowImport
gridViewColumn.19.isOther
0
gridViewColumn.20.columnName
FileName_3
gridViewColumn.20.Visible
gridViewColumn.20.allowExport
gridViewColumn.20.allowEdit
gridViewColumn.20.allowFilter
0
gridViewColumn.20.allowSort
gridViewColumn.20.allowImport
gridViewColumn.20.isOther
0
gridViewColumn.21.columnName
FileSize_3
gridViewColumn.21.Visible
gridViewColumn.21.allowExport
gridViewColumn.21.allowEdit
gridViewColumn.21.allowFilter
0
gridViewColumn.21.allowSort
gridViewColumn.21.allowImport
gridViewColumn.21.isOther
0
gridViewColumn.22.columnName
FileDescription_3
gridViewColumn.22.Visible
gridViewColumn.22.allowExport
gridViewColumn.22.allowEdit
gridViewColumn.22.allowFilter
0
gridViewColumn.22.allowSort
gridViewColumn.22.allowImport
gridViewColumn.22.isOther
0
gridViewColumn.23.columnName
UserID_4
gridViewColumn.23.Visible
gridViewColumn.23.allowExport
gridViewColumn.23.allowEdit
gridViewColumn.23.allowFilter
0
gridViewColumn.23.allowSort
gridViewColumn.23.allowImport
gridViewColumn.23.isOther
0
gridViewColumn.24.columnName
FileName_4
gridViewColumn.24.Visible
gridViewColumn.24.allowExport
gridViewColumn.24.allowEdit
gridViewColumn.24.allowFilter
0
gridViewColumn.24.allowSort
gridViewColumn.24.allowImport
gridViewColumn.24.isOther
0
gridViewColumn.25.columnName
FileSize_4
gridViewColumn.25.Visible
gridViewColumn.25.allowExport
gridViewColumn.25.allowEdit
gridViewColumn.25.allowFilter
0
gridViewColumn.25.allowSort
gridViewColumn.25.allowImport
gridViewColumn.25.isOther
0
gridViewColumn.26.columnName
FileDescription_4
gridViewColumn.26.Visible
gridViewColumn.26.allowExport
gridViewColumn.26.allowEdit
gridViewColumn.26.allowFilter
0
gridViewColumn.26.allowSort
gridViewColumn.26.allowImport
gridViewColumn.26.isOther
0
gridViewColumn.27.columnName
FileDate_4
gridViewColumn.27.Visible
gridViewColumn.27.allowExport
gridViewColumn.27.allowEdit
gridViewColumn.27.allowFilter
0
gridViewColumn.27.allowSort
gridViewColumn.27.allowImport
gridViewColumn.27.isOther
0
gridViewColumn.8.caption
gridViewColumn.9.caption
gridViewColumn.10.caption
gridViewColumn.11.caption
gridViewColumn.12.caption
gridViewColumn.13.caption
Date
gridViewColumn.14.caption
Username
gridViewColumn.15.caption
File name
gridViewColumn.16.caption
File size
gridViewColumn.17.caption
Description
gridViewColumn.18.caption
gridViewColumn.19.caption
gridViewColumn.20.caption
gridViewColumn.21.caption
gridViewColumn.22.caption
gridViewColumn.23.caption
gridViewColumn.24.caption
gridViewColumn.25.caption
gridViewColumn.26.caption
gridViewColumn.27.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.13.width
gridViewColumn.13.defaultContent
gridViewColumn.13.formatData
gridViewColumn.13.importDefault
gridViewColumn.13.filterAdditionalColumn
FileDate_2,FileDate_3,FileDate_4
gridViewColumn.13.defaultSortColumn
gridViewColumn.13.isBoolean
gridViewColumn.13.isLink
gridViewColumn.13.isBinary
gridViewColumn.13.isJoin
gridViewColumn.13.isHtmlAttributes
gridViewColumn.14.width
gridViewColumn.14.defaultContent
gridViewColumn.14.formatData
gridViewColumn.14.importDefault
gridViewColumn.14.filterAdditionalColumn
UserID_2,UserID_3,UserID_4
gridViewColumn.14.defaultSortColumn
gridViewColumn.14.isBoolean
gridViewColumn.14.isLink
gridViewColumn.14.isBinary
gridViewColumn.14.isJoin
on
gridViewColumn.14.isHtmlAttributes
gridViewColumn.15.width
gridViewColumn.15.defaultContent
gridViewColumn.15.formatData
gridViewColumn.15.importDefault
gridViewColumn.15.filterAdditionalColumn
FileName_2;FileName_3,FileName_4
gridViewColumn.15.defaultSortColumn
gridViewColumn.15.isBoolean
gridViewColumn.15.isLink
gridViewColumn.15.isBinary
gridViewColumn.15.isJoin
gridViewColumn.15.isHtmlAttributes
gridViewColumn.14.navigateUrlTarget
_blank
gridViewColumn.14.joinTableName
Users
gridViewColumn.14.joinTableIdColumnName
UserID
gridViewColumn.14.joinTableColumnName
Username
gridViewColumn.19.width
gridViewColumn.19.defaultContent
gridViewColumn.19.formatData
gridViewColumn.19.importDefault
gridViewColumn.19.filterAdditionalColumn
gridViewColumn.19.defaultSortColumn
gridViewColumn.19.isBoolean
gridViewColumn.19.isLink
gridViewColumn.19.isBinary
gridViewColumn.19.isJoin
on
gridViewColumn.19.isHtmlAttributes
gridViewColumn.19.navigateUrlTarget
_blank
gridViewColumn.19.joinTableName
Users
gridViewColumn.19.joinTableIdColumnName
UserID
gridViewColumn.19.joinTableColumnName
Username
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.isBinary
gridViewColumn.23.isJoin
on
gridViewColumn.23.isHtmlAttributes
gridViewColumn.23.navigateUrlTarget
_blank
gridViewColumn.23.joinTableName
Users
gridViewColumn.23.joinTableIdColumnName
UserID
gridViewColumn.23.joinTableColumnName
Username
gridViewColumn.16.width
gridViewColumn.16.defaultContent
gridViewColumn.16.formatData
gridViewColumn.16.importDefault
gridViewColumn.16.filterAdditionalColumn
FileSize_2,FileSize_3,FileSize_4
gridViewColumn.16.defaultSortColumn
gridViewColumn.16.isBoolean
gridViewColumn.16.isLink
gridViewColumn.16.isBinary
gridViewColumn.16.isJoin
gridViewColumn.16.isHtmlAttributes
gridViewColumn.17.width
gridViewColumn.17.defaultContent
gridViewColumn.17.formatData
gridViewColumn.17.importDefault
gridViewColumn.17.filterAdditionalColumn
FileDescription_2,FileDescription_3,FileDescription_4
gridViewColumn.17.defaultSortColumn
gridViewColumn.17.isBoolean
gridViewColumn.17.isLink
gridViewColumn.17.isBinary
gridViewColumn.17.isJoin
gridViewColumn.17.isHtmlAttributes
gridViewColumn.28.Visible
gridViewColumn.28.allowExport
gridViewColumn.28.allowEdit
gridViewColumn.28.allowFilter
0
gridViewColumn.28.allowSort
gridViewColumn.28.allowImport
gridViewColumn.28.columnName
newID
gridViewColumn.28.caption
gridViewColumn.28.width
gridViewColumn.28.defaultContent
gridViewColumn.28.formatData
gridViewColumn.28.importDefault
gridViewColumn.28.filterAdditionalColumn
gridViewColumn.28.defaultSortColumn
gridViewColumn.28.isBoolean
gridViewColumn.28.isLink
gridViewColumn.28.isOther
0
gridViewColumn.28.isBinary
gridViewColumn.28.isJoin
gridViewColumn.28.isHtmlAttributes
showGridView
on
showGridEdit
on
gridview.sqlstatementquery
gridViewColumn.0.binaryData.FilenameColumnName
FileName_1
gridViewColumn.1.binaryData.FilenameColumnName
FileName_2
gridViewColumn.2.binaryData.FilenameColumnName
FileName_3
gridViewColumn.3.binaryData.FilenameColumnName
FileName_4
gridViewColumn.0.customHTMLForm
<SCRIPT>
id_[columnField:newID]_[columnIndex] = 'Indoo_template_0107_x[columnField:newID]_[columnIndex]';
Indoo_template_0107_c[columnField:newID]_[columnIndex] = '<IMG src="[indoogrid:moduleFolder]images/preload.gif" onerror="this.width=\'1px\';this.height=\'1px\'" /><img onerror="func_indoo_template_0107_pr2(this);" src="[indooGrid:binaryLink]" style="heght:1px;width:1px;" onload="func_indoo_template_0107_pr1(this);"/></';
document.write('<a href="" id="'+id_[columnField:newID]_[columnIndex]+'"><img src="[indooGrid:binaryLinkThumbnail]" border="0" onerror="this.width=\'1px\';this.height=\'1px\'" /></a>')
new Control.Modal(id_[columnField:newID]_[columnIndex],{overlayDisplay: true,contents: function(){return Indoo_template_0107_f(id_[columnField:newID]_[columnIndex],Indoo_template_0107_c[columnField:newID]_[columnIndex])}});
Indoo_template_0107_ids[Indoo_template_0107_ids.length]=id_[columnField:newID]_[columnIndex];
</SCRIPT>
<TEXTAREA id=Indoo_template_0107_x[columnField:newID]_[columnIndex]x style="DISPLAY: none">[columnField:FileDescription_2]</TEXTAREA><TEXTAREA id=Indoo_template_0107_x[columnField:newID]_[columnIndex]y style="DISPLAY: none">[columnField:Title_2]</TEXTAREA>
gridViewColumn.1.customHTMLForm
<SCRIPT>
id_[columnField:newID]_[columnIndex] = 'Indoo_template_0107_x[columnField:newID]_[columnIndex]';
Indoo_template_0107_c[columnField:newID]_[columnIndex] = '<IMG src="[indoogrid:moduleFolder]images/preload.gif" onerror="this.width=\'1px\';this.height=\'1px\'" /><img onerror="func_indoo_template_0107_pr2(this);" src="[indooGrid:binaryLink]" style="heght:1px;width:1px;" onload="func_indoo_template_0107_pr1(this);"/></';
document.write('<a href="" id="'+id_[columnField:newID]_[columnIndex]+'"><img src="[indooGrid:binaryLinkThumbnail]" border="0" onerror="this.width=\'1px\';this.height=\'1px\'" /></a>')
new Control.Modal(id_[columnField:newID]_[columnIndex],{overlayDisplay: true,contents: function(){return Indoo_template_0107_f(id_[columnField:newID]_[columnIndex],Indoo_template_0107_c[columnField:newID]_[columnIndex])}});
Indoo_template_0107_ids[Indoo_template_0107_ids.length]=id_[columnField:newID]_[columnIndex];
</SCRIPT>
<TEXTAREA id=Indoo_template_0107_x[columnField:newID]_[columnIndex]x style="DISPLAY: none">[columnField:FileDescription_2]</TEXTAREA><TEXTAREA id=Indoo_template_0107_x[columnField:newID]_[columnIndex]y style="DISPLAY: none">[columnField:Title_2]</TEXTAREA>
gridViewColumn.2.customHTMLForm
<SCRIPT>
id_[columnField:newID]_[columnIndex] = 'Indoo_template_0107_x[columnField:newID]_[columnIndex]';
Indoo_template_0107_c[columnField:newID]_[columnIndex] = '<IMG src="[indoogrid:moduleFolder]images/preload.gif" onerror="this.width=\'1px\';this.height=\'1px\'" /><img onerror="func_indoo_template_0107_pr2(this);" src="[indooGrid:binaryLink]" style="heght:1px;width:1px;" onload="func_indoo_template_0107_pr1(this);"/></';
document.write('<a href="" id="'+id_[columnField:newID]_[columnIndex]+'"><img src="[indooGrid:binaryLinkThumbnail]" border="0" onerror="this.width=\'1px\';this.height=\'1px\'" /></a>')
new Control.Modal(id_[columnField:newID]_[columnIndex],{overlayDisplay: true,contents: function(){return Indoo_template_0107_f(id_[columnField:newID]_[columnIndex],Indoo_template_0107_c[columnField:newID]_[columnIndex])}});
Indoo_template_0107_ids[Indoo_template_0107_ids.length]=id_[columnField:newID]_[columnIndex];
</SCRIPT>
<TEXTAREA id=Indoo_template_0107_x[columnField:newID]_[columnIndex]x style="DISPLAY: none">[columnField:FileDescription_2]</TEXTAREA><TEXTAREA id=Indoo_template_0107_x[columnField:newID]_[columnIndex]y style="DISPLAY: none">[columnField:Title_2]</TEXTAREA>
gridViewColumn.3.customHTMLForm
<SCRIPT>
id_[columnField:newID]_[columnIndex] = 'Indoo_template_0107_x[columnField:newID]_[columnIndex]';
Indoo_template_0107_c[columnField:newID]_[columnIndex] = '<IMG src="[indoogrid:moduleFolder]images/preload.gif" onerror="this.width=\'1px\';this.height=\'1px\'" /><img onerror="func_indoo_template_0107_pr2(this);" src="[indooGrid:binaryLink]" style="heght:1px;width:1px;" onload="func_indoo_template_0107_pr1(this);"/></';
document.write('<a href="" id="'+id_[columnField:newID]_[columnIndex]+'"><img src="[indooGrid:binaryLinkThumbnail]" border="0" onerror="this.width=\'1px\';this.height=\'1px\'" /></a>')
new Control.Modal(id_[columnField:newID]_[columnIndex],{overlayDisplay: true,contents: function(){return Indoo_template_0107_f(id_[columnField:newID]_[columnIndex],Indoo_template_0107_c[columnField:newID]_[columnIndex])}});
Indoo_template_0107_ids[Indoo_template_0107_ids.length]=id_[columnField:newID]_[columnIndex];
</SCRIPT>
<TEXTAREA id=Indoo_template_0107_x[columnField:newID]_[columnIndex]x style="DISPLAY: none">[columnField:FileDescription_2]</TEXTAREA><TEXTAREA id=Indoo_template_0107_x[columnField:newID]_[columnIndex]y style="DISPLAY: none">[columnField:Title_2]</TEXTAREA>
alternateTablename
alternateConnectionString