<!-- Begin Hiding

  // Synthesizers.com JavaScript Functions.
  // Roger Arrick
  // 3/12/2009


  // PreLoad the Navigation Images for fast rollovers.
  function LoadNavImages() {
    navon2= new Image(197,79);
    navon2.src = "navon2.jpg";
    navon3= new Image(197,78);
    navon3.src = "navon3.jpg";
    navon4= new Image(197,76);
    navon4.src = "navon4.jpg";
    navon5= new Image(197,80);
    navon5.src = "navon5.jpg";
    navon6= new Image(197,77);
    navon6.src = "navon6.jpg";
    navon7= new Image(197,79);
    navon7.src = "navon7.jpg";
    navon8= new Image(197,75);
    navon8.src = "navon8.jpg";
  }

  // Show an Image in a seperate popup window.
  // parameters:  image name, width of image, height of image
  function ShowImage(theimage,w,h) {
    w=w+35; // Make room for scroll bar.
    h=h+35; // Make room for scrool bar and status line.
    var x="width="+w+",height="+h+",scrollbars=1,resizable=1,status=1,screenx=100,screeny=20";
    ImageWindow=window.open("", "ImageWindow", x);
    ImageWindow.document.write("<html><head><title>Synthesizers.com Image</title></head><body bgcolor='#FFFFFF' onBlur='window.close()'>");
    ImageWindow.document.write("<a href='#' onclick='window.close()'><img src='",theimage,"' border='0' alt='Click to Remove this Image'></a>");
    ImageWindow.document.write("</body></html>");
    ImageWindow.document.close();
  }

  // Show an webpage in a seperate popup window.
  // parameters:  page name, width of image, height of image
  function ShowPage(thepage,w,h) {
    w=w+40; // Make room for scroll bar.
    h=h+40; // Make room for scrool bar and status line.
    var x="width="+w+",height="+h+",scrollbars=1,resizable=1,status=1,screenx=100,screeny=20";
    PageWindow=window.open(thepage, "PageWindow", x);
  }

// Show a module popup on menu.
// Called like this: <a href="q104.html" onmouseout="hidemodule()" onmouseover="showmodule(event,'q104',1)">Q104 MIDI Interface</a><br>
function showmodule(e, module, spaces)
{
  // Start building popup html.
  var ih = '<table border="0" cellpadding="0" cellspacing="0"><tr><td valign="top">';
  ih += '<img src="/' + module + 't.jpg" align="left" height="80" border="0" >';
  ih += '</td><td valign="top">';

  // Set width of popup based on module width.
  if (spaces == 1) { moduleinfo.style.width=250;}
  if (spaces == 2) { moduleinfo.style.width=250;}
  if (spaces > 2)  { moduleinfo.style.width=300;}
  if (spaces > 4)  { moduleinfo.style.width=350;}

  // Put module info and image into popup.
  if (module == 'q101')  { ih += '<b>Power Components</b><p>Modules, supplies, harnesses, cables and adapters.  Plus example setups.'; }
  if (module == 'q104')  { ih += '<b>Q104 MIDI Interface</b><p>Creates control voltages from MIDI signals. Pitch, Gate, Velocity, Trigger outputs.'; }
  if (module == 'q105')  { ih += '<b>Q105 Slew Limiter</b><p>Controls signal change to create Portamento, modify envelopes, etc.'; }
  if (module == 'q106')  { ih += '<b>Q106 Oscillator (VCO)</b><p>Creates waveforms. Sine, Triangle, Saw, Ramp, Pulse.'; }
  if (module == 'q107')  { ih += '<b>Q107 State Variable Filter (VCF)</b><p>LP, HP, BP, Notch filter. Voltage control of Frequency and Q. Dual mixing input'; }
  if (module == 'q108')  { ih += '<b>Q108 Amplifier (VCA)</b><p>Controls signal amplitude under voltage control.  Linear and exponential responses.'; }
  if (module == 'q109')  { ih += '<b>Q109 Envelope Generator (EG)</b><p>Creates voltage envelopes. Attack, Decal, Sustain, Release Controls.'; }
  if (module == 'q110')  { ih += '<b>Q110 Noise Source</b><p>Creates random noise. White, Pink, Low outputs with level adjustment.'; }
  if (module == 'q111')  { ih += '<b>Q111 Pan/Fade</b><p>Voltage controlled panning and fading.'; }
  if (module == 'q112')  { ih += '<b>Q112 4-Channel Mixer</b><p>Audio mixer with 3 adjustable and 1 fixed channels.'; }
  if (module == 'q113')  { ih += '<b>Q113 8-Channel Mixer</b><p>Audio mixer with 6 adjustable and 2 fixed channels.'; }
  if (module == 'q115')  { ih += '<b>Q115 Reverb</b><p>Mechanical spring reverb effect.'; }
  if (module == 'q116')  { ih += '<b>Q116 Ring Modulator</b><p>Multiply signals creating sidebands producing chime and bell-like sounds.'; }
  if (module == 'q117')  { ih += '<b>Q117 Sample &amp; Hold</b><p>Stores a voltage and holds it upon triggering.'; }
  if (module == 'q118')  { ih += '<b>Q118 Instrument Interface</b><p>Amplifies a signal from guitar or microphone and creates an envelope and gate.'; }
  if (module == 'q119')  { ih += '<b>Q119 Sequencer</b><p>Produces a series of control voltages for sequences, arpeggiation. 24x1 or 3x8.'; }
  if (module == 'q120')  { ih += '<b>Q120 Connector Interface</b><p>Connects various types of jacks - Phono, phone, banana, stereo, mono, and AC coupling.'; }
  if (module == 'q121')  { ih += '<b>Q121 Banana Jack Interface</b><p>Provides 8 sections of 1/4&quot; Phone to Banana conversion'; }
  if (module == 'q122')  { ih += '<b>Q122 Mini Jack Interface</b><p>Provides 8 sections of 1/4&quot; Phone to 1/8&quot; Phone conversion.'; }
  if (module == 'q123')  { ih += '<b>Q123 Standards</b><p>Precision voltage and frequency standards for tuning and scaling.'; }
  if (module == 'q124')  { ih += '<b>Q124 Multiples</b><p>Connects multiple signals together.<br>3 groups of 4 jacks each.  2 groups switch connectable.'; }
  if (module == 'q125')  { ih += '<b>Q125 Signal Processor</b><p>Signal amplification, attenuation, inversion, offset.'; }
  if (module == 'q127')  { ih += '<b>Q127 Fixed Filter Bank</b><p>12 bandpass filters, 1 low pass, 1 high pass.  Bypass switch.'; }
  if (module == 'q128')  { ih += '<b>Q128 Switch</b><p>Switches signals via voltage control. 2 double throw switches.'; }
  if (module == 'q130')  { ih += '<b>Q130 Clipper/Rectifier</b><p>Voltage controlled clipping and rectification of signals.'; }
  if (module == 'q131')  { ih += '<b>Q131 Blank Panels</b><p>To fill in blank spaces. Single, double, quad and octal spaces.'; }
  if (module == 'q138')  { ih += '<b>Q138 Logo Panel</b><p>Single-wide blank with Synthesizers.com logo.'; }
  if (module == 'q140')  { ih += '<b>Q140 Fixed Filter Aid</b><p>Aid module for Q127 Filter Bank.  Provides outputs for individual filter sections.'; }
  if (module == 'q141')  { ih += '<b>Q141 Oscillator Aid</b><p>Aid module for Q106 Oscillator.  Provides waveform switching, amplitude control, and soft-sync.'; }
  if (module == 'q142')  { ih += '<b>Q142 Pedal Interface</b><p>2 Separate pedal to control voltage circuits.  For variable or switch type pedals.'; }
  if (module == 'q143')  { ih += '<b>Q143 Presets</b><p>Switch selectable circuit routing and voltage sources.'; }
  if (module == 'q146')  { ih += '<b>Q146 Normalization</b><p>Panel and wiring harness to send pitch and gate signals to modules without patching.'; }
  if (module == 'q147')  { ih += '<b>Q147 Distributor</b><p>Adjustable distributon of one signal to 4 places.  3 are adjustable with inversion.'; }
  if (module == 'q149')  { ih += '<b>Q149 Signal Selector</b><p>Manual selector of 3-1 or 1-3 signals.  Two sections linkable via switch.'; }
  if (module == 'q150')  { ih += '<b>Q150 Ladder Filter</b><p>Famous Low Pass Ladder filter designed by Bob Moog.'; }
  if (module == 'q161')  { ih += '<b>Q161 Oscillator Mixer</b><p>Aid module for Q106 oscillator. Provides mixing of waveforms without patching.'; }
  if (module == 'q162')  { ih += '<b>Q162 Filter Mixer</b><p>Aid module for Q107 filter. Provides mixing of responses without patching.'; }
  if (module == 'q171')  { ih += '<b>Q171 Quantizer Bank</b><p>Accepts voltages and locks them into preset scales.  Simplifies sequencer tuning, creates arpeggios, etc.'; }
  if (module == 'q172')  { ih += '<b>Q172 Quantizer Aid</b><p>Aid for Q171 Quantizer.  Adds a 4th Channel with MIDI, programmable notes, quartertones, transpose, etc..'; }
  if (module == 'q960')  { ih += '<b>Q960 Sequential Controller</b><p>Based on the famous Moog sequencer. 3x8 with trigger in/out and mode for each stage.'; }
  if (module == 'q961')  { ih += '<b>Q961 Sequencer Interface</b><p>Combines triggers from the Q960 with delay adjustment.'; }
  if (module == 'q962')  { ih += '<b>Q962 Sequential Switch</b><p>Converts Q960 to 24x1 operation and other shifting and switching functions.'; }
  if (module == 'q963')  { ih += '<b>Q963 Trigger Bus</b><p>Combines triggers from a Q960 sequencer to 2 busses.'; }


  // Finish off html inside popup.
  moduleinfo.innerHTML = ih + '</td></tr></table>';

  // This fancy code is to extract mouse position cross-browser. posx, posy.
  var posx = 0;
  var posy = 0;
  if (!e) var e = window.event;
  if (e.pageX || e.pageY) 	{
    posx = e.pageX;
    posy = e.pageY;
	}
	else if (e.clientX || e.clientY) 	{
     posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
     posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
  }

  // Set popup position and make visible.
  moduleinfo.style.left = posx + 50 + 'px';
  moduleinfo.style.top = posy - 30 + 'px';
  moduleinfo.style.visibility = 'visible';
}

// Hide module popup.
function hidemodule()
{
  moduleinfo.style.visibility='hidden';
}

// End Hiding -->


