soundManager.debugMode = false;
soundManager.url = './swf/';
document.write('<script type="text/javascript" src="javascript/flash_detect.js"></script>');

//******************************************************************************
// alternative window.onload function
var onloadQueue = [];

// Pass your function or function name
function onloadAdd(func) {
    if (typeof(func) == 'function') {
        onloadQueue.push(func);
    } else {
        onloadQueue.push(function() {
            eval(func);
        });
    }
}

// Take over window.onload
if (window.onload) {
	onloadAdd(window.onload);
}

window.onload = function() {
	while (onloadQueue.length) {
		var loadFunc = onloadQueue.shift();
		loadFunc();
	}
}

// end onload alternative
//******************************************************************************

// SetSound function
var xmlhttp;
var da=document.all;

function SetSound(str)
{
xmlhttp=CBHttpRequest();
//alert (xmlhttp);
if (xmlhttp==null)
  {
  alert ("Browser does not support HTTP Request");
  return;
  }
var url="./GetSound.php";
url=url+"?q="+str;
//alert(url);
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}

// voor de Webplayer
function stateChanged()
{
  // continue if the process is completed
  if (xmlhttp.readyState == 4)
  {
    // continue only if HTTP status is "OK"
    if (xmlhttp.status == 200)
    {
        // retrieve the response
el=xmlhttp.responseText;
//alert(el);
if (el=="") {
    soundManager.destroySound('aSound');
    }
else {
soundManager.onready(function() {
  if (soundManager.supported()) {
    // SM2 is ready to go!
    var mySound = soundManager.createSound({
      id: 'aSound',
      url: el,
      volume: 100
    });
    mySound.play();
  } else {
     if (el && !FlashDetect.installed) {
        alert('Adobe Flash is niet geinstalleerd!\nU kunt nu niet genieten van de muziek.');
    }
    else {
        alert ('De weergave van het geluid wordt niet ondersteund.\n\rInstalleer de nieuwste versie van Adobe Flash');
    }
  }
});
    }
    }
    else
    {
      // display status message
      alert("There was a problem retrieving the data:\n" +
            xmlhttp.statusText);
    }
  }
}

function CBHttpRequest()
{
   var objRequest = null;

   try
   {
      // Firefox, Opera 8.0+, Safari
      objRequest = new XMLHttpRequest();
   }catch (e){
      // Internet Explorer
      try
      {
         objRequest = new ActiveXObject("MSXML2.XMLHTTP");
      }catch (e){
         try
         {
            objRequest = new ActiveXObject("Microsoft.XMLHttp");
         }catch (e){
            alert("Uh noes!, je browser ondersteund geen AJAX!");
            return false;
         }
      }
   }
   return objRequest;
}

function GetXmlHttpObject()
{
if (window.XMLHttpRequest)
  {
  // code for IE7+, Firefox, Chrome, Opera, Safari
  return new XMLHttpRequest();
  }
if (window.ActiveXObject)
  {
  // code for IE6, IE5
  return new ActiveXObject("Microsoft.XMLHTTP");
  }
return null;
}

// httpRequest
function sahiIsIE(){
var browser = navigator.appName;
return browser == "Microsoft Internet Explorer";
}

function sahiCreateRequestObject(){
var obj;
if(sahiIsIE()){
obj = new ActiveXObject("Microsoft.XMLHTTP");
}else{
obj = new XMLHttpRequest();
}
return obj;
}

function sahiSendToServer(url){
try{
var http = sahiCreateRequestObject();
var url = url;
http.open("GET", url, false);
http.send(null);
return http.responseText;
  }catch(ex){throw ex;}
}

// Sleep function
function Sleep(sec){
sahiSendToServer("delay.php?q="+sec);
}

// Wait function
function pausecomp(millis)
{
var date = new Date();
var curDate = null;

do { curDate = new Date(); }
while(curDate-date < millis);
}

// image width
function Breedte(img){
sahiSendToServer("breed.php?q="+img);
}

// controle van status in tabel opdracht
function GetStatus(){
xmlhttp=GetXmlHttpObject();
if (xmlhttp==null)
  {
  alert ("Browser does not support HTTP Request");
  return;
  }
var url="status.php";
xmlhttp.onreadystatechange=statusChanged;
xmlhttp.open("GET",url,true);
xmlhttp.send(null);
}

function statusChanged()
{
if (xmlhttp.readyState==4)
{
alert(xmlhttp.responseText);
}
}

// begin BrowserDetect
  var BrowserDetect = {
    init: function () {
        this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
        this.version = this.searchVersion(navigator.userAgent)
            || this.searchVersion(navigator.appVersion)
            || "an unknown version";
        this.OS = this.searchString(this.dataOS) || "an unknown OS";
    },
    searchString: function (data) {
        for (var i=0;i<data.length;i++)    {
            var dataString = data[i].string;
            var dataProp = data[i].prop;
            this.versionSearchString = data[i].versionSearch || data[i].identity;
            if (dataString) {
                if (dataString.indexOf(data[i].subString) != -1)
                    return data[i].identity;
            }
            else if (dataProp)
                return data[i].identity;
        }
    },
    searchVersion: function (dataString) {
        var index = dataString.indexOf(this.versionSearchString);
        if (index == -1) return;
        return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
    },
    dataBrowser: [
        {
            string: navigator.userAgent,
            subString: "Chrome",
            identity: "Chrome"
        },
        {     string: navigator.userAgent,
            subString: "OmniWeb",
            versionSearch: "OmniWeb/",
            identity: "OmniWeb"
        },
        {
            string: navigator.vendor,
            subString: "Apple",
            identity: "Safari",
            versionSearch: "Version"
        },
        {
            prop: window.opera,
            identity: "Opera"
        },
        {
            string: navigator.vendor,
            subString: "iCab",
            identity: "iCab"
        },
        {
            string: navigator.vendor,
            subString: "KDE",
            identity: "Konqueror"
        },
        {
            string: navigator.userAgent,
            subString: "Firefox",
            identity: "Firefox"
        },
        {
            string: navigator.vendor,
            subString: "Camino",
            identity: "Camino"
        },
        {        // for newer Netscapes (6+)
            string: navigator.userAgent,
            subString: "Netscape",
            identity: "Netscape"
        },
        {
            string: navigator.userAgent,
            subString: "MSIE",
            identity: "Explorer",
            versionSearch: "MSIE"
        },
        {
            string: navigator.userAgent,
            subString: "Gecko",
            identity: "Mozilla",
            versionSearch: "rv"
        },
        {         // for older Netscapes (4-)
            string: navigator.userAgent,
            subString: "Mozilla",
            identity: "Netscape",
            versionSearch: "Mozilla"
        }
    ],
    dataOS : [
        {
            string: navigator.platform,
            subString: "Win",
            identity: "Windows"
        },
        {
            string: navigator.platform,
            subString: "Mac",
            identity: "Mac"
        },
        {
               string: navigator.userAgent,
               subString: "iPhone",
               identity: "iPhone/iPod"
        },
        {
            string: navigator.platform,
            subString: "Linux",
            identity: "Linux"
        }
    ]

};
BrowserDetect.init();
// end BrowserDetect


function isValidEmail(email, required) {
    if (required==undefined) {   // if not specified, assume it's required
        required=true;
    }
    if (email==null) {
        if (required) {
            return "Er is niets ingevoerd.";
        }
        return "good";
    }
    if (email.length==0) {
        if (required) {
            return "Er is niets ingevoerd.";
        }
        return "good";
    }
    if (! allValidChars(email)) {  // check to make sure all characters are valid
        return "Ongeldig teken gebruikt.";
    }
    if (email.indexOf("@") < 1) { //  must contain @, and it must not be the first character
        return "Een email-adres moet een @ bevatten, maar niet als 1e teken.";
    } else if (email.lastIndexOf(".") <= email.indexOf("@")) {  // last dot must be after the @
        return "Geen \'.\' achter het @ gevonden.\nDenk b.v. aan \'.nl\' of \'.com\'.";
    } else if (email.charAt(email.length-1) == ("@")) {  // @ must not be the last character
        return "\'@\' mag niet het laatste teken zijn.\nDenk b.v. aan \'hetnet.nl\' of \'gmail.com\'.";
    } else if (email.charAt(0) == (".")) {  // . must not be the first character
        return "\'.\' mag niet het eerste teken zijn.";
    } else if (email.charAt(email.length-1) == (".")) {  // . must not be the last character
        return "\'.\' mag niet het laatste teken zijn.\nDenk b.v. aan \'.nl\' of \'.com\'.";
    } else if (email.indexOf("..") >=0) { // two periods in a row is not valid
	 		return "2 punten achter elkaar is ongeldig.";
    } else if (email.indexOf(".@") >=0) { // .@ is not valid
			return "\'.@\' is ongeldig.";
    } else if (email.indexOf("@.") >=0) { // .@ is not valid
        return "\'@.\' is geen geldige domeinnaam.\nDenk b.v. aan \'hetnet.nl\' of \'gmail.com\'.";
    }
    return "good";
}

function allValidChars(email) {
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  for (var i=0; i < email.length; i++) {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}

