
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// general
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function getPageSize(){
   var de = document.documentElement;
   var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth;
   var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight
   arrayPageSize = new Array(w,h)
   return arrayPageSize;
}

function numOrdRand() { return (Math.round(Math.random())-0.5); }
function rndSortImageArray (anArray) {
   anArray.sort( numOrdRand );
}

function getFilenameFromURL(anURL) {
   return anURL.substring( anURL.lastIndexOf("/")+1 );
}

// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// customize
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function MM_findObj(n, d) { //v4.0
     var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
       d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
     if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
     for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
     if(!x && document.getElementById) x=document.getElementById(n); return x;
   }
// Show layer
function MM_showHideLayers() { //v3.0
      var i,p,v,obj,args=MM_showHideLayers.arguments;
      for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
      if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v='hide')?'hidden':v; }
    obj.visibility=v; }
   }
// Allow layer to float
function P7_Snap() { //v2.62 by PVII
  var x,y,ox,bx,oy,p,tx,a,b,k,d,da,e,el,args=P7_Snap.arguments;a=parseInt(a);
  for (k=0; k<(args.length-3); k+=4)
   if ((g=MM_findObj(args[k]))!=null) {
    el=eval(MM_findObj(args[k+1]));
    a=parseInt(args[k+2]);b=parseInt(args[k+3]);
    x=0;y=0;ox=0;oy=0;p="";tx=1;da="document.all['"+args[k]+"']";
    if(document.getElementById) {
     d="document.getElementsByName('"+args[k]+"')[0]";
     if(!eval(d)) {d="document.getElementById('"+args[k]+"')";if(!eval(d)) {d=da;}}
    }else if(document.all) {d=da;}
    if (document.all || document.getElementById) {
     while (tx==1) {p+=".offsetParent";
      if(eval(d+p)) {x+=parseInt(eval(d+p+".offsetLeft"));y+=parseInt(eval(d+p+".offsetTop"));
      }else{tx=0;}}
     ox=parseInt(g.offsetLeft);oy=parseInt(g.offsetTop);var tw=x+ox+y+oy;
     if(tw==0 || (navigator.appVersion.indexOf("MSIE 4")>-1 && navigator.appVersion.indexOf("Mac")>-1)) {
      ox=0;oy=0;if(g.style.left){x=parseInt(g.style.left);y=parseInt(g.style.top);
      }else{var w1=parseInt(el.style.width);bx=(a<0)?-5-w1:-10;
      a=(Math.abs(a)<1000)?0:a;b=(Math.abs(b)<1000)?0:b;
      x=document.body.scrollLeft + event.clientX + bx;
      y=document.body.scrollTop + event.clientY;}}
   }else if (document.layers) {x=g.x;y=g.y;var q0=document.layers,dd="";
    for(var s=0;s<q0.length;s++) {dd='document.'+q0[s].name;
     if(eval(dd+'.document.'+args[k])) {x+=eval(dd+'.left');y+=eval(dd+'.top');break;}}}
   if(el) {e=(document.layers)?el:el.style;
   var xx=parseInt(x+ox+a),yy=parseInt(y+oy+b);
   if(navigator.appName=="Netscape" && parseInt(navigator.appVersion)>4){xx+="px";yy+="px";}
   if(navigator.appVersion.indexOf("MSIE 5")>-1 && navigator.appVersion.indexOf("Mac")>-1){
    xx+=parseInt(document.body.leftMargin);yy+=parseInt(document.body.topMargin);
    xx+="px";yy+="px";}e.left=xx;e.top=yy;}}
}


// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// open new pop-up windows
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
var winPhotoObj="";
var winPhotoParams;
var winPhotoName="Photowin";
function Set_winPhoto() {
   var pagesize = getPageSize();
   var winPhotoWidth = pagesize[0] - 50;;
   var winPhotoHeight = pagesize[1] - 50;

   winPhotoParams = "toolbar=no,location=no,status=no,directories=no,menubar=no,scrollbars=no,resizable=yes";
   winPhotoParams = winPhotoParams + ",width="   + winPhotoWidth;
   winPhotoParams = winPhotoParams + ",height="  + winPhotoHeight;
   winPhotoParams = winPhotoParams + ",left="    + ((screen.width/2)-(winPhotoWidth/2));
   winPhotoParams = winPhotoParams + ",top=20"     ;
}
function Open_winPhoto(aBaseLocation, aPic, anAuthor, aMode) {
   Set_winPhoto();

   if (winPhotoObj && winPhotoObj.open && !winPhotoObj.closed)  {
      winPhotoObj.close();
      winPhotoObj=null;
   }

   winPhotoObj=window.open("about:blank", winPhotoName,winPhotoParams );
   if (winPhotoObj.opener == null) winPhotoObj.opener = self;

   winPhotoObj.focus();
   winPhotoObj.location.href= aBaseLocation + "/include/popup.asp?pic=" + aPic + "&author=" + anAuthor;
}
function Close_winPhoto() {
   window.close();
}

var winFormObj="";
var winFormParams;
var winFormName="Formwin";
function Set_winForm() {
   var pagesize = getPageSize();
   var winFormWidth = pagesize[0] - 50;;
   var winFormHeight = pagesize[1] - 50;

   winFormParams = "toolbar=yes,location=yes,status=yes,directories=no,menubar=yes,scrollbars=yes,resizable=yes";
   winFormParams = winFormParams + ",width="   + winFormWidth;
   winFormParams = winFormParams + ",height="  + winFormHeight;
   winFormParams = winFormParams + ",left="    + ((screen.width/2)-(winFormWidth/2));
   winFormParams = winFormParams + ",top=20"     ;
}
function Open_winForm(aLocation) {
   Set_winForm();

   if (winFormObj && winFormObj.open && !winFormObj.closed)  {
      winFormObj.close();
      winFormObj=null;
   }

   winFormObj=window.open("about:blank", winFormName,winFormParams );
   if (winFormObj.opener == null) winFormObj.opener = self;

   winFormObj.focus();
   winFormObj.location.href= aLocation;
}
function Close_winForm() {
   window.close();
}



// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// fade image
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
var fade_time = 250;
var fade_speed = 25;
var fade_processing = false;
var fade_mode = 0;
// MODES
// 0: swap pictures
// 1: hide pic -> fade in
// 2: fadeout -> show pic
// 3: fadeout -> fadein
// 4: cross fade
// 5: random
var timerID = 0;
var imgObject;
var imgBGObject;
var imgNext;


function set_Globals (anImgObj, aImgBGObject, aFadeMode) {
   imgObject = anImgObj;
   imgBGObject = aImgBGObject;

   if (aFadeMode==5) {
      fade_mode = Math.round( Math.random()*(4) );
   } else {
      fade_mode = aFadeMode;
   }
}
function changeOpac(anOpacity, anObjStyle) {
   if (anOpacity == 100) {
      anOpacity = 99;
   }
   anObjStyle.opacity = (anOpacity / 100);
   anObjStyle.MozOpacity = (anOpacity / 100);
   anObjStyle.KhtmlOpacity = (anOpacity / 100);
   anObjStyle.filter = "alpha(opacity=" + anOpacity + ")";
}
function fade_out_image(currOpacity) {
   if(currOpacity == null) {
      fade_processing = true;
      currOpacity = 100;
   }
   var increment;
   increment = Math.round((1 / (fade_time / fade_speed)) * 100);
   if (fade_mode==4) {
      increment = Math.round((1 / (fade_time / fade_speed *4) ) * 100);
   }

   if(currOpacity >= 0) {
      changeOpac(currOpacity, imgObject.style );
      currOpacity -= increment;
      setTimeout( "fade_out_image(" + currOpacity + ");", fade_speed);
   } else {
      if (fade_mode==1) {
         imgObject.src = imgNext.src;
         setTimeout("fade_in_image(0);", fade_speed);
      }
      if (fade_mode==2) {
         imgObject.src = imgNext.src;
         setTimeout("fade_in_image(80);", fade_speed);
      }
      if (fade_mode==3) {
         imgObject.src = imgNext.src;
         fade_in_image();
      }
      if (fade_mode==4) {
         imgObject.src = imgNext.src;
         setTimeout("fade_in_image(100);", fade_speed);
      }

      fade_processing = false;
   }
}
// fade image in
function fade_in_image(currOpacity) {
   if(currOpacity == null) {
      fade_processing = true;
      currOpacity = 0;
   }

   var increment = Math.round((1 / (fade_time / fade_speed)) * 100);

   if(currOpacity <= 100) {
      changeOpac(currOpacity, imgObject.style );
      currOpacity += increment;
      setTimeout("fade_in_image(" + currOpacity + ");", fade_speed);
   } else {
      changeOpac(100, imgObject.style );

      fade_processing = false;
   }
}
function fadeMain() {
   if (fade_mode==0) {
      imgBGObject.style.background = "";
      imgObject.src = imgNext.src;
   }
   if (fade_mode==1) {
      imgBGObject.style.background = "";
      fade_out_image(0);
   }
   if (fade_mode==2) {
      imgBGObject.style.background = "";
      fade_out_image();
   }
   if (fade_mode==3) {
      imgBGObject.style.background = "";
      fade_out_image();
   }
   if (fade_mode==4) {
      imgBGObject.style.background = "url('" + imgNext.src + "') no-repeat  1px 1px";
   }

}


// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// rotate header picture
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
function playHeaderShow (currImgIndex, NumOfBGImages, prefix, timing, fademode) {
   var currImg = getFilenameFromURL(headerpic.src);
   var nextImg = currImg;

   clearTimeout(timerID);

   // until new picture is selected
   while ( getFilenameFromURL(currImg) == getFilenameFromURL(nextImg) ) {
      // get next picture in array
      currImgIndex = ++currImgIndex;

      if ( currImgIndex >= NumOfBGImages ) {
         // re-shuffle array
         rndSortImageArray( imgHeaderList );
         currImgIndex=0;
      }

      nextImg = imgHeaderList[ currImgIndex ];
   }

   // preload next picture
   imgNext = new Image();
   imgNext.src = nextImg;

   set_Globals ( headerpic, pageheader, fademode );

   fadeMain();

   timerID = setTimeout("playHeaderShow('" + currImgIndex + "','" + NumOfBGImages + "','" + prefix + "','" + timing + "','" + fademode + "')", timing );
}

