  today=new Date();
  jran=today.getTime();

  function rnd() {
    ia=9301;
    ic=49297;
    im=233280;
    jran = (jran*ia+ic) % im;
    return jran/(im*1.0);
  }
  
  function rand(number) {
    return Math.ceil(rnd()*number);
  }

  function putFocus(formInst, elementInst) {
  	if (document.forms.length > 0) {
  		for (i=elementInst;  i< document.forms[formInst].elements.length; i++) {
  			if (document.forms[formInst].elements[i].type != 'hidden') {
		   		document.forms[formInst].elements[i].focus();
		   		break;
  			}
	  	}
  	}
  }
    
  function changeImage() {
    var dimg = document.images;
    maxNum = 1;                        // the total number of images the script can pick from:
    myNum=(rand(maxNum));              // ie; image1.jpg; image2.jpg; image3.jpg; image4.jpg
  
    // Ensure this name .randomimage. is the same as the name given to the image above.
  
    dimg.randomimage.src = ("images/random/image" + myNum + ".jpg");
  }

  function setSelect(fld, value, defaultSelected) {
    if (defaultSelected == null)
    {
  	  defaultSelected = 0;
    }
    
    if (fld.selectedIndex != defaultSelected)
    {
   	  return;
    }	
    
    x = 0; 
    if (fld.length > 0)
    {
  	  value = value.toUpperCase();
  	  while (x < fld.length)   {
    	  if (fld.options[x].value.toUpperCase() == value) {
      	  fld.options[x].selected = true;
      	  return; }
    	  x++;        
      }
    }
    fld.options[defaultSelected].selected = true;
  }

function setRadioCheckedValue(radioObj, newValue) {
	if(!radioObj)
		return;
	var radioLength = radioObj.length;
	if(radioLength == undefined) {
		radioObj.checked = (radioObj.value == newValue.toString());
		return;
	}
	for(var i = 0; i < radioLength; i++) {
		radioObj[i].checked = false;
		if(radioObj[i].value == newValue.toString()) {
			radioObj[i].checked = true;
		}
	}
}

  function addfavourite() {
   var myurl, mytitle;
   myurl = "http://www.findmypast.com";
   mytitle = "findmypast.com - family history in the making";
   if (document.all) {
     window.external.AddFavorite(myurl, mytitle);
   }
  }
  
  function close_window() {
    window.close();
  }

  function ExplorerFix() {
    for (a in document.links) document.links[a].onfocus = document.links[a].blur;
  }
 
	function showHelp(url) {
		helpWindow = window.open(url,"help","top=10,left=300,width=500,height=300,scrollbars=yes,resizable=yes");	    
		helpWindow.focus();
    }
	 
  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;
  }
  
  function MM_jumpMenu(targ,selObj,restore){ //v3.0
    eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
    if (restore) selObj.selectedIndex=0;
  }

  function MM_openBrWindow(theURL,winName,features) { //v2.0
    window.open(theURL,winName,features);
  }
  
  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_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 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 magnifyImage(intelement, strImage, intX, intY) {
    if (intX < 110) {intX = 110;}
    window.open ("/eSolutions-Engine/magnifyimage.asp?product="+intelement+"&image=" + strImage, "NewWin", "resizable=1,width=" + (intX + 18) + ",height=" + (intY + 45));
  }    

  function openGallery(intelement, strType) {
    window.open ("/eSolutions-Engine/gallery.asp?intelement="+intelement+"&strType="+strType, "Gallery", "resizable=1,width=400,height=280");
  }       

  function showImage(strImage, intX, intY) {
    if (intX < 110) {intX = 110;}
    window.open ("../includes/viewimage.asp?image=" + strImage, "NewWin", "resizable=1,width=" + (intX + 18) + ",height=" + (intY + 40));
  }
  
  function SwapButtonImage(intIndex) {
    if (intIndex != (intCurIndex + 1)) {
      MM_swapImage('blank0' + intIndex,'','images/bttnBlankRo.gif',1);
    }
  }

  function SwapButtonImageRestore(intIndex) {
    if (intIndex != (intCurIndex + 1)) {
      MM_swapImgRestore();
    }
  }

  function validateLogin(){
    var strerror = "";
    var formname = document.signin;
    var emailReg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/; // not valid
    var emailReg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,}|[0-9]{1,3})(\]?)$/; // valid

    if (formname.email.value.length < 1) {strerror = strerror + "Email\n";}
    if (formname.password.value.length < 1) {strerror = strerror + "Password\n";}

    if (strerror != "") {
      alert("Please enter the following fields:\n\n" + strerror);
	  return false;
    }
    else {
      document.signin.submit();
    }
  }

  
function hideElement(element_id)
{
	var element = document.getElementById(element_id);
	element.style.visibility = 'hidden';
}


/*active link */

function P7_Uberlink(cl,d){
	var i,ob,tA,h=document.location.href;
	if(document.getElementById){
	ob=(d)?document.getElementById(d):document;
	if(ob){
	tA=ob.getElementsByTagName('A');
	for(i=0;i<tA.length;i++){
	if(tA[i].href==h){
	tA[i].className=cl;
}}}}}

/*results explained */

function openResultsExplained() {
	ResultsExplained = window.open("/fragments/results-explained.jsp","ResultsExplained","status, scrollbars=yes, width=570, height=550,top=100,left=100,resizable=no");
	ResultsExplained.focus();
}

function openPopUp(url) {
	var width = screen.width; 
    var height = screen.height; 
   	if (width == 800){
		popup = window.open(url, "popup","top=0,left=0,width=800,height=600,status=yes,scrollbars=yes,resizable=yes");
		if (navigator.appName.indexOf("Microsoft") != -1)	  {
			popup.resizeTo(screen.availWidth,screen.availHeight);
		} else  {
			popup.moveTo(10,10);
			popup.outerWidth = screen.availWidth-30;
			popup.outerHeight = screen.availHeight-30;
	  	}
	} else	{
	  popup = window.open(url,"popup","top=0,left=0,width=800,height=600,status=yes,scrollbars=yes,resizable=yes");
	  popup.moveTo(10,10);
	  popup.outerWidth = screen.availWidth-30;
	  popup.outerHeight = screen.availHeight-30;
	}
	popup.focus();
}


function showTermsWindow() {
	var width = screen.width; 
    var height = screen.height; 
	if (width == 800)
	{
	  payment = window.open("/terms/index.jsp","top=0,left=0,width=800,height=600,scrollbars=yes,resizable=yes");
	  if (navigator.appName.indexOf("Microsoft") != -1)
	  {
	    payment.resizeTo(screen.availWidth,screen.availHeight);
	  }		  
	  else
	  {
	    payment.moveTo(0,0);
	    payment.outerWidth = screen.availWidth;
	    payment.outerHeight = screen.availHeight;
	  }
	}
	else
	{
	  payment = window.open("/terms/index.jsp","status, top=50,left=50,scrollbars=yes,resizable=yes,width=825,height=600");
	}
	payment.focus();

}


