<!--
var viewer;
var imageviewer;
var viewpointviewer;
var inforequest;
var colorarray= new Array(26);
colorarray[0] = new Array("aqua","#00FFFF"); 
colorarray[1] = new Array("beige","#F5F5DC"); 
colorarray[2] = new Array("black","#000000"); 
colorarray[3] = new Array("blue","#0000FF");
colorarray[4] = new Array("brown","#A52A2A");
colorarray[5] = new Array("crimson","#DC143C");
colorarray[6] = new Array("cyan","#00FFFF");
colorarray[7] = new Array("gold","#FFD700");
colorarray[8] = new Array("gray","#808080");
colorarray[9] = new Array("grey","#808080");
colorarray[10] = new Array("green","#008000");
colorarray[11] = new Array("indigo","#4B0082");
colorarray[12] = new Array("maroon","#800000");
colorarray[13] = new Array("magenta","#FF00FF");
colorarray[14] = new Array("navy","#000080");
colorarray[15] = new Array("olive","#808000");
colorarray[16] = new Array("orange","#FFA500");
colorarray[17] = new Array("pink","#FFC0CB");
colorarray[18] = new Array("purple","#800080");
colorarray[19] = new Array("red","#FF0000");
colorarray[20] = new Array("silver","#C0C0C0");
colorarray[21] = new Array("teal","#008080");
colorarray[22] = new Array("turquoise","#40E0D0");
colorarray[23] = new Array("violet","#EE82EE");
colorarray[24] = new Array("white","#FFFFFF");
colorarray[25] = new Array("yellow","#FFFF00");

var powerfrontdetect = navigator.userAgent.toLowerCase();
var pfOS,pfbrowser,pfmajorversion,pfthestring,pfminorversion;
if (PFBrowserCheck('konqueror'))
{
	pfbrowser = "Konqueror";
	pfOS = "Linux";
}
else if (PFBrowserCheck('safari')) pfbrowser = "Safari"
else if (PFBrowserCheck('omniweb')) pfbrowser = "OmniWeb"
else if (PFBrowserCheck('opera')) pfbrowser = "Opera"
else if (PFBrowserCheck('webtv')) pfbrowser = "WebTV";
else if (PFBrowserCheck('icab')) pfbrowser = "iCab"
else if (PFBrowserCheck('msie')) pfbrowser = "Internet Explorer"
else if (!PFBrowserCheck('compatible'))
{
	pfbrowser = "Netscape";
	pfmajorversion = powerfrontdetect.charAt(8);
	pfminorversion = powerfrontdetect.charAt(10);
	if(navigator.vendor!="" && navigator.vendor!="undefined"){
	   pfbrowser = navigator.vendor;
	   if(navigator.vendorSub!="" && navigator.vendorSub!="undefined"){
	      pfmajorversion = navigator.vendorSub.charAt(0);
	      if(navigator.vendorSub.length>2){
	         pfminorversion = navigator.vendorSub.charAt(2);
	      }
	   }
	}   
	
}
else{ pfbrowser = "Unknown";}
if (!pfmajorversion) pfmajorversion = powerfrontdetect.charAt(place + pfthestring.length);
if (!pfminorversion) pfminorversion = powerfrontdetect.charAt(place + pfthestring.length + 2);
if (!pfOS)
{
	if (PFBrowserCheck('linux')) pfOS = "Linux";
	else if (PFBrowserCheck('x11')) pfOS = "Unix";
	else if (PFBrowserCheck('mac')) pfOS = "Mac"
	else if (PFBrowserCheck('win')) pfOS = "Windows"
	else pfOS = "Unknown";
}

function PFBrowserCheck(string)
{
	place = powerfrontdetect.indexOf(string) + 1;
	pfthestring = string;
	return place;
}

function move_start(moveright,name){
  vr=eval("document."+name);
  if (moveright){vr.startAutoPan(1.0,0,1.0);}else{vr.startAutoPan(-1.0,0,1.0);}	
}

function stop_move(name){
  vr=eval("document."+name);
  vr.stopAutoPan();
}

function zoom_vr(zoomin,name){
  vr=eval("document."+name);
  if(zoomin){vr.ZoomIn();}else{vr.ZoomOut();}
}

function zoom_start(zoomin,name){
	zoomID=setInterval("zoom_vr("+zoomin+",'"+name+"')",30);
}

function stop_zoom(){
	clearInterval(zoomID);
}

function getObj(name)
{
  if (document.getElementById){
  	this.obj = document.getElementById(name);
	this.style = document.getElementById(name).style;
  }else if (document.all){
	this.obj = document.all[name];
	this.style = document.all[name].style;
  }else if (document.layers){
   	this.obj = document.layers[name];
   	this.style = document.layers[name];
  }
}

function hideshowFormElements(action){
  for(f=0; f<document.forms.length; f++){  
   theForm = document.forms[f];
   for(i=0; i<theForm.elements.length; i++){
      if(theForm.elements[i].type == "select-multiple" || theForm.elements[i].type == "select-one"){
         theForm.elements[i].style.visibility=action;      
      }
   }
  }
}

function PositionLiveSupport(formname,name,id)
{    
    if (document.body.scrollTop && (document.getElementById || document.all || document.layers)){
	var x = new getObj(name);
   	scrolltop=document.body.scrollTop+ '';
	scrolltop=scrolltop.replace('px', '') ;
	scrolltop=scrolltop.replace(' ','') ;
	divheight=x.style.height+'';
	divheight=divheight.replace('px', '') ;
	divheight=divheight.replace(' ','') ;
	newheight=(parseInt(divheight)+parseInt(scrolltop))+'px';
	x.style.top = newheight;
	formelement=eval("document."+formname+".adminid");
	formelement.value=id;
	hideshowFormElements('hidden');
	MM_showHideLayers(name,'','show');	
	
    }else if (document.getElementById || document.all || document.layers){	
	formelement=eval("document."+formname+".adminid");
	formelement.value=id;
	hideshowFormElements('hidden');
	MM_showHideLayers(name,'','show');	
    }
}

function checkcolor(thecolor){
  if(thecolor.value!=""){
  colorfound=false;
  
  var valid = "abcdefghijklmnopqrstuvwxyz0123456789#"
  var ok = "yes";
  var temp;
  for (var i=0; i<thecolor.value.length; i++) {
    temp = "" + thecolor.value.substring(i, i+1);
  if (valid.indexOf(temp.toLowerCase()) == "-1") ok = "no";
  }
  
  if(ok=="no"){
     thecolor.value="";
     alert("Invalid Character");
     return;
  }else{
  for(x=0;x<26;x++){
    
    if(thecolor.value!=""){
      if(thecolor.value.toLowerCase()==colorarray[x][0]){
         colorfound=true;
         thecolor.value=colorarray[x][1];
      }
    }
  }
  if(!colorfound){
    var valid = "abcdef0123456789#"
    for (var i=0; i<thecolor.value.length; i++) {
      temp = "" + thecolor.value.substring(i, i+1);
      if (valid.indexOf(temp.toLowerCase()) == "-1") ok = "no";
    }
    
    if(ok=="no"){
       thecolor.value="";
       alert("Invalid Character");
       return;
    }else{
  
    if(thecolor.value.length==6){
      if(thecolor.value.indexOf("#")==0){
        thecolor.value="";
        alert("Invalid hex value. Must be at least 6 characters.");
      }else{  
        thecolor.value="#"+thecolor.value;    
      }
    }else if(thecolor.value.length==7 && thecolor.value.indexOf("#")==0){    
    }else{
      alert("Please use hex values (eg #FFFFFF for white) or\n use the color picker to select a color.");
      thecolor.value="";
    }
    }
  }
  thecolor.value=thecolor.value.toLowerCase();  
  }
  }
  
}

function openInfo(file,prop){
  properties = prop;
  inforequest = window.open(file,'inforequest',properties);
  inforequest.focus();
  inforequest=null;
  
}

function openWindow(file,prop){
  if(top.opener){
    window.name="viewer2";
  }

  if (viewer){
    if (viewer.closed) {
       viewer = window.open(file,'viewer',prop);
       viewer.focus();
    }else{
       viewer.close();
       viewer = window.open(file,'viewer',prop);
       viewer.focus();
    }
  }else{
       viewer = window.open(file,'viewer',prop);
       viewer.focus();  
  }
}
function openWindow2(file,prop,urltype){
  if(top.opener){
    window.name="viewer2";
  }

  if(urltype=="siteurl"){
    url=siteurl+'/';
  }else if(urltype=="baseurl"){
    url=baseurl+'/';
  }
  

  if (viewer){
    if (viewer.closed) {
       viewer = window.open(url+file,'viewer',prop);
       viewer.focus();
    }else{
       viewer.close();
       viewer = window.open(url+file,'viewer',prop);
       viewer.focus();
    }
  }else{
       viewer = window.open(url+file,'viewer',prop);
       viewer.focus();  
  }
}
function openImageWindow(file){
  
  if (imageviewer){
    if (imageviewer.closed) {
       imageviewer = window.open(siteurl+"/scripts/showimage.asp?imagename="+file,'imageviewer',"scrollbars=yes,resizable=yes,status=yes,width=50,height=50");
       imageviewer.focus();
    }else{
       imageviewer.close();
       imageviewer = window.open(siteurl+"/scripts/showimage.asp?imagename="+file,'imageviewer',"scrollbars=yes,resizable=yes,status=yes,width=50,height=50");
       imageviewer.focus();
    }
  }else{
       imageviewer = window.open(siteurl+"/scripts/showimage.asp?imagename="+file,'imageviewer',"scrollbars=yes,resizable=yes,status=yes,width=50,height=50");
       imageviewer.focus();  
  }
}

function PFShowFormPage(formname,previous,next){

  MM_showHideLayers('step'+formname+previous,'','hide');
  MM_showHideLayers('step'+formname+next,'','show');
  document.getElementById('stepform'+formname).style.height = document.getElementById('step'+formname+next).offsetHeight;

}

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.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_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_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; }
}
function displaymessage(themessage){
  if(themessage != ""){ 
     newmessage=unescape(themessage);
     alert(unescape(String(newmessage).replace(/\+/g, " ")));
  }else{
   return;
  }
}

function validate(field,type,min,max,casesensitive){

  // min and maximum values
  if (field.value.length<parseInt(min) && parseInt(min)>0){
     alert('Please enter at least '+min+' characters.');
     field.value="";
     
  }
  
  
  
  if (field.value.length>parseInt(max) && parseInt(max)>0){
     alert('You have exceeded the maximum number of characters ('+max+' max) for this field!');
     field.value=field.value.substring(0,max);
     
  }
  
  if (field.value!=""){
  
  
  // case sensitivity
  if(parseInt(casesensitive)==1){  // all uppercase
    field.value=field.value.toUpperCase();  
  }else if(parseInt(casesensitive)==2){ // all lowercase
    field.value=field.value.toLowerCase();     
  }else if(parseInt(casesensitive)==3){  // capitalise first letter
    field.value=initialCap(field);  
  }else{  
  }
  
    
  if (type == "0"){
    checkChar(field);
  }
  else if(type == "1"){
    field.value = removeSpaces(field.value);
    
    if ((checkInteger(field.value)) == false){
       alert('Please enter an integer');
       field.value="";
    }
  }
  else if(type == "2"){
    if (field.value.indexOf(".")>-1){
       integer = field.value.substring(0,field.value.indexOf('.'));
       if (integer.length>9){ alert('Number too large!') ;field.value="" ;}     
    }else{
       if (field.value.length>9){ alert('Number too large!');field.value=""; }
    }
    field.value = checkDecimal(field.value,4);
  }
  else if(type == "3"){
    if (field.value.indexOf(".")>-1){
       integer = field.value.substring(0,field.value.indexOf('.'));
       if (integer.length>9){ alert('Number too large!') ;field.value="" ;}     
    }else{
       if (field.value.length>9){ alert('Number too large!') ;field.value=""; }
    }
    field.value = checkDecimal(field.value,4);
  }
  else if(type == "4"){
    vDateType='3';
    field.value = field.value.substring(0,10);
    DateFormat(field,field.value);
  }
  else if(type == "5"){
    if (checkEmail(field.value)==false){
       alert('This Email Address is invalid. Please check.');
       field.value="";
    }
  }
  else if(type == "6"){
    if (field.value.indexOf(".")>-1){
       integer = field.value.substring(0,field.value.indexOf('.'));
       if (integer.length>9){ alert('Number too large!') ;field.value="" ;}     
    }else{
       if (field.value.length>9){ alert('Number too large!') ;field.value=""; }
    }
    field.value = checkDecimal(field.value,4);
  }
  else if(type == "7"){
    field.value = removeSpaces(field.value);
    if(!checkCreditCard(field.value)){
       alert('Invalid Credit Card Number. Please check.');
       field.value="";
    }
    
  }

  
  }
  
  
}

var size = 28; // initial input box size
var extendtimer = null;

// Auto extend input box size
function extendinput(field) {
  max_length = 70;
  newfield = field;  
  if((field.value == null ) || (field.value == "" )) field.size = size;
  if((field.value.length >= size)&&(field.value.length <= max_length)){ 
    field.size = field.value.length + 1;
  }else if(field.value.length > max_length){
  }else{
   field.size = size;
  }
  extendtimer = setTimeout("extendinput(newfield)",100);
}

//Initial Caps
function initialCap(field){

        var word= field.value;
        var firstLetter = word.substring(0, 1).toUpperCase();
        var restOfWord = word.substring(1, word.length);
        
        return firstLetter + restOfWord; // re-assign it back to the array and move on
    
}

function addmonth(field,month){
  
  var olddate=field.value;  
  var splitter=olddate.indexOf("/");  
  var curryear = olddate.substring(splitter+1, olddate.length);
  field.value=month+"/"+curryear;
}
function addyear(field,year){
  var olddate=field.value;  
  var splitter=olddate.indexOf("/");  
  var currmonth = olddate.substring(0,splitter);
  field.value=currmonth+"/"+year;
}


function formatCurrency(num) {
num = num.toString().replace(/\$|\,/g,'');
if(isNaN(num))
num = "0";
sign = (num == (num = Math.abs(num)));
num = Math.floor(num*100+0.50000000001);
cents = num%100;
num = Math.floor(num/100).toString();
if(cents<10)
cents = "0" + cents;
for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
num = num.substring(0,num.length-(4*i+3))+','+
num.substring(num.length-(4*i+3));
return (((sign)?'':'-') + num + '.' + cents);
}


function checkURL(field,errstmt){
        var httpreg = /^(http|ftp|https):\/\/[\w]+(\.[\w]+)+([\w\-\.,@?^=%&:\/~\+#]*[\w\-\@?^=%&\/~\+#])?/gi;

	var value=field.value;
	if(value==""){
	  field.value='http://';
	  return true;
	}else{

	  if(value.match(httpreg)!=value){
	       if(value!="http://"){
		  alert("Invalid Link.");          
	       }          
	       field.value='http://';
	       return false;
	     }else{ 
	       return true;
	     }
	}
}



// Check that an email address is valid based on RFC 821 (?)
function checkEmail(emailStr) {

/* The following variable tells the rest of the function whether or not
to verify that the address ends in a two-letter country or well-known
TLD.  1 means check it, 0 means don't. */
var checkTLD=1;
var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
var emailPat=/^(.+)@(.+)$/;

/* The following string represents the pattern for matching all special
characters.  We don't want to allow special characters in the address. 
These characters include ( ) < > @ , ; : \ " . [ ] */
var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";

/* The following string represents the range of characters allowed in a 
username or domainname.  It really states which chars aren't allowed.*/
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) {

/* Too many/few @'s or something; basically, this address doesn't
even fit the general mould of a valid e-mail address. */
alert("Email address seems incorrect (check @ and .'s)");
return false;
}
var user=matchArray[1];
var domain=matchArray[2];

// Start by checking that only basic ASCII characters are in the strings (0-127).
for (i=0; i<user.length; i++) {
if (user.charCodeAt(i)>127) {
alert("Ths username contains invalid characters.");
return false;
   }
}
for (i=0; i<domain.length; i++) {
if (domain.charCodeAt(i)>127) {
alert("Ths domain name contains invalid characters.");
return false;
   }
}
// See if "user" is valid 
if (user.match(userPat)==null) {
// user is not valid
alert("The username doesn't seem to be valid.");
return false;
}

/* if the e-mail address is at an IP address (as opposed to a symbolic
host name) make sure the IP address is valid. */
var IPArray=domain.match(ipDomainPat);
if (IPArray!=null) {

// this is an IP address
for (var i=1;i<=4;i++) {
if (IPArray[i]>255) {
alert("Destination IP address is invalid!");
return false;
   }
}
return true;
}
 
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) {
alert("The domain name does not seem to be valid.");
return false;
   }
}

if (checkTLD && domArr[domArr.length-1].length!=2 && 
domArr[domArr.length-1].search(knownDomsPat)==-1) {
alert("The address must end in a well-known domain or two letter " + "country.");
return false;
}

if (len<2) {
alert("This address is missing a hostname!");
return false;
}
return true;
}


//Check Standard Field Type 1
function checkChar(field){
  trimTrailing(field);
  trimLeading(field); 
}

function checkDecimal(num, places) {
  num = num.toString().replace(/^\,/g,'');
  num = num.toString().replace(/\s/g,'');
  num = num.toString().replace(/\$|\%|\,/g,'');
  if(isNaN(num))
  num = "0";
  
   if (places > 0) {
      if ((num.toString().length - num.toString().lastIndexOf('.')) > (places + 1)) {
         var Rounder = Math.pow(10, places);
         num = Math.round(num * Rounder) / Rounder;
       
         return num.toString();
      
      }else{
         if(num.toString().indexOf('.')==0){
	   num="0"+num.toString();	            
         }
         return num.toString();
      }
   }
   else return Math.round(num);
}

// Check that a string contains only letters and numbers
function checkInteger(string) {
	if (string.search) {
		if (string.search(/^\d+$/) == -1) return false;
	}

	return true;
}

// Remove characters that might cause security problems from a string 
function removeBadCharacters(string) {
	if (string.replace) {
		string.replace(/[<>\"\'%;\)\(&\+]/, '');
	}
	return string;
}

// Remove all spaces from a string
function removeSpaces(string) {
	var newString = '';
	for (var i = 0; i < string.length; i++) {
		if (string.charAt(i) != ' ') newString += string.charAt(i);
	}
	return newString;
}

// Remove Trailing Spaces
function trimTrailing(field){
  while(''+field.value.charAt(field.value.length-1)==' ')field.value=field.value.substring(0,field.value.length-1)
}

// Remove Leading Spaces
function trimLeading(field){
  while(''+field.value.charAt(0)==' ')field.value=field.value.substring(1,field.value.length)
}

function stripcharacters(input,filteredValues) {
s = input.value;
var i;
var returnString = "";
for (i = 0; i < s.length; i++) {  // Search through string and append to unfiltered values to returnString.
var c = s.charAt(i);
if (filteredValues.indexOf(c) == -1) returnString += c;
}
input.value = returnString;
}

// Check browser version
var isNav4 = false;
var isNav5 = false;
var isIE4 = false;
var strSeperator = "/"; 
// If you are using any Java validation on the back side you will want to use the / because 
// Java date validations do not recognize the dash as a valid date separator.
var vDateType = 3; // Global value for type of date format
//                1 = mm/dd/yyyy
//                2 = yyyy/dd/mm  (Unable to do date check at this time)
//                3 = dd/mm/yyyy
var vYearType = 2; //Set to 2 or 4 for number of digits in the year for Netscape
var vYearLength = 2; // Set to 4 if you want to force the user to enter 4 digits for the year before validating.
var err = 0; // Set the error code to a default of zero
if(navigator.appName == "Netscape") {
if (navigator.appVersion < "5") {
isNav4 = true;
isNav5 = false;
}
else
if (navigator.appVersion > "4") {
isNav4 = false;
isNav5 = true;
   }
}
else {
isIE4 = true;
}

// Check that a credit card number is valid based using the LUHN formula (mod10 is 0)
function checkCreditCard(number) {
	number = '' + number;
	
	if (number.length > 16 || number.length < 13 ) return false;
	else if (getMod10(number) != 0) return false;
	else return true;
}

// Returns a checksum digit for a number using mod 10
function getMod10(number) {
	
	// convert number to a string and check that it contains only digits
	// return -1 for illegal input
	number = '' + number;
	number = removeSpaces(number);
	if (!checkInteger(number)) return -1;
	
	// calculate checksum using mod10
	var checksum = 0;
	for (var i = number.length - 1; i >= 0; i--) {
		var isOdd = ((number.length - i) % 2 != 0) ? true : false;
		digit = number.charAt(i);
		
		if (isOdd) checksum += parseInt(digit);
		else {
			var evenDigit = parseInt(digit) * 2;
			if (evenDigit >= 10) checksum += 1 + (evenDigit - 10);
			else checksum += evenDigit;
		}
	}
	return (checksum % 10);
}
function CopyAddress(formname,thisobj){

  if(thisobj.checked){
    formelement=eval(formname);
    if((formelement._81_0) && (formelement._74_0)){
       formelement._81_0.value=formelement._74_0.value;
    }
    if((formelement._82_0) && (formelement._75_0)){
       formelement._82_0.value=formelement._75_0.value;
    }    
    if((formelement._83_0) && (formelement._76_0)){
       formelement._83_0.value=formelement._76_0.value;
    }
    if((formelement._84_0) && (formelement._77_0)){
       formelement._84_0.value=formelement._77_0.value;
    }
    if((formelement._85_0) && (formelement._78_0)){
       formelement._85_0.value=formelement._78_0.value;
    }
  }else{
    if(formelement._81_0){
       formelement._81_0.value='';
    }
    if(formelement._82_0){
       formelement._82_0.value='';
    }    
    if(formelement._83_0){
       formelement._83_0.value='';
    }
    if(formelement._84_0){
       formelement._84_0.value='';
    }
    if(formelement._85_0){
       formelement._85_0.value='';
    }    
  }
}

function DateFormat(dtform,dtfield) {
  var err = 0;
  string = dtfield;
  var valid = "0123456789/";
  var temp;
  for (var i=0; i< string.length; i++) {
  temp = "" + string.substring(i, i+1);
  if (valid.indexOf(temp) == "-1") err = 1;
  }
  if (string.length != 10) err=1;
  b = string.substring(0, 2); // day
  c = string.substring(2, 3); // '/'
  d = string.substring(3, 5); // month
  e = string.substring(5, 6); // '/'
  f = string.substring(6, 10); // year
  if (b<1 || b>31) err = 1;
  if (c != '/') err = 1;
  if (d<1 || d>12) err = 1;
  if (e != '/') err = 1;
  if (f<1900 || f>2099) err = 1;
  if (b==4 || b==6 || b==9 || b==11){
  if (d==31) err=1;
  }
  if (b==2){
  var g=parseInt(f/4);
  if (isNaN(g)) {
  err=1;
  }
  if (d>29) err=1;
  if (d==29 && ((f/4)!=parseInt(f/4))) err=1;
  }
  if (err==1) {
  alert('The date must be entered in dd/mm/yyyy format.');
  dtform.value="";
  return false;
  }else {
  return true;
  }
}

function PFswitchOptions(field){
   destCBO=field;

   for (iLoop = 1 ; iLoop < destCBO.options.length; iLoop++)
	{
		if (destCBO.options[0].selected==true){
		  destCBO.options[iLoop].selected=false;
		}else if (destCBO.options[iLoop].selected){
		  destCBO.options[0].selected=false;
		}
	}
}

function PriceCheck(field,unitprice,type,maxorder){
  if(type="int"){
    if ((checkInteger(field.value)) == false){ field.value = "1"; }   
  }else{
    field.value = checkDecimal(field.value,4);
  }
  
  if (field.value!="" && parseFloat(field.value)>0){
     
     if(maxorder!=""){
     	if (parseInt(field.value)>parseInt(maxorder)){ 
	  field.value="1";
	  alert("Max Quantity is "+maxorder);           	
     	}
     }else{     
	if ((field.value*unitprice)>100000000){       
	  field.value="1";
	  maxquantity=parseInt(100000000/unitprice);        
	  alert("Max Quantity is "+maxquantity);        
	}
     }     
     
  //}else if (parseFloat(field.value)=0){alert('t');
  
  }else if (field.value!="" && parseFloat(field.value)<=0){
    field.value="1";
  
  }
  
}


function setCookie(name, value, expires, path, domain, secure) {
  var curCookie = name + "=" + escape(value) +
      ((expires) ? "; expires=" + expires.toGMTString() : "") +
      ((path) ? "; path=" + path : "") +
      ((domain) ? "; domain=" + domain : "") +
      ((secure) ? "; secure" : "");
  document.cookie = curCookie;
}

function getCookie(name) {
  var dc = document.cookie;
  var prefix = name + "=";
  var begin = dc.indexOf("; " + prefix);
  if (begin == -1) {
    begin = dc.indexOf(prefix);
    if (begin != 0) return null;
  } else
    begin += 2;
  var end = document.cookie.indexOf(";", begin);
  if (end == -1)
    end = dc.length;
  return unescape(dc.substring(begin + prefix.length, end));
}

function populateComparsions(formname,producttype) {
  var cookiecurrvalue=getCookie("PowerFrontComparisons"+producttype);
     if(!cookiecurrvalue){  //nothing in cookie  
      
     }else if (formname!=""){
	var cookiearray=cookiecurrvalue.split("::");
	var part_num=0;
	while (part_num < cookiearray.length)
	 {	  
	  highlightcheckbox=eval('document.'+formname+'.comparisons'+cookiearray[part_num]);
	  if(highlightcheckbox){
	     highlightcheckbox.checked=true;
	  }
	  part_num+=1;
	}
     }
}

function deleteCookie(name, path, domain) {
  if (getCookie(name)) {
    document.cookie = name + "=" +
    ((path) ? "; path=" + path : "") +
    ((domain) ? "; domain=" + domain : "") +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
}

// date - any instance of the Date object
// * hand all instances of the Date object to this function for "repairs"

function fixDate(date) {
  var base = new Date(0);
  var skew = base.getTime();
  if (skew > 0)
    date.setTime(date.getTime() - skew);
}



function PFAddCompare(checkbox,newvalue,producttype,maxcomp){
  
  var expiresdate=new Date(new Date().getTime()+86400000);  
  var cookiecurrvalue=getCookie("PowerFrontComparisons"+producttype);
  
  if(checkbox.checked){

     if(!cookiecurrvalue){  //nothing in cookie  
      cookiecurrvalue=newvalue;   
     }else{
     
       var cookiearray=cookiecurrvalue.split("::");
	
       if(cookiearray.length>=maxcomp){
         alert("Maximum Allowed Comparisons is "+maxcomp);
       }else{
         if(cookiecurrvalue.indexOf(newvalue)>=0){ //check value does not already exist
         }else{
           cookiecurrvalue=cookiecurrvalue+"::"+newvalue; 
         } 
       }
     }
    
  }else{ //remove from cookie
    if(!cookiecurrvalue){ //nothing in cookie
    
    }else{
      if(cookiecurrvalue.indexOf(newvalue)>=0){  
        re = new RegExp("::"+newvalue,"gi")        
        cookiecurrvalue = cookiecurrvalue.replace(re,"");
        re = new RegExp("("+newvalue+"::)","gi")        
        cookiecurrvalue = cookiecurrvalue.replace(re,"");
        re = new RegExp("("+newvalue+")","gi")        
        cookiecurrvalue = cookiecurrvalue.replace(re,"");
      }
    
    }
    
  }
  
  if(!cookiecurrvalue){
    deleteCookie("PowerFrontComparisons"+producttype,"/");
    //alert("deletecookie");
  }else{
    setCookie("PowerFrontComparisons"+producttype, cookiecurrvalue, expiresdate,"/");
    //alert("setcookie="+cookiecurrvalue);
  }  
}

function AC_AddExtension(src, ext)
{
  if (src.indexOf('?') != -1)
    return src.replace(/\?/, ext+'?'); 
  else
    return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs) 
{ 
  var str = '<object ';
  for (var i in objAttrs)
    str += i + '="' + objAttrs[i] + '" ';
  str += '>';
  for (var i in params)
    str += '<param name="' + i + '" value="' + params[i] + '" /> ';
  str += '<embed ';
  for (var i in embedAttrs)
    str += i + '="' + embedAttrs[i] + '" ';
  str += ' ></embed></object>';

  document.write(str);
}

function AC_FL_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
     , "application/x-shockwave-flash"
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
  var ret = 
    AC_GetArgs
    (  arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
     , null
    );
  AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
  var ret = new Object();
  ret.embedAttrs = new Object();
  ret.params = new Object();
  ret.objAttrs = new Object();
  for (var i=0; i < args.length; i=i+2){
    var currArg = args[i].toLowerCase();    

    switch (currArg){	
      case "classid":
        break;
      case "pluginspage":
        ret.embedAttrs[args[i]] = args[i+1];
        break;
      case "src":
      case "movie":	
        args[i+1] = AC_AddExtension(args[i+1], ext);
        ret.embedAttrs["src"] = args[i+1];
        ret.params[srcParamName] = args[i+1];
        break;
      case "onafterupdate":
      case "onbeforeupdate":
      case "onblur":
      case "oncellchange":
      case "onclick":
      case "ondblClick":
      case "ondrag":
      case "ondragend":
      case "ondragenter":
      case "ondragleave":
      case "ondragover":
      case "ondrop":
      case "onfinish":
      case "onfocus":
      case "onhelp":
      case "onmousedown":
      case "onmouseup":
      case "onmouseover":
      case "onmousemove":
      case "onmouseout":
      case "onkeypress":
      case "onkeydown":
      case "onkeyup":
      case "onload":
      case "onlosecapture":
      case "onpropertychange":
      case "onreadystatechange":
      case "onrowsdelete":
      case "onrowenter":
      case "onrowexit":
      case "onrowsinserted":
      case "onstart":
      case "onscroll":
      case "onbeforeeditfocus":
      case "onactivate":
      case "onbeforedeactivate":
      case "ondeactivate":
      case "type":
      case "codebase":
        ret.objAttrs[args[i]] = args[i+1];
        break;
      case "width":
      case "height":
      case "align":
      case "vspace": 
      case "hspace":
      case "class":
      case "title":
      case "accesskey":
      case "name":
      case "id":
      case "tabindex":
        ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
        break;
      default:
        ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
    }
  }
  ret.objAttrs["classid"] = classid;
  if (mimeType) ret.embedAttrs["type"] = mimeType;
  return ret;
}


//-->