function slideSwitch() {
    var $active = $('li.slideshow div.active');
 
    if ( $active.length == 0 ) $active = $('li.slideshow div:last');
 
    // use this to pull the images in the order they appear in the markup
    var $next =  $active.next().length ? $active.next()
        : $('li.slideshow div:first');
 
    // uncomment the 3 lines below to pull the images in random order
    
    // var $sibs  = $active.siblings();
    // var rndNum = Math.floor(Math.random() * $sibs.length );
    // var $next  = $( $sibs[ rndNum ] );
 
 
    $active.addClass('last-active')
      .attr('opacity', 0.0)
      .css('display', 'none')
      .css({opacity: 0.0});
 
    $next.css({opacity: 0.0})
        .addClass('active')
        .css('display', 'block')
        .animate({opacity: 1.0}, 1000, function() {
            $active.removeClass('active last-active');
        });
}

function SetFocus(TargetFormName) {
  var target = 0;
  if (TargetFormName != "") {
    for (i=0; i<document.forms.length; i++) {
      if (document.forms[i].name == TargetFormName) {
        target = i;
        break;
      }
    }
  }

  var TargetForm = document.forms[target];
    
  for (i=0; i<TargetForm.length; i++) {
    if ( (TargetForm.elements[i].type != "image") && (TargetForm.elements[i].type != "hidden") && (TargetForm.elements[i].type != "reset") && (TargetForm.elements[i].type != "submit") ) {
      TargetForm.elements[i].focus();

      if ( (TargetForm.elements[i].type == "text") || (TargetForm.elements[i].type == "password") ) {
        TargetForm.elements[i].select();
      }

      break;
    }
  }
}

function RemoveFormatString(TargetElement, FormatString) {
  if (TargetElement.value == FormatString) {
    TargetElement.value = "";
  }

  TargetElement.select();
}

function CheckDateRange(from, to) {
  if (Date.parse(from.value) <= Date.parse(to.value)) {
    return true;
  } else {
    return false;
  }
}

function IsValidDate(DateToCheck, FormatString) {
  var strDateToCheck;
  var strDateToCheckArray;
  var strFormatArray;
  var strFormatString;
  var strDay;
  var strMonth;
  var strYear;
  var intday;
  var intMonth;
  var intYear;
  var intDateSeparatorIdx = -1;
  var intFormatSeparatorIdx = -1;
  var strSeparatorArray = new Array("-"," ","/",".");
  var strMonthArray = new Array("jan","feb","mar","apr","may","jun","jul","aug","sep","oct","nov","dec");
  var intDaysArray = new Array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

  strDateToCheck = DateToCheck.toLowerCase();
  strFormatString = FormatString.toLowerCase();
  
  if (strDateToCheck.length != strFormatString.length) {
    return false;
  }

  for (i=0; i<strSeparatorArray.length; i++) {
    if (strFormatString.indexOf(strSeparatorArray[i]) != -1) {
      intFormatSeparatorIdx = i;
      break;
    }
  }

  for (i=0; i<strSeparatorArray.length; i++) {
    if (strDateToCheck.indexOf(strSeparatorArray[i]) != -1) {
      intDateSeparatorIdx = i;
      break;
    }
  }

  if (intDateSeparatorIdx != intFormatSeparatorIdx) {
    return false;
  }

  if (intDateSeparatorIdx != -1) {
    strFormatArray = strFormatString.split(strSeparatorArray[intFormatSeparatorIdx]);
    if (strFormatArray.length != 3) {
      return false;
    }

    strDateToCheckArray = strDateToCheck.split(strSeparatorArray[intDateSeparatorIdx]);
    if (strDateToCheckArray.length != 3) {
      return false;
    }

    for (i=0; i<strFormatArray.length; i++) {
      if (strFormatArray[i] == 'mm' || strFormatArray[i] == 'mmm') {
        strMonth = strDateToCheckArray[i];
      }

      if (strFormatArray[i] == 'dd') {
        strDay = strDateToCheckArray[i];
      }

      if (strFormatArray[i] == 'yyyy') {
        strYear = strDateToCheckArray[i];
      }
    }
  } else {
    if (FormatString.length > 7) {
      if (strFormatString.indexOf('mmm') == -1) {
        strMonth = strDateToCheck.substring(strFormatString.indexOf('mm'), 2);
      } else {
        strMonth = strDateToCheck.substring(strFormatString.indexOf('mmm'), 3);
      }

      strDay = strDateToCheck.substring(strFormatString.indexOf('dd'), 2);
      strYear = strDateToCheck.substring(strFormatString.indexOf('yyyy'), 2);
    } else {
      return false;
    }
  }

  if (strYear.length != 4) {
    return false;
  }

  intday = parseInt(strDay, 10);
  if (isNaN(intday)) {
    return false;
  }
  if (intday < 1) {
    return false;
  }

  intMonth = parseInt(strMonth, 10);
  if (isNaN(intMonth)) {
    for (i=0; i<strMonthArray.length; i++) {
      if (strMonth == strMonthArray[i]) {
        intMonth = i+1;
        break;
      }
    }
    if (isNaN(intMonth)) {
      return false;
    }
  }
  if (intMonth > 12 || intMonth < 1) {
    return false;
  }

  intYear = parseInt(strYear, 10);
  if (isNaN(intYear)) {
    return false;
  }
  if (IsLeapYear(intYear) == true) {
    intDaysArray[1] = 29;
  }

  if (intday > intDaysArray[intMonth - 1]) {
    return false;
  }
  
  return true;
}

function IsLeapYear(intYear) {
  if (intYear % 100 == 0) {
    if (intYear % 400 == 0) {
      return true;
    }
  } else {
    if ((intYear % 4) == 0) {
      return true;
    }
  }

  return false;
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  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 && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function check_top_email_form ( form )
{
	var str_email = form.email.value;
	var check_email = str_email.indexOf("@");
	if (form.email.value == "") 
	{
		alert( "Email must be enter please try again" );
		form.email.focus();
		return false ;
	}
	else if(check_email == -1)
	{
		alert( "Invalid Email" );
		form.email.focus();
		return false ;
	}
  return true ;
}
function hideBox(szDivID) {
  if (document.layers) { // NN4+
      document.layers[szDivID].visibility = "hide";
      document.layers[szDivID].display = "none";
  } else if (document.getElementById) { // gecko(NN6) + IE 5+
    var obj = document.getElementById(szDivID);
    obj.style.visibility = "hidden";
    obj.style.display = "none";
  } else if (document.all) { // IE 4
    document.all[szDivID].style.visibility = "hidden";
    document.all[szDivID].style.display = "none";
  }
}

function showBox(szDivID) {
  if (document.layers) { // NN4+
    document.layers[szDivID].visibility = "show";
    document.layers[szDivID].display = "inline";
  } else if (document.getElementById) { // gecko(NN6) + IE 5+
    var obj = document.getElementById(szDivID);
    obj.style.visibility = "visible";
    obj.style.display = "inline";
    objSD.style.fontWeight = "bold";
  } else if (document.all) { // IE 4
    document.all[szDivID].style.visibility = "visible";
    document.all[szDivID].style.display = "inline";
    document.all[szDivID+"SD"].style.fontWeight = "bold";
  }
}
function popupWindow(url) {
  window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=450,height=280,screenX=150,screenY=150,top=150,left=150')
}
function popupWindow2(url) {
  window.open(url,'popupWindow','toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=yes,resizable=yes,copyhistory=no,width=100,height=100,screenX=150,screenY=150,top=150,left=150')
}

function emailCheck (emailStr) {
  //returns an array
  //first element is status
  //second element is message
  var aToReturn = new Array();
  var checkTLD=1;
  var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
  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) {
    aToReturn[0] = false;
    aToReturn[1] = "Email address seems to be incorrect (check @ and .'s)"; return aToReturn;
  }
  var user=matchArray[1];
  var domain=matchArray[2];
  
  for (i=0; i<user.length; i++) {
    if (user.charCodeAt(i)>127) {
      aToReturn[0] = false;
      aToReturn[1] = "The username contains invalid characters."; return aToReturn;
    }
  }
  for (i=0; i<domain.length; i++) {
    if (domain.charCodeAt(i)>127) {
      aToReturn[0] = false;
      aToReturn[1] = "The domain name contains invalid characters."; return aToReturn;
    }
  }
  if (user.match(userPat)==null) {
    aToReturn[0] = false;
    aToReturn[1] = "The username doesn't seem to be valid."; return aToReturn;
  }
  var IPArray=domain.match(ipDomainPat);
  if (IPArray!=null) {
    for (var i=1;i<=4;i++) {
      if (IPArray[i]>255) {
        aToReturn[0] = false;
        aToReturn[1] = "Destination IP address is invalid!"; return aToReturn;
      }
    }
    aToReturn[0] = true;
    return aToReturn;
  }
  var atomPat=new RegExp("^" + atom + "$");
  var domArr=domain.split(".");
  var len=domArr.length;
  for (i=0;i<len;i++) {
    if (domArr[i].search(atomPat)==-1) {
      aToReturn[0] = false;
      aToReturn[1] = "The domain name does not seem to be valid."; return aToReturn;
    }
  }
  
  if (checkTLD && domArr[domArr.length-1].length!=2 && 
  domArr[domArr.length-1].search(knownDomsPat)==-1) {
    aToReturn[0] = false;
    aToReturn[1] = "The address must end in a well-known domain or two letter " + "country."; return aToReturn;
  }
  
  // Make sure there's a host name preceding the domain.
  
  if (len<2) {
    aToReturn[0] = false;
    aToReturn[1] = "This address is missing a hostname!"; return aToReturn;
  }
  aToReturn[0] = true;
  // If we've gotten this far, everything's valid!
  return aToReturn;
}

//Added for the autoresponder / newsletter form
function validate_sub() {
  
  var first_name = document.getElementById('first_name').value;
  var email = document.getElementById('email').value;
  var mess = document.getElementById('message_sub');
  mess.innerHTML = '';
  //mess.value = first_name;
  //alert(window.location.hostname);
  if (first_name == '') {
    mess.innerHTML = 'Please enter your first name.'; return;
  }
  
  if (first_name.length > 40) {
    first_name = first_name.substring(0, 39);
  }
  
  if (email == '') {
    mess.innerHTML = 'Please enter your email address.'; return;
  }
  
  var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
  
  if(reg.test(email) == false) {
    mess.innerHTML = 'Email address invalid.'; return;
  }
  
  doWork(first_name, email);
}

function doWork(first_name, email){    

  httpObject = getHTTPObject();
  
  if (httpObject != null) {
    var script = "http://" + window.location.hostname + "/autoresponder/sub.php?first_name=" 
                   + first_name + "&email=" + email;
    //alert(script);
    httpObject.open("GET", script, true);
    httpObject.send(null); 
    httpObject.onreadystatechange = setOutput;
  }
}

function getHTTPObject() {

   if (window.ActiveXObject) 
       return new ActiveXObject("Microsoft.XMLHTTP");
   else if (window.XMLHttpRequest) 
       return new XMLHttpRequest();
   else {
      return null;
   }
}

function setOutput(){

  if(httpObject.readyState == 4){
  
    var mess = document.getElementById('message_sub');
    mess.style.color = 'green';
    mess.innerHTML = httpObject.responseText;
  }
}
//End for the autoresponder / newsletter form

