var overBlockDuration = 0.5; function toggleBlock(block, options){ hideSelects(); if (options && options.tag && options.hook){ validatePlace(block, options.tag, options.hook, options.len);} else if (options && options.len){ var top = options.len; if (options.scrolling && options.scrolling == true){ top += getClientSTop();} var windowWidth = getClientWidth(); var width = Element.getStyle(block, 'width'); if (!width) width = $(block).style.width; width = width.replace('px', ''); var left = (windowWidth - width) / 2; $(block).style.left = left + 'px'; $(block).style.top = top + 'px';} if (options && options.close){ $('closeBlock').style.visibility = 'visible'; $('closeBlock').setAttribute('onclick', "toggleBlock('" + block + "');"); $(block).appendChild($('closeBlock'));} else $('closeBlock').style.visibility = 'hidden'; if (options && options.over && options.over == true){ $('overBlock').style.display = 'none'; $('overBlock').style.visibility = 'visible'; var pageWidth = getDocumentWidth(); var pageHeight = getDocumentHeight(); $('overBlock').style.width = pageWidth + 'px'; $('overBlock').style.height = pageHeight + 'px'; new Effect.toggle('overBlock', 'appear', {from:0.0, to:0.75, duration:overBlockDuration});} else if ($('overBlock') != undefined && $('overBlock').style.visibility == 'visible'){ new Effect.Fade('overBlock', {duration:overBlockDuration, afterFinish: showSelects});} var blockOptions = new Object; if (options && options.options) blockOptions = options.options; else blockOptions.duration = overBlockDuration; if (options && options.afterFinish) blockOptions.afterFinish = options.afterFinish; overBlockDuration = blockOptions.duration; if (options && options.ajax){ var elem = new Object; elem.block = block; if (options && options.handle) elem.handle = options.handle; elem.options = blockOptions; elem.afterLoad = options.afterLoad; new Ajax.Request( options.where, { requestHeaders: "Content-Type: text/html; charset=windows-1251", onComplete: ShowBlockOnLoad.bind(elem) }); var pageWidth = getClientWidth(); $('overBlock').innerHTML = '<div class="validateIcon ajaxLoader" style="position: absolute; left: '+ (pageWidth/2 - 5) + 'px; top: ' + (250 + getClientSTop()) + 'px;"></div>';} else { Effect.toggle(block, 'appear', blockOptions); if (options && options.handle) new Draggable(block, {handle: options.handle});}} function ShowBlockOnLoad(response){ $('overBlock').innerHTML = ''; this.afterLoad(response); Effect.toggle(this.block, 'appear', this.options); if (this.handle) new Draggable(this.block, {handle: this.handle});} var detectBlock = function(tag){ if (tag.getAttribute && tag.getAttribute("rel")){ var rel = tag.getAttribute("rel"); var i = rel.indexOf('block'); if (i != -1){ var width = tag.offsetWidth; tag.style.width = width + 'px'; var height = tag.offsetHeight; tag.style.height = height + 'px'; tag.style.display = 'none'; tag.style.visibility = 'visible'; tag.style.zIndex = 501;}} }; function BlockSpecLayers(){ objBody = $$('body')[0]; objBody.appendChild(Builder.node('div',{id:'block_layers'})); html = '<div id="handleBlock" style="position:absolute; color:white; left:0; top: 0; background-color:white; visibility:hidden;"></div>'; html += '<div id="closeBlock" style="position:absolute; color:white; right:0; top: 0; visibility:hidden;">close</div>'; html += '<div id="overBlock" style="position:absolute; visibility:hidden; width:100%; height:100%; left:0; top:0; background-color:black; z-index: 500;"></div>'; $('block_layers').innerHTML = html; return;} var blocksCollection = new TagCollection("blocksCollection1"); blocksCollection.SetDetector(detectBlock); TagDetect.Add(blocksCollection); document.observe('dom:loaded', BlockSpecLayers);