\n');
ImageWindow.document.write('\t\n');
ImageWindow.document.write('\n');
ImageWindow.document.close();
if (!ImageWindow.opener)
ImageWindow.opener = this;
return void(0);
}
function OpenSmartImageResizer(w, h){
ImageWindow.resizeTo(w + 12, h + 61);
}
//Funzione per il debug: elenca tutte le proprieta' dell'oggetto passato come parametro
function displayproperties(obj){
var w = window.open("", "properties","left=350, top=300, width=400,height=350, scrollbars=yes, menubar=no, toolsbar=no, status=no, resizable")
var prop;
var i=0;
var str="
";
for (prop in obj){
i +=1;
str += "
\n
\n\t" + i + "\n
\n
\n\t" + prop + "\n
\n
" + eval("obj." + prop) + "
\n
\n";
}
str += "
"
w.document.open();
w.document.write(str);
w.document.close();
}
var initWidth, initHeight;
// evento chiamato sull'onload dalla funzione ResizeWindow
function Fit() {
window.resizeBy(MaxLayerWidth() - initWidth, MaxLayerHeight() - initHeight);
}
// ridimensiona la finestra partendo dalle dimensioni iniziali in input
function ResizeWindow(w, h) {
initWidth = w, initHeight = h;
window.moveTo(0, 0)
window.onload = Fit
}
// restituisce il numero della versione dell'explorer
function getMSIEBrowserVersion() {
try {
var browser = navigator.appVersion.split(';')[1];
if (browser.indexOf('MSIE') == -1)
return -1;
return parseInt(browser.substr(browser.lastIndexOf(' ')))
} catch (e) {
return -1;
}
}
var MSIEVersione = getMSIEBrowserVersion();
//v1.1
//Copyright 2006 Adobe Systems, Inc. All rights reserved.
function AC_AX_RunContent(){
var ret = AC_AX_GetArgs(arguments);
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_AX_GetArgs(args){
var ret = new Object();
ret.embedAttrs = new Object();
ret.params = new Object();
ret.objAttrs = new Object();
for (var i=0; i < args.length; i=i+2){
var currArg = args[i].toLowerCase();
switch (currArg){
case "pluginspage":
case "type":
case "src":
ret.embedAttrs[args[i]] = args[i+1];
break;
case "data":
case "codebase":
case "classid":
case "id":
case "onafterupdate":
case "onbeforeupdate":
case "onblur":
case "oncellchange":
case "onclick":
case "ondblClick":
case "ondrag":
case "ondragend":
case "ondragenter":
case "ondragleave":
case "ondragover":
case "ondrop":
case "onfinish":
case "onfocus":
case "onhelp":
case "onmousedown":
case "onmouseup":
case "onmouseover":
case "onmousemove":
case "onmouseout":
case "onkeypress":
case "onkeydown":
case "onkeyup":
case "onload":
case "onlosecapture":
case "onpropertychange":
case "onreadystatechange":
case "onrowsdelete":
case "onrowenter":
case "onrowexit":
case "onrowsinserted":
case "onstart":
case "onscroll":
case "onbeforeeditfocus":
case "onactivate":
case "onbeforedeactivate":
case "ondeactivate":
ret.objAttrs[args[i]] = args[i+1];
break;
case "width":
case "height":
case "align":
case "vspace":
case "hspace":
case "class":
case "title":
case "accesskey":
case "name":
case "tabindex":
ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
break;
default:
ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
}
}
return ret;
}
//v1.0
//Copyright 2006 Adobe Systems, Inc. All rights reserved.
function AC_AddExtension(src, ext)
{
if (src.indexOf('?') != -1)
return src.replace(/\?/, ext+'?');
else
return src + ext;
}
function AC_Generateobj(objAttrs, params, embedAttrs)
{
var str = '';
document.write(str);
}
function AC_FL_RunContent(){
var ret =
AC_GetArgs
( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
, "application/x-shockwave-flash"
);
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_SW_RunContent(){
var ret =
AC_GetArgs
( arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
, null
);
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}
function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
var ret = new Object();
ret.embedAttrs = new Object();
ret.params = new Object();
ret.objAttrs = new Object();
for (var i=0; i < args.length; i=i+2){
var currArg = args[i].toLowerCase();
switch (currArg){
case "classid":
break;
case "pluginspage":
ret.embedAttrs[args[i]] = args[i+1];
break;
case "src":
case "movie":
args[i+1] = AC_AddExtension(args[i+1], ext);
ret.embedAttrs["src"] = args[i+1];
ret.params[srcParamName] = args[i+1];
break;
case "onafterupdate":
case "onbeforeupdate":
case "onblur":
case "oncellchange":
case "onclick":
case "ondblClick":
case "ondrag":
case "ondragend":
case "ondragenter":
case "ondragleave":
case "ondragover":
case "ondrop":
case "onfinish":
case "onfocus":
case "onhelp":
case "onmousedown":
case "onmouseup":
case "onmouseover":
case "onmousemove":
case "onmouseout":
case "onkeypress":
case "onkeydown":
case "onkeyup":
case "onload":
case "onlosecapture":
case "onpropertychange":
case "onreadystatechange":
case "onrowsdelete":
case "onrowenter":
case "onrowexit":
case "onrowsinserted":
case "onstart":
case "onscroll":
case "onbeforeeditfocus":
case "onactivate":
case "onbeforedeactivate":
case "ondeactivate":
case "type":
case "codebase":
ret.objAttrs[args[i]] = args[i+1];
break;
case "width":
case "height":
case "align":
case "vspace":
case "hspace":
case "class":
case "title":
case "accesskey":
case "name":
case "id":
case "tabindex":
ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
break;
default:
ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
}
}
ret.objAttrs["classid"] = classid;
if (mimeType) ret.embedAttrs["type"] = mimeType;
return ret;
}
////////////////////////////////////////////////////////////////////// FINE ADOBE
// restituisce la coordinata x del punto piu largo fra i layers della dynalay
function MaxLayerWidth() {
var mas = 0
var layers = document.getElementsByTagName("div")
for(var i = 0; i < layers.length; i++)
if (layers[i].id.indexOf("lay_") >= 0) {
if (mas < layers[i].offsetLeft + layers[i].clientWidth)
mas = layers[i].offsetLeft + layers[i].clientWidth
}
return mas
}
// restituisce la coordinata y del punto piu basso fra i layers della dynalay
var maxLayerHeightStored = 0;
function MaxLayerHeight() {
if (maxLayerHeightStored < 1){
var mas = 0
var layers = document.getElementsByTagName("div")
for(var i = 0; i < layers.length; i++)
if (layers[i].id.indexOf("lay_") >= 0) {
// explorer 7: se imposto l'altezza di un div ed il contenuto la supera non ridimensiona il div
// escludo i layers perche caricati in un secondo momento via js e con IE7 non si ridimensionano
if (navigator.userAgent.indexOf("MSIE 6.0") == -1 && layers[i].className.indexOf("layers_flash") == -1) {
layers[i].style.minHeight = layers[i].style.height
layers[i].style.height = "auto"
//layers[i].style.border = "1px solid red";
}
if (mas < layers[i].offsetTop + layers[i].clientHeight)
mas = layers[i].offsetTop + layers[i].clientHeight
}
maxLayerHeightStored = mas;
return mas
}
else{
return maxLayerHeightStored;
}
}
/****************************************************************** FLOAT LAYERS WITH SCROLL */
// array di layer da spostare
var FloatLayers = new Array();
var prevScrollTop = 0;
// restituisce la posizione orizzontale dell'elemento in input
function getXCoord(el) {
x = 0;
while(el) {
x += el.offsetLeft;
el = el.offsetParent;
}
return x;
}
// restituisce la posizione verticale dell'elemento in input
function getYCoord(el) {
y = 0;
while(el) {
y += el.offsetTop;
el = el.offsetParent;
}
return y;
}
// rende un layer spostabile
function floatMaking(layerName, x, y, speed) {
// aggangia il metodo di spostamento agli eventi pagina
window.onresize = floatAllLayers;
window.onscroll = floatAllLayers;
var layer = document.getElementById(layerName);
// setta alcune nuove proprieta al layer
layer.prevX = getXCoord(layer);
layer.prevY = getYCoord(layer);
layer.floatX = x;
layer.floatY = y;
layer.steps = speed;
layer.ifloatX = Math.abs(x); // coordinata x iniziale
layer.ifloatY = Math.abs(y); // coordinata y iniziale
layer.tm = null; // funzione in timeout (serve per evitare concorrenza)
layer.style.position = 'absolute';
// resetta le impostazioni del layer per calcolare quelle effettive (gestione specifica per i div della dynalay)
layer.style.height = "auto";
FloatLayers.push(layer);
floatLayer(layer);
}
// sposta tutti i layer
function floatAllLayers() {
for(var i = 0; i < FloatLayers.length; i++)
floatLayer(FloatLayers[i]);
// salvo lo scroll precedente per capire se sto scendendo o salendo
if (document.documentElement)
prevScrollTop = document.documentElement.scrollTop
else
prevScrollTop = document.body.scrollTop;
}
// calcola ed avvia lo spostamento (da ottimizzare quello orizzontale) del layer (div) in input e controlla che l'altezza non superi la pagina
function floatLayer(layer) {
var marginY = 100; // margine di visualizzazione sotto al layer
// calcolo lo spostamento
if (document.documentElement) { // doctype transitional
var windowHeight;
if (navigator.userAgent.indexOf('Opera') >= 0)
windowHeight = document.body.clientHeight;
else
windowHeight = document.documentElement.clientHeight;
if (prevScrollTop > document.documentElement.scrollTop
|| layer.prevY + layer.clientHeight + marginY < windowHeight + document.documentElement.scrollTop) {
// left
layer.floatX = document.documentElement.scrollLeft + layer.ifloatX;
// top
if (layer.clientHeight > windowHeight)
layer.floatY = document.documentElement.scrollTop;
else
layer.floatY = document.documentElement.scrollTop + layer.ifloatY;
/*
// right
layer.floatX = document.documentElement.scrollLeft + document.documentElement.clientWidth - layer.ifloatX - layer.offsetWidth;
// bottom
layer.floatY = document.documentElement.scrollTop + document.documentElement.clientHeight - layer.ifloatY - layer.offsetHeight;
*/
}
} else {
if (prevScrollTop > document.body.scrollTop
|| layer.prevY + layer.clientHeight + marginY < document.body.clientHeight + document.body.scrollTop) {
// left
layer.floatX = document.body.scrollLeft + layer.ifloatX;
// top
if (layer.clientHeight > document.body.clientHeight)
layer.floatY = document.body.scrollTop;
else
layer.floatY = document.body.scrollTop + layer.ifloatY;
/*
// right
layer.floatX = document.body.scrollLeft + document.body.clientWidth - layer.ifloatX - layer.offsetWidth;
// bottom
layer.floatY = document.body.scrollTop + document.body.clientHeight - layer.ifloatY - layer.offsetHeight;
*/
}
}
// controllo che non sfori mai le posizioni iniziali
if (layer.floatY < layer.ifloatY)
layer.floatY = layer.ifloatY
if (layer.floatX < layer.ifloatX)
layer.floatX = layer.ifloatX
// controllo che non sfori mai l'altezza della pagina
var documentHeight = MaxLayerHeight();
if (layer.floatY + layer.clientHeight > documentHeight)
layer.floatY = documentHeight - layer.clientHeight
// avvio lo spostamento
if(layer.prevX != layer.floatX || layer.prevY != layer.floatY)
if (layer.tm == null)
layer.tm = setTimeout(function () { floatDo(layer); }, 50);
}
// sposta il layer in input (solo in verticale)
function floatDo(layer) {
layer.tm = null;
if (layer.style.position != 'absolute') return;
var dx = Math.abs(layer.floatX - layer.prevX);
var dy = Math.abs(layer.floatY - layer.prevY);
if (dx < layer.steps / 2)
cx = (dx >= 1) ? 1 : 0;
else
cx = Math.round(dx / layer.steps);
if (dy < layer.steps / 2)
cy = (dy >= 1) ? 1 : 0;
else
cy = Math.round(dy / layer.steps);
if (layer.floatX > layer.prevX)
layer.prevX += cx;
else if (layer.floatX < layer.prevX)
layer.prevX -= cx;
if (layer.floatY > layer.prevY)
layer.prevY += cy;
else if (layer.floatY < layer.prevY)
layer.prevY -= cy;
//layer.style.left = layer.prevX + "px";
layer.style.top = layer.prevY + "px";
if (cx != 0 || cy != 0)
if (layer.tm == null)
layer.tm = setTimeout(function () { floatDo(layer); }, 50);
}
/********************************************************************************************/
/*******************************************************************************************
Funzione che allunga il layer indicato fino alla fine della pagina o della finestra
(considerando la maggiore delle due), eventualmente aggiungendo l'offset indicato
*******************************************************************************************/
function ResizeToBottom(layer, contentOffset, divBottomOffset){
//determina altezza della finestra
var windowHeight;
windowHeight = document.documentElement.clientHeight;
//determina altezza totale dei contenuti
var contentHeight = MaxLayerHeight() + contentOffset;
//determina l'altezza a cui fare riferimento per il resize.
var currentHeight;
if (contentHeight > windowHeight){
currentHeight = contentHeight;
}
else{
currentHeight = windowHeight;
}
//determina nuova dimensione layer
var newDivHeight = currentHeight - getYCoord(layer);
$('#' + layer.id).animate({height: (newDivHeight + divBottomOffset) + "px"}, 10 );
//var ef = new Effect.Morph(layer.id, {style: "height:" + (newDivHeight + divBottomOffset) + "px;", duration: 0.00, transition: Effect.Transitions.full});
}
/*******************************************************************************************
Funzioni e variabili che gestiscono l'allungamento ed il mantenimento della lunghezza dei layer
*******************************************************************************************/
//elenco dei layer da ridimensionare fino alla fine dell'elemento
var ResizedToBottomLayers = new Array();
var ResizedToBottomContentOffset = new Array();
var ResizedToBottomDivBottomOffset = new Array();
var ResizedToBottomWindowHeight = 0;
//imposta il layer indicato in modo che venga mantenuto fisso alla dimensione corretta.
function SetContinuousResizeToBottom(layer, contentOffset, divBottomOffset){
window.onresize = ResizeToBottomAllLayers;
window.onafterupdate = ResizeToBottomAllLayers;
ResizedToBottomLayers.push(layer);
ResizedToBottomContentOffset.push(contentOffset);
ResizedToBottomDivBottomOffset.push(divBottomOffset);
ResizeToBottom(layer, contentOffset, divBottomOffset);
}
//ridimensiona tutti i layer secondo le impostazioni di offset
function ResizeToBottomAllLayers(){
for(var i = 0; i < ResizedToBottomLayers.length; i++){
if (ResizedToBottomWindowHeight != document.documentElement.clientHeight){
ResizeToBottom(ResizedToBottomLayers[i], ResizedToBottomContentOffset[i], ResizedToBottomDivBottomOffset[i]);
}
}
ResizedToBottomWindowHeight = document.documentElement.clientHeight;
}
/*******************************************************************************************
Funzioni che convertono numeri e stringhe e viceversa
*******************************************************************************************/
//funzione che restituisce il valore numerico o NaN se se il valore non e' numerico
function toNumber(value){
var str = value.toString();
return parseFloat(str.replace(",","."));
}
//funzione che restituisce il numero formattato con le cifre decimali richieste
function FormatNumber(value, decimal){
var num = toNumber(value);
var num = num.toFixed(decimal);
var str = num.toString();
return str.replace('.',',');
}
function OpenPage(page, width, height){
OpenAutoPositionedSizedWindow(baseURL + "dynalay.asp?PAGINA=" + page.toString(), "_blank", width, height)
}
function openimage(image, width, height){
OpenImage(image, width, height);
}
function OpenImage(image, width, height){
if (width=='')
properties = ''
else
properties = 'width=' + width + ', height=' + height + ', resizable=yes, scrollbars=yes, status=yes, menubar=no, toolbars=no'
var w = window.open(imageURL + image, '_blank', properties);
if (!w.opener)
w.opener = this;
return void(0);
}