Clean up des tâches à faire et ajout de doc pour les protections de poussière

This commit is contained in:
Geekoid
2019-10-06 16:39:59 +02:00
parent f7faae6730
commit c8e28973e6
158 changed files with 6450 additions and 184 deletions

View File

@ -0,0 +1,275 @@
<html>
<head>
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=UA-129280539-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag() { dataLayer.push(arguments); }
gtag('js', new Date());
gtag('config', 'UA-129280539-1');
</script>
<title>Bellows</title>
<meta content="True" name="vs_showGrid">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="/Site.css">
<script type="text/javascript" src="/menu.js"></script>
</head>
<body>
<div id="mainContainer">
<div id="topBar">
<h1 align="center">Bellows</h1>
</div>
<div id="leftColumn" w3-include-html="/menu.html"></div>
<div id="mainContent">
<p>The linear slides I got off ebay didn't come with covers to stop swarf getting to the rails and ballscrews. So I decided to cover them with a bellows.</p>
<p><img border="0" src="bellows.jpg" width="476" height="377"></p>
<p>I did a little bit of research. There are some stock sized
commercial bellows available; these are usually rubberised fabric, welded at the seams.&nbsp;
I couldn't find any that fit, nor could I afford them.&nbsp; So
I googled for DIY bellows folding.&nbsp; Again, I drew a blank.&nbsp;
Then I checked the USPTO, and I hit a gold.</p>
<p>
<a href="http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=/netahtml/PTO/srchnum.htm&r=1&f=G&l=50&s1=6,054,194.PN.&OS=PN/6,054,194&RS=PN/6,054,194">Patent number 6,054,194</a>,
invented by Nathan R. Kane, is not just a description of
bellows, but it is a complete thesis on optimal fold patterns
for bellows.&nbsp; The optimal patterns will maximise the
bellows extension length, while minimising the side wall
distortion.&nbsp; By using just the fold pattern, a bellows can
be created that holds its shape without external support.</p>
<p>Polypropylene sheet was selected to make the bellows.&nbsp;
Polypropylene is a good &quot;hinge&quot; material, meaning it can be fold
back and forward repeatedly with fatigue.&nbsp; I tried a couple
different thicknesses, 1.2mm, 1mm, .7mm, and finally settled on
0.39mm - not that this is the best size, its just the thinnest
stuff I could find in large sheets.&nbsp; I think thinner sheet
would be better, but I couldn't find any.&nbsp; I found it at my
local craft store.</p>
<table id=polypropyleneGrain margin=5 bgcolor="#FFAAAA" border="2" bordercolor="#FF0000" cellspacing="6" cellpadding="6" bordercolorlight="#FF0000" bordercolordark="#FF0000" style="border-collapse: collapse">
<tr>
<td>
<p>Update!</p>
<p>Just a note on polypropylene.&nbsp; Polypropylene has grain!&nbsp;
I'm sure my terminology is incorrect, but polypropylene, like
paper or timber, has a preferred strong direction and a weak
direction.&nbsp; If you try to tear polypropylene sheet in its
weak direction, it will continue to tear in the direction it is
forced.&nbsp; In the other direction, 90&deg; to the weak
direction, the polypropylene will not tear, in fact it will turn
90&deg; to the weak direction.&nbsp; This is because of the
polymer chains (so I've read).&nbsp; </p>
<p>Why is this a problem?&nbsp; If you try to fold the
polypropylene with the folds running parallel to the weak
direction, the polypropylene will crack.&nbsp; It is important
to get the direction correct so the folds are perpendicular to
the weak direction.</p>
<p>So how do you find the weak direction?&nbsp; On the corner of
a sheet of polypropylene, make a small cut, 5mm long and about
5mm from the edge.&nbsp; Grab this tab and pull it.&nbsp; The
pictures below show the results.</p>
<p>
<table>
<tr>
<td><img border="0" src="TearAgainst.jpg" width="250" height="356"></td>
<td><img border="0" src="TearWith.jpg" width="250" height="356"></td>
</tr>
<tr>
<td align=center>Against the grain</td>
<td align=center>With the grain</td>
</tr>
</table>
<p>
The photo on the left shows trying to tear against the grain -
you can't do it.&nbsp; The photo on the right shows tearing with
the grain.&nbsp; The polypropylene tears easily.&nbsp; It is
imporant that the bellows fold lines are placed perpendicular to
this weak direction.</p>
</td></tr></table>
<p>&nbsp;</p>
<h2>Building the Bellows</h2>
<h3>1) Print the fold pattern</h3>
<p>The first step is to produce a fold pattern for the bellows.&nbsp;
For my first bellows, I used MS-Visio to lay out the lines.&nbsp;
This was a bit tedious, so I wrote a simple program.</p>
<p>
<img border="0" src="Application.png" width="669" height="559"></p>
<p>The program will only create a fold pattern for a simple bellows with either
regular or alternating folds.&nbsp; The &quot;generate g-code&quot; option
is not functional.&nbsp; I want to be able to generate g-code to
guide a knife to score the bellows material, however all the
bellows I need to create are larger than my mill, so this
feature was postponed.</p>
<p>The parameters are...</p>
<table id="table1">
<tr>
<td width=150px>Config</td>
<td>Different configurations can be selected.&nbsp;
Configurations are automatically saved when the program
exits, or a new configuration is selected.</td>
</tr>
<tr>
<td>New</td>
<td>Creates a new configuration.&nbsp; </td>
</tr>
<tr>
<td>Shape</td>
<td>Only a &quot;Half Cover&quot; is supported (2 sides and a top)</td>
</tr>
<tr>
<td>Inversion</td>
<td>Only 2 inversion are supported</td>
</tr>
<tr>
<td>Mounting Folds</td>
<td>The total number of extra folds to add for mounting
the ends of the bellows</td>
</tr>
<tr>
<td>Alternate Folds</td>
<td>If true, adjacent folds will alternate up and down,
rather than being in the same direction.&nbsp; This
makes the compressed bellows smaller, but the top of the
bellows has folds that may collect swarf. </td>
</tr>
<tr>
<td>Inside Width</td>
<td>The inside width that the bellows is going to cover.</td>
</tr>
<tr>
<td>Inside Heigth</td>
<td>The inside height that the bellows is going to
cover.</td>
</tr>
<tr>
<td>Protected Length</td>
<td>The length of the area the bellows is going to
cover.</td>
</tr>
<tr>
<td>Fold Width</td>
<td>The width of one fold.</td>
</tr>
</table>
<p>The program will print out the fold pattern.&nbsp; It will
tile the output over multiple pages.&nbsp; The diagonal line is
used for lining up the pages when they are stuck together.</p>
<p>The image below shows a snippet of the fold pattern.&nbsp;
Note the solid and dotted lines.&nbsp; A solid line is a peak
fold, and a dotted line is a valley fold (or vice-versa, it
doesn't matter).</p>
<p><img border="0" src="Pattern.png" width="451" height="447"></p>
<p>The picture shows the fold pattern with a sheet of
clear/translucent polypropylene on top.</p>
<p><img border="0" src="Layout.jpg" width="600" height="435"></p>
<p>The program and source can be downloaded here
<a href="Bellows.zip">
<img style="background-color=white" border="0" src="../../gplv3-88x31.png" width="88" height="31"></a>.&nbsp;
The code isn't terribly stable.&nbsp; It was only used to
generate a couple of patterns.&nbsp; The displayed pattern will
only be updated when you tab between fields.&nbsp; There is no
zoom - make the window bigger to see more of the pattern.</p>
<h3>2) Trim</h3>
<p>The polypropylene sheet is cut to size.&nbsp; It is then
stuck to the fold pattern using tape.</p>
<h3>3) Score the lines</h3>
<p>The next step is to encourage the polypropylene sheet to fold
at the correct place.&nbsp; If these were being produced
commercially, they could be vacuum formed, or pressed.&nbsp;
Since this is overkill for a couple of one-offs, I tried a
couple of manual techniques.</p>
<p>First I tried scoring with a hobby knife.&nbsp; This was
fine, but in a few spots the cuts went a bit deep and made the
fold weak.&nbsp; Next, I tried using my soldering iron to melt a
grove.&nbsp; This wasn't terribly successful as shown by the
video below.&nbsp; I did learn though that the scoring and
folding needs to be very accurate, or the bellows will not fold
properly.&nbsp; Finally, I settled on a scriber - a pen with a
sharp carbide tip used for scratching metal, to scratch the
polypropylene.</p>
<p>Use a metal ruler and carefully trace over the peak folds.&nbsp;
Take care and do this accurately or the bellows will not fold
properly.&nbsp; Don't score the diagonal guide line running the
length of page.</p>
<p>The picture below shows the scored peak folds.&nbsp; The
lighting in the picture makes them appear black.&nbsp; </p>
<p><img border="0" src="ScoredTop.jpg" width="500" height="362"></p>
<p>When scoring fold corners (line intersections), make sure you
overshoot the intersection by 2 or 3mm.&nbsp; This will help
with the folding later.</p>
<p>
<img border="0" src="ScoredOver.jpg" width="682" height="511"></p>
<p>When the top is finished, remove the polypropylene sheet,
flip it over and stick it back down on the fold pattern.&nbsp;
You can use the scored peak folds to line up with the printed
peak lines as the bellows patterns are symetrical.&nbsp; Then
score the valley fold lines.</p>
<p>The photo below shows a scored polypropylene sheet.</p>
<p><img border="0" src="Score.jpg" width="682" height="511"></p>
<h3>4) Crease the Folds</h3>
<p>Next, each of the scored lines needs to be creased.&nbsp;
Here, we are not trying to fold the bellows, just get the folds
going in the right direction.&nbsp; Just bend each fold and
squeeze them with your fingers, like in the photo below.</p>
<p><img border="0" src="Crease.jpg" width="500" height="303"></p>
<p>It is important to get all the small angle folds.&nbsp;&nbsp;&nbsp;
The folds must also be done in the right direction.&nbsp; If a
scored line is on the top of the sheet, the two sides of the
fold should fold down, like this...</p>
<p>
<img border="0" src="FoldDirection.png" width="497" height="312"></p>
<p>The creased bellows will look like this...</p>
<p><img border="0" src="Creased.jpg" width="568" height="407"></p>
<h3>5) Folding</h3>
<p>The final folding is the tricky bit.&nbsp; Although the
initial creasing does help the bellows want to go in the right
direction, it still takes a lot of finger muscle and patience to
fold the bellows.&nbsp; It is important that the corners are
sharp, otherwise they will be a source of ballooning.</p>
<p>I found it easiest to fold the bellows if I worked on one
side, folded 3 or 4 folds, clamp it, then do the other side.</p>
<p>
<img border="0" src="FingerFold.jpg" width="568" height="426"></p>
<p>The quick release clamps worked well holding a few folds at a
time.</p>
<p><img border="0" src="AndClamp.jpg" width="568" height="358"></p>
<p>Finally, all folded.</p>
<p>
<img border="0" src="DoubleClamp.jpg" width="594" height="248"></p>
<p>The bellows is clamped between two chunks of timber to
encourage it to stay in place.</p>
<p><img border="0" src="BigClamp.jpg" width="409" height="408"></p>
<p>The completed (blurry) bellows.</p>
<p><img border="0" src="Folded.jpg" width="392" height="352"></p>
<h3>6) Mounting</h3>
<p>Obviously this will depend on what you plan to use the
bellows for.&nbsp; I used some 3mm steel plate to mount on each
end of the bellows.&nbsp; The bellows are held to the plates by
M4 screws and small lengths of 3x10mm bar, tapped for the M4
screws.&nbsp;&nbsp; These were then mounted to my X axis slide.</p>
<p>
<img border="0" src="MountingParts.jpg" width="417" height="362"><img border="0" src="Mounted.jpg" width="414" height="343"></p>
<p>3mm steel plate probably wasn't the best choice for mounting
the bellows, as I have already hit tall hold down bolts with it.&nbsp;
In the future, I may tray thick plastic, and self adhesive
velcro strips.</p>
<h2>When good bellows go bad!</h2>
<p>The video below shows what happens when a bellows isn't
folded correctly.&nbsp; The bellows on the right was bubbling
out when it was closing.&nbsp; This snagged when moving in the Y
direction, leaving what you see now...</p>
<object width="425" height="350"> <param name="movie" value="http://www.youtube.com/v/1O0ln1kLFCI"> </param> <embed src="http://www.youtube.com/v/1O0ln1kLFCI" type="application/x-shockwave-flash" width="425" height="350"> </embed> </object>
</div>
</div>
<!-- #include file="/analytics.html" -->
</body>
</html>

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

View File

@ -0,0 +1,131 @@
html{
height:100%;
font-family: Sans-Serif;
}
body{
background-color:#B0E0E6;
}
h1
{
text-align: center;
font-family: Serif;
font-size: 24pt;
}
h2
{
}
h3
{
}
p
{
line-height: 130%;
}
.code {
font-family:monospace;
font-size:10pt;
}
#mainContainer{
margin: 0 auto;
margin-bottom: 10px;
height:100%;
text-align:left;
}
#leftColumn{
width:170px;
position:absolute;
top: 90px;
left: 0;
padding-left:10px;
background-color:#B0E0E6;
}
#mainContent{
/*width:590px;*/
padding-left:10px;
padding-right:10px;
position:absolute;
left: 170px;
top: 90px;
margin-left: 10px;
margin-right: 10px;
margin-top: 10px;
margin-bottom: 10px;
background-color:azure;
}
#topBar{
height:90px;
width:100%;
position:absolute;
top: 0;
left: 0;
}
/****************************************************************************************
* LAYOUT CSS FOR THE MENU
****************************************************************************************/
#dhtmlgoodies_listMenu a, #dhtmlgoodies_listMenu p{ /* Main menu items */
margin:1px;
padding:0px;
width:150px; /* Width of menu */
color:#000; /* Black text color */
background-color:#70BAD5;
text-decoration:none; /* No underline */
font-size:1em; /* Fixed font size */
padding-left:3px;
line-height:25px; /* Height of menu links */
display:block;
overflow:auto;
font-family:sans-serif;
}
#dhtmlgoodies_listMenu ul li p /* Sub menu no-link */
{
color: #0092a3;
font-weight:normal;
font-size:0.8em;
}
#dhtmlgoodies_listMenu ul li a /* Sub menu link */
{
font-weight:normal;
font-size:0.8em;
}
#dhtmlgoodies_listMenu ul li ul li a, #dhtmlgoodies_listMenu ul li ul li{ /* Sub Sub menu */
color: #000;
font-size:0.9em;
font-weight:normal;
}
#dhtmlgoodies_listMenu .activeMenuLink{ /* Styling of active menu item */
background-color:#7099d5;
}
/*
No bullets
*/
#dhtmlgoodies_listMenu li{
list-style-type:none;
}
/*
No margin and padding
*/
#dhtmlgoodies_listMenu, #dhtmlgoodies_listMenu ul{
margin:0px;
padding:0px;
}
/* Margin of sub menu items */
#dhtmlgoodies_listMenu ul{
display:none;
margin-left:10px;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 215 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

View File

@ -0,0 +1,278 @@
/************************************************************************************************************
(C) www.dhtmlgoodies.com, October 2005
This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.
Terms of use:
You are free to use this script as long as the copyright message is kept intact. However, you may not
redistribute, sell or repost it without our permission.
Thank you!
www.dhtmlgoodies.com
Alf Magne Kalleland
************************************************************************************************************/
/************************************************************************************************************
(C) www.franksworkshop.com, October 2008
This was originally from www.dhtmlgoodies.com, but I made significant changes to support hrefs on branches,
and match the full URL path to locate the current menu item. I couldn't really follow the code, so I rewrote
most of it, but used the same concepts as the original.
Terms of use:
You are free to use this script as long as the copyright message is kept intact. However, you may not
redistribute, sell or repost it without our permission.
************************************************************************************************************/
var activeNode = null;
var bAutoClose = true;
function isIE()
{
var ua = window.navigator.userAgent
var msie = ua.indexOf ( "MSIE " )
if ( msie > 0 ) // If Internet Explorer, return true
return true;
else // If another browser, return 0
return false;
}
function getChildUL(node)
{
var ul = null;
for ( var i = 0; i < node.childNodes.length; i++ )
{
if ( node.childNodes[i].tagName == 'UL' )
{
ul = node.childNodes[i];
break;
}
}
return ul;
}
function getParentUL(node)
{
while ( node != null )
{
if ( node.parentNode != null && node.parentNode.tagName == 'UL' )
return node.parentNode;
node = node.parentNode;
}
return null;
}
function toggleSubMenu(e)
{
var node = this;
var ul = getChildUL(node);
// first toggle this menu item.
if ( ul != null )
{
if ( ul.style.display == 'none' )
ul.style.display = 'block';
else
ul.style.display = 'none';
}
// next, optionally close any open menu items at the same level
if ( bAutoClose )
{
ul = getParentUL(node);
if ( ul != null )
{
for ( var i = 0; i < ul.childNodes.length; i++ )
{
var item = ul.childNodes[i];
if ( item != node )
{
var childUL = getChildUL(item);
if ( childUL != null )
childUL.style.display = 'none';
}
}
}
}
if (!e)
e = window.event;
e.cancelBubble = true;
if (e.stopPropagation)
e.stopPropagation();
}
function showPath(node)
{
// May need to make child nodes visible
var ul = getChildUL(node);
if ( ul != null )
ul.style.display = 'block';
// make the path to the parent visibile.
while ( node != null )
{
ul = getParentUL(node);
if ( ul != null )
ul.style.display = 'block';
node = ul;
}
}
function GetAElement( node )
{
for ( var i = 0; i < node.childNodes.length; i++ )
{
var node = node.childNodes[i];
if ( node.tagName == 'A' )
{
return node;
}
}
return null;
}
function getHRefPath( node )
{
var s = node.pathname;
while ( s != null && s.length > 0 && s.indexOf("/") == 0 )
{
s = s.substr(1);
}
return s;
}
function ProcessList( root, fileNameThis )
{
var hasChildren = false;
for ( var i = 0; i < root.childNodes.length; i++ )
{
var node = root.childNodes[i];
if ( node.tagName == 'LI' || node.tagName == 'UL' )
{
if ( node.tagName == 'LI' )
{
hasChildren = true;
// if this item has an A tag, check if it is the current page
var atag = GetAElement( node );
if ( atag != null && atag.href.charAt(atag.href.length-1)!='#')
{
var path = getHRefPath(atag).toLowerCase();
if ( path == fileNameThis )
{
// match
activeNode = node;
}
}
else // No A tag. Is either a branch or dead leaf
{
}
}
else // node.tagName == 'UL'
{
node.style.display='none';
}
if ( ProcessList( node, fileNameThis ) )
{
hasChildren = true;
// this is a branch node
if ( node.tagName == 'LI' )
{
node.onclick = toggleSubMenu;
var atag = node.firstChild;
var pointer = document.createElement("div");
if ( isIE() )
{
pointer.style.position = 'absolute';
pointer.style.left = "145px";
pointer.style.top = "20px";
}
else
{
pointer.style.position = 'relative';
pointer.style.left = "145px";
pointer.style.top = "0px";
}
pointer.style.width = "5px";
pointer.style.height = "5px";
pointer.style.borderStyle = "none";
pointer.style.padding = "0";
var img = document.createElement("img");
img.src = "/dot.png";
img.style.width = "5px";
img.style.height = "5px";
img.style.borderStyle = "none";
img.style.padding = "0";
atag.style.borderStyle = "none";
pointer.appendChild(img);
atag.appendChild(pointer);
}
}
}
}
return hasChildren;
}
// http://w3schools.com/ somewhere
function w3IncludeHTML() {
var z, i, a, file, xhttp;
z = document.getElementsByTagName("div");
for (i = 0; i < z.length; i++) {
if (z[i].getAttribute("w3-include-html")) {
a = z[i].cloneNode(false);
file = z[i].getAttribute("w3-include-html");
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function () {
if (xhttp.readyState == 4 && xhttp.status == 200) {
a.removeAttribute("w3-include-html");
a.innerHTML = xhttp.responseText;
z[i].parentNode.replaceChild(a, z[i]);
initMenu();
}
}
xhttp.open("GET", file, true);
xhttp.send();
return;
}
}
}
function initMenu()
{
// Find tree branch nodes and add onclick handlers
// Find the current node and select it
var objMenuRoot = document.getElementById('dhtmlgoodies_listMenu');
// We use the file path part of the URL to match A tag hrefs
var fileNameThis = getHRefPath(location).toLowerCase();
// strip any trailing guff
if (fileNameThis.indexOf('?') > 0)
fileNameThis = fileNameThis.substr(0,fileNameThis.indexOf('?'));
if (fileNameThis.indexOf('#') > 0)
fileNameThis = fileNameThis.substr(0,fileNameThis.indexOf('#'));
// Recurse through the lists
ProcessList( objMenuRoot, fileNameThis );
if ( activeNode != null )
{
activeNode.firstChild.className='activeMenuLink';
showPath(activeNode);
}
}
window.onload = w3IncludeHTML;

View File

@ -0,0 +1,255 @@
<!--?xml version="1.0" encoding="UTF-8"?-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="Generator" content="iWeb 3.0.4">
<meta name="iWeb-Build" content="local-build-20140430">
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7">
<meta name="viewport" content="width=700">
<title>Machine bellows</title>
<link rel="stylesheet" type="text/css" media="screen,print" href="Machine%20bellows_files/Machine_bellows.css">
<!--[if lt IE 8]><link rel='stylesheet' type='text/css' media='screen,print' href='Machine_bellows_files/Machine_bellowsIE.css'/><![endif]-->
<!--[if gte IE 8]><link rel='stylesheet' type='text/css' media='screen,print' href='Media/IE8.css'/><![endif]-->
<script type="text/javascript" src="Machine%20bellows_files/iWebSite.js"></script>
<script type="text/javascript" src="Machine%20bellows_files/WidgetCommon.js"></script>
<script type="text/javascript" src="Machine%20bellows_files/navbar.js"></script>
<script type="text/javascript" src="Machine%20bellows_files/iWebImage.js"></script>
<script type="text/javascript" src="Machine%20bellows_files/Machine_bellows.js"></script>
<style type="text/css">div#widget0 .navbar {
font-family: Arial, sans-serif;
font-size: 1em;
color: #666;
margin: 9px 0px 6px 0px;
line-height: 30px;
}
div#widget0 .navbar-bg {
text-align: center;
}
div#widget0 .navbar-bg ul {
list-style: none;
margin: 0px;
padding: 0px;
}
div#widget0 li {
list-style-type: none;
display: inline;
padding: 0px 10px 0px 10px;
}
div#widget0 li a {
text-decoration: none;
color: #666;
}
div#widget0 li a:visited {
text-decoration: none;
color: #666;
}
div#widget0 li a:hover
{
color: #463C3C;
text-decoration: none;
}
div#widget0 li.current-page a
{
color: #463C3C;
text-decoration: none;
font-weight: bold;
}
</style><link rel="stylesheet" type="text/css" href="Machine%20bellows_files/Machine_bellowsMoz.css"></head>
<body style="background: rgb(255, 255, 255); margin: 0pt; " onload="onPageLoad();" onunload="onPageUnload();">
<div style="text-align: center; ">
<div style="margin-bottom: 0px; margin-left: auto; margin-right: auto; margin-top: 0px; overflow: hidden; position: relative; word-wrap: break-word; background: rgb(255, 255, 255); text-align: left; width: 700px; " id="body_content">
<div style="margin-left: 0px; position: relative; width: 700px; z-index: 0; " id="nav_layer">
<div style="height: 0px; line-height: 0px; " class="bumper">&nbsp;</div>
<div class="com-apple-iweb-widget-navbar flowDefining" id="widget0" style="margin-left: 35px; margin-top: 0px; opacity: 1.00; position: relative; width: 630px; z-index: 1; ">
<div id="widget0-navbar" class="navbar">
<div id="widget0-bg" class="navbar-bg">
<ul id="widget0-navbar-list" class="navbar-list"><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/Index.html">Index&nbsp; </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/MEWS_DVD.html">MEWS&nbsp;DVD </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/News_and_editorial.html">News&nbsp;and&nbsp;editorial&nbsp; </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/Midlands_preview.html">Midlands&nbsp;preview </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/Wingroves_Alfa_8C.html">Wingrove's&nbsp;Alfa&nbsp;8C </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/Compound_two_cylinder.html">Compound&nbsp;two&nbsp;cylinder </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/Tich.html">Tich </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/Jim_Crebbin_book.html">Jim&nbsp;Crebbin&nbsp;book </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/Sir_Henry_Wood.html">Sir&nbsp;Henry&nbsp;Wood </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/Gerald_Wingrove.html">Gerald&nbsp;Wingrove </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/Cherrys_Model_Engines.html">Cherry's&nbsp;Model&nbsp;Engines </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/Compressed_air_engine.html">Compressed&nbsp;air&nbsp;engine </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/Petrolea.html">Petrolea </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/Bentley_rotary.html">Bentley&nbsp;rotary </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/Reunited_with_loco.html">Reunited&nbsp;with&nbsp;loco </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/6000_King_George_V.html">6000&nbsp;King&nbsp;George&nbsp;V </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/Campbell_oil_engine.html">Campbell&nbsp;oil&nbsp;engine </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/Experimental_valveless.html">Experimental&nbsp;valveless </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/5cc_ED_Hunter_3.html">5cc&nbsp;ED&nbsp;Hunter&nbsp;3 </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/ENV_aero_engine.html">ENV&nbsp;aero&nbsp;engine </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/Prospect_duplex_pump.html">Prospect&nbsp;duplex&nbsp;pump </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/Clubs.html">Clubs </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/Models_to_build.html">Models&nbsp;to&nbsp;build </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/Great_models.html">Great&nbsp;models </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/Special_features.html">Special&nbsp;features </a></li><li class="noncurrent-page"><a href="https://www.modelengineeringwebsite.com/Special_features_2.html">Special&nbsp;features&nbsp;2 </a></li></ul>
</div>
</div>
</div>
<script type="text/javascript"><!--//--><![CDATA[//><!--
new NavBar('widget0', 'Scripts/Widgets/Navbar', 'Scripts/Widgets/SharedResources', '.', {"path-to-root": "", "navbar-css": ".navbar {\n\tfont-family: Arial, sans-serif;\n\tfont-size: 1em;\n\tcolor: #666;\n\tmargin: 9px 0px 6px 0px;\n\tline-height: 30px;\n}\n\n.navbar-bg {\n\ttext-align: center;\n}\n\n.navbar-bg ul {\n\tlist-style: none;\n\tmargin: 0px;\n\tpadding: 0px;\n}\n\n\nli {\n\tlist-style-type: none;\n\tdisplay: inline;\n\tpadding: 0px 10px 0px 10px;\n}\n\n\nli a {\n\ttext-decoration: none;\n\tcolor: #666;\n}\n\nli a:visited {\n\ttext-decoration: none;\n\tcolor: #666;\n}\n\nli a:hover\r{\r\n \tcolor: #463C3C;\n\ttext-decoration: none;\r}\n\n\nli.current-page a\r{\r\t color: #463C3C;\n\ttext-decoration: none;\n\tfont-weight: bold;\r\r}\n", "current-page-GUID": "88D17FB2-4973-44DD-AC22-DC6A55E606AF", "isCollectionPage": "NO"});
//--><!]]></script>
<div style="clear: both; height: 0px; line-height: 0px; " class="spacer">&nbsp;</div>
</div>
<div style="float: left; height: 0px; line-height: 0px; margin-left: 0px; position: relative; width: 700px; z-index: 10; " id="header_layer">
<div style="height: 0px; line-height: 0px; " class="bumper">&nbsp;</div>
<div style="height: 1px; width: 630px; height: 1px; left: 35px; position: absolute; top: 3px; width: 630px; z-index: 1; " class="tinyText">
<div style="position: relative; width: 630px; ">
<img src="Machine%20bellows_files/shapeimage_1.jpg" alt="" style="height: 1px; left: 0px; position: absolute; top: 0px; width: 630px; ">
</div>
</div>
</div>
<div style="margin-left: 0px; position: relative; width: 700px; z-index: 5; " id="body_layer">
<div style="height: 0px; line-height: 0px; " class="bumper">&nbsp;</div>
<div style="height: 204px; width: 566px; height: 203px; left: 67px; position: absolute; top: 21px; width: 565px; z-index: 1; " class="tinyText style_SkipStrokeSkipFillSkipOpacity">
<div style="position: relative; width: 565px; ">
<img src="Machine%20bellows_files/shapeimage_2.png" alt="PROTECT MACHINE SLIDES
or
HOW TO MAKE BELLOWS
By Joerg Hugel
M4. C4n
" style="height: 204px; left: 0px; position: absolute; top: 0px; width: 566px; ">
</div>
</div>
<div style="height: 38px; width: 15px; height: 38px; left: 38px; position: absolute; top: 7px; width: 15px; z-index: 1; " class="tinyText style_SkipStroke stroke_0">
<a href="https://www.modelengineeringwebsite.com/De-Winton_coffee_pot_loco.html" title="De-Winton_coffee_pot_loco.html"><img src="Machine%20bellows_files/thumb_arrow_stubby_left.jpg" alt="" style="border: none; height: 38px; width: 15px; "></a>
</div>
<div style="height: 38px; width: 15px; height: 38px; left: 645px; position: absolute; top: 7px; width: 15px; z-index: 1; " class="tinyText style_SkipStroke stroke_0">
<a href="https://www.modelengineeringwebsite.com/Donegal_railbus_7_2.5.html" title="Donegal_railbus_7_2.5.html"><img src="Machine%20bellows_files/thumb_arrow_stubby_right.jpg" alt="" style="border: none; height: 38px; width: 15px; "></a>
</div>
<div id="id1" style="height: 5383px; left: 77px; position: absolute; top: 236px; width: 546px; z-index: 1; " class="style_SkipStroke_3 shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_546_5383" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-top: 0pt; line-height: 17.1475px;" class="paragraph_style" xml:lang="--multilingual" lang="--multilingual">The
slide ways of machine tools are very sensitive components and should
always be clean and free from any debris. The machines for industrial
production are carefully designed today with protective elements, not
only to keep the slide, slide ways and sensors clean but also avoid any
pollution of the environment. However, in the enthusiasts' workshops
this is not the standard. Most lathes and milling machines the author
has seen have no or at best very rudimentary devices for the protection
of the slide ways or lead screws. Clearly any protective cover needs
some space and reduces the usable travelling distances of the carriages,
slides or work heads. As long, as the machines are operated manually
the operator may be responsible for removing the swarf. For CNC
controlled machines another solution is necessary. For grinding
equipment an effective slide protection is a must because the dust of
abrasives together with the lubricant of the slides is a very efficient
lapping paste.<br></p>
<div class="paragraph paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual"><div style="clear: left; float: left; height: 403px; margin: 7px 7px 7px 1px; position: relative; width: 537px;" class="tinyText style_SkipStroke_1 inline-block stroke_1"><div style="position: relative; overflow: visible;"><img src="Machine%20bellows_files/Photo-1.jpg" alt="" style="border: none; height: 403px; width: 538px; "><img src="Machine%20bellows_files/stroke.png" style="position: absolute; left: -1px; top: 1px; width: 2px; height: 401px;z-index: auto;"><img src="Machine%20bellows_files/stroke_1.png" style="position: absolute; left: -1px; top: -1px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_2.png" style="position: absolute; left: 1px; top: -1px; width: 535px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_3.png" style="position: absolute; left: 536px; top: -1px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_4.png" style="position: absolute; left: 536px; top: 1px; width: 2px; height: 401px;z-index: auto;"><img src="Machine%20bellows_files/stroke_5.png" style="position: absolute; left: 536px; top: 402px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_6.png" style="position: absolute; left: 1px; top: 402px; width: 535px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_7.png" style="position: absolute; left: -1px; top: 402px; width: 2px; height: 2px;z-index: auto;"></div></div><span class="style" style="line-height: 17.1475px;">Photo 1: A Sherline CNC mill with bellows<br></span></div>
<p class="paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual"><br></p>
<p class="paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">There
are different solutions to protect the sensitive components of a lathe,
milling or grinding machine. One very simple answer are bellows and
this short article will show, how they can be made. In Photo <span class="style_1" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">1</span>
is my Sherline milling machine, converted into a CNC machine. The slide
and lead screw of X-axis are protected from swarf in the design of the
machine but not the respective components for the Y-axis. Therefore, two
bellows were installed. One end is mounted to the cross slide, the
other ends are held by two flanges, fixed to the base plate by a spring
loaded ball detent. So the bellows can be easily lifted for cleaning and
lubricating the slide ways, no tool is necessary. In Photo <span class="style_1" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">2</span> the bellows for a Stent tool grinder is seen.<br></p>
<div class="paragraph paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual"><div style="clear: left; float: left; height: 403px; margin: 7px 7px 7px 1px; position: relative; width: 537px;" class="tinyText style_SkipStroke_1 inline-block stroke_2"><div style="position: relative; overflow: visible;"><img src="Machine%20bellows_files/Photo-2.jpg" alt="" style="border: none; height: 403px; width: 538px; "><img src="Machine%20bellows_files/stroke_8.png" style="position: absolute; left: -1px; top: 1px; width: 2px; height: 401px;z-index: auto;"><img src="Machine%20bellows_files/stroke_9.png" style="position: absolute; left: -1px; top: -1px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_10.png" style="position: absolute; left: 1px; top: -1px; width: 535px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_11.png" style="position: absolute; left: 536px; top: -1px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_12.png" style="position: absolute; left: 536px; top: 1px; width: 2px; height: 401px;z-index: auto;"><img src="Machine%20bellows_files/stroke_13.png" style="position: absolute; left: 536px; top: 402px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_14.png" style="position: absolute; left: 1px; top: 402px; width: 535px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_15.png" style="position: absolute; left: -1px; top: 402px; width: 2px; height: 2px;z-index: auto;"></div></div><span class="style" style="line-height: 17.1475px;">Photo 2: Bellows for a Stent tool grinder<br></span></div>
<p class="paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual"><br></p>
<p class="paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">Figure <span class="style_1" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">1</span>
shows the folding scheme for bellows. It is a simple matter to make
this from a sheet of paper. But with other materials, e.g. leather or
fabrics this would be difficult or even impossible. Paper has the
necessary stiffness and if folded becomes flexible at the edges. <br></p>
<div class="paragraph paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual"><div style="clear: left; float: left; height: 322px; margin: 7px 7px 7px 1px; position: relative; width: 537px;" class="tinyText style_SkipStroke_1 inline-block stroke_3"><div style="position: relative; overflow: visible;"><img src="Machine%20bellows_files/Figure-1.jpg" alt="" style="border: none; height: 322px; width: 538px; "><img src="Machine%20bellows_files/stroke_16.png" style="position: absolute; left: -1px; top: 1px; width: 2px; height: 320px;z-index: auto;"><img src="Machine%20bellows_files/stroke_17.png" style="position: absolute; left: -1px; top: -1px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_18.png" style="position: absolute; left: 1px; top: -1px; width: 535px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_19.png" style="position: absolute; left: 536px; top: -1px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_20.png" style="position: absolute; left: 536px; top: 1px; width: 2px; height: 320px;z-index: auto;"><img src="Machine%20bellows_files/stroke_21.png" style="position: absolute; left: 536px; top: 321px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_22.png" style="position: absolute; left: 1px; top: 321px; width: 535px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_23.png" style="position: absolute; left: -1px; top: 321px; width: 2px; height: 2px;z-index: auto;"></div></div>Figure <span class="style_1" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">1</span>: The folding scheme for bellows<br></div>
<p class="paragraph_style_1" xml:lang="--multilingual" style="line-height: 15.4375px;" lang="--multilingual"><br></p>
<p class="paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">The bellows in Photo <span class="style_1" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">3</span>
were commercially manufactured. To make these from different materials,
even from sheet metal, very special jigs are used. I would not go into
the details. But please notice, the folding scheme is different from
Figure <span class="style_1" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">1</span>.
This has the property that the side parts of stretched bellows move
together, opposite to the behaviour of the bellows of Figure <span class="style_1" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">1</span>. In the experience of the author these features are not really essential. <br></p>
<div class="paragraph paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual"><div style="clear: left; float: left; height: 399px; margin: 7px 7px 7px 1px; position: relative; width: 537px;" class="tinyText style_SkipStroke_1 inline-block stroke_4"><div style="position: relative; overflow: visible;"><img src="Machine%20bellows_files/Photo-3.jpg" alt="" style="border: none; height: 399px; width: 538px; "><img src="Machine%20bellows_files/stroke_24.png" style="position: absolute; left: -1px; top: 1px; width: 2px; height: 397px;z-index: auto;"><img src="Machine%20bellows_files/stroke_25.png" style="position: absolute; left: -1px; top: -1px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_26.png" style="position: absolute; left: 1px; top: -1px; width: 535px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_27.png" style="position: absolute; left: 536px; top: -1px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_28.png" style="position: absolute; left: 536px; top: 1px; width: 2px; height: 397px;z-index: auto;"><img src="Machine%20bellows_files/stroke_29.png" style="position: absolute; left: 536px; top: 398px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_30.png" style="position: absolute; left: 1px; top: 398px; width: 535px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_31.png" style="position: absolute; left: -1px; top: 398px; width: 2px; height: 2px;z-index: auto;"></div></div><span class="style" style="line-height: 17.1475px;">Photo 3: An example of commercially manufactured bellows<br></span></div>
<p class="paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual"><br></p>
<p class="paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">Clearly
bellows from paper wouldn't be suitable for the purpose regarded here.
But a combination of paper, more precisely, polyester paper, and a&nbsp;
protective layer could be the solution. By accident the author received
a somewhat worn out protective cover for an ironing board. This is a
compound of a thin foam layer and a fabric which has a metalized
surface. The foam was easily scraped off. he metalized fabric together
with the polyester paper has proved to be the perfect material for
bellows for milling and grinding machines. <br></p>
<p class="paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual"><br></p>
<p class="paragraph_style_2" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">Manufacturing Details<br></p>
<p class="paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">First
it is necessary to make the design, a drawing with the folding lines.
In the compressed state the folding angles are zero, for the maximum
length a folding angle of 45 Deg. is recommended, however not more than
60 Deg. To avoid errors the lines should show the folding direction by
different line pattern or colours. An example is seen in Figure <span class="style_1" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">2</span>.<br></p>
<div class="paragraph paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual"><div style="clear: left; float: left; height: 377px; margin: 7px 7px 7px 1px; position: relative; width: 537px;" class="tinyText style_SkipStroke_1 inline-block stroke_5"><div style="position: relative; overflow: visible;"><img src="Machine%20bellows_files/Figure-2.jpg" alt="" style="border: none; height: 378px; width: 538px; "><img src="Machine%20bellows_files/stroke_32.png" style="position: absolute; left: -1px; top: 1px; width: 2px; height: 375px;z-index: auto;"><img src="Machine%20bellows_files/stroke_33.png" style="position: absolute; left: -1px; top: -1px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_34.png" style="position: absolute; left: 1px; top: -1px; width: 535px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_35.png" style="position: absolute; left: 536px; top: -1px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_36.png" style="position: absolute; left: 536px; top: 1px; width: 2px; height: 375px;z-index: auto;"><img src="Machine%20bellows_files/stroke_37.png" style="position: absolute; left: 536px; top: 376px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_38.png" style="position: absolute; left: 1px; top: 376px; width: 535px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_39.png" style="position: absolute; left: -1px; top: 376px; width: 2px; height: 2px;z-index: auto;"></div></div><span class="style" style="line-height: 17.1475px;">Figure 2: Drawing for the folding lines<br></span></div>
<p class="paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual"><span class="style" style="line-height: 17.1475px;"><br></span></p>
<div class="paragraph paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual"><div style="clear: left; float: left; height: 375px; margin: 7px 7px 7px 1px; position: relative; width: 537px;" class="tinyText style_SkipStroke_1 inline-block stroke_6"><div style="position: relative; overflow: visible;"><img src="Machine%20bellows_files/Photo-4.jpg" alt="" style="border: none; height: 375px; width: 538px; "><img src="Machine%20bellows_files/stroke_40.png" style="position: absolute; left: -1px; top: 1px; width: 2px; height: 373px;z-index: auto;"><img src="Machine%20bellows_files/stroke_41.png" style="position: absolute; left: -1px; top: -1px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_42.png" style="position: absolute; left: 1px; top: -1px; width: 535px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_43.png" style="position: absolute; left: 536px; top: -1px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_44.png" style="position: absolute; left: 536px; top: 1px; width: 2px; height: 373px;z-index: auto;"><img src="Machine%20bellows_files/stroke_45.png" style="position: absolute; left: 536px; top: 374px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_46.png" style="position: absolute; left: 1px; top: 374px; width: 535px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_47.png" style="position: absolute; left: -1px; top: 374px; width: 2px; height: 2px;z-index: auto;"></div></div><span class="style" style="line-height: 17.1475px;">Photo 4: Polyester paper and metalized fabric<br></span></div>
<p class="paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual"><span class="style" style="line-height: 17.1475px;"><br></span></p>
<p class="paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">The materials for the bellows can be seen in Photo <span class="style_1" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">4</span>. The drawing for the folding lines is now transferred to a sheet of polyester paper as seen in Photo <span class="style_1" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">4</span>a. Recommended grade is&nbsp; 120 to 180 g/mm<span class="style_2" style="line-height: 11.3841px;">2</span>,
equivalent to 0,1 to 0,15 mm thickness. In this case the drawing was
made with an inkjet printer. However, to dry the drawing takes several
hours if not a day. A laser printer cannot be used, because the
polyester paper becomes warped by the heat. But as seen in Photo <span class="style_1" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">4</span>b
the polyester paper is available with a millimetre grid and then a
manual drawing of the folding lines is really a simple matter. In Photo <span class="style_1" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">4</span> c the metalized fabric is shown from the rear side.<br></p>
<div class="paragraph paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual"><div style="clear: left; float: left; height: 165px; margin: 7px 7px 7px 1px; position: relative; width: 537px;" class="tinyText style_SkipStroke_1 inline-block stroke_7"><div style="position: relative; overflow: visible;"><img src="Machine%20bellows_files/Photo-5.jpg" alt="" style="border: none; height: 166px; width: 538px; "><img src="Machine%20bellows_files/stroke_48.png" style="position: absolute; left: -1px; top: 1px; width: 2px; height: 163px;z-index: auto;"><img src="Machine%20bellows_files/stroke_49.png" style="position: absolute; left: -1px; top: -1px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_50.png" style="position: absolute; left: 1px; top: -1px; width: 535px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_51.png" style="position: absolute; left: 536px; top: -1px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_52.png" style="position: absolute; left: 536px; top: 1px; width: 2px; height: 163px;z-index: auto;"><img src="Machine%20bellows_files/stroke_53.png" style="position: absolute; left: 536px; top: 164px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_54.png" style="position: absolute; left: 1px; top: 164px; width: 535px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_55.png" style="position: absolute; left: -1px; top: 164px; width: 2px; height: 2px;z-index: auto;"></div></div><span class="style" style="line-height: 17.1475px;">Photo 5: Two folding legs<br></span></div>
<p class="paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual"><span class="style" style="line-height: 17.1475px;"><br></span></p>
<p class="paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">Now
the polyester paper is folded in several steps. Here the bookbinder's
traditional tool, the folding leg, comes into its own; two examples are
shown in Photo <span class="style_1" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">5</span>. The folded paper bellows are seen in Photo <span class="style_1" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">6</span>.<br></p>
<div class="paragraph paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual"><div style="clear: left; float: left; height: 403px; margin: 7px 7px 7px 1px; position: relative; width: 537px;" class="tinyText style_SkipStroke_1 inline-block stroke_8"><div style="position: relative; overflow: visible;"><img src="Machine%20bellows_files/Photo-6.jpg" alt="" style="border: none; height: 403px; width: 538px; "><img src="Machine%20bellows_files/stroke_56.png" style="position: absolute; left: -1px; top: 1px; width: 2px; height: 401px;z-index: auto;"><img src="Machine%20bellows_files/stroke_57.png" style="position: absolute; left: -1px; top: -1px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_58.png" style="position: absolute; left: 1px; top: -1px; width: 535px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_59.png" style="position: absolute; left: 536px; top: -1px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_60.png" style="position: absolute; left: 536px; top: 1px; width: 2px; height: 401px;z-index: auto;"><img src="Machine%20bellows_files/stroke_61.png" style="position: absolute; left: 536px; top: 402px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_62.png" style="position: absolute; left: 1px; top: 402px; width: 535px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_63.png" style="position: absolute; left: -1px; top: 402px; width: 2px; height: 2px;z-index: auto;"></div></div><span class="style" style="line-height: 17.1475px;">Photo 6: The bellows from polyester paper<br></span></div>
<p class="paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual"><br></p>
<p class="paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">Then the fabric and paper bellows are put together with white PVAC glue as seen in Photo <span class="style_1" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">7</span>. The completed bellows are shown in Photo <span class="style_1" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual">8</span>.<br></p>
<div class="paragraph paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual"><div style="clear: left; float: left; height: 403px; margin: 7px 7px 7px 1px; position: relative; width: 537px;" class="tinyText style_SkipStroke_2 inline-block stroke_9"><div style="position: relative; overflow: visible;"><img src="Machine%20bellows_files/Photo-7.jpg" alt="" style="border: none; height: 403px; width: 538px; "><img src="Machine%20bellows_files/stroke_64.png" style="position: absolute; left: -1px; top: 1px; width: 2px; height: 401px;z-index: auto;"><img src="Machine%20bellows_files/stroke_65.png" style="position: absolute; left: -1px; top: -1px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_66.png" style="position: absolute; left: 1px; top: -1px; width: 535px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_67.png" style="position: absolute; left: 536px; top: -1px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_68.png" style="position: absolute; left: 536px; top: 1px; width: 2px; height: 401px;z-index: auto;"><img src="Machine%20bellows_files/stroke_69.png" style="position: absolute; left: 536px; top: 402px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_70.png" style="position: absolute; left: 1px; top: 402px; width: 535px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_71.png" style="position: absolute; left: -1px; top: 402px; width: 2px; height: 2px;z-index: auto;"></div></div><span class="style" style="line-height: 17.1475px;">Photo 7: The metalized fabric glued to the paper<br></span></div>
<p class="paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual"><br></p>
<div class="paragraph paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual"><div style="clear: left; float: left; height: 507px; margin: 7px 7px 7px 1px; position: relative; width: 537px;" class="tinyText style_SkipStroke_1 inline-block stroke_10"><div style="position: relative; overflow: visible;"><img src="Machine%20bellows_files/Photo-8.jpg" alt="" style="border: none; height: 508px; width: 538px; "><img src="Machine%20bellows_files/stroke_72.png" style="position: absolute; left: -1px; top: 1px; width: 2px; height: 505px;z-index: auto;"><img src="Machine%20bellows_files/stroke_73.png" style="position: absolute; left: -1px; top: -1px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_74.png" style="position: absolute; left: 1px; top: -1px; width: 535px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_75.png" style="position: absolute; left: 536px; top: -1px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_76.png" style="position: absolute; left: 536px; top: 1px; width: 2px; height: 505px;z-index: auto;"><img src="Machine%20bellows_files/stroke_77.png" style="position: absolute; left: 536px; top: 506px; width: 2px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_78.png" style="position: absolute; left: 1px; top: 506px; width: 535px; height: 2px;z-index: auto;"><img src="Machine%20bellows_files/stroke_79.png" style="position: absolute; left: -1px; top: 506px; width: 2px; height: 2px;z-index: auto;"></div></div><span class="style_1" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual"></span><span class="style_1" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual"></span><span class="style" style="line-height: 17.1475px;">Photo 8: The bellows completed.<br></span></div>
<p class="paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual"><span class="style" style="line-height: 17.1475px;"><br></span></p>
<p class="paragraph_style" xml:lang="--multilingual" style="line-height: 17.1475px;" lang="--multilingual"><br></p>
<p style="padding-bottom: 0pt; line-height: 17.1475px;" class="paragraph_style_3" xml:lang="--multilingual" lang="--multilingual">Joerg
Hugel is a Member of the Society of Model &amp; Experimental Engineers
and this article first appeared in the SMEE Journal in February 2014.</p>
</div>
<div style="clear: both; height: 0px; line-height: 0px; " class="tinyText">&nbsp;</div>
</div>
</div>
<div id="id2" style="height: 100px; left: 300px; position: absolute; top: 6167px; width: 100px; z-index: 1; " class="style_SkipStroke_3 shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_100_100" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default"></div>
</div>
</div>
<div id="id3" style="height: 133px; left: 82px; position: absolute; top: 5713px; width: 536px; z-index: 1; " class="style_SkipStroke_3 shape-with-text">
<div class="text-content graphic_textbox_layout_style_default_External_536_133" style="padding: 0px; ">
<div class="graphic_textbox_layout_style_default">
<p style="padding-top: 0pt; " class="paragraph_style_4"><br></p>
<p class="paragraph_style_5"><br></p>
<p style="padding-bottom: 0pt; " class="paragraph_style_6">MEWS IS SPONSORED BY - <a title="http://www.bristolmodelengineers.co.uk/Exhibition/exhib.htm" href="http://www.bristolmodelengineers.co.uk/Exhibition/exhib.htm" class="style_3">BRISTOL EXHIBITION</a> - <a title="http://www.theharrogateshow.com/index.html" href="http://www.theharrogateshow.com/index.html" class="style_3">HARROGATE EXHIBITION</a> - <a title="http://www.teepublishing.co.uk/" href="http://www.teepublishing.co.uk/" class="style_3">TEE PUBLISHING</a> - <a title="http://www.meridienneexhibitions.co.uk/" href="http://www.meridienneexhibitions.co.uk/" class="style_3">MERIDIENNE EXHIBITIONS</a> - <a title="http://www.lynxmodelworks.co.uk/" href="http://www.lynxmodelworks.co.uk/" class="style_3">LYNX MODELS</a> - <a title="http://www.camdenmin.co.uk/" href="http://www.camdenmin.co.uk/" class="style_3">CAMDEN MINIATURE STEAM</a> - <a title="http://modelengineeringwebsite.com/transwave_ad.html" href="http://modelengineeringwebsite.com/transwave_ad.html" class="style_3">TRANSWAVE CONVERTERS</a> - <a title="http://www.faszination-modellbau.de/echtdampf-hallentreffen-karlsruhe/info-point/prices-opening-hours/?L=1" href="http://www.faszination-modellbau.de/echtdampf-hallentreffen-karlsruhe/info-point/prices-opening-hours/?L=1" class="style_3">MESSE SINSHEIM</a> - <a title="http://www.chronos.ltd.uk/" href="http://www.chronos.ltd.uk/" class="style_3">CHRONOS</a> -&nbsp;&nbsp; <a title="http://paulthecad.co.uk/" href="http://paulthecad.co.uk/" class="style_3">PAULTHECAD.CO.UK</a> - <a title="http://www.eccentricengineering.com.au/" href="http://www.eccentricengineering.com.au/" class="style_3">ECCENTRIC ENGINEERING</a> <a title="http://www.warco.co.uk/" href="http://www.warco.co.uk/" class="style_3">- WARCO -</a></p>
</div>
</div>
</div>
<div style="height: 6267px; line-height: 6267px; " class="spacer">&nbsp;</div>
</div>
<div style="height: 150px; margin-left: 0px; position: relative; width: 700px; z-index: 15; " id="footer_layer">
<div style="height: 0px; line-height: 0px; " class="bumper">&nbsp;</div>
</div>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

View File

@ -0,0 +1,365 @@
.paragraph_style {
color: rgb(0, 0, 0);
font-family: 'GillSans-Light', 'Gill Sans', 'Trebuchet MS', sans-serif;
font-size: 15px;
font-stretch: normal;
font-style: normal;
font-variant: normal;
font-weight: 300;
letter-spacing: 0;
line-height: 19px;
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
margin-top: 0px;
opacity: 1.00;
padding-bottom: 0px;
padding-top: 0px;
text-align: justify;
text-decoration: none;
text-indent: 0px;
text-transform: none;
}
.style {
font-family: 'GillSans-LightItalic', 'Gill Sans', 'Trebuchet MS', sans-serif;
font-size: 15px;
font-stretch: normal;
font-style: italic;
font-weight: 300;
line-height: 19px;
}
.style_1 {
line-height: 19px;
}
.paragraph_style_1 {
color: rgb(0, 0, 0);
font-family: 'TimesNewRomanPSMT', 'Times New Roman', serif;
font-size: 14px;
font-stretch: normal;
font-style: normal;
font-variant: normal;
font-weight: 400;
letter-spacing: 0;
line-height: 18px;
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
margin-top: 0px;
opacity: 1.00;
padding-bottom: 0px;
padding-top: 0px;
text-align: justify;
text-decoration: none;
text-indent: 0px;
text-transform: none;
}
.paragraph_style_2 {
color: rgb(0, 0, 0);
font-family: 'GillSans-Bold', 'Gill Sans', 'Trebuchet MS', sans-serif;
font-size: 15px;
font-stretch: normal;
font-style: normal;
font-variant: normal;
font-weight: 700;
letter-spacing: 0;
line-height: 20px;
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
margin-top: 0px;
opacity: 1.00;
padding-bottom: 3px;
padding-top: 12px;
text-align: justify;
text-decoration: none;
text-indent: 0px;
text-transform: none;
}
.style_2 {
font-family: 'GillSans-Light', 'Gill Sans', 'Trebuchet MS', sans-serif;
font-size: 10px;
font-stretch: normal;
font-style: normal;
font-weight: 300;
line-height: 19px;
vertical-align: 4px;
}
.style_SkipStroke_2 {
background: transparent;
opacity: 1.00;
}
.paragraph_style_3 {
color: rgb(0, 0, 0);
font-family: 'GillSans-LightItalic', 'Gill Sans', 'Trebuchet MS', sans-serif;
font-size: 15px;
font-stretch: normal;
font-style: italic;
font-variant: normal;
font-weight: 300;
letter-spacing: 0;
line-height: 19px;
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
margin-top: 0px;
opacity: 1.00;
padding-bottom: 6px;
padding-top: 6px;
text-align: left;
text-decoration: none;
text-indent: 0px;
text-transform: none;
}
.style_SkipStroke_3 {
background: transparent;
opacity: 1.00;
}
.style_SkipStrokeSkipFillSkipOpacity {
}
.style_SkipStroke {
background: transparent;
opacity: 1.00;
}
.style_SkipStroke_1 {
background: transparent;
opacity: 1.00;
}
.paragraph_style_4 {
color: rgb(0, 0, 0);
font-family: 'BankGothic-Medium', 'Bank Gothic', 'Arial', sans-serif;
font-size: 1px;
font-stretch: normal;
font-style: normal;
font-variant: normal;
font-weight: 500;
letter-spacing: 0;
line-height: 1px;
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
margin-top: 0px;
opacity: 1.00;
padding-bottom: 0px;
padding-top: 0px;
text-align: left;
text-decoration: none;
text-indent: 0px;
text-transform: none;
}
.paragraph_style_5 {
color: rgb(0, 0, 0);
font-family: 'BankGothic-Medium', 'Bank Gothic', 'Arial', sans-serif;
font-size: 16px;
font-stretch: normal;
font-style: normal;
font-variant: normal;
font-weight: 500;
letter-spacing: 0;
line-height: 17px;
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
margin-top: 0px;
opacity: 1.00;
padding-bottom: 0px;
padding-top: 0px;
text-align: left;
text-decoration: none;
text-indent: 0px;
text-transform: none;
}
.paragraph_style_6 {
color: rgb(0, 0, 0);
font-family: 'BankGothic-Medium', 'Bank Gothic', 'Arial', sans-serif;
font-size: 16px;
font-stretch: normal;
font-style: normal;
font-variant: normal;
font-weight: 500;
letter-spacing: 0;
line-height: 17px;
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
margin-top: 0px;
opacity: 1.00;
padding-bottom: 0px;
padding-top: 0px;
text-align: center;
text-decoration: none;
text-indent: 0px;
text-transform: none;
}
.style_3 {
line-height: 17px;
}
.Beschriftung {
color: rgb(0, 0, 0);
font-family: 'TimesNewRomanPSMT', 'Times New Roman', serif;
font-size: 14px;
font-stretch: normal;
font-style: normal;
font-variant: normal;
font-weight: 400;
letter-spacing: 0;
line-height: 16px;
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
margin-top: 0px;
opacity: 1.00;
padding-bottom: 6px;
padding-top: 6px;
text-align: left;
text-decoration: none;
text-indent: 0px;
text-transform: none;
}
.Free_Form {
color: rgb(88, 77, 77);
font-family: 'ArialMT', 'Arial', sans-serif;
font-size: 15px;
font-stretch: normal;
font-style: normal;
font-variant: normal;
font-weight: 400;
letter-spacing: 0;
line-height: 20px;
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
margin-top: 0px;
opacity: 1.00;
padding-bottom: 0px;
padding-top: 0px;
text-align: left;
text-decoration: none;
text-indent: 0px;
text-transform: none;
}
.Standard {
color: rgb(0, 0, 0);
font-family: 'TimesNewRomanPSMT', 'Times New Roman', serif;
font-size: 14px;
font-stretch: normal;
font-style: normal;
font-variant: normal;
font-weight: 400;
letter-spacing: 0;
line-height: 24px;
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
margin-top: 0px;
opacity: 1.00;
padding-bottom: 0px;
padding-top: 0px;
text-align: justify;
text-decoration: none;
text-indent: 0px;
text-transform: none;
}
.Überschrift_1 {
color: rgb(0, 0, 0);
font-family: 'TimesNewRomanPS-BoldMT', 'Times New Roman', serif;
font-size: 16px;
font-stretch: normal;
font-style: normal;
font-variant: normal;
font-weight: 700;
letter-spacing: 0;
line-height: 27px;
margin-bottom: 0px;
margin-left: 0px;
margin-right: 0px;
margin-top: 0px;
opacity: 1.00;
padding-bottom: 3px;
padding-top: 12px;
text-align: justify;
text-decoration: none;
text-indent: 0px;
text-transform: none;
}
.graphic_image_style_default_SkipStroke {
background: transparent;
opacity: 1.00;
}
.graphic_shape_style_default_SkipStrokeSkipFillSkipOpacity {
}
.graphic_textbox_layout_style_default {
padding: 4px;
}
.graphic_textbox_layout_style_default_External_536_133 {
position: relative;
}
.graphic_textbox_layout_style_default_External_546_5383 {
position: relative;
}
.graphic_textbox_layout_style_default_External_100_100 {
position: relative;
}
.graphic_textbox_style_default_SkipStroke {
background: transparent;
opacity: 1.00;
}
a {
color: rgb(88, 77, 77);
text-decoration: underline;
}
a:visited {
color: rgb(121, 121, 121);
text-decoration: underline;
}
a:hover {
color: rgb(0, 0, 0);
text-decoration: underline;
}
.bumper {
font-size: 1px;
line-height: 1px;
}
.tinyText {
font-size: 1px;
line-height: 1px;
}
.spacer {
font-size: 1px;
line-height: 1px;
}
body {
-webkit-text-size-adjust: none;
}
div {
overflow: visible;
}
img {
border: none;
}
.InlineBlock {
display: inline;
}
.InlineBlock {
display: inline-block;
}
.inline-block {
display: inline-block;
vertical-align: baseline;
margin-bottom:0.3em;
}
.inline-block.shape-with-text {
vertical-align: bottom;
}
.vertical-align-middle-middlebox {
display: table;
}
.vertical-align-middle-innerbox {
display: table-cell;
vertical-align: middle;
}
div.paragraph {
position: relative;
}
li.full-width {
width: 100;
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1,6 @@
.inline-block {
display: -moz-inline-box;
display: inline-block;
vertical-align: baseline;
margin-bottom:3px;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 75 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 102 KiB

View File

@ -0,0 +1,423 @@
//
// iWeb - WidgetCommon.js
// Copyright (c) 2007-2008 Apple Inc. All rights reserved.
//
var widgets=[];var identifiersToStringLocalizations=[];var Widget=Class.create({initialize:function(instanceID,widgetPath,sharedPath,sitePath,preferences,runningInApp)
{if(instanceID)
{this.instanceID=instanceID;this.widgetPath=widgetPath;this.sharedPath=sharedPath;this.sitePath=sitePath;this.preferences=preferences;this.runningInApp=(runningInApp===undefined)?false:runningInApp;this.onloadReceived=false;if(this.preferences&&this.runningInApp==true)
{this.preferences.widget=this;setTransparentGifURL(this.sharedPath.stringByAppendingPathComponent("None.gif"));}
this.div().widget=this;window[instanceID]=this;widgets.push(this);widgets[instanceID]=this;if(!this.constructor.instances)
{this.constructor.instances=new Array();}
this.constructor.instances.push(this);}},div:function()
{var divID=this.instanceID;if(arguments.length==1)
{divID=this.instanceID+"-"+arguments[0];}
return $(divID);},onload:function()
{this.onloadReceived=true;},onunload:function()
{},didBecomeSelected:function()
{},didBecomeDeselected:function()
{},didBeginEditing:function()
{},didEndEditing:function()
{},setNeedsDisplay:function()
{},preferenceForKey:function(key)
{var value;if(this.preferences)
value=this.preferences[key];return value;},initializeDefaultPreferences:function(prefs)
{var self=this;$H(prefs).each(function(pair)
{if(self.preferenceForKey(pair.key)===undefined)
{self.setPreferenceForKey(pair.value,pair.key,false);}});},setPreferenceForKey:function(preference,key,registerUndo)
{if(this.runningInApp)
{if(registerUndo===undefined)
registerUndo=true;if((registerUndo==false)&&this.preferences.disableUndoRegistration)
this.preferences.disableUndoRegistration();this.preferences[key]=preference;if((registerUndo==false)&&this.preferences.enableUndoRegistration)
this.preferences.enableUndoRegistration();}
else
{this.preferences[key]=preference;this.changedPreferenceForKey(key);}},changedPreferenceForKey:function(key)
{},postNotificationWithNameAndUserInfo:function(name,userInfo)
{if(window.NotificationCenter!==undefined)
{NotificationCenter.postNotification(new IWNotification(name,null,userInfo));}},sizeWillChange:function()
{},sizeDidChange:function()
{},widgetWidth:function()
{var enclosingDiv=this.div();if(enclosingDiv)
return enclosingDiv.offsetWidth;else
return null;},widgetHeight:function()
{var enclosingDiv=this.div();if(enclosingDiv)
return enclosingDiv.offsetHeight;else
return null;},getInstanceId:function(id)
{var fullId=this.instanceID+"-"+id;if(arguments.length==2)
{fullId+=("$"+arguments[1]);}
return fullId;},getElementById:function(id)
{var fullId=this.getInstanceId.apply(this,arguments);return $(fullId);},localizedString:function(string)
{return LocalizedString(this.widgetIdentifier,string);},showView:function(viewName)
{var futureView=this.m_views[viewName];if((futureView!=this.m_currentView)&&(futureView!=this.m_futureView))
{this.m_futureView=futureView;if(this.m_fadeAnimation)
{this.m_fadeAnimation.stop();}
var previousView=this.m_currentView;this.m_currentView=futureView;var currentView=this.m_currentView;this.m_futureView=null;this.m_fadeAnimation=new SimpleAnimation(function(){delete this.m_fadeAnimation;}.bind(this));this.m_fadeAnimation.pre=function()
{if(previousView)
{previousView.ensureDiv().setStyle({zIndex:0,opacity:1});}
if(currentView)
{currentView.ensureDiv().setStyle({zIndex:1,opacity:0});currentView.show();currentView.render();}}
this.m_fadeAnimation.post=function()
{!previousView||previousView.hide();!currentView||currentView.ensureDiv().setStyle({zIndex:'',opacity:1});!currentView||!currentView.doneFadingIn||currentView.doneFadingIn();}
this.m_fadeAnimation.update=function(now)
{!currentView||currentView.ensureDiv().setOpacity(now);!previousView||previousView.ensureDiv().setOpacity(1-now);}.bind(this);this.m_fadeAnimation.start();}}});Widget.onload=function()
{for(var i=0;i<widgets.length;i++)
{widgets[i].onload();}}
Widget.onunload=function()
{for(var i=0;i<widgets.length;i++)
{widgets[i].onunload();}}
function RegisterWidgetStrings(identifier,strings)
{identifiersToStringLocalizations[identifier]=strings;}
function LocalizedString(identifier,string)
{var localized=undefined;var localizations=identifiersToStringLocalizations[identifier];if(localizations===undefined)
{iWLog("warning: no localizations for widget "+identifier+", (key:"+string+")");}
else
{localized=localizations[string];}
if(localized===undefined)
{iWLog("warning: couldn't find a localization for '"+string+"' for widget "+identifier);localized=string;}
return localized;}
function WriteLocalizedString(identifier,string)
{document.write(LocalizedString(identifier,string));}
var JSONFeedRendererWidget=Class.create(Widget,{initialize:function($super,instanceID,widgetPath,sharedPath,sitePath,preferences,runningInApp)
{if(instanceID)
{$super(instanceID,widgetPath,sharedPath,sitePath,preferences,runningInApp);}},changedPreferenceForKey:function(key)
{try
{var value=this.preferenceForKey(key);if(key=="sfr-shadow")
{if(value!=null)
{this.sfrShadow=eval(value);}
else
{this.sfrShadow=null;}
this.renderFeedItems("sfr-shadow");}
if(key=="sfr-stroke")
{if(value!==null)
this.sfrStroke=eval(value);else
this.sfrStroke=null;this.invalidateFeedItems("sfr-stroke");}
if(key=="sfr-reflection")
{if(value!==null)
{this.sfrReflection=eval(value);}
else
{this.sfrReflection=null;}
this.invalidateFeedItems("sfr-reflection");}}
catch(e)
{iWLog("JSONFeedRendererWidget: exception");debugPrintException(e);}},invalidateFeedItems:function(reason)
{trace('invalidateFeedItems(%s)',reason);if(this.pendingRender!==null)
{clearTimeout(this.pendingRender);}
this.pendingRender=setTimeout(function()
{this.pendingRender=null;this.renderFeedItems(reason);}.bind(this),50);},rerenderImage:function(imgGroupDiv,imgDiv,imageUrlString,entryHasImage,photoProportions,imageWidth,positioningHandler,onloadHandler)
{imgGroupDiv.update();if(entryHasImage)
{imgGroupDiv.strokeApplied=false;imgGroupDiv.reflectionApplied=false;imgGroupDiv.shadowApplied=false;imgGroupDiv.setStyle({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});imgGroupDiv.style.position='relative';imgDiv.style.position='relative';var imageUrl=imageUrlString||transparentGifURL();var image=IWCreateImage(imageUrl);image.load(function(image,imgDiv,imgGroupDiv,positioningHandler,onloadHandler)
{var cropDiv=this.croppingDivForImage(image,photoProportions,imageWidth);imgGroupDiv.appendChild(cropDiv);if(positioningHandler)
{positioningHandler();}
if(image.sourceURL()!==transparentGifURL())
{this.applyEffects(imgGroupDiv);}
if(onloadHandler)
{onloadHandler();}}.bind(this,image,imgDiv,imgGroupDiv,positioningHandler,onloadHandler));}},croppingDivForImage:function(image,kind,width)
{var croppedSize=function(originalSize,cropKind,width)
{if(cropKind=="Square")
{return new IWSize(width,width);}
else if(cropKind=="Landscape")
{return new IWSize(width,width*(3/4));}
else if(cropKind=="Portrait")
{return new IWSize(width,width*(4/3));}
else
{var scaleFactor=width/originalSize.width;return originalSize.scale(scaleFactor,scaleFactor,true);}};var cropDiv=null;if(image.loaded())
{var img=$(document.createElement('img'));img.src=image.sourceURL();var natural=image.naturalSize();cropDiv=$(document.createElement("div"));cropDiv.appendChild(img);var croppingDivForImage_helper=function(loadedImage)
{if(loadedImage)
{natural=new IWSize(loadedImage.width,loadedImage.height);}
var cropped=croppedSize(natural,kind,width);var scaleFactor=cropped.width/natural.width;if(natural.aspectRatio()>cropped.aspectRatio())
{scaleFactor=cropped.height/natural.height;}
var scaled=natural.scale(scaleFactor);var offset=new IWPoint(Math.abs(scaled.width-cropped.width)/2,Math.abs(scaled.height-cropped.height)/2);img.setStyle({width:px(scaled.width),height:px(scaled.height),marginLeft:px(-offset.x),marginTop:px(-offset.y),position:'relative'});cropDiv.setStyle({width:px(cropped.width),height:px(cropped.height),overflow:"hidden",position:'relative'});cropDiv.className="crop";}
if(windowsInternetExplorer&&effectiveBrowserVersion<7&&img.src.indexOf(transparentGifURL())!=-1)
{var originalImage=new Image();originalImage.src=img.originalSrc;if(originalImage.complete)
{croppingDivForImage_helper(originalImage);}
else
{originalImage.onload=croppingDivForImage_helper.bind(null,originalImage);}}
else
{croppingDivForImage_helper(null);}}
return cropDiv;},applyEffects:function(div)
{if(this.sfrShadow||this.sfrReflection||this.sfrStroke)
{if((div.offsetWidth===undefined)||(div.offsetHeight===undefined)||(div.offsetWidth===0)||(div.offsetHeight===0))
{setTimeout(JSONFeedRendererWidget.prototype.applyEffects.bind(this,div),0)
return;}
if(this.sfrStroke&&(div.strokeApplied==false))
{this.sfrStroke.applyToElement(div);div.strokeApplied=true;}
if(this.sfrReflection&&(div.reflectionApplied==false))
{this.sfrReflection.applyToElement(div);div.reflectionApplied=true;}
if(this.sfrShadow&&(!this.disableShadows)&&(div.shadowApplied==false))
{this.sfrShadow.applyToElement(div);div.shadowApplied=true;}
if(this.runningInApp&&(window.webKitVersion<=419)&&this.preferences.setNeedsDisplay)
{this.preferences.setNeedsDisplay();}}
if(windowsInternetExplorer)
{var cropDivs=div.select(".crop");var cropDiv=cropDivs[cropDivs.length-1];if(cropDiv)
{cropDiv.onclick=function()
{var anchorNode=div.parentNode;var targetHref=locationHRef();while(anchorNode&&(anchorNode.tagName!="A"))
{anchorNode=anchorNode.parentNode}
if(anchorNode)
{targetHref=anchorNode.href;}
window.location=targetHref;};cropDiv.onmouseover=function()
{this.style.cursor='pointer';}}}},summaryExcerpt:function(descriptionHTML,maxSummaryLength)
{var div=document.createElement("div");div.innerHTML=descriptionHTML;if(maxSummaryLength>0)
{var model=new HTMLTextModel(div);model.truncateAroundPosition(maxSummaryLength,"...");}
else if(maxSummaryLength===0)
{div.innerHTML="";}
return div.innerHTML;}});var PrefMarkupWidget=Class.create(Widget,{initialize:function($super,instanceID,widgetPath,sharedPath,sitePath,preferences,runningInApp)
{if(instanceID)
{$super(instanceID,widgetPath,sharedPath,sitePath,preferences,runningInApp);}},onload:function()
{if(!this.runningInApp)
{this.setUpSubDocumentOnLoad();}},setUpSubDocumentOnLoad:function()
{var self=this;var oIFrame=this.getElementById("frame");if(oIFrame)
{setTimeout(function(){self.loadedSubDocument()},250);}},loadedSubDocument:function()
{var oIFrame=this.getElementById("frame");var oSubDocument=oIFrame.contentWindow||oIFrame.contentDocument;if(oSubDocument.document)
{oSubDocument=oSubDocument.document;}
if(oSubDocument.body)
{this.fixTargetOnElements(oSubDocument,"a");this.fixTargetOnElements(oSubDocument,"form");}
else
{var self=this;setTimeout(function(){self.loadedSubDocument()},250);}},fixTargetOnElements:function(doc,tagName)
{var elements=doc.getElementsByTagName(tagName);for(var i=0;i<elements.length;i++)
{var target=elements[i].target;if(target===undefined||target=="")
elements[i].target="_top";}}});function IWScrollbar(scrollbar)
{}
IWScrollbar.prototype._init=function()
{var style=null;var element=null;this._track=$(document.createElement("div"));style=this._track.style;style.height="100%";style.width="100%";this.scrollbar.appendChild(this._track);element=$(document.createElement("div"));element.style.position="absolute";this._setObjectStart(element,0);this._track.appendChild(element);element=$(document.createElement("div"));element.style.position="absolute";this._track.appendChild(element);element=$(document.createElement("div"));element.style.position="absolute";windowsInternetExplorer||this._setObjectEnd(element,0);this._track.appendChild(element);this._thumb=$(document.createElement("div"));style=this._thumb.style;style.position="absolute";this._setObjectSize(this._thumb,this.minThumbSize);this._track.appendChild(this._thumb);element=$(document.createElement("div"));element.style.position="absolute";this._setObjectStart(element,0);this._thumb.appendChild(element);element=$(document.createElement("div"));element.style.position="absolute";this._thumb.appendChild(element);element=$(document.createElement("div"));element.style.position="absolute";windowsInternetExplorer||this._setObjectEnd(element,0);this._thumb.appendChild(element);this.setSize(this.size);this.setTrackStart(this.trackStartPath,this.trackStartLength);this.setTrackMiddle(this.trackMiddlePath);this.setTrackEnd(this.trackEndPath,this.trackEndLength);this.setThumbStart(this.thumbStartPath,this.thumbStartLength);this.setThumbMiddle(this.thumbMiddlePath);this.setThumbEnd(this.thumbEndPath,this.thumbEndLength);this._thumb.style.display="none";Event.observe(this._track,"mousedown",this._mousedownTrackHandler,false);Event.observe(this._thumb,"mousedown",this._mousedownThumbHandler,false);}
IWScrollbar.prototype.remove=function()
{this.scrollbar.removeChild(this._track);}
IWScrollbar.prototype._captureEvent=function(event)
{event.stopPropagation();event.preventDefault();}
IWScrollbar.prototype._mousedownThumb=function(event)
{Event.observe(document,"mousemove",this._mousemoveThumbHandler,true);Event.observe(document,"mouseup",this._mouseupThumbHandler,true);Event.observe(document,"mouseover",this._captureEventHandler,true);Event.observe(document,"mouseout",this._captureEventHandler,true);this._thumbStart_temp=this._getMousePosition(event);this._scroll_thumbStartPos=this._getThumbStartPos();event.stopPropagation();event.preventDefault();}
IWScrollbar.prototype._mousemoveThumb=function(event)
{var delta=this._getMousePosition(event)-this._thumbStart_temp;var new_pos=this._scroll_thumbStartPos+delta;this.scrollTo(this._contentPositionForThumbPosition(new_pos));event.stopPropagation();event.preventDefault();}
IWScrollbar.prototype._mouseupThumb=function(event)
{Event.stopObserving(document,"mousemove",this._mousemoveThumbHandler,true);Event.stopObserving(document,"mouseup",this._mouseupThumbHandler,true);Event.stopObserving(document,"mouseover",this._captureEventHandler,true);Event.stopObserving(document,"mouseout",this._captureEventHandler,true);delete this._thumbStart_temp;delete this._scroll_thumbStartPos;event.stopPropagation();event.preventDefault();}
IWScrollbar.prototype._mousedownTrack=function(event)
{this._track_mouse_temp=this._getMousePosition(event)-this._trackOffset;if(event.altKey)
{this.scrollTo(this._contentPositionForThumbPosition(this._track_mouse_temp-(this._thumbLength/2)));delete this._track_mouse_temp;}
else
{this._track_scrolling=true;Event.observe(this._track,"mousemove",this._mousemoveTrackHandler,true);Event.observe(this._track,"mouseover",this._mouseoverTrackHandler,true);Event.observe(this._track,"mouseout",this._mouseoutTrackHandler,true);Event.observe(document,"mouseup",this._mouseupTrackHandler,true);this._trackScrollOnePage(this);this._track_timer=setInterval(this._trackScrollDelay,500,this);}
event.stopPropagation();event.preventDefault();}
IWScrollbar.prototype._trackScrollDelay=function(self)
{if(!self._track_scrolling)return;clearInterval(self._track_timer);self._trackScrollOnePage(self);self._track_timer=setInterval(self._trackScrollOnePage,150,self);}
IWScrollbar.prototype._mousemoveTrack=function(event)
{this._track_mouse_temp=this._getMousePosition(event)-this._trackOffset;event.stopPropagation();event.preventDefault();}
IWScrollbar.prototype._mouseoverTrack=function(event)
{this._track_mouse_temp=this._getMousePosition(event)-this._trackOffset;this._track_scrolling=true;event.stopPropagation();event.preventDefault();}
IWScrollbar.prototype._mouseoutTrack=function(event)
{this._track_scrolling=false;event.stopPropagation();event.preventDefault();}
IWScrollbar.prototype._mouseupTrack=function(event)
{clearInterval(this._track_timer);Event.stopObserving(this._track,"mousemove",this._mousemoveTrackHandler,true);Event.stopObserving(this._track,"mouseover",this._mouseoverTrackHandler,true);Event.stopObserving(this._track,"mouseout",this._mouseoutTrackHandler,true);Event.stopObserving(document,"mouseup",this._mouseupTrackHandler,true);delete this._track_mouse_temp;delete this._track_scrolling;delete this._track_timer;event.stopPropagation();event.preventDefault();}
IWScrollbar.prototype._trackScrollOnePage=function(self)
{if(!self._track_scrolling)return;var deltaScroll=Math.round(self._trackLength*self._getViewToContentRatio());if(self._track_mouse_temp<self._thumbStart)
self.scrollByThumbDelta(-deltaScroll);else if(self._track_mouse_temp>(self._thumbStart+self._thumbLength))
self.scrollByThumbDelta(deltaScroll);}
IWScrollbar.prototype.setScrollArea=function(scrollarea)
{if(this.scrollarea)
{Event.stopObserving(this.scrollbar,"mousewheel",this.scrollarea._mousewheelScrollHandler,true);Event.stopObserving(this.scrollbar,"DOMMouseScroll",this.scrollarea._mousewheelScrollHandler,true);}
this.scrollarea=scrollarea;Event.observe(this.scrollbar,"mousewheel",this.scrollarea._mousewheelScrollHandler,true);Event.observe(this.scrollbar,"DOMMouseScroll",this.scrollarea._mousewheelScrollHandler,true);}
IWScrollbar.prototype.refresh=function()
{this._trackOffset=this._computeTrackOffset();this._trackLength=this._computeTrackLength();var ratio=this._getViewToContentRatio();if(ratio>=1.0||!this._canScroll())
{if(this.autohide)
{this.hide();}
this._thumb.style.display="none";this.scrollbar.style.appleDashboardRegion="none";}
else
{this._thumbLength=Math.max(Math.round(this._trackLength*ratio),this.minThumbSize);this._numScrollablePixels=this._trackLength-this._thumbLength-(2*this.padding);this._setObjectLength(this._thumb,this._thumbLength);if(windowsInternetExplorer)
{this._setObjectStart(this._thumb.down().next(),this.thumbStartLength);this._setObjectLength(this._thumb.down().next(),this._thumbLength
-this.thumbStartLength-this.thumbEndLength);this._setObjectStart(this._thumb.down().next(1),this._thumbLength-this.thumbEndLength);this._setObjectLength(this._thumb.down().next(1),this.thumbEndLength);if(!this.fixedUpIEPNGBGs)
{fixupIEPNGBGsInTree(this._track);Event.stopObserving(this._track,"mousedown",this._mousedownTrackHandler);Event.stopObserving(this._thumb,"mousedown",this._mousedownThumbHandler);Event.observe(this._track,"mousedown",this._mousedownTrackHandler);Event.observe(this._thumb,"mousedown",this._mousedownThumbHandler);this.fixedUpIEPNGBGs=true;}}
this._thumb.style.display="block";this.scrollbar.style.appleDashboardRegion="dashboard-region(control rectangle)";this.show();}
this.verticalHasScrolled();this.horizontalHasScrolled();}
IWScrollbar.prototype.setAutohide=function(autohide)
{this.autohide=autohide;if(this._getViewToContentRatio()>=1.0&&autohide)
{this.hide();}
else
{this.show();}}
IWScrollbar.prototype.hide=function()
{this._track.style.display="none";this.hidden=true;}
IWScrollbar.prototype.show=function()
{this._track.style.display="block";this.hidden=false;}
IWScrollbar.prototype.setSize=function(size)
{this.size=size;this._setObjectSize(this.scrollbar,size);this._setObjectSize(this._track.down().next(),size);this._setObjectSize(this._thumb.down().next(),size);}
IWScrollbar.prototype.setTrackStart=function(imgpath,length)
{this.trackStartPath=imgpath;this.trackStartLength=length;var element=this._track.down();element.style.background="url("+imgpath+") no-repeat top left";this._setObjectLength(element,length);this._setObjectSize(element,this.size);this._setObjectStart(this._track.down().next(),length);}
IWScrollbar.prototype.setTrackMiddle=function(imgpath)
{this.trackMiddlePath=imgpath;this._track.down().next().style.background="url("+imgpath+") "+this._repeatType+" top left";}
IWScrollbar.prototype.setTrackEnd=function(imgpath,length)
{this.trackEndPath=imgpath;this.trackEndLength=length;var element=this._track.down().next(1);element.style.background="url("+imgpath+") no-repeat top left";this._setObjectLength(element,length);this._setObjectSize(element,this.size);windowsInternetExplorer||this._setObjectEnd(this._track.down().next(),length);}
IWScrollbar.prototype.setThumbStart=function(imgpath,length)
{this.thumbStartPath=imgpath;this.thumbStartLength=length;var element=this._thumb.down();element.style.background="url("+imgpath+") no-repeat top left";this._setObjectLength(element,length);this._setObjectSize(element,this.size);this._setObjectStart(this._thumb.down().next(),length);}
IWScrollbar.prototype.setThumbMiddle=function(imgpath)
{this.thumbMiddlePath=imgpath;this._thumb.down().next().style.background="url("+imgpath+") "+this._repeatType+" top left";}
IWScrollbar.prototype.setThumbEnd=function(imgpath,length)
{this.thumbEndPath=imgpath;this.thumbEndLength=length;var element=this._thumb.down().next(1);element.style.background="url("+imgpath+") no-repeat top left";this._setObjectLength(element,length);this._setObjectSize(element,this.size);windowsInternetExplorer||this._setObjectEnd(this._thumb.down().next(),length);}
IWScrollbar.prototype._contentPositionForThumbPosition=function(thumb_pos)
{if(this._getViewToContentRatio()>=1.0)
{return 0;}
else
{return(thumb_pos-this.padding)*((this._getContentLength()-this._getViewLength())/this._numScrollablePixels);}}
IWScrollbar.prototype._thumbPositionForContentPosition=function(page_pos)
{if(this._getViewToContentRatio()>=1.0)
{return this.padding;}
else
{var result=this.padding+(page_pos/((this._getContentLength()-this._getViewLength())/this._numScrollablePixels));if(isNaN(result))
result=0;return result;}}
IWScrollbar.prototype.scrollByThumbDelta=function(deltaScroll)
{if(deltaScroll==0)
return;this.scrollTo(this._contentPositionForThumbPosition(this._thumbStart+deltaScroll));}
function IWVerticalScrollbar(scrollbar)
{this.scrollarea=null;this.scrollbar=$(scrollbar);this.minThumbSize=28;this.padding=-1;this.autohide=true;this.hidden=true;this.size=19;this.trackStartPath=transparentGifURL();this.trackStartLength=18;this.trackMiddlePath=transparentGifURL();this.trackEndPath=transparentGifURL();this.trackEndLength=18;this.thumbStartPath=transparentGifURL();this.thumbStartLength=9;this.thumbMiddlePath=transparentGifURL();this.thumbEndPath=transparentGifURL();this.thumbEndLength=9;this._track=null;this._thumb=null;this._trackOffset=0;this._trackLength=0;this._numScrollablePixels=0;this._thumbLength=0;this._repeatType="repeat-y";this._thumbStart=this.padding;var _self=this;this._captureEventHandler=function(event){_self._captureEvent(event);};this._mousedownThumbHandler=function(event){_self._mousedownThumb(event);};this._mousemoveThumbHandler=function(event){_self._mousemoveThumb(event);};this._mouseupThumbHandler=function(event){_self._mouseupThumb(event);};this._mousedownTrackHandler=function(event){_self._mousedownTrack(event);};this._mousemoveTrackHandler=function(event){_self._mousemoveTrack(event);};this._mouseoverTrackHandler=function(event){_self._mouseoverTrack(event);};this._mouseoutTrackHandler=function(event){_self._mouseoutTrack(event);};this._mouseupTrackHandler=function(event){_self._mouseupTrack(event);};this._init();}
IWVerticalScrollbar.prototype=new IWScrollbar(null);IWVerticalScrollbar.prototype.scrollTo=function(pos)
{this.scrollarea.verticalScrollTo(pos);}
IWVerticalScrollbar.prototype._setObjectSize=function(object,size)
{object.style.width=size+"px";}
IWVerticalScrollbar.prototype._setObjectLength=function(object,length)
{object.style.height=length+"px";}
IWVerticalScrollbar.prototype._setObjectStart=function(object,start)
{object.style.top=start+"px";}
IWVerticalScrollbar.prototype._setObjectEnd=function(object,end)
{object.style.bottom=end+"px";}
IWVerticalScrollbar.prototype._getMousePosition=function(event)
{if(event!=undefined)
return Event.pointerY(event);else
return 0;}
IWVerticalScrollbar.prototype._getThumbStartPos=function()
{return this._thumb.offsetTop;}
IWVerticalScrollbar.prototype._computeTrackOffset=function()
{var obj=this.scrollbar;var curtop=0;while(obj.offsetParent)
{curtop+=obj.offsetTop;obj=obj.offsetParent;}
return curtop;}
IWVerticalScrollbar.prototype._computeTrackLength=function()
{return this.scrollbar.offsetHeight;}
IWVerticalScrollbar.prototype._getViewToContentRatio=function()
{return this.scrollarea.viewToContentHeightRatio;}
IWVerticalScrollbar.prototype._getContentLength=function()
{return this.scrollarea.content.scrollHeight;}
IWVerticalScrollbar.prototype._getViewLength=function()
{return this.scrollarea.viewHeight;}
IWVerticalScrollbar.prototype._canScroll=function()
{return this.scrollarea.scrollsVertically;}
IWVerticalScrollbar.prototype.verticalHasScrolled=function()
{var new_thumb_pos=this._thumbPositionForContentPosition(this.scrollarea.content.scrollTop);this._thumbStart=new_thumb_pos;this._thumb.style.top=new_thumb_pos+"px";}
IWVerticalScrollbar.prototype.horizontalHasScrolled=function()
{}
function IWHorizontalScrollbar(scrollbar)
{this.scrollarea=null;this.scrollbar=$(scrollbar);this.minThumbSize=28;this.padding=-1;this.autohide=true;this.hidden=true;this.size=19;this.trackStartPath=transparentGifURL();this.trackStartLength=18;this.trackMiddlePath=transparentGifURL();this.trackEndPath=transparentGifURL();this.trackEndLength=18;this.thumbStartPath=transparentGifURL();this.thumbStartLength=9;this.thumbMiddlePath=transparentGifURL();this.thumbEndPath=transparentGifURL();this.thumbEndLength=9;this._track=null;this._thumb=null;this._trackOffset=0;this._trackLength=0;this._numScrollablePixels=0;this._thumbLength=0;this._repeatType="repeat-x";this._thumbStart=this.padding;var _self=this;this._captureEventHandler=function(event){_self._captureEvent(event);};this._mousedownThumbHandler=function(event){_self._mousedownThumb(event);};this._mousemoveThumbHandler=function(event){_self._mousemoveThumb(event);};this._mouseupThumbHandler=function(event){_self._mouseupThumb(event);};this._mousedownTrackHandler=function(event){_self._mousedownTrack(event);};this._mousemoveTrackHandler=function(event){_self._mousemoveTrack(event);};this._mouseoverTrackHandler=function(event){_self._mouseoverTrack(event);};this._mouseoutTrackHandler=function(event){_self._mouseoutTrack(event);};this._mouseupTrackHandler=function(event){_self._mouseupTrack(event);};this._init();}
IWHorizontalScrollbar.prototype=new IWScrollbar(null);IWHorizontalScrollbar.prototype.scrollTo=function(pos)
{this.scrollarea.horizontalScrollTo(pos);}
IWHorizontalScrollbar.prototype._setObjectSize=function(object,size)
{object.style.height=size+"px";}
IWHorizontalScrollbar.prototype._setObjectLength=function(object,length)
{object.style.width=length+"px";}
IWHorizontalScrollbar.prototype._setObjectStart=function(object,start)
{object.style.left=start+"px";}
IWHorizontalScrollbar.prototype._setObjectEnd=function(object,end)
{object.style.right=end+"px";}
IWHorizontalScrollbar.prototype._getMousePosition=function(event)
{if(event!=undefined)
return Event.pointerX(event);else
return 0;}
IWHorizontalScrollbar.prototype._getThumbStartPos=function()
{return this._thumb.offsetLeft;}
IWHorizontalScrollbar.prototype._computeTrackOffset=function()
{var obj=this.scrollbar;var curtop=0;while(obj.offsetParent)
{curtop+=obj.offsetLeft;obj=obj.offsetParent;}
return curtop;}
IWHorizontalScrollbar.prototype._computeTrackLength=function()
{return this.scrollbar.offsetWidth;}
IWHorizontalScrollbar.prototype._getViewToContentRatio=function()
{return this.scrollarea.viewToContentWidthRatio;}
IWHorizontalScrollbar.prototype._getContentLength=function()
{return this.scrollarea.content.scrollWidth;}
IWHorizontalScrollbar.prototype._getViewLength=function()
{return this.scrollarea.viewWidth;}
IWHorizontalScrollbar.prototype._canScroll=function()
{return this.scrollarea.scrollsHorizontally;}
IWHorizontalScrollbar.prototype.verticalHasScrolled=function()
{}
IWHorizontalScrollbar.prototype.horizontalHasScrolled=function()
{var new_thumb_pos=this._thumbPositionForContentPosition(this.scrollarea.content.scrollLeft);this._thumbStart=new_thumb_pos;this._thumb.style.left=new_thumb_pos+"px";}
function IWScrollArea(content)
{this.content=$(content);this.scrollsVertically=true;this.scrollsHorizontally=true;this.singlepressScrollPixels=10;this.viewHeight=0;this.viewToContentHeightRatio=1.0;this.viewWidth=0;this.viewToContentWidthRatio=1.0;this._scrollbars=new Array();var _self=this;this._refreshHandler=function(){_self.refresh();};this._keyPressedHandler=function(){_self.keyPressed(event);};this._mousewheelScrollHandler=function(event){_self.mousewheelScroll(event);};this.content.style.overflow="hidden";this.content.scrollTop=0;this.content.scrollLeft=0;Event.observe(this.content,"mousewheel",this._mousewheelScrollHandler,true);Event.observe(this.content,"DOMMouseScroll",this._mousewheelScrollHandler,true);this.refresh();var c=arguments.length;for(var i=1;i<c;++i)
{this.addScrollbar(arguments[i]);}}
IWScrollArea.prototype.addScrollbar=function(scrollbar)
{scrollbar.setScrollArea(this);this._scrollbars.push(scrollbar);scrollbar.refresh();}
IWScrollArea.prototype.removeScrollbar=function(scrollbar)
{var scrollbars=this._scrollbars;var c=scrollbars.length;for(var i=0;i<c;++i)
{if(scrollbars[i]==scrollbar)
{scrollbars.splice(i,1);break;}}}
IWScrollArea.prototype.remove=function()
{Event.stopObserving(this.content,"mousewheel",this._mousewheelScrollHandler,true);Event.stopObserving(this.content,"DOMMouseScroll",this._mousewheelScrollHandler,true);var scrollbars=this._scrollbars;var c=scrollbars.length;for(var i=0;i<c;++i)
{scrollbars[i].setScrollArea(null);}}
IWScrollArea.prototype.refresh=function()
{this.viewHeight=this.content.offsetHeight;this.viewWidth=this.content.offsetWidth;if(this.content.scrollHeight>this.viewHeight)
{this.viewToContentHeightRatio=this.viewHeight/this.content.scrollHeight;this.verticalScrollTo(this.content.scrollTop);}
else
{this.viewToContentHeightRatio=1.0;this.verticalScrollTo(0);}
if(this.content.scrollWidth>this.viewWidth)
{this.viewToContentWidthRatio=this.viewWidth/this.content.scrollWidth;this.horizontalScrollTo(this.content.scrollLeft);}
else
{this.viewToContentWidthRatio=1.0;this.horizontalScrollTo(0);}
var scrollbars=this._scrollbars;var c=scrollbars.length;for(var i=0;i<c;++i)
{scrollbars[i].refresh();}}
IWScrollArea.prototype.focus=function()
{Event.observe(document,"keypress",this._keyPressedHandler,true);}
IWScrollArea.prototype.blur=function()
{Event.stopObserving(document,"keypress",this._keyPressedHandler,true);}
IWScrollArea.prototype.reveal=function(element)
{var offsetY=0;var obj=element;do
{offsetY+=obj.offsetTop;obj=obj.offsetParent;}while(obj&&obj!=this.content);var offsetX=0;obj=element;do
{offsetX+=obj.offsetLeft;obj=obj.offsetParent;}while(obj&&obj!=this.content);this.verticalScrollTo(offsetY);this.horizontalScrollTo(offsetX);}
IWScrollArea.prototype.verticalScrollTo=function(new_content_top)
{if(!this.scrollsVertically)
return;var bottom=this.content.scrollHeight-this.viewHeight;if(new_content_top<0)
{new_content_top=0;}
else if(new_content_top>bottom)
{new_content_top=bottom;}
this.content.scrollTop=new_content_top;var scrollbars=this._scrollbars;var c=scrollbars.length;for(var i=0;i<c;++i)
{scrollbars[i].verticalHasScrolled();}}
IWScrollArea.prototype.horizontalScrollTo=function(new_content_left)
{if(!this.scrollsHorizontally)
return;var right=this.content_width-this.viewWidth;if(new_content_left<0)
{new_content_left=0;}
else if(new_content_left>right)
{new_content_left=right;}
this.content.scrollLeft=new_content_left;var scrollbars=this._scrollbars;var c=scrollbars.length;for(var i=0;i<c;++i)
{scrollbars[i].horizontalHasScrolled();}}
IWScrollArea.prototype.keyPressed=function(event)
{var handled=true;if(event.altKey)
return;if(event.shiftKey)
return;switch(event.keyIdentifier)
{case"Home":this.verticalScrollTo(0);break;case"End":this.verticalScrollTo(this.content.scrollHeight-this.viewHeight);break;case"Up":this.verticalScrollTo(this.content.scrollTop-this.singlepressScrollPixels);break;case"Down":this.verticalScrollTo(this.content.scrollTop+this.singlepressScrollPixels);break;case"PageUp":this.verticalScrollTo(this.content.scrollTop-this.viewHeight);break;case"PageDown":this.verticalScrollTo(this.content.scrollTop+this.viewHeight);break;case"Left":this.horizontalScrollTo(this.content.scrollLeft-this.singlepressScrollPixels);break;case"Right":this.horizontalScrollTo(this.content.scrollLeft+this.singlepressScrollPixels);break;default:handled=false;}
if(handled)
{event.stopPropagation();event.preventDefault();}}
IWScrollArea.prototype.mousewheelScroll=function(event)
{var deltaScroll=event.wheelDelta?(event.wheelDelta/120*this.singlepressScrollPixels):(event.detail/-2*this.singlepressScrollPixels);this.verticalScrollTo(this.content.scrollTop-deltaScroll);event.stopPropagation();event.preventDefault();}
var View=Class.create({initialize:function(widget,parentDiv)
{this.m_widget=widget;this.m_parentDiv=parentDiv;this.m_divInstanceId=this.m_divId;this.hide();},ensureDiv:function()
{var div=this.m_widget.div(this.m_divInstanceId);if(!div)
{div=new Element('div',{'id':this.m_widget.getInstanceId(this.m_divInstanceId)});div.addClassName(this.m_divClass);this.m_parentDiv.appendChild(div);}
return $(div);},hide:function()
{this.ensureDiv().hide();},show:function()
{this.ensureDiv().show();},render:function()
{},resize:function()
{}});var StatusView=Class.create(View,{initialize:function($super,widget,parentDiv)
{$super(widget,parentDiv);this.render();this.hide();},render:function()
{var markup="<table class='StatusMessageTable'><tr><td>";if(this.badgeImage)
{markup+=imgMarkup(this.m_widget.widgetPath+"/"+this.badgeImage,"","id='"+this.p_badgeImgId()+"'","");}
markup+="</td></tr></table>";if(this.upperRightBadgeWidth&&this.upperRightBadgeHeight)
{var badgeURL=(this.upperRightBadge)?(this.m_widget.widgetPath+"/"+this.upperRightBadge):transparentGifURL();markup+=imgMarkup(badgeURL,"","class='StatusUpperRightBadge' width='"+this.upperRightBadgeWidth+"' height='"+this.upperRightBadgeHeight+"' ","");}
var overlayPath=this.m_widget.sharedPath.stringByAppendingPathComponent("Translucent-Overlay.png");markup+=imgMarkup(overlayPath,"position: absolute; top: 0; left: 0;","id='"+this.p_overlayImgId()+"' width='700' height='286' ","");if(this.statusMessageKey)
{markup+="<div id='"+this.p_statusMessageBlockId()+"' class='StatusMessageBlock' ><span>"+
this.m_widget.localizedString(this.statusMessageKey)+"</span></div>";}
this.ensureDiv().update(markup);this.resize();},resize:function()
{var widgetWidth=(this.runningInApp)?window.innerWidth:this.m_widget.div().offsetWidth;var widgetHeight=(this.runningInApp)?window.innerHeight:this.m_widget.div().offsetHeight;if(this.badgeImage)
{var badgeImageEl=$(this.p_badgeImgId());var badgeSize=new IWSize(this.badgeImageWidth,this.badgeImageHeight);if((badgeSize.width>widgetWidth)||(badgeSize.height>widgetHeight))
{var widgetSize=new IWSize(widgetWidth,widgetHeight);badgeSize=badgeSize.scaleToFit(widgetSize);}
badgeImageEl.width=badgeSize.width;badgeImageEl.height=badgeSize.height;}
var overlayNativeWidth=700;var overlayNativeHeight=286;var overlayWidth=Math.max(widgetWidth,overlayNativeWidth);var overlayHeight=overlayNativeHeight;var overlayTop=Math.min(((widgetHeight/2)-overlayNativeHeight),0);var overlayLeft=Math.min(((widgetWidth/2)-(overlayNativeWidth/2)),0);var overlayImage=$(this.p_overlayImgId());overlayImage.width=overlayWidth;overlayImage.height=overlayHeight;overlayImage.setStyle({left:px(overlayLeft),top:px(overlayTop)});var statusMessageBlock=$(this.p_statusMessageBlockId());if(statusMessageBlock)
{var leftValue=px(Math.max(((widgetWidth-statusMessageBlock.offsetWidth)/2),0));var positionStyles={left:leftValue};if(this.statusMessageVerticallyCentered)
{var topValue=px(Math.max(((widgetHeight-statusMessageBlock.offsetHeight)/2),0));positionStyles.top=topValue;}
statusMessageBlock.setStyle(positionStyles);}
if(this.footerView)
{this.footerView.resize();}},doneFadingIn:function()
{this.m_widget.setPreferenceForKey(true,"x-viewDoneFadingIn",false);},p_badgeImgId:function()
{return this.m_widget.getInstanceId(this.m_divId+"-badge");},p_overlayImgId:function()
{return this.m_widget.getInstanceId(this.m_divId+"-overlay");},p_statusMessageBlockId:function()
{return this.m_widget.getInstanceId(this.m_divId+"-messageBlock");}});

View File

@ -0,0 +1,339 @@
//
// iWeb - iWebImage.js
// Copyright 2007-2008 Apple Inc.
// All rights reserved.
//
var IWAllImages={};var IWAllImageObjects={};function IWCreateImage(url)
{return IWAllImages[url]||new IWImage(url);}
var IWNamedImages={};function IWImageNamed(name)
{var url=IWNamedImages[name];return url?IWCreateImage(url):null}
function IWRegisterNamedImage(name,url)
{IWNamedImages[name]=url;}
var IWImageEnableUnload=isiPhone;var IWImage=Class.create({initialize:function(url)
{if(IWAllImages.hasOwnProperty(url))
{iWLog("warning -- use IWCreateImage rather than new IWImage and you'll get better performance");}
this.mPreventUnloading=0;this.mLoading=false;this.mLoaded=false;this.mURL=url;this.mCallbacks=[];IWAllImages[url]=this;},sourceURL:function()
{return this.mURL;},loaded:function()
{return this.mLoaded;},load:function(callback,delayCallbackIfLoaded)
{if(this.mLoaded&&(callback!=null))
{delayCallbackIfLoaded?setTimeout(callback,0):callback();}
else
{if(callback!=null)
{this.mCallbacks.push(callback);}
if(this.mLoading==false)
{this.mLoading=true;var img=new Image();IWAllImageObjects[this.sourceURL()]=img;img.onload=this.p_onload.bind(this);img.src=this.mURL;}}},unload:function(evenIfNotEnabled)
{if((evenIfNotEnabled||IWImageEnableUnload)&&this.mLoaded)
{if(this.mPreventUnloading<=0)
{this.mLoaded=false;this.mLoading=false;IWAllImageObjects[this.sourceURL()]=null;}
else
{this.mPreventedUnload=true;}}},preventUnloading:function()
{if(this.mPreventUnloading==0)
{this.mPreventedUnload=false;}
++this.mPreventUnloading;},allowUnloading:function()
{--this.mPreventUnloading;if(this.mPreventUnloading<=0&&this.mPreventedUnload)
{this.unload();}},naturalSize:function()
{(function(){return this.mNaturalSize!==undefined}).bind(this).assert();return this.mNaturalSize;},imgObject:function()
{return IWAllImageObjects[this.sourceURL()];},p_onload:function()
{this.preventUnloading();this.mLoaded=true;if(this.mNaturalSize===undefined)
{var imgObject=this.imgObject();(function(){return imgObject!==undefined}).assert();this.mNaturalSize=new IWSize(imgObject.width,imgObject.height);}
for(var i=0;i<this.mCallbacks.length;++i)
{this.mCallbacks[i]();}
this.mCallbacks=[];this.allowUnloading();},toString:function()
{return"IWImage("+this.mNaturalSize+", "+this.mURL+")";}});function IWCreateLoadingArea()
{if(IWSharedLoadingAreaManager==null)
{IWSharedLoadingAreaManager=new IWLoadingAreaManager();}
return IWSharedLoadingAreaManager.createLoadingArea();}
var IWLoadingAreaManager=Class.create({initialize:function()
{var div=$(document.createElement("div"));div.setStyle({visibility:"hidden",position:"absolute",width:0,height:0,overflow:"hidden"});document.body.appendChild(div);this.mCurrentLoadingArea=div;},createLoadingArea:function()
{var loadingArea=document.createElement('div');this.mCurrentLoadingArea.appendChild(loadingArea);return loadingArea;}});var IWSharedLoadingAreaManager=null;var IWSharedEffectRegistry=null;var allStyleSheetsLoaded=false;var timeStyleSheetsAppearedInDOM=null;function IWCreateEffectRegistry()
{if(IWSharedEffectRegistry==null)
{IWSharedEffectRegistry=new IWEffectRegistry();}
return IWSharedEffectRegistry;}
var IWEffectRegistry=Class.create({initialize:function()
{this.mEffects=null;},registerEffects:function(effects)
{this.mEffects=effects;},applyEffects:function()
{var effectQueue=[];effectQueue=effectQueue.concat(this.p_queueForEffectType("crop"));effectQueue=effectQueue.concat(this.p_queueForEffectType("stroke"));effectQueue=effectQueue.concat(this.p_queueForEffectType("reflection"));effectQueue=effectQueue.concat(this.p_queueForEffectType("shadow"));this.p_applyEffectsFromQueue(effectQueue);},p_queueForEffectType:function(effectType)
{var effectQueue=[];var i=0;var effectClass=effectType+"_"+i++;while(effect=this.mEffects[effectClass])
{effectQueue=effectQueue.concat(this.p_queueForEffectClass(effect,effectClass));effectClass=effectType+"_"+i++;}
return effectQueue;},p_queueForEffectClass:function(effect,effectClass,elementList)
{var effectQueue=[];var elements=elementList||$$("."+effectClass);while(elements&&elements.length>0)
{var element=elements.shift();var children=element.select("."+effectClass);if(children.length>0)
{elements=elements.minusArray(children);effectQueue=effectQueue.concat(this.p_queueForEffectClass(effect,effectClass,children));}
effectQueue.push({element:element,effect:effect});}
return effectQueue;},p_allStyleSheetsLoaded:function()
{if(isCamino||isFirefox)
{if(timeStyleSheetsAppearedInDOM!=null)
{duration=(new Date().getTime())-timeStyleSheetsAppearedInDOM;if(duration>100)
{allStyleSheetsLoaded=true;timeStyleSheetsAppearedInDOM=null;}}
else if(!allStyleSheetsLoaded)
{for(var i=0,sheetCount=document.styleSheets.length;i<sheetCount;i++)
{var styleSheet=document.styleSheets[i];if(styleSheet.href&&styleSheet.href.indexOf("Moz.css")!=-1)
{timeStyleSheetsAppearedInDOM=new Date().getTime();}}}}
else
{allStyleSheetsLoaded=true;}
return allStyleSheetsLoaded;},p_applyEffectsFromQueue:function(queue)
{var startTime=new Date().getTime();var duration=0;var readyToApplyEffects=this.p_allStyleSheetsLoaded();while(queue.length>0&&duration<100&&readyToApplyEffects)
{var queueEntry=queue.shift();if(queueEntry&&queueEntry.effect&&queueEntry.element)
{queueEntry.effect.applyToElement(queueEntry.element);}
duration=(new Date().getTime())-startTime;}
if(queue.length>0)
{setTimeout(this.p_applyEffectsFromQueue.bind(this,queue),0);}
else
{performPostEffectsFixups();}}});function IWChildOffset(child,parent,positionedOnly)
{var l=0;var t=0;if(parent)
{var current=child;while(current&&current!=parent)
{if(!positionedOnly||(current.style.position=="absolute")||(current.style.position=="relative"))
{l+=current.offsetLeft;t+=current.offsetTop;}
current=current.parentNode;}}
return new IWPoint(l,t);}
function IWImageExtents(ancestor,images,left,top,right,bottom)
{var unionedBounds=new IWRect(left,top,right-left,bottom-top);for(var e=0;e<images.length;++e)
{var imageClippedBounds=new IWRect(images[e].offsetLeft,images[e].offsetTop,images[e].offsetWidth,images[e].offsetHeight);if(ancestor)
{var current=images[e].parentNode;while(current&&current!=ancestor)
{if((current.style.position=="absolute")||(current.style.position=="relative"))
{imageClippedBounds.origin.x+=current.offsetLeft||0;imageClippedBounds.origin.y+=current.offsetTop||0;}
var testForHidden=function(str)
{return str=='hidden';};var clipX=[current.style.overflow,current.style.overflowX].any(testForHidden);var clipY=[current.style.overflow,current.style.overflowY].any(testForHidden);if(clipX||clipY)
{var currentRect=new IWRect(clipX?current.offsetLeft:imageClippedBounds.origin.x,clipY?current.offsetTop:imageClippedBounds.origin.y,clipX?current.offsetWidth:imageClippedBounds.size.width,clipY?current.offsetHeight:imageClippedBounds.size.height);imageClippedBounds=imageClippedBounds.intersection(currentRect);}
current=current.parentNode;}}
if((imageClippedBounds.size.width>0)&&(imageClippedBounds.size.height>0))
{if((unionedBounds.size.width>0)&&(unionedBounds.size.height>0))
{unionedBounds=unionedBounds.union(imageClippedBounds);}
else
{unionedBounds=imageClippedBounds.clone();}}}
var extents={left:unionedBounds.origin.x,top:unionedBounds.origin.y,right:unionedBounds.origin.x+unionedBounds.size.width,bottom:unionedBounds.origin.y+unionedBounds.size.height};return extents;}
function IWEffectChildren(element,imagesOnly)
{element=$(element);var inlineBlocks=element.select('.inline-block');return element.descendants().findAll(function(child){if((!imagesOnly&&child.match("div.badge-fill"))||child.match("img"))
{var inline=false;for(var index=0,end=inlineBlocks.length;inline==false&&index<end;++index)
{inline=child.descendantOf(inlineBlocks[index]);}
return inline==false;}
else
{return false;}});}
function IWClippingNode(node)
{if(node)
{if(node.style&&(node.style.overflow||node.style.overflowX||node.style.overflowY))
{if([node.style.overflow,node.style.overflowX,node.style.overflowY].include('hidden'))
return node;}
else
{return IWClippingNode(node.parentNode);}}
return null;}
var IWShadow=Class.create({initialize:function(params)
{this.mBlurRadius=params.blurRadius;this.mOffset=params.offset;this.mColor=params.color;this.mOpacity=params.opacity;},applyToElement:function(shadowed)
{var framePos=new IWPoint(shadowed.offsetLeft,shadowed.offsetTop);var frameSize=new IWSize(shadowed.offsetWidth,shadowed.offsetHeight);var opacity=1.0;if(shadowed!=null)
{shadowed=$(shadowed);opacity=shadowed.getStyle('opacity');if(windowsInternetExplorer)
{var newRoot=$(shadowed.cloneNode(false));shadowed.parentNode.insertBefore(newRoot,shadowed);var shadow=$(document.createElement('DIV'));var shadowContents=shadowed.cloneNodeExcludingIDs(true);shadow.appendChild(shadowContents);shadow.select('map').each(function(mapElement){mapElement.parentNode.removeChild(mapElement);});shadow.select(".IWReflection").invoke("remove");newRoot.appendChild(shadow);newRoot.appendChild(shadowed);shadowed.setStyle({top:0,left:0});var blurRadius=this.mBlurRadius*0.5;var xOffset=this.mOffset.x-(this.mBlurRadius*0.6);var yOffset=this.mOffset.y-(this.mBlurRadius*0.6);shadow.setStyle({position:"absolute",left:px(xOffset-500),top:px(yOffset-500),width:px(frameSize.width+1000),height:px(frameSize.height+1000)});shadowContents.setStyle({position:"absolute",left:px(500),top:px(500),padding:0,margin:0});shadow.style.filter="progid:DXImageTransform.Microsoft.MaskFilter()"+" progid:DXImageTransform.Microsoft.MaskFilter(color="+this.mColor+")"+" progid:DXImageTransform.Microsoft.Alpha(opacity="+this.mOpacity*opacity*100+")"+" progid:DXImageTransform.Microsoft.Blur(pixelradius="+blurRadius+")";if(newRoot.hasClassName("inline-block"))
{var rootTop=newRoot.style.top;var rootMarginTop=newRoot.style.marginTop;if(rootTop&&!rootMarginTop)
{rootTop=(toPixelsAtElement(newRoot,rootTop,true));newRoot.style.marginTop=px(-rootTop);}
else if(!rootTop&&rootMarginTop)
{rootMarginTop=(toPixelsAtElement(newRoot,rootMarginTop,true));newRoot.style.rootTop=px(-rootMarginTop);}
else if(rootTop&&rootMarginTop)
{rootTop=(toPixelsAtElement(newRoot,rootTop,true));rootMarginTop=(toPixelsAtElement(newRoot,rootMarginTop,true));if(rootTop!=rootMarginTop)
{newRoot.style.rootTop=px(-rootMarginTop);}}}
if(shadowed.offsetTop!=0)
{var top=shadowed.style.top;top=top?(toPixelsAtElement(shadowed,top,true)):0;top-=shadowed.offsetTop;shadowed.style.top=px(top);}}
else
{var sourceElements=IWEffectChildren(shadowed,false);var extents=IWImageExtents(shadowed,sourceElements,0,0,frameSize.width,frameSize.height);var canvas=undefined;if(shadowed.sandwich&&shadowed.sandwich.canvas)
{canvas=shadowed.sandwich.canvas;}
extents.left-=Math.max(this.mBlurRadius-this.mOffset.x,0);extents.top-=Math.max(this.mBlurRadius-this.mOffset.y,0);extents.right+=Math.max(this.mBlurRadius+this.mOffset.x,0);extents.bottom+=Math.max(this.mBlurRadius+this.mOffset.y,0);extents.left=Math.floor(extents.left);extents.top=Math.floor(extents.top);extents.right=Math.ceil(extents.right);extents.bottom=Math.ceil(extents.bottom);var leftOffset=extents.left;var topOffset=extents.top;extents.right-=extents.left;extents.bottom-=extents.top;extents.left=0;extents.top=0;var width=extents.right-extents.left;var height=extents.bottom-extents.top;if(canvas===undefined)
{canvas=$(document.createElement("canvas"));}
var context=canvas.getContext?canvas.getContext("2d"):null;var canvasCanDrawShadow=context?context.shadowColor:false;if(canvasCanDrawShadow)
{$(canvas).setAttribute("width",width);$(canvas).setAttribute("height",height);$(canvas).setStyle({position:"absolute",top:px(topOffset),left:px(leftOffset)});var workingCanvas=undefined;if(shadowed.sandwich&&shadowed.sandwich.workingCanvas)
{workingCanvas=shadowed.sandwich.workingCanvas;}
if(workingCanvas===undefined)
{workingCanvas=canvas.cloneNode(false);}
var self=this;var sandwich=shadowed.sandwich||{};sandwich.loadedElements=[];sandwich.elementCount=sourceElements.length;sandwich.loadedElementCount=0;sandwich.canvas=canvas;sandwich.workingCanvas=workingCanvas;shadowed.sandwich=sandwich;sandwich.onImageLoad=function(j,img,image)
{var offset=IWChildOffset(img,shadowed,true);this.loadedElements[j]={imgObject:image.imgObject(),left:offset.x-leftOffset,top:offset.y-topOffset,width:img.offsetWidth,height:img.offsetHeight,render:function(context){context.drawImage(this.imgObject,this.left,this.top,this.width,this.height);}};this.loadedElementCount++;if(this.loadedElementCount==this.elementCount)
{this.renderShadow()}}
sandwich.registerDiv=function(j,div)
{var offset=IWChildOffset(div,shadowed,true);this.loadedElements[j]={divElement:div,left:offset.x-leftOffset,top:offset.y-topOffset,width:div.offsetWidth,height:div.offsetHeight,render:function(context){var div=this.divElement;var color=div.getStyle('background-color');var opacity=parseFloat(div.style.opacity||1);context.save();context.globalAlpha*=opacity;context.fillStyle=color;context.fillRect(this.left,this.top,this.width,this.height);context.restore();}};this.loadedElementCount++;if(this.loadedElementCount==this.elementCount)
{this.renderShadow()}}
sandwich.renderShadow=function()
{if(canvas.parentNode===null)
{shadowed.insertBefore(canvas,shadowed.firstChild);}
canvas.parentNode.insertBefore(workingCanvas,canvas);var context=workingCanvas.getContext("2d");new IWRect(0,0,width,height).clear(context);var bgImage=shadowed.getStyle('background-image');var hasBGImage=bgImage&&bgImage.indexOf('url(')==0;var bgColor=shadowed.getStyle('background-color');var alphaComponent=self.p_alphaComponent(bgColor);IWAssert(function(){return alphaComponent==0||alphaComponent==1},"alpha must be 0 or 1 for background color if shadow is applied");var fillBackground=(hasBGImage||alphaComponent>0);var divBounds=new IWRect(-leftOffset,-topOffset,frameSize.width,frameSize.height).round();if(fillBackground)
{context.fillStyle='rgba(0,0,0,1)';divBounds.fill(context);}
for(var k=0;k<this.loadedElements.length;++k)
{var loaded=this.loadedElements[k];var clipper=$(IWClippingNode(sourceElements[k]));if(clipper&&clipper.descendantOf(shadowed))
{var clipToShadow=IWChildOffset(clipper,shadowed,true);context.save();context.rect(clipToShadow.x-leftOffset,clipToShadow.y-topOffset,clipper.offsetWidth,clipper.offsetHeight);context.clip();loaded.render(context);context.restore();}
else
{loaded.render(context);}}
context=canvas.getContext("2d");new IWRect(0,0,width,height).clear(context);var drawImageUnshadowed=true;context.globalAlpha=opacity;if(context.shadowColor)
{var usingShadowAlpha=true;context.save();usingShadowAlpha=!(isWebKit&&isEarlyWebKitVersion);if(usingShadowAlpha)
{var components=self.mColor.toLowerCase().match(/#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})/);if(components&&components.length>=4)
{context.shadowColor="rgba("+parseInt(components[1],16)+", "+parseInt(components[2],16)+", "+parseInt(components[3],16)+", "+self.mOpacity+")";}
else
{components=self.mColor.match(/rgb\(([0-9\.]+),[ ]*([0-9\.]+),[ ]*([0-9\.]+)\)/);if(components&&components.length>=4)
{context.shadowColor="rgba("+components[1]+", "+components[2]+", "+components[3]+", "+self.mOpacity+")";}
else
{iWLog("not using shadow alpha, failed to match "+self.mColor);usingShadowAlpha=false;}}}
if(usingShadowAlpha==false)
{context.globalAlpha*=self.mOpacity;context.shadowColor=self.mColor;}
context.shadowBlur=self.mBlurRadius;context.shadowOffsetX=self.mOffset.x;context.shadowOffsetY=self.mOffset.y;context.drawImage(workingCanvas,0,0);context.restore();if(usingShadowAlpha==false)
{drawImageUnshadowed=self.mOpacity<1.0;}
else
{drawImageUnshadowed=false;}}
if(drawImageUnshadowed)
{context.drawImage(workingCanvas,0,0);}
if(fillBackground)
{divBounds.clear(context);context.save();context.globalAlpha=opacity;context.rect(divBounds.origin.x,divBounds.origin.y,divBounds.size.width,divBounds.size.height);context.clip();for(var k=0;k<this.loadedElements.length;++k)
{this.loadedElements[k].render(context);}
context.restore();}
if(workingCanvas.parentNode)
{workingCanvas.parentNode.removeChild(workingCanvas);delete this.workingCanvas;this.workingCanvas=null;}
for(var j=0;j<sourceElements.length;++j)
{sourceElements[j].style.opacity=0.0;}};if(sourceElements.length>0)
{for(var j=0;j<sourceElements.length;++j)
{var element=$(sourceElements[j]);if(element.match('img'))
{var image=IWCreateImage(element.src);image.load(sandwich.onImageLoad.bind(sandwich,j,element,image));}
else if(element.match('div'))
{sandwich.registerDiv(j,element);}}}
else
{sandwich.renderShadow();}
workingCanvas.style.visibility="hidden";}}}},p_alphaComponent:function(color)
{var alpha=1.0;if(color&&color.indexOf('rgba(')!=-1)
{if(color.match(/rgba\((?:\s*\S+\s*,\s*){3}(\S+)\s*\)/))
{alpha=RegExp.$1;}}
return alpha;}});var IWReflection=Class.create({initialize:function(parameters)
{this.mOpacity=parameters.opacity;this.mOffset=Math.max(parameters.offset,1);this.mFadeSustain=0.4;this.mMaxSustain=120;},applyToElement:function(div)
{var bounds=new IWRect(div.offsetLeft,div.offsetTop,div.offsetWidth,div.offsetHeight);var reflectionHeight=Math.min(div.offsetHeight*this.mFadeSustain,this.mMaxSustain)*0.75;if(div!=null)
{var imgs=IWEffectChildren(div,true);var extents=IWImageExtents(div,imgs,0,0,bounds.size.width,bounds.size.height);var totalWidth=extents.right-extents.left;var totalHeight=extents.bottom-extents.top;var leftOffset=extents.left;var topOffset=extents.top;var bottomOffset=totalHeight-bounds.size.height;if(windowsInternetExplorer)
{var reflection=$(document.createElement("div"));reflection.setStyle({position:"absolute",left:px(extents.left),top:px(bounds.size.height),marginTop:px(this.mOffset),width:px(totalWidth),height:px(reflectionHeight),overflow:"hidden",filter:'progid:DXImageTransform.Microsoft.Alpha(opacity='+(this.mOpacity*100)+', style=1, finishOpacity=0, startx=0, starty=0, finishx=0, finishy=100)'});reflection.addClassName("IWReflection");var flipped=$(document.createElement("div"));flipped.setStyle({position:"relative",width:px(totalWidth),height:px(totalHeight),filter:'flipv'});var cloned=$(div.cloneNode(true));cloned.setStyle({left:px(-extents.left),top:px(-extents.top),position:"absolute"});cloned.className=cloned.className.replace(/(shadow_\d+)/g,'');reflection.appendChild(flipped);flipped.appendChild(cloned);div.insertBefore(reflection,div.firstChild);}
else
{var reflection=$(document.createElement("canvas"));extents.right-=extents.left;extents.bottom-=extents.top;extents.left=0;extents.top=0;reflection.setAttribute("width",extents.right-extents.left);reflection.setAttribute("height",reflectionHeight+this.mOffset/2);reflection.setStyle({position:"absolute",top:px(bounds.size.height),marginTop:px(this.mOffset),left:px(leftOffset)});div.insertBefore(reflection,div.firstChild);var context=reflection.getContext("2d");context.clearRect(0,0,reflection.width,reflection.height);var sandwich={};sandwich.loadedImgs=[];sandwich.imgCount=imgs.length;var self=this;sandwich.onImageLoad=function(j,img,image){var offset=IWChildOffset(img,div,true);this.loadedImgs[j]={imgObject:image.imgObject(),left:offset.x-leftOffset,top:offset.y-topOffset-bottomOffset,width:img.offsetWidth,height:img.offsetHeight};var allImagesLoaded=false;if(this.loadedImgs.length>=this.imgCount)
{allImagesLoaded=true;for(var k=0;allImagesLoaded&&k<this.loadedImgs.length;++k)
{if(this.loadedImgs[k]===undefined)
{allImagesLoaded=false;}}}
if(allImagesLoaded)
{context.save();context.translate(0,bounds.size.height-1);context.scale(1,-1);for(var k=0;k<this.loadedImgs.length;++k)
{var loadedImg=this.loadedImgs[k];var clipper=$(IWClippingNode(imgs[k]));if(clipper&&clipper.descendantOf(div))
{var clipOffset=IWChildOffset(clipper,div,true);context.save();context.rect(clipOffset.x-leftOffset,clipOffset.y-topOffset-bottomOffset,clipper.offsetWidth,clipper.offsetHeight);context.clip();context.drawImage(loadedImg.imgObject,loadedImg.left,loadedImg.top,loadedImg.width,loadedImg.height);context.restore();}
else
{context.drawImage(loadedImg.imgObject,loadedImg.left,loadedImg.top,loadedImg.width,loadedImg.height);}}
context.restore();context.save();context.globalCompositeOperation="destination-out";var gradient=context.createLinearGradient(0,0,0,reflection.height);gradient.addColorStop(1,"rgba(255, 255, 255, 1.0)");gradient.addColorStop(0,"rgba(255, 255, 255, "+(1-self.mOpacity)+")");context.fillStyle=gradient;if(navigator.appVersion.indexOf('WebKit')!=-1)
{context.rect(0,0,reflection.width,reflection.height*2);context.fill();}
else
{context.fillRect(0,0,reflection.width,reflection.height*2);}
context.restore();}};for(var j=0;j<imgs.length;++j)
{var img=imgs[j];var image=IWCreateImage(img.src);image.load(sandwich.onImageLoad.bind(sandwich,j,img,image));}}}}});var kLeft=0,kTopLeft=1,kTop=2,kTopRight=3,kRight=4,kBottomRight=5,kBottom=6,kBottomLeft=7,kPartCount=8;var IWStrokeParts=Class.create({initialize:function(strokeParts,maxImageSize,shouldClip,strokeWidth)
{this.mStrokeParts=strokeParts;this.mMaxImageSize=maxImageSize;this.mShouldClip=shouldClip;if(shouldClip)
{this.mStrokeWidth=strokeWidth;}},p_imageLayout:function(imageSize)
{var strokeParts=this.mStrokeParts;var hDelta=this.mMaxImageSize.width-imageSize.width;var vDelta=this.mMaxImageSize.height-imageSize.height;var topLeft=strokeParts[kTopLeft].rect;var topRight=strokeParts[kTopRight].rect.offset(-hDelta,0);var bottomRight=strokeParts[kBottomRight].rect.offset(-hDelta,-vDelta);var bottomLeft=strokeParts[kBottomLeft].rect.offset(0,-vDelta);var top=strokeParts[kTop].rect;top.size.width=topRight.origin.x-top.origin.x;var right=strokeParts[kRight].rect.offset(-hDelta,0);right.size.height=bottomRight.origin.y-right.origin.y;var bottom=strokeParts[kBottom].rect.offset(0,-vDelta);bottom.size.width=bottomRight.origin.x-bottom.origin.x;var left=strokeParts[kLeft].rect;left.size.height=bottomLeft.origin.y-left.origin.y;return[left,topLeft,top,topRight,right,bottomRight,bottom,bottomLeft];},p_imageMarkup:function(imageSize,zIndex)
{var markup='';var layoutRects=this.p_imageLayout(imageSize);for(var index=kLeft;index<kPartCount;++index)
{var style=layoutRects[index].position();if(zIndex)
{style+='z-index: '+zIndex+';';}
markup+=imgMarkup(this.mStrokeParts[index].url,style);}
return markup;},markupForImageStreamEntry:function(imageStreamEntry,imageSize)
{var rect=new IWRect(0,0,imageSize.width,imageSize.height);var clippingDivPre='';var clippingDivPost='';var thumbRect=rect.clone();if(this.mShouldClip)
{var left=(this.mStrokeWidth/2+1);var top=(this.mStrokeWidth/2+1);var clippingRect=new IWRect(left,top,(imageSize.width-this.mStrokeWidth-2),(imageSize.height-this.mStrokeWidth-2));clippingDivPre='<div style="overflow: hidden; '+clippingRect.position()+'">';clippingDivPost='</div>';thumbRect.origin.x-=left;thumbRect.origin.y-=top;}
var markup='<div class="framedImage" style="'+rect.position()+'">';markup+=clippingDivPre;markup+=imageStreamEntry.thumbnailMarkupForRect(thumbRect);markup+=clippingDivPost;markup+=this.p_imageMarkup(imageSize,2);markup+='</div>';return markup;},applyToElement:function(div)
{div=$(div);if(div!=null)
{if(div.parentNode)
{$(div.parentNode).ensureHasLayoutForIE();}
var size=new IWSize(div.offsetWidth,div.offsetHeight);div.insert(this.p_imageMarkup(size,(div.hasClassName("aboveStrokesAndFrames")?-1:"auto")));if(!div.hasClassName("flowDefining"))
{if(div.style.position!='absolute')
{var divRect=new IWRect(0,0,div.offsetWidth,div.offsetHeight);var unionRect=IWZeroRect();var layoutRects=this.p_imageLayout(size);layoutRects.each(function(r)
{unionRect=unionRect.union(r);});var padding=divRect.paddingToRect(unionRect);var marginLeft=Element.getStyle(div,"marginLeft");marginLeft=marginLeft?(toPixelsAtElement(div,marginLeft,false)):0;var marginTop=Element.getStyle(div,"marginTop");marginTop=marginTop?(toPixelsAtElement(div,marginTop,true)):0;var marginRight=Element.getStyle(div,"marginRight");marginRight=marginRight?(toPixelsAtElement(div,marginRight,false)):0;var marginBottom=Element.getStyle(div,"marginBottom");marginBottom=marginBottom?(toPixelsAtElement(div,marginBottom,true)):0;if(windowsInternetExplorer)
{div.setStyle({marginLeft:px(Math.max(0,padding.left-1)+marginLeft),marginTop:px(Math.max(0,padding.top-1)+marginTop),marginRight:px(Math.max(0,padding.right-1)+marginRight),marginBottom:px(Math.max(0,padding.bottom-1)+marginBottom)});if(effectiveBrowserVersion==7)
{updateListOfIE7FloatsFix(div);}}
else
{div.setStyle({marginLeft:px(padding.left+marginLeft),marginTop:px(padding.top+marginTop),marginRight:px(padding.right+marginRight),marginBottom:px(padding.bottom+marginBottom)});}}}}},strokeExtra:function(imageSize)
{if(!imageSize)
{imageSize=this.mMaxImageSize;}
rect=new IWRect(IWZeroPoint(),imageSize);var layout=this.p_imageLayout(rect.size);var unionRect=IWZeroRect();layout.each(function(r)
{unionRect=unionRect.union(r);});return rect.paddingToRect(unionRect);}});var IWStroke=Class.create({initialize:function(strokeURL,strokeRect,maxImageSize)
{this.mStrokeURL=strokeURL;this.mStrokeRect=strokeRect;this.mMaxImageSize=maxImageSize;},p_strokeRect:function(imageSize)
{var hScale=imageSize.width/this.mMaxImageSize.width;var vScale=imageSize.height/this.mMaxImageSize.height;var strokeRect=this.mStrokeRect.scale(hScale,vScale,true);return strokeRect;},p_imageMarkup:function(imageSize,zIndex)
{var style=this.p_strokeRect(imageSize).position();if(zIndex)
{style+='z-index: '+zIndex+';';}
return imgMarkup(this.mStrokeURL,style);},markupForImageStreamEntry:function(imageStreamEntry,imageSize)
{var rect=new IWRect(0,0,imageSize.width,imageSize.height);var markup='<div class="framedImage" style="'+rect.position()+'">';markup+=imageStreamEntry.thumbnailMarkupForRect(rect);markup+=this.p_imageMarkup(imageSize,2);markup+='</div>';return markup;},applyToElement:function(div)
{div=$(div);if(div!=null)
{if(div.parentNode)
{$(div.parentNode).ensureHasLayoutForIE();}
var size=new IWSize(div.offsetWidth,div.offsetHeight);div.insert(this.p_imageMarkup(size,(div.hasClassName("aboveStrokesAndFrames")?-1:"auto")));if(!div.hasClassName("flowDefining"))
{if(div.style.position!='absolute')
{var divRect=new IWRect(0,0,div.offsetWidth,div.offsetHeight);var padding=divRect.paddingToRect(this.mStrokeRect);var marginLeft=Element.getStyle(div,"marginLeft");marginLeft=marginLeft?(toPixelsAtElement(div,marginLeft,false)):0;var marginTop=Element.getStyle(div,"marginTop");marginTop=marginTop?(toPixelsAtElement(div,marginTop,true)):0;var marginRight=Element.getStyle(div,"marginRight");marginRight=marginRight?(toPixelsAtElement(div,marginRight,false)):0;var marginBottom=Element.getStyle(div,"marginBottom");marginBottom=marginBottom?(toPixelsAtElement(div,marginBottom,true)):0;div.setStyle({marginLeft:px(padding.left+marginLeft),marginTop:px(padding.top+marginTop),marginRight:px(padding.right+marginRight),marginBottom:px(padding.bottom+marginBottom)});if(windowsInternetExplorer&&effectiveBrowserVersion==7)
{updateListOfIE7FloatsFix(div);}}}}},strokeExtra:function(imageSize)
{if(imageSize===undefined)
{imageSize=this.mMaxImageSize;}
var imageRect=new IWRect(IWZeroPoint(),imageSize);return imageRect.paddingToRect(this.p_strokeRect(imageSize));}});var IWEmptyStroke=Class.create({initialize:function()
{},markupForImageStreamEntry:function(imageStreamEntry,imageSize)
{var rect=new IWRect(0,0,imageSize.width,imageSize.height);var markup='<div class="framedImage" style="'+rect.position()+'">';markup+=imageStreamEntry.thumbnailMarkupForRect(rect);markup+='</div>';return markup;},applyToElement:function(div)
{},strokeExtra:function()
{return new IWPadding(0,0,0,0);}});var kSFRFrameTopLeft=0;var kSFRFrameTop=1;var kSFRFrameTopRight=2;var kSFRFrameRight=3;var kSFRFrameBottomRight=4;var kSFRFrameBottom=5;var kSFRFrameBottomLeft=6;var kSFRFrameLeft=7;var kSFRFrameClip=0;var kSFRFrameStretchEvenly=1;var kSFRFrameStretchToFit=2;var IWPhotoFrame=Class.create({initialize:function(images,maskImages,tilingMode,assetScale,leftInset,topInset,rightInset,bottomInset,unscaledLeftWidth,unscaledTopHeight,unscaledRightWidth,unscaledBottomHeight,leftTileHeight,topTileWidth,rightTileHeight,bottomTileWidth,adornmentURL,adornmentPosition,adornmentSize,minimumAssetScale)
{this.mImages=images;this.mMaskImages=maskImages;this.mTilingMode=tilingMode;this.mLeftInset=leftInset;this.mTopInset=topInset;this.mRightInset=rightInset;this.mBottomInset=bottomInset;this.mUnscaledLeftWidth=unscaledLeftWidth;this.mUnscaledTopHeight=unscaledTopHeight;this.mUnscaledRightWidth=unscaledRightWidth;this.mUnscaledBottomHeight=unscaledBottomHeight;this.mLeftTileHeight=leftTileHeight;this.mTopTileWidth=topTileWidth;this.mRightTileHeight=rightTileHeight;this.mBottomTileWidth=bottomTileWidth;this.mAdornmentURL=adornmentURL;this.mAdornmentPosition=adornmentPosition;this.mAdornmentSize=adornmentSize;this.mMinimumAssetScale=minimumAssetScale;this.setAssetScale(assetScale);},setAssetScale:function(assetScale)
{assetScale=Math.min(assetScale,1.0);assetScale=Math.max(this.mMinimumAssetScale,assetScale);this.mAssetScale=assetScale;this.mLeftWidth=this.scaledValue(this.mUnscaledLeftWidth);this.mTopHeight=this.scaledValue(this.mUnscaledTopHeight);this.mRightWidth=this.scaledValue(this.mUnscaledRightWidth);this.mBottomHeight=this.scaledValue(this.mUnscaledBottomHeight);},scaledValue:function(valueToScale)
{return Math.ceil(valueToScale*this.mAssetScale);},markupForImageStreamEntry:function(imageStreamEntry,size)
{var oldAssetScale=this.mAssetScale;var maximumScale=this.maximumAssetScaleForImageSize(size);if((maximumScale<oldAssetScale)&&(maximumScale>=this.mMinimumAssetScale))
{this.setAssetScale(maximumScale);}
var coverageRect=this.coverageRect(new IWRect(0,0,size.width,size.height));var imageRect=new IWRect(-coverageRect.origin.x,-coverageRect.origin.y,size.width,size.height);coverageRect=coverageRect.offsetToOrigin();var markup='<div class="framedImage" style="'+coverageRect.position()+'">';markup+=imageStreamEntry.thumbnailMarkupForRect(imageRect);if(maximumScale>=this.mMinimumAssetScale)
{if(this.mImages!=null)
{markup+=this.p_buildFrame(this.mImages,coverageRect.size,2);}
if(this.mAdornmentURL!=null)
{markup+=this.p_adornmentMarkupForRect(imageRect,2);}
if(this.mMaskImages)
{}}
markup+='</div>';if(oldAssetScale!=this.mAssetScale)this.setAssetScale(oldAssetScale);return markup;},strokeExtra:function()
{var adornmentExtraTopMargin=0;if(this.mAdornmentURL)
{adornmentExtraTopMargin=Math.max(0,(this.scaledValue(this.mAdornmentSize.height)-this.mTopHeight)/2.0-this.mAdornmentPosition.y);}
return new IWPadding(this.mLeftWidth-this.scaledValue(this.mLeftInset),this.mTopHeight-this.scaledValue(this.mTopInset)+adornmentExtraTopMargin,this.mRightWidth-this.scaledValue(this.mRightInset),this.mBottomHeight-this.scaledValue(this.mBottomInset));},applyToElement:function(div)
{div=$(div);if(div!=null)
{if(div.parentNode)
{$(div.parentNode).ensureHasLayoutForIE();}
var markup='';var divRect=new IWRect(0,0,div.offsetWidth,div.offsetHeight);if((divRect.size.width>=(this.scaledValue(this.mLeftInset)+this.scaledValue(this.mRightInset)))&&(divRect.size.height>=(this.scaledValue(this.mTopInset)+this.scaledValue(this.mTopInset))))
{if(this.mImages!=null)
{var coverageRect=this.coverageRect(divRect);var containerRect=new IWRect(coverageRect.origin.x,coverageRect.origin.y,0,0);markup+='<div style="'+containerRect.position()+'">';markup+=this.p_buildFrame(this.mImages,coverageRect.size,(div.hasClassName("aboveStrokesAndFrames")?-1:"auto"));markup+='</div>';}
if(this.mAdornmentURL!=null)
{markup+=this.p_adornmentMarkupForRect(divRect);}}
div.insert(markup);if(!div.hasClassName("flowDefining"))
{if(div.style.position!='absolute')
{var frameExtra=this.strokeExtra();var marginLeft=Element.getStyle(div,"marginLeft");marginLeft=marginLeft?(toPixelsAtElement(div,marginLeft,false)):0;var marginTop=Element.getStyle(div,"marginTop");marginTop=marginTop?(toPixelsAtElement(div,marginTop,true)):0;var marginRight=Element.getStyle(div,"marginRight");marginRight=marginRight?(toPixelsAtElement(div,marginRight,false)):0;var marginBottom=Element.getStyle(div,"marginBottom");marginBottom=marginBottom?(toPixelsAtElement(div,marginBottom,true)):0;div.setStyle({marginLeft:px(frameExtra.left+marginLeft),marginTop:px(frameExtra.top+marginTop),marginRight:px(frameExtra.right+marginRight),marginBottom:px(frameExtra.bottom+marginBottom)});if(windowsInternetExplorer&&effectiveBrowserVersion==7)
{updateListOfIE7FloatsFix(div);}}}}},maximumAssetScaleForImageSize:function(in_imgSize)
{var maxScale=1;if((in_imgSize.width>this.mLeftInset+this.mRightInset)&&(in_imgSize.height>this.mTopInset+this.mBottomInset))
{maxScale=1;}
else if((in_imgSize.width<Math.ceil(this.mLeftInset*this.mMinimumAssetScale)+Math.ceil(this.mRightInset*this.mMinimumAssetScale))||(in_imgSize.height<Math.ceil(this.mTopInset*this.mMinimumAssetScale)+Math.ceil(this.mBottomInset*this.mMinimumAssetScale)))
{maxScale=0;}
else
{var maxWidthScale=1;var floatEpsilon=0.0000001;if(((this.mLeftInset+this.mRightInset)>=in_imgSize.width)&&((this.mLeftInset+this.mRightInset)>0))
{var leftChunkRatio=Math.floor(this.mLeftInset/(this.mLeftInset+this.mRightInset)*in_imgSize.width)/this.mLeftInset;var rightChunkRatio=Math.floor(this.mRightInset/(this.mLeftInset+this.mRightInset)*in_imgSize.width)/this.mRightInset;leftChunkRatio-=floatEpsilon;rightChunkRatio-=floatEpsilon;maxWidthScale=Math.max(leftChunkRatio,rightChunkRatio);if(in_imgSize.width<(Math.ceil(this.mLeftInset*maxWidthScale)+Math.ceil(this.mRightInset*maxWidthScale)))
{maxWidthScale=Math.min(leftChunkRatio,rightChunkRatio);}
if((maxWidthScale<this.mMinimumAssetScale)||in_imgSize.width<(Math.ceil(this.mLeftInset*maxWidthScale)+Math.ceil(this.mRightInset*maxWidthScale)))
{maxWidthScale=this.mMinimumAssetScale;}}
var maxHeightScale=1;if(((this.mTopInset+this.mBottomInset)>=in_imgSize.height)&&((this.mTopInset+this.mBottomInset)>0))
{var topChunkRatio=Math.floor(this.mTopInset/(this.mTopInset+this.mBottomInset)*in_imgSize.height)/this.mTopInset;var bottomChunkRatio=Math.floor(this.mBottomInset/(this.mTopInset+this.mBottomInset)*in_imgSize.height)/this.mBottomInset;topChunkRatio-=floatEpsilon;bottomChunkRatio-=floatEpsilon;maxHeightScale=Math.max(topChunkRatio,bottomChunkRatio);if(in_imgSize.height<(Math.ceil(this.mTopInset*maxHeightScale)+Math.ceil(this.mBottomInset*maxHeightScale)))
{maxHeightScale=Math.min(topChunkRatio,bottomChunkRatio);}
if((maxHeightScale<this.mMinimumAssetScale)||in_imgSize.height<(Math.ceil(this.mTopInset*maxHeightScale)+Math.ceil(this.mBottomInset*maxHeightScale)))
{maxHeightScale=this.mMinimumAssetScale;}}
maxScale=Math.min(maxWidthScale,maxHeightScale);}
return maxScale;},coverageRect:function(rect)
{var left=rect.origin.x+this.scaledValue(this.mLeftInset);var top=rect.origin.y+this.scaledValue(this.mTopInset);var right=rect.maxX()-this.scaledValue(this.mRightInset);var bottom=rect.maxY()-this.scaledValue(this.mBottomInset);left-=this.mLeftWidth;right+=this.mRightWidth;top-=this.mTopHeight;bottom+=this.mBottomHeight;return(new IWRect(left,top,right-left,bottom-top)).round();},p_buildFrame:function(images,size,zIndex)
{var width=size.width;var height=size.height;var startX=this.mLeftWidth;var endX=width-this.mRightWidth;var startY=this.mTopHeight;var endY=height-this.mBottomHeight;var markup="";var zIndexStyle=zIndex?('z-index: '+zIndex+';'):'';if((startX<=endX+1)&&(startY<=endY+1))
{var imageRect=new IWRect(0.0,0.0,this.mLeftWidth,this.mTopHeight);markup=imgMarkup(images[kSFRFrameTopLeft].sourceURL(),imageRect.position()+zIndexStyle);imageRect=new IWRect(0.0,(height-this.mBottomHeight),this.mLeftWidth,this.mBottomHeight);markup+=imgMarkup(images[kSFRFrameBottomLeft].sourceURL(),imageRect.position()+zIndexStyle);imageRect=new IWRect((width-this.mRightWidth),0.0,this.mRightWidth,this.mTopHeight);markup+=imgMarkup(images[kSFRFrameTopRight].sourceURL(),imageRect.position()+zIndexStyle);imageRect=new IWRect((width-this.mRightWidth),(height-this.mBottomHeight),this.mRightWidth,this.mBottomHeight);markup+=imgMarkup(images[kSFRFrameBottomRight].sourceURL(),imageRect.position()+zIndexStyle);var naturalSize=new IWSize(this.mLeftWidth,this.scaledValue(this.mLeftTileHeight));imageRect=new IWRect(0.0,startY,naturalSize.width,naturalSize.height);markup+=this.p_tiles(images[kSFRFrameLeft].sourceURL(),imageRect,startY,endY,true,zIndex);naturalSize=new IWSize(this.mRightWidth,this.scaledValue(this.mRightTileHeight));imageRect=new IWRect(width-this.mRightWidth,startY,naturalSize.width,naturalSize.height);markup+=this.p_tiles(images[kSFRFrameRight].sourceURL(),imageRect,startY,endY,true,zIndex);naturalSize=new IWSize(this.scaledValue(this.mTopTileWidth),this.mTopHeight);imageRect=new IWRect(startX,0.0,naturalSize.width,naturalSize.height);markup+=this.p_tiles(images[kSFRFrameTop].sourceURL(),imageRect,startX,endX,false,zIndex);naturalSize=new IWSize(this.scaledValue(this.mBottomTileWidth),this.mBottomHeight);imageRect=new IWRect(startX,height-this.mBottomHeight,naturalSize.width,naturalSize.height);markup+=this.p_tiles(images[kSFRFrameBottom].sourceURL(),imageRect,startX,endX,false,zIndex);}
return markup;},p_adornmentRectForRect:function(rect)
{var adornmentCenter=new IWPoint();rect=this.coverageRect(rect);adornmentCenter.x=(rect.size.width-(this.mLeftWidth+this.mRightWidth))*this.mAdornmentPosition.x;adornmentCenter.x+=rect.origin.x+this.mLeftWidth;adornmentCenter.y=this.mTopHeight/2.0+(rect.origin.y+this.mAdornmentPosition.y);var scaledAdornmentSize=new IWSize(this.scaledValue(this.mAdornmentSize.width),this.scaledValue(this.mAdornmentSize.height));var adornmentOrigin=new IWPoint(adornmentCenter.x-(scaledAdornmentSize.width/2.0),adornmentCenter.y-(scaledAdornmentSize.height/2.0));var adornmentRect=new IWRect(adornmentOrigin,scaledAdornmentSize);return adornmentRect;},p_adornmentMarkupForRect:function(rect,zIndex)
{var zIndexStyle=zIndex?('z-index: '+zIndex+';'):'';return imgMarkup(this.mAdornmentURL,this.p_adornmentRectForRect(rect).position()+zIndexStyle);},p_tiles:function(imageURL,imageRect,start,end,vertical,zIndex)
{var markup="";if(start<end)
{var zIndexStyle=zIndex?('z-index: '+zIndex+';'):'';var tileRect=imageRect.clone();var tilingMode=this.mTilingMode;if(vertical)
{tileRect.size.height=Math.ceil(end-start);if(imageRect.size.height==1)
{tilingMode=kSFRFrameStretchToFit;}}
else
{tileRect.size.width=Math.ceil(end-start);if(imageRect.size.width==1)
{tilingMode=kSFRFrameStretchToFit;}}
if(tilingMode==kSFRFrameStretchToFit)
{markup+=imgMarkup(imageURL,tileRect.position()+zIndexStyle);}
else
{var naturalSize=imageRect.size;var offset=(vertical?naturalSize.height:naturalSize.width);var maxTiles=Math.ceil((end-start)/offset);if(offset<5||maxTiles>20)
{IWAssert(function(){return true},"Please remove this assert and the surrouding block.");iWLog("Too many frame image tiles are getting generated. Performance may be affected.");}
if(tilingMode==kSFRFrameStretchEvenly)
{offset=(end-start)/maxTiles;if(vertical)
{imageRect.size.height=offset;}
else
{imageRect.size.width=offset;}}
else if(tilingMode==kSFRFrameClip)
{markup+='<div style="'+tileRect.position()+'overflow: hidden; ">';imageRect.origin.x=0;imageRect.origin.y=0;}
for(var i=0;i<maxTiles;++i)
{var left=Math.round(imageRect.origin.x);var right=Math.round(imageRect.origin.x+imageRect.size.width);var top=Math.round(imageRect.origin.y);var bottom=Math.round(imageRect.origin.y+imageRect.size.height);var roundedRect=new IWRect(left,top,(right-left),(bottom-top));markup+=imgMarkup(imageURL,roundedRect.position()+zIndexStyle);imageRect=vertical?imageRect.offset(0.0,offset):imageRect.offset(offset,0.0);}
if(tilingMode==kSFRFrameClip)
{markup+="</div>";}}}
return markup;}});

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,67 @@
//
// iWeb - navbar.js
// Copyright (c) 2007-2008 Apple Inc. All rights reserved.
//
var NavBar=Class.create(Widget,{widgetIdentifier:"com-apple-iweb-widget-NavBar",initialize:function($super,instanceID,widgetPath,sharedPath,sitePath,preferences,runningInApp)
{if(instanceID)
{$super(instanceID,widgetPath,sharedPath,sitePath,preferences,runningInApp);if(!this.preferenceForKey("useStaticFeed")&&this.preferenceForKey("dotMacAccount"))
{var depthPrefix=this.preferenceForKey("path-to-root");if(!depthPrefix||depthPrefix=="")
depthPrefix="./";this.xml_feed=depthPrefix+"?webdav-method=truthget&depth=infinity&ns=iweb&filterby=in-navbar";}
else
{this.xml_feed="feed.xml";if(this.sitePath)
{this.xml_feed=this.sitePath+"/"+this.xml_feed;}}
this.changedPreferenceForKey("navbar-css");this.regenerate();}},regenerate:function()
{new Ajax.Request(this.xml_feed,{method:'get',onSuccess:this.populateNavItems.bind(this)});return true;},getStyleElement:function(key)
{if(!this.styleElement)
{var head=document.getElementsByTagName("head")[0];if(head)
{var newElement=document.createElement("style");newElement.type="text/css";head.appendChild(newElement);this.styleElement=newElement;}}
return this.styleElement;},substWidgetPath:function(text)
{var result=text.replace(/\$WIDGET_PATH/gm,this.widgetPath);return result;},addCSSSelectorPrefix:function(text)
{var prefix="div#"+this.instanceID+" ";text=text.replace(/\/\*[^*]*\*+([^/][^*]*\*+)*\//gm,"");text=text.replace(/(^\s*|\}\s*)([^{]+)({[^}]*})/gm,function(match,beforeSelectorList,selectorList,propertyList){var result=beforeSelectorList;var selectors=selectorList.split(",");for(var i=0;i<selectors.length;i++){result+=prefix+selectors[i];if(i+1<selectors.length)result+=",";}
result+=propertyList;return result;});return text;},changedPreferenceForKey:function(key)
{if(key=="navbar-css")
{var text=this.preferenceForKey(key);if(!text)
{text="";}
text=this.substWidgetPath(text);text=this.addCSSSelectorPrefix(text);var styleElement=this.getStyleElement();if(styleElement)
{if(!windowsInternetExplorer)
{var node=document.createTextNode(text);if(node)
{while(styleElement.hasChildNodes())
{styleElement.removeChild(styleElement.firstChild);}
styleElement.appendChild(node);}}
else
{styleElement.styleSheet.cssText=text;}}}},populateNavItems:function(req)
{var items;var feedRoot=ajaxGetDocumentElement(req);if(feedRoot){var parsedFeed=this.getAtomFeedItems(feedRoot);var items=parsedFeed.resultArray;var currentPageGUID=null;var isCollectionPage="NO";var curPagePat=null;if(this.runningInApp)
curPagePat=/\.#current#.$/;else
{currentPageGUID=this.preferenceForKey("current-page-GUID");isCollectionPage=this.preferenceForKey("isCollectionPage");}
var navDiv=this.div("navbar-list");var navBgDiv=navDiv.parentNode;$(navBgDiv).ensureHasLayoutForIE();while(navDiv.firstChild){navDiv.removeChild(navDiv.firstChild);}
var depthPrefix=this.preferenceForKey("path-to-root");if(!depthPrefix||depthPrefix=="")
depthPrefix="./";for(var x=0;x<items.length;x++){var navItem=document.createElement("li");var anchor=document.createElement("a");var title=items[x].title;var pageGUID=items[x].GUID;title=title.replace(/ /g,"\u00a0")+" ";var url=items[x].url;if(!this.runningInApp&&!url.match(/^http:/i))
url=depthPrefix+url;var inAppCurPage=this.runningInApp&&curPagePat.exec(unescape(new String(url)));if(inAppCurPage)
{url=url.replace(curPagePat,"");}
if(pageGUID==currentPageGUID||inAppCurPage){navItem.className='current-page';if(!this.runningInApp&&isCollectionPage!="YES"){url="";}}
else
navItem.className='noncurrent-page';anchor.setAttribute("href",url);anchor.appendChild(document.createTextNode(title));navItem.appendChild(anchor);navDiv.appendChild(navItem);}
if(this.preferences&&this.preferences.postNotification){this.preferences.postNotification("BLWidgetIsSafeToDrawNotification",1);}}},getAtomFeedItems:function(feedNode)
{var results=new Array;var pageOrder=new Array;if(feedNode)
{var generator="";var generatorElt=getFirstElementByTagName(feedNode,"generator");if(generatorElt&&generatorElt.firstChild){generator=allData(generatorElt);}
var pageGUIDs,pageGUIDsElt;for(var entryElt=feedNode.firstChild;entryElt;entryElt=entryElt.nextSibling){var isInNavbarElt=null;if(!pageGUIDs&&(pageGUIDsElt=findChild(entryElt,"site-navbar","urn:iweb:"))){pageGUIDs=allData(pageGUIDsElt).split(",");for(var x=0;x<pageGUIDs.length;x++){var pageGUID=pageGUIDs[x];pageOrder[""+pageGUID]=x;}}
if(entryElt.nodeName=="entry"&&(isInNavbarElt=findChild(entryElt,"in-navbar","urn:iweb:"))){if(!isInNavbarElt)
continue;var pageGUID="";if(isInNavbarElt.firstChild){pageGUID=""+allData(isInNavbarElt);}else{iWLog("no navBarElt child");}
if(pageGUID=="navbar-sort")
continue;var title="";var titleElt=findChild(entryElt,"title","urn:iweb:");if(!titleElt){iWLog("No iWeb title");titleElt=findChild(entryElt,"title");}
if(titleElt&&titleElt.firstChild){title=allData(titleElt);}
var linkElt=getFirstElementByTagName(entryElt,'link');url=linkElt.getAttribute("href");if(!url&&linkElement.firstChild){url=allData(linkElement);}
results[results.length]={title:title,url:url,GUID:pageGUID};}}}
if(pageGUIDs){results=$(results).reject(function(result){return(pageOrder[result.GUID]===undefined);});results.sort(function(lhs,rhs){return pageOrder[lhs.GUID]-pageOrder[rhs.GUID];});}
return{resultArray:results};},onload:function()
{},onunload:function()
{}});function findChild(element,nodeName,namespace)
{var child;for(child=element.firstChild;child;child=child.nextSibling){if(child.localName==nodeName||child.baseName==nodeName){if(!namespace){return child;}
var childNameSpace=child.namespaceURI;if(childNameSpace==namespace){return child;}}}
return null;}
function getFirstElementByTagName(node,tag_name){var elements=node.getElementsByTagName(tag_name);if(elements.length){return elements[0];}
else{return findChild(node,tag_name);}}
function allData(node)
{node=node.firstChild;var data=node.data;while((node=node.nextSibling)){data+=node.data;}
return data;}

Binary file not shown.

After

Width:  |  Height:  |  Size: 855 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 108 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 109 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 80 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 94 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 114 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 111 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 B

Some files were not shown because too many files have changed in this diff Show More