var xmlhttp, alerted
 
if( ! xmlhttp && !alerted )
{
  try
  {
    xmlhttp = new XMLHttpRequest( );
  }
  catch( e )
  {
    // Internet explorer
    try
    {
      xmlhttp = new ActiveXObject( 'Msxml2.XMLHTTP' );
    }
    catch( e )
    {				
      try
      {
        xmlhttp = new ActiveXObject( 'Microsoft.XMLHTTP' );
      }
      catch( e )
      {
        alert( 'uw browser ondersteunt geen AJaX' + e );
      }				
    }
  }
}
   
function verwerk( )
{
  var message;
  
  switch( xmlhttp.readyState )
  {
    case 0:
      message = '<div class="response"><p><img src="images/loader.gif" alt="Bezig met laden..." /></p><p>Onbekend</p></div>';
      break;
    
    case 1:
      message = '<div class="response"><p><img src="images/loader.gif" alt="Bezig met laden..." /></p><p>Bezig met laden...</p></div>';
      break;
    
    case 2:
      message = '<div class="response"><p><img src="images/loader.gif" alt="Bezig met laden..." /></p><p>Laden voltooid</p></div>';
      break;
    
    case 3:
      message = '<div class="response"><p><img src="images/loader.gif" alt="Bezig met laden..." /></p><p>Gegevens ontvangen...</p></div>';
      break;
    
    case 4:
          
      switch( xmlhttp.status )
      {
        case 200:
          message = xmlhttp.responseText;
          break;
        
        case 404:
          message = 'Pagina niet gevonden';
          break;
      }
      
      break;
  }
  
  document.getElementById( 'qs_body' ).innerHTML = message;
  
  return message;
}

function getDataFromQuery( query )
{
  url = 'quickscan.php?' + query + '&rand=' + Math.random( );
  
  if (xmlhttp)
  {
    document.getElementById( 'qs_body' ).innerHTML = 'Bezig met ophalen van gegevens...';
    xmlhttp.open( 'GET', url, true );
    xmlhttp.onreadystatechange = verwerk;
    xmlhttp.send( null );
  }
}
   
function getData( url )
{
  url += '?rand=' + Math.random( );
  
  if (xmlhttp)
  {
    document.getElementById( 'qs_body' ).innerHTML = 'Bezig met ophalen van gegevens...';
    xmlhttp.open( 'GET', url, true );
    xmlhttp.onreadystatechange = verwerk;
    xmlhttp.send( null );
  }
}
   
function postData( url, waarden )
{
  url += '?rand=' + Math.random( );
  
  if (xmlhttp)
  {
    document.getElementById( 'qs_body' ).innerHTML = 'Bezig met ophalen van gegevens...';
    xmlhttp.open( 'POST', url, true );
    xmlhttp.onreadystatechange = verwerk;
    xmlhttp.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
    xmlhttp.send( waarden );
  }
}

function formData( url, formId )
{
  postStr = null;
  
	formId = document.getElementById( formId )
	var postStr = '';
	for( i = 0; i < formId.elements.length; i++ )
	{
		formElem = formId.elements[ i ];
		
		
		
		switch( formElem.type )
		{
			case 'text':
			case 'select-one':
			case 'hidden':
			case 'password':
			case 'textarea':
        postStr += formElem.name + '=' + escape( formElem.value ) + '&';
        break;
			case 'checkbox':
			case 'radio':
        if( formElem.checked )
        {
          postStr += formElem.name + '=' + escape( formElem.value ) + '&';
        }
        break;
		}
	}
	
	postData( url, postStr );
}

// End AJaX

function parseMyInt( str )
{
        var intRegEx = new RegExp( "^[0-9]+$" );
        
	if ( str.match( intRegEx ) )
	{
		return parseInt( str );
	}
	
	return 0;
}



function parseMyFloat( str )
{
        var getRegEx = new RegExp( "^(([0-9]+)|([0-9]*(\.[0-9]+))|((\.[0-9]+)))$" );
        
	if ( str.match( getRegEx ) )
	{
		return parseFloat( str );
	}
	
	return 0;
}



function minToGetal( min )
{
        var nMin;
        var nSec;
        var result;
        
        if ( min.split( ":" ) )
        {
                explode = min.split( ":" )
                
                if ( explode.length > 1)
                {
                        nMin = parseMyInt( explode[0] );
                        nSec = parseMyInt( explode[1] );
                        return nMin + nSec / 60.0;
                }
        }
        
        return parseMyInt( explode[0] );
}



function getalToMin( getal )
{        
        var nMin;
        var nSec;
        var totalSec;

        totalSec = 60 * getal;
        nMin = Math.floor( totalSec / 60 );
        nSec = Math.round( totalSec - (60 * nMin) );
        
        var strSec = nSec;
        
        if ( nSec < 10 )
        {
                strSec = "0" + nSec;
        }

        return nMin + ":" + strSec;
}

function refreshMin( veld )
{
        veld = document.getElementById( veld );        
        veld.value = getalToMin( minToGetal( veld.value ) );
}



function rondAf( getal, decimalen )
{
        var factor = Math.pow( 10, decimalen );
        return Math.round( getal * factor ) / factor;
}


/* Bereken de totalen aan de hand van de opgegeven waarden */
function bereken(type)
{
  /* Variabelen declareren */
  
  var form = document.getElementById( 'frmNummerInvoer' );
  
  var prefix = "form." + type + "_";
  
  /* Waarden uit velden ophalen */
  
  /* Gesprekken Vast */
  var piek_vast_gesprekken        = parseMyInt( eval( prefix  + "piek_vast_gesprekken.value" ) );
  
  /* Gesprekken Mobiel */
  var piek_mobiel_gesprekken      = parseMyInt( eval( prefix  + "piek_mobiel_gesprekken.value" ) );
  
  /* Gesprekken Onderling */
  var piek_onderling_gesprekken   = parseMyInt( eval( prefix  + "piek_onderling_gesprekken.value" ) );
  
  /* Gesprekken Voicemail */
  var piek_voicemail_gesprekken   = parseMyInt( eval( prefix  + "piek_voicemail_gesprekken.value" ) );
  
  /* Gesprekken Totaal */
  var piek_totaal_gesprekken      = piek_vast_gesprekken + piek_mobiel_gesprekken + piek_onderling_gesprekken + piek_voicemail_gesprekken;
  
  // Minuten Vast
  var piek_vast_minuten           = minToGetal( eval( prefix  + "piek_vast_minuten.value" ) );
  
  // Minuten Mobiel
  var piek_mobiel_minuten         = minToGetal( eval( prefix  + "piek_mobiel_minuten.value" ) );
  
  // Minuten Onderling
  var piek_onderling_minuten      = minToGetal( eval( prefix  + "piek_onderling_minuten.value" ) );
  
  // Minuten Voicemail
  var piek_voicemail_minuten      = minToGetal( eval( prefix  + "piek_voicemail_minuten.value" ) );
  
  // Minuten Totaal
  var piek_totaal_minuten         = piek_vast_minuten + piek_mobiel_minuten + piek_onderling_minuten + piek_voicemail_minuten;
  
  /* Berekenen */  
  
  /* Gesprekken */  
  eval( prefix + "piek_totaal_gesprekken.value = "      + piek_totaal_gesprekken );
  
  /* Minuten */
  eval( prefix + "piek_totaal_minuten.value = \""         + getalToMin( piek_totaal_minuten ) + "\"");
  
  return true;
}
