// head.js

///////////////////////// Functions //////////////////////

function Go(){return}

function preload(preload_site) {
  if (preload_site == 'bargery')
   MM_preloadImages('images/h_bar.gif','images/h_con.gif','images/h_ral.gif','images/h_cod.gif','images/h_abi.gif','images/h_cot.gif','images/h_and.gif','images/h_per.gif','images/h_pri.gif','images/h_fam.gif', 'images/icon_ho.gif', 'images/icon_io.gif');
  else if (window.site == 'justindale.com' || window.site == 'andrewbargery.com')
   MM_preloadImages('../common/button2.gif');
  MM_reloadPage(true);
  return;
}

function generic (filename) {
 if (filename.substring(0,1) == '_')
  return ('newsitem');
 var i = 3;
 var category = ',' + filename + ',';
 while (i++ < filename.length+2) {
  var f = (category.substring(0,i));
  var j = validPages.indexOf(f);
  var k = validPages.lastIndexOf(f);
  if (k > j) {
  var j = validPages.indexOf(f+',');
  }
  if (k == j ) {
   if (j == -1)
    category = 'not specified';
   else {
    category = validPages.substring(j+1,validPages.length);
    category = category.substring(0,category.indexOf(','));
   }
   break;
  }
 }
 return (category);
}

function titleload (genericTitle) {
 if (validPages.indexOf(','+genericTitle+',') != -1)
 	titleImg = 'heading/'+genericTitle+'.gif';
 else 
 	titleImg = 'heading/default_js.gif';
 document.write ('<style><!-- div.pagetitle{background-image:url('+titleImg+');} --></style>\n');
}

///////////////////// RSS Functions //////////////////////

function rss_format () {
	document.write ('<style><!--\n');
	document.write ('div.pagetitle{margin-left:180px;}\n');
	document.write ('div.content{border:0px;padding 0px;margin-top: 0px;}\n');
	document.write ('div.pagetitle{padding-top: 0px; padding-left: 20px}\n');
	document.write ('--></style>\n');
}

function rss_generate(max,img_src) {
  if (rss_ch_title != "no source!") {
     rss_op ='<p class="rss"><a href="'+rss_ch_link+'">';
     rss_op +='<img src="../common/'+img_src+'.gif" alt="'+rss_ch_title+'" border="0" width="120" height="16"></a></p>\n';
   for (i=0;i<max;i++) {
    if (rss_title[i]) {
     rss_op +='<p class="rss">';
     rss_op +='<a href="'+rss_link[i]+'" title="'+rss_desc[i]+'">';
     rss_op += rss_title[i]+'</a></p>\n';
    }
   }
   rss_op +='<p class="rss">&nbsp;</p>\n';
   newsupdated=rss_updated;
  }
  else {
   rss_op ='<p class="rss">News not available</p>\n';
   newsupdated=' ';
  }
  rss_ch_title="no source!";
  return rss_op;
}

function rss_display() {
  if (show_rss) { 
   document.write('<div class="leftside">');
   document.write('<div class="sidecontent">');
//   document.write(brcrss);
   document.write(wrcrss);
   document.write('<p class="rss"><i>'+newsupdated+'</i></p>');
   document.write('</div></div>\n');
  }
  return;
}

///////////////////// Date Functions //////////////////////

function date_ddmmmyy(date)
{
  var d = date.getDate();
  var m = date.getMonth() + 1;
  var y = date.getYear();

  // handle different year values 
  // returned by IE and NS in 
  // the year 2000.
  if(y >= 2000)
  {
    y -= 2000;
  }
  if(y >= 100)
  {
    y -= 100;
  }

  var mmm = 
    ( 1==m)?'Jan':( 2==m)?'Feb':(3==m)?'Mar':
    ( 4==m)?'Apr':( 5==m)?'May':(6==m)?'Jun':
    ( 7==m)?'Jul':( 8==m)?'Aug':(9==m)?'Sep':
    (10==m)?'Oct':(11==m)?'Nov':'Dec';

  return "" +
    (d<10?"0"+d:d) + "-" +
    mmm + "-" +
    (y<10?"0"+y:y);
}

function date_lastmodified()
{
  var lmd = document.lastModified;
  var s   = "Unknown";
  var d1;

  if(0 != (d1=Date.parse(lmd)))
  {
    s = "" + date_ddmmmyy(new Date(d1));
  }

  return s;
}

///////////////////// CGI Reading //////////////////////

function modifier (cgi, name, value) {
 var partial = '';
 if (cgi.indexOf(name + '=') != -1) {
  partial = cgi.substring(cgi.indexOf(name+'=')+name.length+1,cgi.length);
  if (partial.indexOf('&') != -1)
   value = partial.substring(0, partial.indexOf('&'));
  else
   value = partial;
 }
 return value;
}

function bodyPage (cgi, value) {
 if (cgi.length > 0) {
  if (cgi.indexOf('&') != -1)
   cgi = cgi.substring(0, cgi.indexOf('&'));
  if (cgi.indexOf('=') == -1 && cgi.length > 0)
   value = cgi;
 }
 return value;
}

function cgiRead (cgiString, defaults) {
 if (cgiString.indexOf('?') != -1)
  cgiString = cgiString.substring(cgiString.indexOf('?'), cgiString.length);
 else
  cgiString = '';
 while (cgiString.charAt(0) == '?')
  cgiString = cgiString.substring(1, cgiString.length);
 while (cgiString.charAt(cgiString.length-1) == '/')
  cgiString = cgiString.substring(0, cgiString.length-1);

 var cgi = new cgiDefine();
 cgi.page = modifier (cgiString, 'page', '');
 cgi.page = bodyPage (cgiString, cgi.page);
 cgi.lib = modifier (cgiString, 'lib', defaults.lib);
 cgi.photo = modifier (cgiString, 'photo', defaults.photo);
 cgi.user = modifier (cgiString, 'user', defaults.user);
 cgi.sponsor = modifier (cgiString, 'id', defaults.sponsor);
 cgi.sponsor = modifier (cgiString, 'doc', cgi.sponsor);
 cgi.emailadded = modifier (cgiString, 'addedemail', defaults.emailadded);
 cgi.gallery = modifier (cgiString, 'gallery', defaults.gallery);
 return cgi;
}

function stringSearch (url) {
 var i = url.indexOf('?');
 if (i != -1)
  return url.substring(i, url.length);
 else
  return '';
}

function cgiDefine () {}

function subject(url) {
 if (url.indexOf('?') == -1) {
  subject_text = 'Email from website';
 }
 else {
  subject_text=url.substring((url.indexOf('?')),url.length);
  subject_text=subject_text.substring((9+subject_text.lastIndexOf('subject=')),subject_text.length);
  if (subject_text.indexOf('&') != -1) {
   subject_text=subject_text.substring(0,subject_text.indexOf('&'));
  }
  while (subject_text.indexOf('%20') != -1) {
   subject_text=subject_text.substring(0,subject_text.indexOf('%20'))+' '+subject_text.substring(subject_text.indexOf('%20')+3,subject_text.length)
  }
  while (subject_text.indexOf('\'') != -1) {
   subject_text=subject_text.substring(0,subject_text.indexOf('\''))+' '+subject_text.substring(subject_text.indexOf('\'')+1,subject_text.length)
  }
 }
 return (subject_text);
}

///////////// Dreamweaver Rollover Scripts //////////////////////

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_reloadPage(init) {  //reloads the window if Nav4 resized
  if (init==true) with (navigator) {if ((appName=="Netscape")&&(parseInt(appVersion)==4)) {
    document.MM_pgW=innerWidth; document.MM_pgH=innerHeight; onresize=MM_reloadPage; }}
  else if (innerWidth!=document.MM_pgW || innerHeight!=document.MM_pgH) location.reload();
}

///////////////////// Remote Launch //////////////////////

function launch(newurl) {
 if (!window.remote || window.remote.closed) {
  var width = 620, height = 400;
  if (screen.width > 640) {
   width = 700;
   height = 520;
  }
  remote = open(newurl, 'remote', 'width='+width+',height='+height+',channelmode=0,dependent=0,directories=0,fullscreen=0,location=0,menubar=0,resizable=1,scrollbars=1,status=1,toolbar=0');
 }
 else
  remote.location.href = newurl;
 remote.focus();
 if (remote.opener == null)
  remote.opener = window;
 return;
}

function unlaunch() {
 if (window.remote) {
  remote.close();
  window.remote = false;
 }
 return;
}

///////////////////// Page Redirection Functions //////////////////////

function photo_index() {
 if (opener) {
  if (opener.library && opener.photoLibrary != photolibrary)
   opener.location.href = path+photoPath+'pics.htm?lib='+photoLibrary+'&gallery='+photoGallery;
  opener.focus()
 }
 else
  location.href = path+'pics.htm?lib='+photoLibrary+'&gallery='+photoGallery;
 return;
}

function showpic(library, photo, gallery) {
// gbase=base;
// if (gallery=='bargery')
//  gbase=path;
// if (gallery)
//  sp_path = gbase+gallery+'../';
// else
//  sp_path = path;
 launch('showpic.htm?gallery='+gallery+'&lib='+library+'&photo='+photo);
 return false;
}

//function photo(url) {
// launch('../' + photoStore + '/photos/'+url);
// return;
//}

function validateUser (user) {
 location.href=('lvalid.htm?user='+user);
 return false;
}

function redirect (url) {
 location.href=(url+'.htm');
 return false;
}


///////////////////// Main //////////////////////////

/////////////// sniffer script //////////////////////

// cgi-bin/sniffer.js

    var agt=navigator.userAgent.toLowerCase();
    var appVer = navigator.appVersion.toLowerCase();

    var is_minor = parseFloat(appVer);
    var is_major = parseInt(is_minor);

    var iePos  = appVer.indexOf('msie');
    if (iePos !=-1) {
       is_minor = parseFloat(appVer.substring(iePos+5,appVer.indexOf(';',iePos)))
       is_major = parseInt(is_minor);
    }

    var is_opera = (agt.indexOf("opera") != -1);

    var is_gecko = ((navigator.product)&&(navigator.product.toLowerCase()=="gecko"))?true:false;

    var is_moz   = ((agt.indexOf('mozilla/5')!=-1) && (agt.indexOf('spoofer')==-1) &&
                    (agt.indexOf('compatible')==-1) && (agt.indexOf('opera')==-1)  &&
                    (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)     &&
                    (is_gecko) && 
                    ((navigator.vendor=="")||(navigator.vendor=="Mozilla")));

    var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
                && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
                && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)
                && (!(is_moz)));

    var is_nav2 = (is_nav && (is_major == 2));
    var is_nav3 = (is_nav && (is_major == 3));
    var is_nav4 = (is_nav && (is_major == 4));
    var is_nav4up = (is_nav && is_minor >= 4);
    var is_navonly      = (is_nav && ((agt.indexOf(";nav") != -1) ||
                          (agt.indexOf("; nav") != -1)) );

    var is_nav6   = (is_nav && is_major==6);
    var is_nav6up = (is_nav && is_minor >= 6);

    var is_nav5   = (is_nav && is_major == 5 && !is_nav6);
    var is_nav5up = (is_nav && is_minor >= 5);

    var is_nav7   = (is_nav && is_major == 7);
    var is_nav7up = (is_nav && is_minor >= 7);

    var is_ie   = ((iePos!=-1) && (!is_opera));
    var is_ie3  = (is_ie && (is_major < 4));

    var is_ie4   = (is_ie && is_major == 4);
    var is_ie4up = (is_ie && is_minor >= 4);
    var is_ie5   = (is_ie && is_major == 5);
    var is_ie5up = (is_ie && is_minor >= 5);
    
    var is_ie5_5  = (is_ie && (agt.indexOf("msie 5.5") !=-1));
    var is_ie5_5up =(is_ie && is_minor >= 5.5);
	
    var is_ie6   = (is_ie && is_major == 6);
    var is_ie6up = (is_ie && is_minor >= 6);

    var is_js;
    if (is_nav2 || is_ie3) is_js = 1.0;
    else if (is_nav3) is_js = 1.1;
    else if (is_opera) is_js = 1.1;
    else if ((is_nav4 && (is_minor <= 4.05)) || is_ie4) is_js = 1.2;
    else if ((is_nav4 && (is_minor > 4.05)) || is_ie5) is_js = 1.3;
    else if (is_nav5 && !(is_nav6)) is_js = 1.4;
    else if (is_nav6up) is_js = 1.5;

    else if (is_nav && (is_major > 5)) is_js = 1.4;
    else if (is_ie && (is_major > 5)) is_js = 1.3;
    else if (is_moz) is_js = 1.5;

   var is_win   = ( (agt.indexOf("win")!=-1) || (agt.indexOf("16bit")!=-1) );
   var is_mac    = (agt.indexOf("mac")!=-1);

   var is_Flash        = false;
   var is_FlashVersion = 0;

   if ((is_nav||is_opera||is_moz)||
       (is_mac&&is_ie5up)) {
      var plugin = (navigator.mimeTypes && 
                    navigator.mimeTypes["application/x-shockwave-flash"] &&
                    navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin) ?
                    navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin : 0;
      if (plugin) {
         is_Flash = true;
         is_FlashVersion = parseInt(plugin.description.substring(plugin.description.indexOf(".")-1));
      }
   }

   if (is_win&&is_ie4up)
   {
      document.write(
         '<scr' + 'ipt language=VBScript>' + '\n' +
         'Dim hasPlayer, playerversion' + '\n' +
         'hasPlayer = false' + '\n' +
         'playerversion = 10' + '\n' +
         'Do While playerversion > 0' + '\n' +
            'On Error Resume Next' + '\n' +
            'hasPlayer = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & playerversion)))' + '\n' +
            'If hasPlayer = true Then Exit Do' + '\n' +
            'playerversion = playerversion - 1' + '\n' +
         'Loop' + '\n' +
         'is_FlashVersion = playerversion' + '\n' +
         'is_Flash = hasPlayer' + '\n' +
         '<\/sc' + 'ript>'
      );
   }


// color.js Javascript 1.2
if (is_js >= 1.2) { 
	jsver = '1.2+';
	s=screen.width;
	if (navigator.appName != "Netscape")
	 c=screen.colorDepth;
	else
	 c=screen.pixelDepth;
	j=navigator.javaEnabled()
	if (c >= 16)
	 colorOk = 1;
	else
	 colorOk = 0;
}

if (window.screen) {
 sniff_res=screen.width+'x'+screen.height+'x'+screen.colorDepth+'b';
}
else {
 sniff_res='unknown';
}

sniff_query = location.search;
while(sniff_query.substring(0,1) == '?') {
 sniff_query = sniff_query.substring(1);
}

/////////////// end of sniffer ///////////////////


validAlways = 'showpics,newsitem';
validPages = '';
path = '';

if (window.site) {
 if (site == 'justindale.com')
  validPages =
'bio,cockpit,contact,drive,error,events,faq206,fast,gravel,index,index2,links,news,pics,preview,qanda,report,results,sitemap,spec206,sponsors,susp,tyres.form';
else if (site == 'andrewbargery.com')
  validPages = 'bio,contact,error,events,index,index2,links,news,pics,results,sitemap,codrive,pnotes,form';
 else
  alert('Unrecognised site!');
}
else
 site = '';

validPages = ','+validAlways+','+validPages+',';

var docURL = window.location.href;
var docRef = document.referrer;

var file = docURL;
if (file.indexOf('?') > 0) {
 file = file.substring(0,file.indexOf('?'));
}
if (file.lastIndexOf('.htm') > 0) {
 file = file.substring(0,file.lastIndexOf('.htm'));
}
file = file.substring((file.lastIndexOf('/')+1),file.length);

if (window.errorPage)
 file = error;

genericPage = generic(file);
titleload (genericPage);

rss_ch_title="no source!";

if (file == 'index') {
	show_rss = true;
	rss_format();
}
else
	show_rss = false;


cgiDefine.prototype.page = 'index';
cgiDefine.prototype.path = '';
cgiDefine.prototype.file = 'index';
cgiDefine.prototype.ref = docRef;
cgiDefine.prototype.lib = 'default';
cgiDefine.prototype.photo = 0;
cgiDefine.prototype.user = 'unknown';
cgiDefine.prototype.pswd = '';
cgiDefine.prototype.sponsor = '';
cgiDefine.prototype.emailadded = 0;
cgiDefine.prototype.gallery = '';

var defaults = new cgiDefine();

var cgiString = location.search;
var cgi = cgiRead(cgiString, defaults);

if (cgi.ref.indexOf('?') != -1)
 cgi.ref = cgi.ref.substring(0, cgi.ref.indexOf('?'));

cgiString = '';
if (cgi.lib != defaults.lib)
 cgiString += '&lib='+cgi.lib;
if (cgi.photo != defaults.photo)
 cgiString += '&photo='+cgi.photo;
if (cgi.user != defaults.user)
 cgiString += '&user='+cgi.user;
if (cgi.ref != '[direct]' && cgi.ref.length > 0)
 cgiString += '&ref='+cgi.ref;
while (cgiString.charAt(0) == '&')
 cgiString = cgiString.substring(1, cgiString.length);

/* Page redirection.................................... */
//if (cgi.page != '')
// self.location.replace(cgi.page+'.htm');

if (cgi.sponsor != '')
 self.location.replace('../sponsor/index.htm?id='+cgi.sponsor);


///////////////////// Photo Functions //////////////////////

if (file=='pics' || file=='showpic' || file=='editpics') {
 var maxPhotos = 100;
 var maxPhotoLib = 100;
 var thumb_height = 100;	// maximum
 var thumb_width = 100;		// maximum
 var thumb_vspace = 5;
 var thumb_hspace = 5;
 var photoID = eval(cgi.photo);
 var photoLibrary = '000';	// default photo library
 var unknownPhotoLibrary = false;
 var photoLibraryRef;

 if (site == 'justindale.com')
  photoLibrary = '06_brc';

 if (location.href.indexOf('lisehansen') > 0)
  cgi.gallery = 'bargery';

 photoGallery = cgi.gallery;

 if (photoGallery != '') {
  var photoPath = '../' + photoGallery + '/photos/';
  var photoDirPath = '../' + photoGallery + '/photos/';
 }
 else {
  var photoPath = 'photos/';
  var photoDirPath = 'photos/';
 }

 var photoCols;
 var libraryTitle = '';
 if (cgi.lib != 'default')
  photoLibrary = cgi.lib;

var photoLibraryIndex;
var photoNumber;

 var photoData = new Array (maxPhotos);
 var k = 0;
 var l = 0;
 var m = 0;

 for (i=0;i<maxPhotos;i++) {
  photoData[i] = new Array (6);
  photoData[i][0] = k + '' + l + '' + m;
  m++;
  if (m > 9) {
   m = 0;
   l++
   if (l > 9) {
    l = 0;
    k++
   }
  }
 }
 
 if (file=='pics' || file=='showpic' || file=='editpics') {
  var photoLib = new Array (maxPhotoLib);
  for (i=0;i<maxPhotoLib;i++) 
   photoLib[i] = new Array (5);
  document.write('<script language="Javascript" src="'+photoDirPath+'pics_dir.js"></script>');
 }
 document.write('<script language="Javascript" src="../common/ptitle.js"></script>');
}



// Form Validation

function validate_required(field,alerttxt) {
 with (field) {
  if (value==null||value=="")
   {alert(alerttxt);return false}
  else {return true}
 }
}

function validate_email(field,alerttxt) {
 with (field) {
  apos=value.indexOf("@")
  dotpos=value.lastIndexOf(".")
  if (apos<1||dotpos-apos<2) 
   {alert(alerttxt);return false}
  else {return true}
 }
}

function validate_form(thisform)
{
with (thisform)
{
if (validate_required(sender,"Please enter your name!")==false)
  {sender.focus();return false}
if (validate_required(email,"Please enter your email address!")==false)
  {email.focus();return false}
if (validate_email(email,"Please enter a valid email address!")==false)
  {email.focus();return false}
}
}

function validate_subscribe(thisform)
{
with (thisform)
{
if (validate_email(email,"Please enter a valid email address!")==false)
  {email.focus();return false}
}
}

//////////////////////////////////////////////////////////////////////////////////////////////



