//   Copyright © 1996-2009 MPBM LLC, All rights reserved.
//   Legal Notice at http://swineshead.com/legal.htm


  docElm=document.all;if(navigator.appName == "Netscape"){if(parseInt(navigator.appVersion.substring(0, 1))>=5){docElm=document.getElementsByTagName('*')}else{docElm=document.layers}};
  
  if(typeof(window.innerHeight)=='number'){WinHeight=window.innerHeight;WinWidth=window.innerWidth}
  else if((typeof(document.documentElement.clientHeight)=='number')&&(document.documentElement.clientHeight!=0)){WinHeight=document.documentElement.clientHeight;WinWidth=document.documentElement.clientWidth}
  else if(typeof(document.body.clientHeight)=='number'){WinHeight=document.body.clientHeight;WinWidth=document.body.clientWidth}
  else {WinHeight=440;WinWidth=680};
  
  function PageWidth(k){if(WinWidth>980){if(k==0){return 960}else{return 940}}else{if(k==0){return WinWidth-20}else{return WinWidth-40}}}
  function PageHeight(k){if(k==0){return 140}else{return WinHeight-155}}
  
  function SetContactForm(x){
   if(location.hash.substring(location.hash.indexOf("#")+1)!="m"){document.forms[x].subject.value=location.hash.substring(location.hash.indexOf("#")+1)};
   if(WinWidth>440){inps=parseInt(WinWidth/10)-30;document.forms[x].realname.size=inps;document.forms[x].formmail_mail_email.size=inps;document.forms[x].subject.size=inps;document.forms[x].message.cols=inps+2};
   };


  var closetimer=0;
  var ddmenuitem=0;
  function mopen(id){	
	mcancelclosetime();
	mclose();
	ddmenuitem=document.getElementById(id);
	ddmenuitem.style.visibility='visible';
   };
  function mclose(){if(ddmenuitem){ddmenuitem.style.visibility='hidden';};};
  function mclosetime(){closetimer=window.setTimeout(mclose,'500');};
  function mcancelclosetime(){if(closetimer){window.clearTimeout(closetimer);closetimer=null;};};
  document.onclick=mclose; 

  MenuTitle = new Array; MenuLink = new Array; menu='';
  MenuTitle[0]='David&nbsp;v.R.&nbsp;Bowles';
  MenuTitle[1]='Biography';MenuLink[1]='david.htm';
  MenuTitle[2]='Signature&nbsp;Series';MenuLink[2]='signatures.htm';
  MenuTitle[3]='Interviews';MenuLink[3]='interviews.htm';
  MenuTitle[4]='Credits';MenuLink[4]='credits.htm';
  MenuTitle[5]='Producing';MenuLink[5]='services.htm';
  MenuTitle[6]='Engineering';MenuLink[6]='services.htm';
  MenuTitle[7]='Mastering';MenuLink[7]='masedt.htm';
  MenuTitle[8]='Editing';MenuLink[8]='masedt.htm';
  MenuTitle[9]='Live&nbsp;Recording';MenuLink[9]='liverec.htm';
  MenuTitle[10]='Equipment';MenuLink[10]='equipment.htm';
  MenuTitle[11]='Upcoming';MenuLink[11]='upcoming.htm';
  MenuTitle[12]='Featured';MenuLink[12]='featured.htm';
  MenuTitle[13]='Discography';MenuLink[13]='discography.htm';
  MenuTitle[14]='Reviews';MenuLink[14]='reviews.htm';
  MenuTitle[15]='Clients';MenuLink[15]='clients.htm';
  MenuTitle[16]='Services';MenuLink[16]='services.htm';
  MenuTitle[17]='Productions';MenuLink[17]='featured.htm';
  MenuTitle[18]='David';MenuLink[18]='david.htm';
  MenuTitle[19]='Contact';MenuLink[19]='contact.htm';
  MenuTitle[20]='Producing&nbsp;and&nbsp;Engineering';MenuLink[20]='proeng.htm';
  MenuTitle[21]='Mastering&nbsp;and&nbsp;Editing';MenuLink[21]='masedt.htm';
  
  function Menu(i,k){
   s='';
   if(k==0){s='<a href="'+MenuLink[i]+'">'}
   if(k==0){s=s+'<span class="LED">&#9675;</span><span>'}else if(k==1){s=s+'<span class="LEDon">&#9679;</span><span class="Active">'};
   s=s+'&nbsp;'+MenuTitle[i]+'</span>';
   if(k==0){s=s+'</a>'}
   s='<span class="MenuText">'+s+'</span>&nbsp;&nbsp;';
   return s;
  };
  
  ind=new Array();
  dynimg=new Array();
  dynalt=new Array();
  dynlnk=new Array();
  ino=0;
  inp=0;
  iml=parseInt((WinHeight-40)/120); 
  if (iml<1) {iml=1} else if(iml>5) {iml=5};
   
  function NextInx(z){
   ok=false;
   while(!ok){
    j=0;nxt=parseInt(Math.random()*z);
    for(i=0;i<iml;i++){j=j+(nxt!=ind[i])};
    ok=(j==iml);};
   return nxt
   };
   
  function dynply(z){
   while(inp==ino){inp=parseInt(Math.random()*iml);};
   ind[inp]=NextInx(z);
   if(eval('docElm.dynimg'+inp).filters){eval('docElm.dynimg'+inp).filters.blendTrans.Apply();};
   eval('docElm.dynimg'+inp).src=dynimg[ind[inp]];
   eval('docElm.dynimg'+inp).alt=dynalt[ind[inp]];
   if(eval('docElm.dynimg'+inp).filters){eval('docElm.dynimg'+inp).filters.blendTrans.Play();};
   eval('docElm.dynlnk'+inp).href=dynlnk[ind[inp]];
   ino=inp;
   };
   
  function ImgMenu(z){
   if(z==0){z=dynimg.length};
   if(iml>=z){iml=z-1;}
   for(inp=0;inp<iml;inp++){ind[inp]=NextInx(z);};
   document.write('<table border="0" width="100%">');
   for(inp=0;inp<iml;inp++){document.write('<tr><td height="120" align="center"><a id="dynlnk'+inp+'" href="'+dynlnk[ind[inp]]+'"><img id="dynimg'+inp+'" src="'+dynimg[ind[inp]]+'" alt="'+dynalt[ind[inp]]+'" border="0" width="110" height="110" style="filter:blendTrans(duration=1.0)\"></a></td></tr>');};
   ino=inp;
   document.write('</table>');
   window.setInterval('dynply('+z+')',4000);
   };
   
  function LoadImages(){
   function WriteImage(x){document.write('<img src="'+x+'" width="3" height="3" border="0">')};
   document.write('<p align="center"><br><b>swineshead.com</b><br><font size="-1">loading</font><br>');
   z=dynimg.length;
   for(inp=0;inp<z;inp++){WriteImage(dynimg[inp])};
   WriteImage('images/swlogoy.gif');
   WriteImage('images/swtxty.gif');
   WriteImage('images/David.jpg');
   WriteImage('images/David_Producing.jpg');
   WriteImage('images/Bowles_behind_desk.jpg');
   WriteImage('images/CalCGTsetup.jpg');
   };
   
   
  var n=0;
  var CN=new Array();
  var Client=new Array();
  var ClientLocation=new Array();
  var ClientType=new Array();
  var ClientLink=new Array();
  var Produced=new Array();
  var Mastered=new Array();
  var Edited=new Array();
  var Engineered=new Array();
  var Label=new Array();
  var CatalogNum=new Array();
  var CatalogLink=new Array();
  var SetOf=new Array();
  var SetTitle=new Array();
  var SetAbstract=new Array();
  var SetReviews=new Array();
  var Store=new Array();
  var StoreLink=new Array();
  var MediaType=new Array();
  var MediaContents=new Array();
  var MediaDef=new Array();
  var DownloadStore=new Array();
  var DownloadDef=new Array();
  var DownloadLink=new Array();
  var iTune=new Array();
  var ArtLink=new Array();
  var Title=new Array();
  var Composer=new Array();
  var Abstract=new Array();
  var Reviews=new Array();
  var Signature=new Array();
  var Feature=new Array();
  var Upcome=new Array;
  var CDDef="16-bit/44.1kHz (CD audio)";
  var RFR='<span class="ReviewRead">read full review...</span>';
  var MainWidth=560;
  var ReviewsWidth=180;
  
  function SetClient(i,t,c,l,a){
   CN[n]=i;n++;
   ClientType[i]=t;
   Client[i]=c;
   ClientLink[i]=l;
   ClientLoc[i]=a;
   };

  function ClientLnk(i){
   s=Client[i];
   if(ClientLink[i]){s='<a href="'+ClientLink[i]+'" target="'+Client[i]+'">'+s+'</a>'};
   return s;
   };

  //not used
  function ClientLoc(i){
   s='';
   if(ClientLink[i]){s='<a href="'+ClientLink[i]+'" target="'+Client[i]+'">'};
   s=s+Client[i];
   if(ClientLocation[i]){s=s+'&nbsp;('+ClientLocation[i]+')'};
   if(ClientLink[i]){s=s+'</a>'};
   return s;
   };

  function CreditStr(i,r){
   s='';
   if(Produced[i]){if(Produced[i]==1){s='Produced'}else{s=Produced[i]}};
   if(Engineered[i]){if(s!=''){s=s+r};if(Engineered[i]==1){s=s+'Engineered'}else{s=s+Engineered[i]}};
   if(Edited[i]){if(s!=''){s=s+r};if(Edited[i]==1){s=s+'Edited'}else{s=s+Edited[i]}};
   if(Mastered[i]){if(s!=''){s=s+r};if(Mastered[i]==1){s=s+'Mastered'}else{s=s+Mastered[i]}};
   return s;
   };
  
  function TitleStr(i){
    s=Title[i];if(Composer[i]){s=Composer[i]+' - '+s};
   return s;
   };

  function TitleLnk(i){
   s=TitleStr(i);
   if(CatalogLink[i]){s='">'+s+'</a>';
   if(Client[Label[i]]){
    s=Client[Label[i]]+s}else{s='_new'+s};
    s='<a href="'+CatalogLink[i]+'" target="'+s};
   return s;
   };
   
  function TitleDsc(i){
   return '<a href="discography.htm#'+i+'">'+TitleStr(i)+'</a>';
   };
   
  function CatalogNumLnk(i){
   if(CatalogNum[i]){
    s=CatalogNum[i];
    if(CatalogLink[i]){s='">'+s+'</a>';
    if(Client[Label[i]]){
     s=Client[Label[i]]+s}else{s='_new'+s};
     s='<a href="'+CatalogLink[i]+'" target="'+s};
    }else{s=''};
   return s;
   };
   
  function LabelLnk(i){
   if(Client[Label[i]]){if(ClientType[Label[i]]!=1){s='For '}else{s='On '};s=s+ClientLnk(Label[i]);}else{s='';};
   return s;
   };
  
  function StoreLnk(i){
   if(Store[i]){sl=' href="'+StoreLink[i]+'" target="'+Store[i]+'"';sa=' alt="Buy at '+Store[i]+'"'}else{sl='';sa='';};
   if(ArtLink[i]){
    return '<a'+sl+'><img src="images/'+ArtLink[i]+'" border="0" width="110" height="110"'+sa+'></a>';
    }{return '&nbsp;';};
   };

  function ArtDsc(i){
   s='<a href="discography.htm#'+i+'"><img src="images/'+ArtLink[i]+'" border="0" width="110" height="110" alt="'+TitleStr(i)+'"></a>';
   return s;
   };

  function MediaInf(i){
   if(MediaType[i]){js='<br>'+MediaType[i];if(MediaContents[i]){js=js+'<br>'+MediaContents[i]}}else{js=''};
   return js;
   };
  
 function ReviewsStr(Rv){rvs='';for(r=0;r<Rv.length;r++){rvs=rvs+Rv[r]+'<br>'};return rvs}; 
 
 function ListRelease(x,k){
   if(SetOf[x]){
    z=SetOf[x];
    if(SetTitle[x]){sr='<span class="SetTitle">'+SetTitle[x]+'</span>'}else{sr=''};
    if(SetAbstract[x]){if(sr!=''){sr=sr+'<br>'};sr=sr+'<span class="SetAbstract">'+SetAbstract[x]+'</span>'};
    sr='<tr><td>&nbsp;</td><td valign="top">'+sr+'</td></tr>';
    if(SetReviews[x]){sr=sr+'<tr><td><a name="s'+i+'"></td><td valign="top" align="right">'+ReviewsStr(SetReviews[x])+'</td></tr>';};
    document.write(sr);
    }else{z=1};
   for(y=0;y<z;y++){
    x=x+y;
    sr='<tr><td align="center" valign="top"><span class="MiscText"><a name="'+i+'"</a>'+StoreLnk(x)+MediaInf(x)+'</span></td><td valign="top"><font size="-1">';
    if((k!=0)&&Client[Label[x]]){sr=sr+LabelLnk(x)+'&nbsp;&nbsp;&nbsp;&nbsp;'};
    sr=sr+'| '+CreditStr(x,'|')+' |</font><br>';
    sr=sr+'<span class="RelTitle">'+TitleLnk(x)+'</span>';
    if(CatalogNum[x]){sr=sr+' &nbsp;<span class="CatalogNum">['+CatalogNumLnk(x)+']</span>'};
    sr=sr+'<br><span class="RelAbstract">'+Abstract[x]+'</span>';
    if(DownloadStore[x]){sr=sr+'<br><a href="'+DownloadLink[x]+'" target="'+DownloadStore[x]+'"><span class="DwnlLink">also available as paid download up to '+DownloadDef[x]+' at '+DownloadStore[x]+'</span></a>'};
    if(iTune[x]){sr=sr+'<br><a href="'+iTune[x]+'" target="iTunes"><span class="DwnlLink">also available at <font face="Arial">iTunes</font></span></a>'};
    sr=sr+'</td></tr><tr><td>&nbsp;</td><td valign="top" align="right">';
    if(Reviews[x]){sr=sr+ReviewsStr(Reviews[x])+'&nbsp<br>'};
    document.write(sr+'</td></tr>');
    x=x-y;};
   return z;
   };
   
  function ListUpcome(x){
   if(SetOf[x]){
    z=SetOf[x];
    if(SetTitle[x]){sr='<span class="SetTitle">'+SetTitle[x]+'</span>'}else{sr=''};
    if(SetAbstract[x]){if(sr!=''){sr=sr+'<br>'};sr=sr+'<span class="SetAbstract">'+SetAbstract[x]+'</span>'};
    sr='<tr><td>&nbsp;</td><td valign="top">'+sr+'</td></tr>';
    document.write(sr);
    }else{z=1};
   for(y=0;y<z;y++){
    x=x+y;
    sr='<tr><td align="center" valign="top"><span class="MiscText"><a name="'+i+'"</a>';
    if(ArtLink[x]){sr=sr+'<img src="'+ArtLink[x]+'" border="0" width="110"'};
    sr=sr+MediaInf(x)+'</span></td><td valign="top"><font size="-1">';
    if(Client[Label[x]]){sr=sr+LabelLnk(x)+'&nbsp;&nbsp;&nbsp;&nbsp;'};
    if(CreditStr(x,'')!=''){sr=sr+'| '+CreditStr(x,'|')+' |'};
    sr=sr+'</font>';
    if(TitleStr(x)){sr=sr+'<br><span class="RelTitle">'+TitleStr(x)+'</span>'};
    if(CatalogNum[x]){sr=sr+' &nbsp;<span class="CatalogNum">['+CatalogNumLnk(x)+']</span>'};
    if(Abstract[x]){sr=sr+'<br><span class="RelAbstract">'+Abstract[x]+'</span>'};
    if(DownloadStore[x]){sr=sr+'<br><a href="'+DownloadLink[x]+'" target="'+DownloadStore[x]+'"><span class="DwnlLink">will be available as paid download up to '+DownloadDef[x]+' at '+DownloadStore[x]+'</span></a>'};
    if(iTune[x]){sr=sr+'<br><span class="DwnlLink">will be available at <font face="Arial">iTunes</font></span>'};
    sr=sr+'</td></tr><tr><td>&nbsp;</td><td valign="top" align="right">';
    if(Reviews[x]){sr=sr+ReviewsStr(Reviews[x])+'&nbsp<br>'};
    document.write(sr+'</td></tr>');
    x=x-y;};
   return z;
   };

  function ListReview(x){
   sr='';si='';
   if(SetOf[x]){
    z=SetOf[x];
    if(SetReviews[x]){sr=sr+ReviewsStr(SetReviews[x])+'&nbsp;<br>';if(SetTitle[x]){sr='<span class="SetTitle">'+SetTitle[x]+'</span><br>'+sr}};
    }else{z=1};
   for(y=0;y<z;y++){
    x=x+y;
    if(Reviews[x]){
     si=si+'<span class="MiscText">'+ArtDsc(x)+MediaInf(x)+'</span><br>';
     sr=sr+'<span class="RelTitle">'+TitleDsc(x)+'</span><br>'+ReviewsStr(Reviews[x])+'&nbsp;<br>';
     };
    x=x-y;};
   document.write('<tr><td align="center" valign="middle">'+si+'&nbsp;<br></td><td align="center" valign="middle">'+sr+'&nbsp;<br></td></tr>');
   return z;
   };
   
  function ListReviewTxt(x,rv,rvm){
   function ReviewsFrom(Rv){r=0; while((r<Rv.length)&&(rv.length+sr.length<rvm)){sr=sr+Rv[r]+'<br>&nbsp;</br>';r++}};
   sr='';
   if(SetReviews[x]){ReviewsFrom(SetReviews[x])};
   if(Reviews[x]){ReviewsFrom(Reviews[x])};
   return sr;
   };
   
  function Signatures(){
   z=0;
   for(i=0;i<n;i++){
    if(Signature[i]&&(!Upcome[i])){
     dynimg[z]='images/'+ArtLink[i];
     dynalt[z]=TitleStr(i);
     dynlnk[z]='discography.htm#'+i;
     z++;
     };
    };
   ImgMenu(z);
   };
  
  function ListCredits(){
   document.write('<table border="0" width="100%" cellpadding="5" cellspacing="0">');
   document.write('<tr><td>&nbsp;</td><td class="credits"><span class="HeadText">Title</span></td><td class="credits"><span class="HeadText">Label</span></td><td class="credits"><span class="HeadText">Catalog&nbsp;#</span></td></tr>');
   for(i=0;i<n;i++){
    if(!Upcome[i]){
     document.write('<tr><td class="credits"><font size="-1">'+CreditStr(i,',')+'</td><td class="credits"><font size="-1"><span class="RelTitle">'+TitleDsc(i)+'</td><td class="credits"><font size="-1">'+LabelLnk(i)+'</td><td class="credits"><font size="-1">'+CatalogNumLnk(i)+'</td></tr>');
     };
    };
   document.write('</table>');
   };
   
  function ListClients(j){for(i=0;i<CN.length;i++){if(ClientType[CN[i]]==j){document.write(ClientLnk(CN[i])+'<br>')}}};

  function ListClientsBy(c,a){s='';for(j=0;j<CN.length;j++){if(a.indexOf(CN[j])<0){i=0;k=false;while((i<n)&&(!k)){if(Label[i]==CN[j]){if(((c==0)&&(Produced[i]||Engineered[i]))||((c==1)&&Produced[i])||((c==2)&&Engineered[i])||((c==3)&&Mastered[i])||((c==4)&&Edited[i])||((c==5)&&(Mastered[i]||Edited[i]))||((c==6)&&!(Produced[i]||Engineered[i])&&(Mastered[i]||Edited[i]))){k=true;s=s+ClientLnk(CN[j])+', '}};i++}}};s=s.substring(0,s.length-2);return s};

  function ListDiscography(){i=0;while(i<n){if((CreditStr(i,'')!='')&&!Upcome[i]){i=i+ListRelease(i)}else{i++}}};
  
  function ListFeatured(){i=0;while(i<n){if((CreditStr(i,'')!='')&&Feature[i]&&!Upcome[i]){i=i+ListRelease(i)}else{i++}}};

  function FeaturedUpcoming(){document.write('<p>It is our honour to be part of these upcoming releases:');i=0;while(i<n){if((CreditStr(i,'')!='')&&Upcome[i]&&Feature[i]){document.write('&nbsp;&nbsp;<a href="'+MenuLink[11]+'#'+i+'">'+TitleStr(i)+'</a>;')};i++};document.write('</p>')};

  function ListUpcoming(){i=0;while(i<n){if((CreditStr(i,'')!='')&&Upcome[i]){i=i+ListUpcome(i)}else{i++}}};

  function ListMasteredEdited(){i=0;while(i<n){if((Mastered[i]||Edited[i])&&!Upcome[i]){i=i+ListRelease(i)}else{i++}}};
  
  function ListMasEdtOnly(){i=0;while(i<n){if(!Produced[i]&&!Engineered[i]&&!Upcome[i]){i=i+ListRelease(i)}else{i++}}};

  function ListHaendel(){i=0;while(i<n){if((Label[i]==29)&&!Upcome[i]){i=i+ListRelease(i,0)}else{i++}}};

  function ListReviewed(){i=0;while(i<n){if((Produced[i]||Mastered[i]||Engineered[i])&&!Upcome[i]&&Reviews[i]){i=i+ListReview(i)}else{i++}}};  
  
  function ShowTweets(){if(WinWidth>MainWidth+ReviewsWidth){docElm.Reviews.width=ReviewsWidth;document.write('<span id="twitter_div"><span id="twitter_update_list" class="twitter_update"></span></span>');};};	 
  function RecentReviews(){if(WinWidth>MainWidth+ReviewsWidth){docElm.Reviews.width=ReviewsWidth;i=0;j='';k=0;while((i<n)&&(j.length<WinHeight-200)&&(k<2)){if((Produced[i]||Mastered[i]||Engineered[i])&&!Upcome[i]&&Reviews[i]){j=j+ListReviewTxt(i,j,WinHeight);k++};i++};document.write(j)}};

