
/******************************************************************************
begin: mouseover scripts
******************************************************************************/
function newImage(arg) {
 if (document.images) {
  rslt = new Image();
  rslt.src = arg;
  return rslt;
 }
}
function changeImages() {
 if (document.images && (preloadFlag == true)) {
  for (var i=0; i<changeImages.arguments.length; i+=2) {
   document[changeImages.arguments[i]].src = changeImages.arguments[i+1];
  }
 }
}
/******************************************************************************
end: mouseover scripts
******************************************************************************/

/******************************************************************************
 This is the flash detection script.
 ******************************************************************************/
var required = 6;
var hasFlash = false;
if(navigator.appVersion.indexOf("MSIE") != -1 && navigator.appVersion.indexOf("Windows") != -1){
 document.write('<SCR' + 'IPT LANGUAGE=VBScript\> \n');
 document.write('on error resume next \n');
 // AFAIK creating an instance of an older version of the Flash object 
 // will return succeed even if the actual installed version is newer.
 document.write('hasFlash = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash." & required))) \n');  
 document.write('<'+'/scr' + 'ipt\> \n');
 }
else {
 var plugin = (navigator.mimeTypes && navigator.mimeTypes["application/x-shockwave-flash"])?navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin:0;
 if (plugin) {
  var isVersion2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
  var flashDescription = navigator.plugins["Shockwave Flash" + isVersion2].description;
  var flashVersion = parseInt(flashDescription.charAt(flashDescription.indexOf(".") - 1));
  hasFlash = flashVersion >= required;
  }
 }

/******************************************************************************
 This classes the <html> element as `hasFlash` if flash is found. This style
 hook can be used to hide our to-be-replaced content before it even comes down
 the datapipe and eliminate the FOPSC ("Flash of Partially Styled Content")
 
 I've determined that the lighter the page weight the greater chance of a FOPSC.
 ******************************************************************************/
if (hasFlash && document.getElementsByTagName && document.getElementsByTagName('html')[0]) {
 document.getElementsByTagName('html')[0].className += (document.getElementsByTagName('html')[0].className=='')?'hasFlash':' hasFlash';
 }
 
 
/******************************************************************************
 Some utility functions. Look at them--aren't they useful?
 ******************************************************************************/
 
function SI_normalizeWhiteSpace(txt) {
 var rE = /\s+/gi;
 return txt.replace(rE,' ');
 }
function SI_forceRedraw() {
 // Corrects a margin-bottom sum bug in Mozilla
 var d = document;
 if (d.body && d.body.style) {
  d.body.style.height = "1px";
  d.body.style.height = "auto";
  }
 }
 
/******************************************************************************
 This is the function that finds and replaces the appropriate elements.
 
 
 SI_replaceElement(elem,swf,w,h,afv)
 
 elem (string) :
  `div#header` will replace the `div` with the id of header
  `div#primary-content>h1` will replace any `h1` tag whose direct parent is a `div` with an id of `primary-content`
  `h2.replaceme` will replace any `h2` tag with a className of `replaceme`
 swf (string) :
  full path to the swf
 w (int) :
  width
 h (int) :
  height
 afv (string) :
  used to pass additional flashVars to the movie
  
 The new replaced element will be placed in a div 
 with a className of `'replaced-'+r.e.tagName`
 ******************************************************************************/
function SI_replaceElement(elem,swf,w,h,afv) {
 var d = document;
 
 if (!hasFlash || !d.getElementsByTagName) return;
 
 var r = new Object();
 r.p = new Object();
 r.e = new Object();
 
 if (elem.indexOf('>')!=-1) {
  // alert("Reference to parent found...");
  elemArray = elem.split('>');
  elem = elemArray[1];
  if (elemArray[0].indexOf('#')!=-1) {
   // alert("Reference to parent's id found...");
   parentArray = elemArray[0].split('#');
   r.p.id     = parentArray[1];
   r.p.tagName   = parentArray[0];
   r.p.className = false;
   }
  else if (elemArray[0].indexOf('.')!=-1) {
   // alert("Reference to parent's className found...");
   parentArray = elemArray[0].split('.');
   r.p.id     = false;
   r.p.tagName   = parentArray[0];
   r.p.className = parentArray[1];
   }
  else {
   r.p.id    = false;
   r.p.tagName   = elemArray[0];
   r.p.className = false;
   }
  }
 else {
  // alert("No reference to parent found...");
  r.p.id    = false;
  r.p.tagName   = false;
  r.p.className = false;
  }
 
 if (elem.indexOf('#')!=-1) {
  // alert("Reference to element's id found...");
  elemArray = elem.split('#');
  r.e.id     = elemArray[1];
  r.e.tagName   = elemArray[0];
  r.e.className = false;
  }
 else if (elem.indexOf('.')!=-1) {
  // alert("Reference to element's className found...");
  elemArray = elem.split('.');
  r.e.id     = false;
  r.e.tagName   = elemArray[0];
  r.e.className = elemArray[1];
  }
 else {
  r.e.id    = false;
  r.e.tagName   = elem;
  r.e.className = false;
  }
 
 if (afv!='') {
  afv = SI_normalizeWhiteSpace(afv);
  afv = '&'+afv;
  }
 
 var elems = d.getElementsByTagName(r.e.tagName);
 var count = elems.length;
 for (var i=0; i<count; i++) {
  e = elems[i];
  
  if (!r.p.tagName || (((r.p.tagName && !r.p.id && !r.p.className && e.parentNode.nodeName==r.p.tagName) || ((r.p.id && e.parentNode.id==r.p.id) || (r.p.className && e.parentNode.className==r.p.className))))) {
   if ((r.e.tagName && !r.e.id && !r.e.className) || (r.e.id && e.id==r.e.id) || (r.e.className && e.className==r.e.className)) {
    
    // alert('Make replacement');
    var txt;
    txt = SI_normalizeWhiteSpace(e.innerHTML);
    var c = d.createElement('div');
    c.className = 'replaced-'+r.e.tagName;
    e.parentNode.replaceChild(c,e);
    // The replaceChild acts like shift() on the
    // array that holds all of our elems. Meaning it
    // removes the first index and the remaining indexes
    // move up one.
    // The length or our elems array decreases by one
    count--;
    // Override the increment on loop index too.
    // We could just use e = elems[0]; above if we knew that
    // every instance of this particular element was going 
    // to be replaced--but there's no way of knowing that's
    // how it will play out.
    i--;
    var fv = 'txt='+escape(txt)+afv;
    
    var swfHTML;
    swfHTML  = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" width="'+w+'" height="'+h+'">';
    swfHTML += '<param name="movie" value="'+swf+'" />';
    swfHTML += '<param name="wmode" value="transparent">';
    swfHTML += '<param name="flashvars" value="'+fv+'" />';
    swfHTML += '<embed src="'+swf+'" flashvars="'+fv+'" width="'+w+'" height="'+h+'" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer" wmode="transparent" />';
    swfHTML += '<'+'/object>';
    c.innerHTML = swfHTML;
    // alert(fv);
    txt='';
    }
   }
  
  }
 }
 
/******************************************************************************
 This is where the magic happens. This should really be the only part of this
 script you need to modify. Just add the necessary SI_replaceElement() calls 
 and make sure this sucker is called onload.
 ******************************************************************************/
function SI_flashReplacement() {

// Replace all `<h1>` tags inside `<div id="primary-content">`
// SI_replaceElement('div#content h1','swf/txt.swf',236,18,'');
 SI_replaceElement('h1#h1Creative','/upload/images/h1.swf',600,20,'hexcolor=AD8CB5');
 SI_replaceElement('h1#h1Technical','/upload/images/h1.swf',600,20,'hexcolor=CCCC66');
 SI_replaceElement('h1#h1Business','/upload/images/h1.swf',600,20,'hexcolor=7AA3B8');
 SI_replaceElement('h1','/upload/images/h1.swf',600,20,'');
 SI_replaceElement('h2','/upload/images/h2.swf',420,28,'');
 SI_replaceElement('h3.Samples','/upload/images/h3.swf',420,20,'hexcolor=FFFFFF');
 SI_replaceElement('h3','/upload/images/h3.swf',420,20,'');
 // Another Sample:
 // Replace all occurances of `<h3 class="author">` inside `<div class="comment">`
 // Also pass the additional variable `type` a value of `2` to Flash
 // SI_replaceElement('div.comment>h3.author','swf/txt.swf',236,18,'type=2');
 
 SI_forceRedraw();

 }

/******************************************************************************
 This sets the entire thing in motion. Place any other scripts that need to run
 onload in the SI_onload() function or add SI_flashReplacement to your own 
 onload handler.
 ******************************************************************************/
 function SI_onload() {
 SI_flashReplacement();
 //preloadImages();
 //sf();
 } window.onload = SI_onload;