//\//////////////////////////////////////////////////////////////////////////////////
//\  main.js - Main Javascript file for Magical Page Productions
//\    Author - Ted Garneau owner of Magical Page Productions
//\    Last Modified - 6/6/2008
//\    
//\    Usage - You are free to use the code in this file as long as you give credit to
//\            the author.
//\//////////////////////////////////////////////////////////////////////////////////
//\//////////////////////////////////////////////////////////////////////////////////
//\ START --- Get Elements By Non Standard Methods
//\//////////////////////////////////////////////////////////////////////////////////
String.prototype.contains = function(t) { return this.indexOf(t) >= 0 ? true : false }

document.getElementsByClassName = function( clsName, nodeName, startnodeID ) {    
  var tag = nodeName||'*';
  var starttagID = startnodeID||'';
  var retVal = new Array();   
  var starttag;
  var elements;
  
  if (starttagID) {
    starttag = document.getElementById(starttagID);   
    if (starttag)
      elements = starttag.getElementsByTagName(tag); 
    else
      elements = document.getElementsByTagName(tag); 
  }
  else
    elements = document.getElementsByTagName(tag); 
         
  for(var i = 0;i < elements.length;i++) {  
   if(elements[i].className.indexOf(" ") >= 0) {            
      var classes = elements[i].className.split(" ");            
      for(var j = 0;j < classes.length;j++) {                
        if(elements[i].className.contains(clsName)) {                   
          retVal.push(elements[i]);
        }            
      }        
    }        
    else if(elements[i].className.contains(clsName)) {          
      retVal.push(elements[i]);    
    }
  }    
  return retVal;
};

document.getElementsByType = function( tag, elementType, startnodeID ) {    
  var starttagID = startnodeID||'';
  var retVal = new Array();   
  var elements;
  
  if (starttagID) {
    starttag = document.getElementById(starttagID);   
    if (starttag)
      elements = starttag.getElementsByTagName(tag); 
    else
      elements = document.getElementsByTagName(tag); 
  }
  else
    elements = document.getElementsByTagName(tag); 
         
  for(var i = 0;i < elements.length;i++) {  
   if(elements[i].type == elementType) { 
     retVal.push(elements[i]);
    }        
  }    
  return retVal;
};
//\ END --- Get Elements By Non Standard Methods

//\//////////////////////////////////////////////////////////////////////////////////
//\ START --- Standard DIV swapping functions
//\//////////////////////////////////////////////////////////////////////////////////
function swapDivContent(DivStart, DivClass, Varfiller) {
  var elements;
  elements = document.getElementsByClassName(DivClass, "*", DivStart);
  for(var i = 0;i < elements.length;i++) {  
    elements[i].innerHTML = Varfiller;
  }        
}  
// Son-Of-Sucker-Fish IE Hack
// -----------------------------------------------------------------
sfHover = function() {
  if (document.getElementById("left_nav_test_line")) {
	  var sfEls = document.getElementById("left_nav_test_line").getElementsByTagName("LI");
	  for (var i=0; i < sfEls.length; i++) {
		sfEls[i].onmouseover=function() {
		  this.className+=" sfHover";
		}
		sfEls[i].onmouseout=function() {
		  this.className=this.className.replace(new RegExp(" sfHover\\b"), "");
		}
	  }
   }
 }
 if (window.attachEvent) window.attachEvent("onload", sfHover);  
// END Son-Of-Sucker-Fish IE Hack
// -----------------------------------------------------------------
  
  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_showHideLayers() 
  { //v6.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 show_hide_by_id(myID, showhide) {
    var v;
    var x = document.getElementById(myID);
    if (x.style) { 
	    x=x.style; 
	  }
    if (showhide=='show') {
      x.left = 'auto';
      x.backgroundPosition = '0 0';
    }
    else
      x.left = '-9999px';
  }
//\  END --- Standard DIV swapping functions

//\//////////////////////////////////////////////////////////////////////////////////
//\ START --- Get information passed via the URL
//\//////////////////////////////////////////////////////////////////////////////////
  function get_Args() 
  {
    var args = new Object();
	  var query = location.search.substring(1); 
	  var pairs = query.split("&");
	  for (var i = 0; i < pairs.length; i++) {
	    var pos = pairs[i].indexOf('=');
	    if (pos == -1) continue;
	    var argname = pairs[i].substring(0,pos);
	    var argvalue = pairs[i].substring(pos+1);
	    args[argname] = unescape(argvalue);
	  }
	  return args;
  }
  
//\  END --- Get information passed via the URL

/*******************
 * Code to add an of focus event to all pages
 ******************************************************/
function addInputFocus() {
  
  var InputElements;
     
  InputElements = document.getElementsByClassName("textfield");
  
  for(var i = 0;i < InputElements.length;i++) {  
//    if( InputElements[i].attachEvent ){
//      InputElements[i].attachEvent('onfocus', function() {event.srcElement.value=""});       
//    else {
//      InputElements[i].setAttribute('onblur', 'this.value=""');       
//    }    
    InputElements[i].onfocus = function() { if (this.value==this.defaultValue)this.value="";    } ;
    InputElements[i].onblur = function() { if (!this.value) this.value=this.defaultValue;    } ;
  }        
}
  
// setTimeout('addInputFocus()', 200);
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

addLoadEvent(addInputFocus);