<!--
/*
// nivr.js - Javascript utility functions
// Language    : Javascript 1.2
// Author      : Erwin Haantjes
// Project     : Nivr
// Support     : IE6, IE7, Mozilla, FF, Safari
// Copyright   : Tremani (c) 2008 - All rights reserved
// Licensed to : Nivr
// Developed   : 28-10-2008
// Last updated: 31-10-2008
//
// WARNING - COPYRIGHTED MATERIAL!
*/
         // Targets
        var DIV_MESSAGES      = "post_messages";
        var DIV_POSTFORMFRAME = "post_form_wrapper";
        var DIV_POSTFORM      = "post_form";
        var DIV_EXAMPLES      = "voorbeeld";
        var ED_NAME           = "edName";
        var ED_EMAIL          = "edLiame";
        var ED_TEXT           = "edText";
        var ED_SUBMIT         = "submit";
        var BT_COLLAPSE       = "btCollapseForm";
        var LANGUAGE          = "nl"; // default language
        
         // Navigator/Browser ident
        var BROWSER = navigator.userAgent.toLowerCase();
        var BRW_IE = ( BROWSER.indexOf( "msie" ) > 0 );
        var BRW_FF = ( BROWSER.indexOf( "firefox" ) > 0 );
        var BRW_SF = ( BROWSER.indexOf( "safari" ) > 0 );
        
        // Possible errors (dutch, default)
        var EMSG_INVALID_NAME  = "<h3>Ongeldig lengte naam (minimaal 3 karakters)</h3>";
        var EMSG_INVALID_EMAIL = "<h3>U heeft geen of een ongeldig e-mailadres ingevoerd</h3>";
        var EMSG_EXCEPTION     = "<h3>Er is een fatale uitzondering opgetreden</h3>";
        
        // Possible errors (english)
        var EMSG_INVALID_NAME_ENG  = "<h3>Invalid namelength (minimal 3 characters)</h3>";
        var EMSG_INVALID_EMAIL_ENG = "<h3>The e-mail address you want to submit is empty or not valid</h3>";
        var EMSG_EXCEPTION_ENG     = "<h3>General protection fault encountered (internal error)</h3>";
        
         // css classes
        var CSS_CLASS_HOVER = " over";
        var CSS_CLASS_CLICK = " click";
         
        function isObject(a) 
        { return (a && typeof a == 'object') || (typeof a == 'function'); }
        
        function isString(a) 
        { return typeof a == 'string';}
        
        function isBoolean(a) 
        { return typeof a == 'boolean'; }

        function isValidEmail( Value )
        { return isRegExp( Value, /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{1,3})+$/ ); }        

        function isValidName( Value )
        { return ( isString( Value ) && Value.length > 3 ); }        

        function isRegExp( Value, sRegExp )
        {
             if( !isString( Value ))
                   { return false; }

             var regex = new RegExp( sRegExp );
             var mtch = regex.exec( Value );
             return ( mtch != null );
        }
        
        function trim( value ) 
        {
              if( isString( value )) 
            {
                value = value.replace(/^\s+/,'');
                  value = value.replace(/\s+$/,'');
            }
            
            return value;
        }
        
        function findObj( idName, aParent )
        {
         if( !isObject( aParent ))
            { aParent = self; }

           if( idName == undefined || !aParent.document )
             { return null; }

           var o = null;

           if( aParent.document.getElementById )
              { o = aParent.document.getElementById( idName ); }
           else { if( aParent.document.all )
                    { o = aParent.document.all[ idName ]; }
               }
          if( o == null || !o.style )
           { return null; }
           else { return o; }
        }

        function objSetClassName( idName, sClassName )
        {
             if( sClassName == undefined )
             { return; }
          
             var o = findObj( idName );
            
            if( o )
            try 
              { o.className = sClassName; 
                //if( sClassName == CSS_CLASS_CLICK ) 
                // { alert( o.className ); }
              }
             catch(e) 
              {}
        }

        function objAddEvent( idName, eventName, eventFunc, sTitle, bAddPointer )
        {
              var el = findObj( idName );
            //alert( el.id );

              if( !el )
                { return false; }

              var bAddPointer = ( bAddPointer == undefined ) ? false : bAddPointer;
              
            if( sTitle != undefined ) 
             { el.title = sTitle; }
            
            
            if( bAddPointer && el.style )
             { el.style.cursor='pointer'; }
  
            if( el.addEventListener )
               {
                 el.addEventListener ( eventName, eventFunc,false);
                 return true;
               }

              if( el.attachEvent )
               {
                 el.attachEvent ("on"+eventName, eventFunc );
                 return true;
               }

             return false;
        }
        
        
        function objRemoveTextClick( e, idName, defaultValue )
        {
            var o = findObj( idName );
            if( o ) 
             {
                 try
                 {
                  if( o.value == defaultValue )
                   { o.value = ""; }
                 }
                 catch(e){}
             }
        }

        function objSubmitCheckClick( e, idName )
        {
            var oName   = findObj( ED_NAME );
            var oEmail  = findObj( ED_EMAIL );
            var bResult = false;
            
            try
                 {
                  oName.value = trim( oName.value );
                  oEmail.value = trim( oEmail.value );
                  bResult = isValidName( oName.value );

                  if( !bResult ) 
                   { //alert( EMSG_INVALID_NAME );
                     writeToDiv( DIV_MESSAGES, ( LANGUAGE == "nl" ) ? EMSG_INVALID_NAME : EMSG_INVALID_NAME_ENG, true ); 
                   }
                  else {
                           bResult = isValidEmail( oEmail.value );
                           if( !bResult ) 
                               { //alert( EMSG_INVALID_NAME );
                              writeToDiv( DIV_MESSAGES, ( LANGUAGE == "nl" ) ? EMSG_INVALID_EMAIL : EMSG_INVALID_EMAIL_ENG, true ); }
                       }
                  
                 }
            catch(e)
                { 
                  bResult = false; 
                  writeToDiv( DIV_MESSAGES, ( LANGUAGE == "nl" ) ? EMSG_INVALID_NAME : EMSG_INVALID_NAME_ENG, true ); 
                }
            //alert( " Result is: "+bResult );
            return bResult;
        }
        
        function objAddRemoveTextEvent( idName, defaultValue )
        {
            var defaultValue = ( defaultValue == undefined ) ? null : defaultValue;             
            var o = findObj( idName );
            if( o ) 
             {
                 try
                 { 
                   if( o.value != undefined && o.value != "" )
                    { defaultValue = o.value; }
                   else { o.value = defaultValue; } 
                 }
                 catch(e){}
             }

             var f = function(e) { objRemoveTextClick( e, idName, defaultValue ); };  
            objAddEvent( idName, "focus", f  );
        }

        function objAddSubmitEventCheck( idName )
        {
             var f = function(e) { return objSubmitCheckClick( e, idName ); };  
            objAddEvent( idName, "submit", f  );

            var o = findObj( idName );
            if( o ) 
             {
                 try
                 { 
                  o.onsubmit = f; }
                 catch(e){}
             }
        }
        
        function objAddHoverEvent( idName )
        {
            var defaultValue = null;             
            var o = findObj( idName );
            if( o ) 
             {
                 try
                 { defaultValue = o.value; }
                 catch(e){}
             }

             var f = function(e) { objRemoveTextClick( e, idName, defaultValue ); };  
            objAddEvent( idName, "focus", f  );
             var f = function(e) { objRemoveTextClick( e, idName, defaultValue ); };  
            objAddEvent( idName, "focus", f  );
        }

        function addButtonIEFix()
        { // Special treatment for IE :-(
             if( !BRW_IE )
             { return false; }
            
            var f = function(e) { objSetClassName( ED_SUBMIT, CSS_CLASS_HOVER );  };  
            objAddEvent( ED_SUBMIT, "mouseenter", f  );
            f = function(e) { objSetClassName( ED_SUBMIT, "" );  };
            objAddEvent( ED_SUBMIT, "mouseout", f  );
            f = function(e) { objSetClassName( ED_SUBMIT, CSS_CLASS_CLICK );  };  
            objAddEvent( ED_SUBMIT, "mousedown", f  );
        }

        function writeToDiv( idName, Value, bRewrite, aParent  )
        // No netscape support!
        {
               var o = findObj( idName, aParent );
            if( o == null || !o.innerHTML )
               { return false; }

             if( bRewrite == undefined || !bRewrite )
               { o.innerHTML = o.innerHTML+Value; }
             else { o.innerHTML = Value; }

             return true;
        }

        function setObjVisible( idName, bValue )
        {    
             var o = findObj( idName );

             if( o == null || !o.style || bValue == undefined || !isBoolean( bValue ) )
               { return false; }

             if( bValue )
                { o.style.visibility = "visible"; }
             else { o.style.visibility = "hidden"; }

             return true;
        }

        function getObjVisible( idName )
        {    
             var o = findObj( idName );

             if( o == null || !o.style )
               { return false; }

             return ( o.style.visibility == "visible" );
        }
        
       function setObjDisplayBlock( idName, bValue )
        {    
             var o = findObj( idName );

             if( o == null || !o.style || bValue == undefined || !isBoolean( bValue ) )
               { return false; }

             if( bValue )
                { o.style.display = "block"; }
             else { o.style.display = "none"; }

             return true;
        }

        function getObjDisplayBlock( idName )
        {    
             var o = findObj( idName );

             if( o == null || !o.style )
               { return false; }

             return ( o.style.display == "block" );
        }
        
        function getObjectSize( obj )
        { // obj can be an object or a string (idName)
              var owidth = oheight = 0;

              if( isString( obj ) )
                { var obj = findObj( obj ); }

              if( isObject( obj ) && obj.offsetWidth )
              {
                owidth = obj.offsetWidth;
                oheight = obj.offsetHeight;
              }
              
             return [owidth,oheight];
        }
        

        function initHomePage()
        {
            // Changed, see below
        }

        function showPostFormFrame( bValue  )
        {
            var b = ( bValue == undefined || bValue == true ) ? true : false;  
            setObjDisplayBlock( DIV_POSTFORM, b );
            setObjDisplayBlock( DIV_POSTFORMFRAME, b );
            if( b && window.scrollByLines )
             { window.scrollByLines( 10 ); }
        }
        
        function swapPostFormVisible()
        {
            var b = ( getObjDisplayBlock( DIV_POSTFORM ) || getObjDisplayBlock( DIV_POSTFORMFRAME ));
            setObjDisplayBlock( "div_mail_succes_message", false );
            setObjDisplayBlock( "div_mail_error_message", false );
            showPostFormFrame( !b );
        } 
        
        function initContentPage( sLanguage, bResetFields )
        {
            LANGUAGE = ( sLanguage == undefined ) ? LANGUAGE : sLanguage;
            var bReset =  ( bResetFields == undefined || bResetFields == "true" );
            
            setObjDisplayBlock( "btprint", true );
            
            if( findObj( DIV_POSTFORM ) ) 
            {
               showPostFormFrame( false );
               
               if( bReset ) 
               {
                 objAddRemoveTextEvent( ED_NAME, ( LANGUAGE == "nl" ) ? "(Uw naam)" : "(Your name)" );
                 objAddRemoveTextEvent( ED_EMAIL, ( LANGUAGE == "nl" ) ? "(E-mail van vriend)" : "(E-mail friend)" );
                 objAddRemoveTextEvent( ED_TEXT, ( LANGUAGE == "nl" ) ? "(Uw Bericht)" : "(Your message)" );
               }
               
               objAddSubmitEventCheck( DIV_POSTFORM );
               addButtonIEFix();
               
               var f = function(e) { swapPostFormVisible(); };  
               objAddEvent( BT_COLLAPSE, "mousedown", f );
            }
        }

-->