/*
Site Design
Kevin Douglas :: Satarah Studios
kdouglas@satarah.com [satarah.com]
*/


domMode.compliant = false;
domMode.report = new Array();

function domMode () {  // internal method //

  var body, tempDiv, cloneDiv, lastDiv, divTxt;

  domMode.report[ 'getElementsByTagName' ] = ( !document.getElementsByTagName )
  ? false : ( body = document.getElementsByTagName('body').item(0) ) ? true : false;

  domMode.report[ 'createElement' ] = ( !document.createElement )
  ? false : ( tempDiv = document.createElement( 'div' ) ) ? true : false;

  domMode.report[ 'appendChild' ] = ( !body.appendChild )
  ? false : body.appendChild( tempDiv ) ? true : false;

  domMode.report[ 'style' ] = ( !tempDiv.style )
  ? false : ( tempDiv.style.height = '100px' ) ? true : false;
  domMode.report[ 'style' ] = ( tempDiv.style.height == '100px' ) ? true : false;

  domMode.report[ 'setAttribute' ] = ( !tempDiv.setAttribute )
  ? false : tempDiv.setAttribute( 'id', 'divId' );

  domMode.report[ 'getAttribute' ] = ( !tempDiv.getAttribute )
  ? false : tempDiv.getAttribute( 'id' ) == 'divId' ? true : false;

  domMode.report[ 'setAttribute' ] = domMode.report[ 'getAttribute' ];

  domMode.report[ 'getElementById' ] = ( !document.getElementById )
  ? false : document.getElementById( 'divId' ) ? true : false;

  domMode.report[ 'cloneNode' ] = ( !tempDiv.cloneNode )
  ? false : ( cloneDiv = tempDiv.cloneNode( true ) ) ? true : false;

  domMode.report[ 'lastChild' ] = ( !body.lastChild )
  ? false : ( lastDiv = body.lastChild ) ? true : false;

  domMode.report[ 'insertBefore' ] = ( !body.insertBefore )
  ? false : body.insertBefore( cloneDiv, lastDiv ) ? true : false;

  domMode.report[ 'removeAttribute' ] = ( !cloneDiv.removeAttribute )
  ? false : cloneDiv.removeAttribute( 'id' );
  domMode.report[ 'removeAttribute' ] =  cloneDiv.id ? false : true;

  domMode.report[ 'createTextNode' ] = ( !document.createTextNode )
  ? false : ( divTxt = document.createTextNode( 'divTxt' ) ) ? true : false;
  tempDiv.appendChild( divTxt );

  domMode.report[ 'nodeName' ] = ( !tempDiv.nodeName )
  ? false : tempDiv.nodeName == 'DIV' ? true : false;

  domMode.report[ 'parentNode' ] = ( !tempDiv.parentNode )
  ? false : tempDiv.parentNode == body ? true : false;

  domMode.report[ 'firstChild' ] = ( !tempDiv.firstChild )
  ? false : tempDiv.firstChild.nodeValue == 'divTxt' ? true : false;

  domMode.report[ 'nodeValue' ] = domMode.report[ 'firstChild' ];

  domMode.report[ 'nodeType' ] = ( !tempDiv.nodeType )
  ? false : tempDiv.nodeType == 1 ? true : false;

  domMode.report[ 'previousSibling' ] = ( !tempDiv.previousSibling )
  ? false : tempDiv.previousSibling == cloneDiv ? true : false;

  domMode.report[ 'nextSibling' ] = ( !cloneDiv.nextSibling )
  ? false : cloneDiv.nextSibling == tempDiv ? true : false;

  domMode.report[ 'removeChild' ] = ( !body.removeChild )
  ? false : body.removeChild( cloneDiv ) ? true : false;

  domMode.report[ 'id' ] = ( !tempDiv.id ) 
  ? false : tempDiv.id == 'divId' ? true : false;

  body.removeChild( tempDiv );

  for ( var m in domMode.report ) {
    if ( !domMode.report[m] ) return false;
  }

  domMode.compliant = true;

  return true;
}

