//--------------------------------------------------------------------------------------------------------
// cpu / browser speed testing
//--------------------------------------------------------------------------------------------------------
var cpubrowserbenchmark = function(count) {
var date1 = new Date()
var start = date1.getTime()
for (var i=1; i<=count; i++) {}
date1 = new Date()
var finish = date1.getTime()
var speedmulti = Math.round(((finish-start)/1000)/ 0.084);
// set minimum multip
if (speedmulti < 1){
speedmulti = 1;
}
return speedmulti;
}
//--------------------------------------------------------------------------------------------------------
// prevent right click
//--------------------------------------------------------------------------------------------------------
var zaneray = document;
var isNS=(navigator.appName=="Netscape")? 1 : 0;
if(navigator.appName=="Netscape"){
zaneray.captureEvents(Event.MOUSEDOWN||Event.MOUSEUP);
}
function nothing(){
return false;
}
function nothingm(e){
var myevent=(isNS)? e : event;
var eventbutton=(isNS)? myevent.which : myevent.button;
if((eventbutton==2)||(eventbutton==3)){
return false;
}
}
zaneray.oncontextmenu = nothing;
zaneray.onmousedown = nothingm;
zaneray.onmouseup = nothingm;
var adjustlivezindex = function(){
// do nothing
//mydivs = document.getElementsByTagName('div');
//setTimeout(function(){adjustlivezindexnow();}, 2000);
}
var adjustlivezindexnow = function(){
mydivs[0].style.zIndex = '1900';
}
//--------------------------------------------------------------------------------------------------------
// preloading
//--------------------------------------------------------------------------------------------------------
// small shadow background
var shadowsmall = new Image();
shadowsmall.src = '//images.competitivecyclist.com/images/global/shadow_background_color_chips.png';
// medium shadow background
var shadowmedium = new Image();
shadowmedium.src = '//images.competitivecyclist.com/images/global/shadow_background_size_chart.png';
// large shadow background
var shadowlarge = new Image();
shadowlarge.src = '//images.competitivecyclist.com/images/global/shadow_background_policy.png';
// xlarge shadow background
var shadowxlarge = new Image();
shadowxlarge.src = '//images.competitivecyclist.com/images/global/shadow_background.png';
var loadinganim = new Image();
loadinganim.src = '//images.competitivecyclist.com/images/global/loading.gif';
function loadedimage(){
alert('loaded');
}
var pointerImgs = new Array;
var dragimageImgs = new Array;
//--------------------------------------------------------------------------------------------------------
// ZZoomDrag v. 0.2
// Copyright 2008 by Zaneray Inc.
// Written by: Flori Seeger
//--------------------------------------------------------------------------------------------------------
// globals
var xratio = 0;
var yratio = 0;
var xoff = 0;
var yoff = 0;
var totaloffsetleft = 0;
var totaloffsettop = 0;
var disablex = false;
var disabley = false;
var ZZoomDragInit = false;
var imageshowing = 0;
var dostrip = false;
var pointerdone = false;
var dragdone = false;
var pointerimage = new Image;
var dragimage = new Image;
function pointerimgdone(){
pointerdone = true;
}
function dragimgdone(){
dragdone = true;
}
function reportImageLoadError(){
var pars = "PAGE=REPORT_BROKEN_IMAGE";
pars += "&pointerimage=" + pointerImgs[imageshowing];
pars += "&dragimage=" + dragimageImgs[imageshowing];
pars += "&r=" + Math.random();
var url = "/za/CCM";
var myAjax = new Ajax.Request( url, { method: 'post', parameters: pars, onComplete: reportedImageLoadError});
}
function reportedImageLoadError(){
// do nothing
}
var firstrunzzd = true
var ZZoomDrag = function(){
// start preloading images, set flag
if (firstrunzzd == true){
if (pointerimage.complete == true){
pointerimgdone;
}
pointerimage.onload = pointerimgdone;
pointerimage.onerror = reportImageLoadError;
pointerimage.src = pointerImgs[imageshowing];
if (dragimage.complete == true){
dragimgdone;
}
dragimage.onload = dragimgdone;
dragimage.onerror = reportImageLoadError;
dragimage.src = dragimageImgs[imageshowing];
firstrunzzd = false;
}
if (pointerdone == true && dragdone == true){
clearTimeout(checkloading);
$('pointerimgcontainer').innerHTML = '';
var pointerimgmargintop = ($('pointerimgcontainer').offsetHeight - $('pointerimg').offsetHeight) / 2;
$('pointerimg').style.marginTop = pointerimgmargintop + 'px';
$('bigbox').innerHTML = '
';
zfade ($('pointerimg'), 0, 100, 500, true);
zfade ($('dragimage'), 0, 100, 500, true);
$('dragimage').style.margin = '0px';
var smallx = $('pointerimg').offsetWidth;
var smally = $('pointerimg').offsetHeight;
var bigx = $('dragimage').offsetWidth;
var bigy = $('dragimage').offsetHeight;
var bigboxx = $('bigbox').offsetWidth;
var bigboxy = $('bigbox').offsetHeight;
// flag drag image < drag container
// disable panning
//builddebug (bigx +"/"+ bigboxx);
if (bigx < bigboxx){
disablex = true;
$('dragimage').style.marginLeft = (bigboxx - bigx) / 2 + "px";
}
else {
disablex = false;
}
if (bigy < bigboxy){
disabley = true;
//builddebug((bigboxy - bigy) / 2);
$('dragimage').style.marginTop = (bigboxy - bigy) / 2 + "px";
}
else {
disabley = false;
}
xratio = bigx / smallx;
yratio = bigy / smally;
xoff = bigboxx / 2;
yoff = bigboxy / 2;
totaloffsetleft = 0;
totaloffsettop = 0;
imageshowing = 0;
pointerdone = false;
dragdone = false;
firstrunzzd = true;
var ele = $('pointerimg');
if (ele.offsetParent) {
do {
totaloffsetleft += ele.offsetLeft;
totaloffsettop += ele.offsetTop;
}
while (ele = ele.offsetParent);
}
$('pointerimg').onmousemove = ZZoomDragUpdate;
}
else {
var checkloading = setTimeout(function () { ZZoomDrag(); }, 500);
}
}
var ZZoomDragUpdate = function(e) {
getmouseposition(e);
}
var getmouseposition = function(e) {
if (!e){
var e = window.event;
}
if (e){
if (e.pageX || e.pageY){
mousexpos = e.pageX;
mouseypos = e.pageY;
algor = '[e.pageX]';
}
else {
if (e.clientX || e.clientY){
mousexpos = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
mouseypos = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
algor = '[e.clientX]';
if (e.pageX || e.pageY) algor += '[e.pageX]';
}
}
mousexpos = mousexpos - totaloffsetleft - 4;
mouseypos = mouseypos - totaloffsettop -4;
}
//builddebug(disablex +"/"+ disabley);
if (disablex == false){
if (Math.round(xoff + (mousexpos * xratio * -1)) <= 0 && Math.round(xoff * -1 + mousexpos * xratio * -1) >= $('dragimage').offsetWidth * -1){
$('dragimage').style.left = Math.round(xoff + (mousexpos * xratio * -1)) + 'px';
}
if (Math.round(xoff + (mousexpos * xratio * -1)) > 0){
$('dragimage').style.left = '0px';
}
if(Math.round(xoff * -1 + mousexpos * xratio * -1) < $('dragimage').offsetWidth * -1){
$('dragimage').style.left = ($('dragimage').offsetWidth - xoff * 2) * -1 + 'px';
}
}
if (disabley == false){
if (Math.round(yoff + (mouseypos * yratio * -1)) <= 0&& Math.round(yoff * -1 + mouseypos * yratio * -1) >= $('dragimage').offsetHeight * -1){
$('dragimage').style.top = Math.round(yoff + (mouseypos * yratio * -1)) + 'px';
}
if (Math.round(yoff + (mouseypos * yratio * -1)) > 0){
$('dragimage').style.top = '0px';
}
if(Math.round(yoff * -1 + mouseypos * yratio * -1) < $('dragimage').offsetHeight * -1){
$('dragimage').style.top = ($('dragimage').offsetHeight - yoff * 2) * -1 + 'px';
}
}
}
var reinitpointerimg = function(){
if ($('pointerimg')){
totaloffsetleft = 0;
totaloffsettop = 0;
var ele = $('pointerimg');
if (ele.offsetParent) {
do {
totaloffsetleft += ele.offsetLeft;
totaloffsettop += ele.offsetTop;
}
while (ele = ele.offsetParent);
}
}
}
var ZZoomDragNextColor = function (imagetoshow){
// fade out
//zfade ($('pointerimg'), 100, 0, 'duration', true);
//zfade ($('dragimage'), 100, 0, 'duration', true);
$('pointerimg').src = '//images.competitivecyclist.com/images/global/none.gif';
$('dragimage').src = '//images.competitivecyclist.com/images/global/loading.gif';
$('dragimage').style.left = '0px';
$('dragimage').style.top = '0px';
$('dragimage').style.marginLeft = '168px';
$('dragimage').style.marginTop = '170px';
imageshowing = imagetoshow;
ZZoomDrag();
}
ZZoom = {
// init ZZoom
init: function(e, object){
document.onmousedown = ZZoom.fixff;
document.onmousemove = ZZoom.dragupdate;
document.onmouseup = ZZoom.dropupdate;
// namespace var to carry object
myobject = object;
// calculate mouse pointer over drag object offset
offsetx = ZZoom.coordinates(e).x - ZZoom.dragobjectoffset().xdragoffset;
offsety = ZZoom.coordinates(e).y - ZZoom.dragobjectoffset().ydragoffset;
// calculate drag area
xmin = myobject.parentNode.offsetWidth - myobject.offsetWidth - 3;
ymin = myobject.parentNode.offsetHeight - myobject.offsetHeight - 3;
},
// return mouse pointer x y position
coordinates: function(e){
if (!e){
var e = window.event;
}
if (e){
if (e.pageX || e.pageY){
return {x: e.pageX, y: e.pageY};
}
else {
if (e.clientX || e.clientY){
return {
x: e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft,
y: e.clientY + document.body.scrollTop + document.documentElement.scrollTop};
}
}
}
},
// get position of drag object
dragobjectoffset: function(){
return {
xdragoffset: myobject.offsetLeft,
ydragoffset: myobject.offsetTop
};
},
// move drag object
dragupdate: function(e){
xcurrent = ZZoom.coordinates(e).x - offsetx;
ycurrent = ZZoom.coordinates(e).y - offsety;
if (xcurrent < 1 && xcurrent > xmin){
myobject.style.left = xcurrent + "px";
}
if (ycurrent < 1 && ycurrent > ymin){
myobject.style.top = ycurrent + "px";
}
return false;
},
// drop drag object
dropupdate: function(){
document.onmousemove = null;
},
// prevent image dragging in FF
fixff: function(){
return false;
}
}
//--------------------------------------------------------------------------------------------------------
// EZ-XY Scroll v. 1.5
// Copyright 2008 by Zaneray Inc.
// Written by: Flori Seeger
//--------------------------------------------------------------------------------------------------------
var scrolldone = true;
var scrollstepy = 0;
var scrollstepx = 0;
var scrollmaxx;
var scrollmaxy;
var easearrayy= new Array();
easearrayy=[4,16,32,64,128,130,100,64,64,32,16,16,8,7,4,2,2,2,2,2,1,1,1,1,1];
var easearrayx= new Array();
easearrayx=[4,16,32,64,128,130,100,64,64,32,16,16,8,7,4,2,2,2,2,2,1,1,1,1,1];
function easyscroll(direction,user,cnum,vh){
var allowscrolly = false;
var allowscrollx = false;
if (user == true && scrolldone == true || user == false){
var execute = true;
}
if (execute == true){
var currenty= parseFloat($('sc' + cnum).offsetTop);
var currentx = parseFloat($('sc' + cnum).offsetLeft);
if (direction == 'up' || direction == 'left'){
if(eval('current'+ vh + '* -1') + eval('easearray' + vh)[eval('scrollstep' + vh)] < eval('scrollmax' + vh)){
eval('current' + vh + '-=' + eval('easearray' + vh)[eval('scrollstep' + vh)]);
eval('allowscroll' + vh + '= true');
}
else {
if (vh == 'x'){
eval ('current' + vh + '= scrollmax' + vh + '* -1');
$('sc' + cnum).style.left = scrollmaxx * -1 + 'px';
}
else {
eval ('current' + vh + '= scrollmax' + vh + '* -1');
$('sc' + cnum).style.top = scrollmaxy * -1 + 'px';
}
eval('scrollstep' + vh + '= 0');
scrolldone = true;
}
}
if (direction == 'down' || direction == 'right'){
if(eval('current' + vh + '* -1') - eval('easearray' + vh)[eval('scrollstep' + vh)] > 0){
eval('current' + vh + '+=' + eval('easearray' + vh)[eval('scrollstep' + vh)]);
eval ('allowscroll' + vh + '= true');
}
else {
if (vh == 'x'){
eval ('current' + vh + '= 0');
$('sc' + cnum).style.left = '0px';
}
else {
eval ('current' + vh + '= 0');
$('sc' + cnum).style.top = '0px';
}
eval('scrollstep' + vh + '= 0');
scrolldone = true;
}
}
// ------------------------------------------
// show hide arrow elements
// ------------------------------------------
// downarrow
if (currenty == 0){
$('downarrow' + cnum).style.display = 'none';
}
else {
$('downarrow' + cnum).style.display = 'block';
}
// uparrow
if ((currenty * -1) >= scrollmaxy){
$('uparrow' + cnum).style.display = 'none';
}
else {
$('uparrow' + cnum).style.display = 'block';
}
// right arrow
if (currentx == 0){
$('rightarrow' + cnum).style.display = 'none';
//$('scs' + cnum).style.marginLeft = '0px';
}
else {
$('rightarrow' + cnum).style.display = 'block';
//$('scs' + cnum).style.marginLeft = '30px';
}
// left arrow
if ((currentx * -1) == scrollmaxx){
$('leftarrow' + cnum).style.display = 'none';
}
else {
$('leftarrow' + cnum).style.display = 'block';
}
if (eval('allowscroll' + vh) == true){
if (eval('scrollstep'+vh) < (eval('easearray'+vh).length - 1)){
eval('scrollstep' + vh + '++');
$('sc' + cnum).style.top = currenty + 'px';
$('sc' + cnum).style.left = currentx + 'px';
scrolldone = false;
setTimeout(function () { easyscroll(direction,false,cnum,vh); }, 33);
}
else {
eval('scrollstep' + vh + '= 0');
scrolldone = true;
}
}
}
}
//--------------------------------------------------------------------------------------------------------
// EZ-XY Scroll Init
//--------------------------------------------------------------------------------------------------------
var scrolliniter = function(cnum){
if ($('sc' + cnum) && $('scs' + cnum)){
var scsheight = $('scs' + cnum).offsetHeight;
var scheight = $('sc' + cnum).offsetHeight;
var scswidth = $('scs' + cnum).offsetWidth;
var scwidth = $('sc' + cnum).offsetWidth;
scrollmaxx = scwidth - scswidth;
scrollmaxy = scheight - scsheight;
if($('downarrow' + cnum) && $('uparrow' + cnum)){
if (scrollmaxy <= 0){
$('downarrow' + cnum).style.display = 'none';
$('uparrow' + cnum).style.display = 'none';
}
else {
$('downarrow' + cnum).style.display = 'none';
}
}
if($('leftarrow' + cnum) && $('rightarrow' + cnum)){
if (scrollmaxx <= 0){
$('leftarrow' + cnum).style.display = 'none';
$('rightarrow' + cnum).style.display = 'none';
}
else {
$('rightarrow' + cnum).style.display = 'none';
}
}
}
}
//--------------------------------------------------------------------------------------------------------
// Z-Fade v. 1.01
// Copyright 2008 by Zaneray Inc.
// Written by: Flori Seeger
//--------------------------------------------------------------------------------------------------------
var zfade = function (element, start, end, duration, init, callback) {
if (init == true){
if (start < end){
element.direction = 'in';
}
if (start > end){
element.direction = 'out';
}
if (start == end){
clearTimeout(element.fade);
return;
}
element.speed = Math.round(100 / (duration / 33));
element.timeout = Math.round(duration / 100);
clearTimeout(element.fade);
}
element.opacity = start;
element.fire = false;
switch (element.direction){
case 'in':
if ((element.opacity + element.speed) >= 100){
element.fire = false;
}
else {
element.opacity = element.opacity + element.speed;
element.fire = true;
}
break;
case 'out':
if (element.opacity - element.speed <= 0){
element.fire = false;
}
else {
element.opacity = element.opacity - element.speed;
element.fire = true;
}
break;
}
element.zopacity = function (opacity,element) {
element.style.filter = "alpha(opacity=" + opacity + ")";
element.style.opacity = (opacity / 100);
}
if (element.fire == true){
element.zopacity (element.opacity, element);
element.fade = setTimeout(function () { zfade(element, element.opacity, end, duration,false,callback);}, element.timeout);
}
else {
element.style.filter = '';
clearTimeout(element.fade);
}
}
// stop event bubbling
function stopbubble(e){
if (!e) var e = window.event;
e.cancelBubble = true;
if (e.stopPropagation) e.stopPropagation();
}
//--------------------------------------------------------------------------------------------------------
// Z-Zoom v. 1.50
// Copyright 2008 by Zaneray Inc.
// Written by: Flori Seeger
//--------------------------------------------------------------------------------------------------------
// todo:
// cleanup parent function
//--------------------------------------------------------------------------------------------------------
// params:
// element = object
// xstart = x start size
// ystart = y start size
// xend = x end size
// yend = y end size
// ease = name of ease array
// callbackfunction = function that called
// who = additional element pass
// ease arrays and speed calculations
var speedmulti = cpubrowserbenchmark(1000000);
// start nav menu ease
var menuease = new Array;
menuease = [200 * speedmulti];
var menueaseapcom = new Array;
menueaseapcom = [500 * speedmulti];
var menueasebrand = new Array;
menueasebrand = [120 * speedmulti];
// end nav menu ease
var demozoomease = new Array;
demozoomease = [60 * speedmulti];
var czoomease = new Array;
czoomease = [60 * speedmulti];
var sideslideease = new Array;
sideslideease = [60 * speedmulti];
var bikezoomease = new Array;
bikezoomease = [eval(10 * speedmulti)];
var loopspeed = 35; // function recall after 40ms = 25fps
var currentelement;
var zzoom = function (element, xstart, ystart, xend, yend, ease, callbackfunction, delay) {
if (delay != ''){
element.delaytimer = setTimeout(function () { zzoom(element, xstart, ystart, xend, yend, ease, callbackfunction, ''); }, delay);
return;
}
element.varsetup = false;
element.zoom = function (element){
if (element.varsetup == false){
// element position
element.xp = element.offsetLeft;
element.yp = element.offsetTop;
// check if element has border
var version = navigator.userAgent;
if (element.style.borderWidth.indexOf('1px') > -1){
element.xyoffset = 2;
}
else {
element.xyoffset = 0;
}
// element width / height
element.xw = element.offsetWidth;
element.yh = element.offsetHeight;
// clear timer if running
clearTimeout(element.zoomtimer);
// setup end zoom size
element.xe = xend;
element.ye = yend;
// setup current height and width properties
if (currentelement == element && element.zoomxdone == false || element.zoomydone == false){
if (xstart < 0){
element.xc = element.offsetWidth * -1;
}
else {
element.xc = element.offsetWidth;
}
if (ystart < 0){
element.yc = element.offsetHeight * -1;
}
else {
element.yc = element.offsetHeight;
}
}
else {
element.xc = xstart;
element.yc = ystart;
}
currentelement = element;
// enable zoom functions
element.zoomxdone = false;
element.zoomydone = false;
// run setup only once
element.varsetup = true;
// reset array counter
element.loopcounter = 0;
// get total zoom distances, convert neg to pos
if (element.xe < 0){
var xe = -element.xe;
}
else {
var xe = element.xe;
}
if (element.xc < 0){
var xc = -element.xc;
}
else {
var xc = element.xc;
}
if (element.ye < 0){
var ye = -element.ye;
}
else {
var ye = element.ye;
}
if (element.yc < 0){
var yc = -element.yc;
}
else {
var yc = element.yc;
}
element.xt = xe - xc;
element.yt = ye - yc;
//set zoom aspect ratio
element.ratio = element.xt / element.yt;
if (element.ratio < 0){
element.ratio = -element.ratio;
}
// catch 0 ratio or ration set to infinity caused by devision by zero
// and negative or invalid ratio
if (element.ratio <= 0 || element.ratio == 'Infinity'){
element.ratio = 1;
}
// x check if zoom-in or zoom-out
if (element.xt != 0){
if (element.xc > element.xe){
element.xd = 'zoomoutx';
}
else {
element.xd = 'zoominx';
}
}
else {
element.xd = 'noxzoom';
element.zoomxdone = true;
}
// y check if zoom-in or zoom-out
if (element.yt != 0){
if (element.yc > element.ye){
element.yd = 'zoomouty';
}
else {
element.yd = 'zoominy';
}
}
else {
element.yd = 'noyzoom';
element.zoomydone = true;
}
// check if negative zoom direction
if (element.xc < 0){
element.xn = true;
element.xc = element.xc * -1;
}
if (element.yc < 0){
element.yn = true;
element.yc = element.yc * -1;
}
}
// ---------- X DIRECTION ----------
// zoom x direction / switch for zoom in and zoom out
if (element.zoomxdone == false){
switch (element.xd){
case 'zoominx':
if (element.xn == true){
element.xc = element.xc - eval(ease)[element.loopcounter] * element.ratio;
if (element.xc * -1 < element.xe){
element.style.width = element.xc + "px";
element.style.left = element.xp + element.xw - element.xc - element.xyoffset + "px";
}
if (-1 * element.xc + eval(ease)[element.loopcounter] * element.ratio >= element.xe){
element.style.width = -1 * element.xe + "px";
element.style.left = element.xp + element.xw - element.xe * -1 - element.xyoffset + "px";
element.zoomxdone = true;
}
}
else {
element.xc = element.xc + (eval(ease)[element.loopcounter] * element.ratio);
if (element.xc < element.xe){
element.style.width = element.xc + "px";
}
if (element.xc + eval(ease)[element.loopcounter] * element.ratio >= element.xe){
element.style.width = element.xe + "px";
element.zoomxdone = true;
}
}
break;
case 'zoomoutx':
if (element.xn == true){
element.xc = element.xc + eval(ease)[element.loopcounter] * element.ratio;
if (element.xc > element.xe){
element.style.width = element.xc + "px";
element.style.left = element.xp - element.xc + element.xw - element.xyoffset + "px";
}
if (-1 * element.xc - eval(ease)[element.loopcounter] * element.ratio <= element.xe){
element.style.width = -1 * element.xe + "px";
element.style.left = element.xp + element.xe + element.xw - element.xyoffset + "px";
element.zoomxdone = true;
}
}
else {
element.xc = element.xc - eval(ease)[element.loopcounter] * element.ratio;
if (element.xc > element.xe){
element.style.width = element.xc + "px";
}
if (element.xc - eval(ease)[element.loopcounter] * element.ratio <= element.xe){
element.style.width = element.xe + "px";
element.zoomxdone = true;
}
}
break;
}
}
// ---------- Y DIRECTION ----------
// zoom y direction / switch for zoom in and zoom out
if (element.zoomydone == false){
switch (element.yd){
case 'zoominy':
if (element.yn == true){
element.yc = element.yc - eval(ease)[element.loopcounter];
if ((element.yc * -1) < element.ye){
element.style.height = element.yc + "px";
element.style.top = element.yp + element.yh - element.yc - element.xyoffset + "px";
}
if (-1 * (element.yc + eval(ease)[element.loopcounter]) >= element.ye){
element.style.height = -1 * element.ye + "px";
element.style.top = element.yp + element.yh - element.ye * -1 - element.xyoffset + "px";
element.zoomydone = true;
}
}
else {
element.yc = element.yc + eval(ease)[element.loopcounter];
if (element.yc < element.ye){
element.style.height = element.yc + "px";
}
if (element.yc + eval(ease)[element.loopcounter] >= element.ye){
element.style.height = element.ye + "px";
element.zoomydone = true;
}
}
break;
case 'zoomouty':
if (element.yn == true){
element.yc = element.yc + eval(ease)[element.loopcounter];
if (element.yc > element.ye){
element.style.height = element.yc + "px";
element.style.top = element.yp - element.yc + element.yh - element.xyoffset + "px";
}
if (-1 * element.yc - eval(ease)[element.loopcounter] <= element.ye){
element.style.height = -1 * element.ye + "px";
element.style.top = element.yp + element.ye + element.yh - element.xyoffset + "px";
element.zoomydone = true;
}
}
else {
element.yc = element.yc - eval(ease)[element.loopcounter];
if (element.yc > element.ye){
element.style.height = element.yc + "px";
}
if (element.yc - eval(ease)[element.loopcounter] <= element.ye){
element.style.height = element.ye + "px";
element.zoomydone = true;
}
}
break;
}
}
// check on flags
if (element.zoomxdone == false || element.zoomydone == false){
if (eval(ease).length - 1 > element.loopcounter){
element.loopcounter++;
}
element.zoomtimer = setTimeout(function () { element.zoom(element); }, loopspeed);
}
else {
//-----------------------------------------------------------------------
// use switch below ONLY if you need x/y specific end of function triggers
//-----------------------------------------------------------------------
//switch (element.xd){
// case 'zoominx':
// break;
//
// case 'zoomoutx':
// break;
//}
//switch (element.yd){
// case 'zoominy':
// break;
//
// case 'zoomouty':
// break;
//}
// callbacks
if (callbackfunction == 'ml'){
try{
who.mldone(element);
}
catch(err){}
}
if (callbackfunction == 'hideinfoslideclose'){
hideinfoslideclose();
}
if (callbackfunction == 'hidepictureslideclose'){
hidepictureslideclose();
}
if (callbackfunction == 'pictureslidedone'){
pictureslidedone();
}
if (callbackfunction == 'hidepictureslideclosedone'){
hidepictureslideclosedone();
}
if (callbackfunction == 'hideczoomclose'){
hideczoomclose();
}
clearTimeout(element.zoomtimer);
element.varsetup = false;
}
}
element.zoom(element);
}
//--------------------------------------------------------------------------------------------------------
// show / hide menu's
//--------------------------------------------------------------------------------------------------------
var browser=navigator.userAgent;
var ml = function (e,who,menueaseexept,delay,type){
// get even trigger (mouseover / mouseout)
if (!e) var e = window.event;
try{
who.eventtype = e.type;
}
catch(err){
// ignore, this is a ie bug
}
if (delay && who.eventtype == 'mouseover') {
var shopdelay = delay;
delaytimer = window.setTimeout(function () { ml(e, who, menueaseexept); }, shopdelay);
return;
}
if (typeof delaytimer != 'undefined'){
clearTimeout(delaytimer);
}
if (menueaseexept == undefined){
menueaseexept = '';
}
// find element to work with
who.menu = function(){
for (i = 0; i < who.childNodes.length; i ++){
if (who.childNodes[i].nodeName == 'UL' || who.childNodes[i].nodeName == 'DIV'){
return (who.childNodes[i]);
break;
}
}
}
// create element specific info
who.menu = who.menu();
// check on safari and chrome and attach stopbubble() function to


