// preload functions
function preloadMenuImages() {
  try {
    for (var i=0;i<menuImages.length;i++) {
      var imageObj = document.createElement("img");
          imageObj.setAttribute("src", menuImages[i]);
    }
  } catch(e) {}
}

// zoom functions
var maxW,maxH,fromX,fromY,toX,toY,adjX,adjY,zBox,zStep=0,zLink,zNew;

function zoomBox(evt,zlink,maxw,maxh,tox,toy) {
  if (arguments.length > 2) zNew=1;
  scrollH=(window.pageYOffset!=null)?window.pageYOffset:document.body.scrollTop;
  maxW=maxw?maxw:window.innerWidth?innerWidth:document.body.clientWidth;
  maxH=maxh?maxh:window.innerHeight?innerHeight:document.body.clientHeight;
  toX=tox?tox:0;
  toY=(toy?toy:0)+scrollH;
  fromX=evt.pageX?evt.pageX:evt.clientX;
  fromY=(evt.pageY?evt.pageY:evt.clientY)+(document.all?scrollH:0);
  adjX=toX+evt.screenX-fromX;
  adjY=toY+evt.screenY-fromY;
  if (document.createElement && document.body.appendChild && !zBox) {
  	zBox=document.createElement("div");
  	zBox.style.position="absolute";
  	document.body.appendChild(zBox);
  } else if (document.all && !zBox) {
  	document.all[document.all.length-1].outerHTML+='<div id="zBoxDiv" style="position:absolute"></div>';
  	zBox=document.all.zBoxDiv;
  } else if (document.layers && !zBox) {
  	zBox=new Layer(maxW);
  	zBox.style=zBox;
  }
  zLink=zlink;
  doZoom();
}

function doZoom() {
  zStep+=1;
  zPct=(10-zStep)/10
  if (document.layers) {
  	zBox.moveTo(toX+zPct*(fromX-toX),toY+zPct*(fromY-toY));
  	zBox.document.open();
  	zBox.document.write("<table width='"+maxW*(1-zPct)+"' height="+maxH*(1-zPct)+" border=0 cellspacing=0><tr><td></td></tr></table>");
  	zBox.document.close();
	} else {
  	zBox.style.border="1px solid #999999";
  	zBox.style.left=toX+zPct*(fromX-toX);
  	zBox.style.top=toY+zPct*(fromY-toY);
  	zBox.style.width=maxW*(1-zPct);
  	zBox.style.height=maxH*(1-zPct);
	}
  zBox.style.visibility="visible";
  if (zStep < 10) setTimeout("doZoom("+fromX+","+fromY+","+toX+","+toY+")",30);
  else {
  	zBox.style.visibility='hidden';
  	zStep=0;
  	if (zLink && !zNew) location.href=zLink.href;
  	else if (zLink && zNew) {
  		var w=window.open(zLink.href,'','width='+maxW+',height='+maxH+',left='+adjX+',top='+adjY+',0,0');
  		zNew=null;
		}
	}
}

// fade functions
var fadeTimer;
var fadeEndOpacity;
var isIe = document.all?1:0;

function startFade(iObj, iEndOpacity) {
  window.clearTimeout(fadeTimer);
  fadeEndOpacity = iEndOpacity;
  fadeTimer = setTimeout("fade('"+iObj+"')",0);
}

function fade(iObj) {
  endOpacity = fadeEndOpacity;
  oObj = document.getElementById(iObj);
  fadeDirection = 1;
  if (isIe) {
    var currentOpacity = oObj.filters.alpha.opacity;
    if (currentOpacity>endOpacity) fadeDirection = -1;
    oObj.filters.alpha.opacity = currentOpacity+(fadeDirection*2);
    if (currentOpacity!=endOpacity) { 
      fadeTimer = setTimeout("fade('"+iObj+"', '"+endOpacity+"')",30);
    }
  } else {
/*
    endOpacity = endOpacity;
    var currentOpacity = oObj.style.MozOpacity*100;
    if (currentOpacity>endOpacity) fadeDirection = -1;
    oObj.style.MozOpacity = (currentOpacity/100)+(fadeDirection*.05);
    if (currentOpacity!=endOpacity) {
      fadeTimer = setTimeout("fade('"+iObj+"')",33);
    } else {
      window.clearTimeout(fadeTimer);
    }
*/
  }
}

// slideshow functions
var slideScrollTimer;
var slideContainerWidth = 0;

function createSlides() {
  try {
    var oMainContainer = document.getElementById('slide-container');
        oMainContainer.style.width = '0px';
    for (var i=0;i<slideImages.length;i++) {
      oInfo = slideImages[i];
      createSlide(oInfo[0], oInfo[1], oInfo[2], oInfo[3], oInfo[4], oInfo[5]);
    }
    oContainer = document.getElementById("slide-container");
    oContainer.style.left = '0px';
    resumeScroll();
  } catch(e) {}
}

function createSlide(iSlideImageSrc, iSlideImageWidth, iSlideImageHeight, iFullsizeImageSrc, iFullsizeImageWidth, iFullsizeImageHeight) {
  exit=false;
var oMainContainer = document.getElementById('slide-container');
  var containerName = ['slide-container-a','slide-container-b'];
  for (var i=0;i<2;i++) {
    var oContainer = document.getElementById(containerName[i]);
    var oImg = document.createElement("img");
        oImg.setAttribute("src", iSlideImageSrc);
        oImg.style.borderWidth = '1px';
        oImg.style.borderStyle = 'solid';
        oImg.style.borderColor = '#666';
        oImg.style.marginLeft = '2px';
    var oHref = document.createElement("a");
      if (iFullsizeImageSrc!='') {
        oHref.setAttribute("href", iFullsizeImageSrc);
        if (document.all) {
          oJavascript = "javascript:openImageWindow('"+iFullsizeImageSrc+"','"+iFullsizeImageWidth+"','"+iFullsizeImageHeight+"');";
          oHref.setAttribute("href", oJavascript);
        }
        oJavascript = "javascript:openImageWindow(this.href,'"+iFullsizeImageWidth+"','"+iFullsizeImageHeight+"');return false;";
        oHref.setAttribute("onclick", oJavascript);
        oHref.setAttribute("onkeypress", oJavascript);
      }
        oHref.appendChild(oImg);
        oContainer.appendChild(oHref);
      // resize main conatiner
        oSlideImageWidth = parseInt(iSlideImageWidth)+4;
        slideContainerWidth =  parseInt(slideContainerWidth)+oSlideImageWidth;
        oMainContainer.style.width = slideContainerWidth+'px';
  }
}

function resumeScroll() {
  window.clearTimeout(slideScrollTimer);
  oContainer = document.getElementById("slide-container");
  oCurrentLeft = parseInt(oContainer.style.left);
  oNewLeft = oCurrentLeft-1;
  if ((oNewLeft*-1)==(parseInt(slideContainerWidth)/2)) { oNewLeft = 0; }
  oContainer.style.left = oNewLeft+'px';
  slideScrollTimer = window.setTimeout("resumeScroll()",25);
}

function pauseScroll() {
  window.clearTimeout(slideScrollTimer);
}

// open functions
var previewWindows = new Array();
function openImageWindow(iImageSrc, iImageWidth, iImageHeight) {
  oContent = '<html>';
  oContent+= '<head>';
  oContent+= '  <title>Join Now!</title>';
  oContent+= '  <style type="text/css">';
  oContent+= '    body { margin: 0; overflow: hidden; }';
  oContent+= '    img { border: none; }';
  oContent+= '</style>';
  oContent+= '</head>';
  oContent+= '<body>';
  oContent+= '  <a onclick="exit=false;" href="javascript:top.window.close();"><img src="'+iImageSrc+'"/></a>';
  oContent+= '</body>';
  oContent+= '</html>';
  var props = 'top=115,left=285,';
  if (iImageWidth>iImageHeight) { props = 'top=135,left=155,'; }
  var windowNumber = previewWindows.length;
  previewWindows[windowNumber] = window.open('', '', props+'width='+iImageWidth+',height='+iImageHeight);
  previewWindows[windowNumber].document.write(oContent);
  previewWindows[windowNumber].document.close();
}

// email functions
function emailCheck (emailStr) {
  var emailPat=/^(.+)@(.+)$/
  var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
  var validChars="\[^\\s" + specialChars + "\]";
  var quotedUser="(\"[^\"]*\")";
  var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
  var atom=validChars + '+';
  var word="(" + atom + "|" + quotedUser + ")";
  var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
  var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
  var matchArray=emailStr.match(emailPat);
  if (matchArray==null) {
  	alert("Email address seems incorrect (check @ and .'s)");
  	return false;
  }
  var user=matchArray[1]
  var domain=matchArray[2]
  if (user.match(userPat)==null) {
    alert("The username doesn't seem to be valid.");
    return false;
  }
  var IPArray=domain.match(ipDomainPat);
  if (IPArray!=null) {
  	  for (var i=1;i<=4;i++) {
  	    if (IPArray[i]>255) {
  	      alert("Destination IP address is invalid!");
  		    return false;
  	    }
      }
      return true;
  }
  var domainArray=domain.match(domainPat);
  if (domainArray==null) {
  	alert("The domain name doesn't seem to be valid.");
    return false;
  }
  var atomPat=new RegExp(atom,"g");
  var domArr=domain.match(atomPat);
  var len=domArr.length;
  if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {
     alert("The address must end in a three-letter domain, or two letter country.");
     return false;
  }
  if (len<2) {
     var errStr="This address is missing a hostname!";
     alert(errStr);
     return false;
  }
  return true;
}

// onload functions
window.onload = function(e) {
  createSlides();
  preloadMenuImages();
}