var bIsMSIE = (whichBrs()=='Internet Explorer');
var bIsFF 	= (whichBrs()=='Firefox');
var bIsNN	= (whichBrs()=='Netscape');

var mainbgcolor	= '#424748'; 
var focuscolor	= '#FFFFFF';

var bPageLoaded = false;


// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ string checks ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


function searchLastValue(haystack, needle){
	
    
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    var s=String();
    s=haystack;    
    for ( var i = s.length; i > -1; i-- ) {       	
    	if ( s.indexOf(needle, i) > -1 ) {
    		return i;
    	}
    }
    
    return false
    
}


function isStringValid(oControl){
	var i;	
	var s = oControl.value;	
	if(s==''){return(true)}
	for(i=0;i<s.length;i++)
	{
		if(!((s.substr(i,1)>='a'&&s.substr(i,1)<='z')||(s.substr(i,1)>='A'&&s.substr(i,1)<='Z')||(s.substr(i,1)>='0'&&s.substr(i,1)<='9')||s.substr(i,1)=='_')){return(false)}
	}
	return true;

}

function isTextValid(oControl, sTitle){	
	if(oControl.value==''){alert(sTitle.substr(0,1).toUpperCase()+sTitle.substr(1)+' is (nog) niet ingevuld');return(false)}
	if(!isStringValid(oControl)){alert('Bij '+sTitle+' mag u enkel de karakters a..z, A..Z, 0..9 en \'_\' gebruiken.');return(false)}	
	return true;	
	
}

function isPassValid(oControl, sTitle){	
	if(oControl.value==''){alert(sTitle.substr(0,1).toUpperCase()+sTitle.substr(1)+' is (nog) niet ingevuld');return(false)}
	if(!isStringValid(oControl)){alert('Bij '+sTitle+' mag u enkel de karakters a..z, A..Z, 0..9 en \'_\' gebruiken.');return(false)}	
	return true;	
}


function isLenghtValid(oControl, length, title){
	var s = new String();
	s = oControl.value;	
	if(s!=''){if(s.length<length){alert(title.substr(0,1).toUpperCase()+title.substr(1)+' moet minimaal '+length+' characters bevatten.');return false}}	
	return true;
}

function isURLValid(s){
	var i;
	if(s==''){return(true)}
	for(i=0;i<s.length;i++){
		if(!((s.substr(i,1)>='a'&&s.substr(i,1)<='z')||(s.substr(i,1)>='A'&&s.substr(i,1)<='Z')||(s.substr(i,1)>='0'&&s.substr(i,1)<='9')||s.substr(i,1)=='/'||s.substr(i,1)==':'||s.substr(i,1)=='.')){return(false)}
	}
	return true;
}


function SetUpperCase(sObj){
	var s = sObj.value;
	sObj.value=s.toUpperCase();										
}

function setToUppercase(o){
  o.value=o.value.toUpperCase().replace(/([^0-9A-Z])/g,"");
}

function isNameValid(s){
	var i;
	return true;
	if(s==''){return(true)}
	for(i=0;i<s.length;i++)
	{
		if(!((s.substr(i,1)>='a'&&s.substr(i,1)<='z')||(s.substr(i,1)>='A'&&s.substr(i,1)<='Z')||(s.substr(i,1)>='0'&&s.substr(i,1)<='9')||s.substr(i,1)==' '||s.substr(i,1)=='-')){return(false)}
	}
	return true;

}



function areJustLettres(s){
	var i;
	if(s==''){return(true)}
	for(i=0;i<s.length;i++)
	{
		if(!((s.substr(i,1)>='a'&&s.substr(i,1)<='z')||(s.substr(i,1)>='A'&&s.substr(i,1)<='Z'))){return(false)}
	}
	return true;

}





// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ number checks ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^



function chkNumber(obj){			
		var sSearch = '0123456789';
		var s = new String();
		for(var i=0;i<obj.value.length;i++)
		{
			s = obj.value.substr(i,1);				
			if(sSearch.indexOf(s)==-1){obj.value=0;break}
		}		
	}

function chkTime(obj){			
		var sSearch = '0123456789';
		var s = new String();
		for(var i=0;i<obj.value.length;i++)
		{
			s = obj.value.substr(i,1);				
			if(sSearch.indexOf(s)==-1){obj.value='00';break}
		}
		return true
	}

function chkThousands(obj){			
	var sSearch = '0123456789';
	var s = new String();
	for(var i=0;i<obj.value.length;i++)
	{
		s = obj.value.substr(i,1);				
		if(sSearch.indexOf(s)==-1){obj.value='000';break}
	}	
}


function chkTelephone(obj){	
	if(iTelnr.length<10){alert("Het nummer moet minimaal 10 cijfers bevatten.");return(false)}
	for(i=0;i<iTelnr.length;i++)
	{
		if(isNaN(iTelnr.charAt(i)))
		{
			alert("Het nummer mag enkel cijfers bevatten");
			return(false)
		}
	}	
	return(true)
}


// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ date time ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^


function getDateTime(){
	var s, d;
	d = new Date();
	s = new String();
	s += rightChar('0'+d.getDate(),2) + "-";
	s += rightChar('0'+(d.getMonth() + 1),2) + "-";  
	s += d.getFullYear();
	s += ' ';
	s += rightChar('0'+d.getHours(),2) + ":";
	s += rightChar('0'+d.getMinutes(),2);
	return s;	
}


function rightChar(s, i){
	return s.substr(s.length-i)
}


function GetDayName(i)
{
	switch(i){
		case 0:
			return 'zondag';
		case 1:
			return 'maandag';
		case 2:
			return 'dinsdag';
		case 3:
			return 'woensdag';
		case 4:
			return 'donderdag';
		case 5:
			return 'vrijdag';
		case 6:
			return 'zaterdag';
		default:
			return '';
	}
}

function GetMonthName(i)
{
	switch(i){
		case 0:
			return 'januari';
		case 1:
			return 'februari';
		case 2:
			return 'maart';
		case 3:
			return 'april';
		case 4:
			return 'mei';
		case 5:
			return 'juni';
		case 6:
			return 'juli';
		case 7:
			return 'augustus';
		case 8:
			return 'september';
		case 9:
			return 'oktober';
		case 10:
			return 'november';
		case 11:
			return 'december';
		default:
			return '';
			
	}
}


var dtCh= "/";
var minYear=1900;
var maxYear=2100;

function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}

function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31;
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   } 
   return this
}

function isDate(dtStr, control){	
	var daysInMonth = DaysArray(12);
	var dtCh = '-';
	var pos1=dtStr.indexOf(dtCh);
	var pos2=dtStr.indexOf(dtCh,pos1+1);
	var strDay=dtStr.substring(0,pos1);
	var strMonth=dtStr.substring(pos1+1,pos2);
	var strYear=dtStr.substring(pos2+1);
	strYr=strYear;
	if (strDay.charAt(0)=="0" && strDay.length>1) strDay=strDay.substring(1);
	if (strMonth.charAt(0)=="0" && strMonth.length>1) strMonth=strMonth.substring(1);
	for (var i = 1; i <= 3; i++) {
		if (strYr.charAt(0)=="0" && strYr.length>1) strYr=strYr.substring(1)
	}
	month=parseInt(strMonth);
	day=parseInt(strDay);
	year=parseInt(strYr);
	
	if (pos1==-1 || pos2==-1){
		alert("De datum moet er als volgt uitzien : dd-mm-jj");
		return false
	}
	if (strMonth.length<1 || month<1 || month>12){
		alert("De maand van "+control+" is onjuist");
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		alert("De dag van "+control+" is onjuist");
		return false
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear){
		//alert("Het jaar van "+control+" moet tussen "+minYear+" en "+maxYear+" zijn.")
		//return false
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false){
		alert("De "+control+" is onjuist");
		return false
	}
return true
}


function dateFromNow(ddate, diffDays) {
	with (D = new Date()) {
		setDate(getDate() + diffDays)
		return D 
	} 
} 


// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ miscellaneous ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

function IsEmailValid (emailStr) {

	var checkTLD=1;

	var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|nl)$/;


	var emailPat=/^(.+)@(.+)$/;

	var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";


	var validChars="\[^\\s" + specialChars + "\]";


	var quotedUser="(\"[^\"]*\")";


	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;


	var atom=validChars + '+';


	var word="(" + atom + "|" + quotedUser + ")";



	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");


	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");

	var matchArray=emailStr.match(emailPat);

	if (matchArray==null) {
		alert('Het emailadres schijnt niet goed te zijn (check @ en de puntjes)');
		return false;
	}
	var user=matchArray[1];
	var domain=matchArray[2];



	for (i=0; i<user.length; i++) {
		if (user.charCodeAt(i)>127) {
			alert("Het emailadres bevat verkeerde karakters.");
			return false;
		}
	}

	for (i=0; i<domain.length; i++) {
		if (domain.charCodeAt(i)>127) {
			alert("Het emailadres bevat verkeerde karakters.");
			return false;
		}
	}


	if (user.match(userPat)==null) {
		alert('Het emailadres schijnt niet goed te zijn.');
		return false;
	}

	var IPArray=domain.match(ipDomainPat);
	if (IPArray!=null) {
		for (var i=1;i<=4;i++) {
			if (IPArray[i]>255) {
				alert("Ip adres is niet goed");
				return false;
			}
		}
		return true;
	}

	var atomPat=new RegExp("^" + atom + "$");
	var domArr=domain.split(".");
	var len=domArr.length;
	for (i=0;i<len;i++) {
		if (domArr[i].search(atomPat)==-1) {
			alert('Het emailadres schijnt niet goed te zijn.');
			return false;
		}
	}



	if (len<2) {
		alert('Het emailadres schijnt niet goed te zijn.');
		return false;
	}

	return true;
}


function checkDomain(nname)
{
var arr = new Array('.com','.net','.org','.biz','.coop','.info','.museum','.name',
'.pro','.edu','.gov','.int','.mil','.ac','.ad','.ae','.af','.ag',
'.ai','.al','.am','.an','.ao','.aq','.ar','.as','.at','.au','.aw',
'.az','.ba','.bb','.bd','.be','.bf','.bg','.bh','.bi','.bj','.bm',
'.bn','.bo','.br','.bs','.bt','.bv','.bw','.by','.bz','.ca','.cc',
'.cd','.cf','.cg','.ch','.ci','.ck','.cl','.cm','.cn','.co','.cr',
'.cu','.cv','.cx','.cy','.cz','.de','.dj','.dk','.dm','.do','.dz',
'.ec','.ee','.eg','.eh','.er','.es','.et','.fi','.fj','.fk','.fm',
'.fo','.fr','.ga','.gd','.ge','.gf','.gg','.gh','.gi','.gl','.gm',
'.gn','.gp','.gq','.gr','.gs','.gt','.gu','.gv','.gy','.hk','.hm',
'.hn','.hr','.ht','.hu','.id','.ie','.il','.im','.in','.io','.iq',
'.ir','.is','.it','.je','.jm','.jo','.jp','.ke','.kg','.kh','.ki',
'.km','.kn','.kp','.kr','.kw','.ky','.kz','.la','.lb','.lc','.li',
'.lk','.lr','.ls','.lt','.lu','.lv','.ly','.ma','.mc','.md','.mg',
'.mh','.mk','.ml','.mm','.mn','.mo','.mp','.mq','.mr','.ms','.mt',
'.mu','.mv','.mw','.mx','.my','.mz','.na','.nc','.ne','.nf','.ng',
'.ni','.nl','.no','.np','.nr','.nu','.nz','.om','.pa','.pe','.pf',
'.pg','.ph','.pk','.pl','.pm','.pn','.pr','.ps','.pt','.pw','.py',
'.qa','.re','.ro','.rw','.ru','.sa','.sb','.sc','.sd','.se','.sg',
'.sh','.si','.sj','.sk','.sl','.sm','.sn','.so','.sr','.st','.sv',
'.sy','.sz','.tc','.td','.tf','.tg','.th','.tj','.tk','.tm','.tn',
'.to','.tp','.tr','.tt','.tv','.tw','.tz','.ua','.ug','.uk','.um',
'.us','.uy','.uz','.va','.vc','.ve','.vg','.vi','.vn','.vu','.ws',
'.wf','.ye','.yt','.yu','.za','.zm','.zw');

var mai = nname;
var val = true;

var dot = mai.lastIndexOf(".");
var dname = mai.substring(0,dot);
var ext = mai.substring(dot,mai.length);
//alert(ext);
	
if(dot>2 && dot<57)
{
	for(var i=0; i<arr.length; i++)
	{
	  if(ext == arr[i])
	  {
	 	val = true;
		break;
	  }	
	  else
	  {
	 	val = false;
	  }
	}
	if(val == false)
	{
	  	 alert("Your domain extension "+ext+" is not correct");
		 return false;
	}
	else
	{
		for(var j=0; j<dname.length; j++)
		{
		  var dh = dname.charAt(j);
		  var hh = dh.charCodeAt(0);
		  if((hh > 47 && hh<59) || (hh > 64 && hh<91) || (hh > 96 && hh<123) || hh==45 || hh==46)
		  {
			 if((j==0 || j==dname.length-1) && hh == 45)	
		  	 {
		 	  	 alert("Een domeinnaam mag niet met een '-' beginnen");
			      return false;
		 	 }
		  }
		else	{
		  	 alert("Een domeinnaam mag geen ongebruikelijke tekens bevatten");
			 return false;
		  }
		}
	}
}
else
{
 alert("Uw dowmein is te kort/lang");
 return false;
}	

return true;
}


function whichBrs() {
	var agt=navigator.userAgent.toLowerCase();
	if (agt.indexOf("opera") != -1) return 'Opera';
	if (agt.indexOf("staroffice") != -1) return 'Star Office';
	if (agt.indexOf("beonex") != -1) return 'Beonex';
	if (agt.indexOf("chimera") != -1) return 'Chimera';
	if (agt.indexOf("netpositive") != -1) return 'NetPositive';
	if (agt.indexOf("phoenix") != -1) return 'Phoenix';
	if (agt.indexOf("firefox") != -1) return 'Firefox';
	if (agt.indexOf("safari") != -1) return 'Safari';
	if (agt.indexOf("skipstone") != -1) return 'SkipStone';
	if (agt.indexOf("msie") != -1) return 'Internet Explorer';
	if (agt.indexOf("netscape") != -1) return 'Netscape';
	if (agt.indexOf("mozilla/5.0") != -1) return 'Mozilla';
	if (agt.indexOf('\/') != -1) {
		if (agt.substr(0,agt.indexOf('\/')) != 'mozilla') {
			return navigator.userAgent.substr(0,agt.indexOf('\/'));}
			else return 'Netscape';} else if (agt.indexOf(' ') != -1)
			return navigator.userAgent.substr(0,agt.indexOf(' '));
			else return navigator.userAgent;
}



function popUp(filename,imageWidth,imageHeight,bScroll){
	var sOptions = String();
	sOptions = 'height='+imageHeight+',width='+imageWidth+',status=no,toolbar=no,menubar=no,location=no';
	if(bScroll){sOptions+=',scrollbars=yes'}
	window.open(filename,null,sOptions);
}


function changeScrollbarColor(){	
	if (document.all){
		document.body.style.scrollbarBaseColor			= mainbgcolor;
		document.body.style.scrollbar3dLightColor		= mainbgcolor;
		document.body.style.scrollbarArrowColor			= focuscolor;
		document.body.style.scrollbarDarkShadowColor	= mainbgcolor;
		document.body.style.scrollbarFaceColor			= mainbgcolor;
		document.body.style.scrollbarHighlightColor		= focuscolor;
		document.body.style.scrollbarShadowColor		= mainbgcolor;
		document.body.style.scrollbarTrackColor			= focuscolor;
	}
}







function confirmSubmit(){
var agree=confirm("Weet u zeker dat u door wilt gaan?");
if (agree)
	return true ;
else
	return false ;
}


function setAlphaThumb(obj){
	obj.style.cursor='pointer';
	switch(true){
		case bIsMSIE:
		obj.style.filter='Alpha(Opacity=50, FinishOpacity=50,Style=1, StartX=0, StartY=0, FinishX='+obj.style.pixelWidth+',FinishY='+obj.style.pixelHeight+')';
		break;
		case bIsFF:		
		obj.style.opacity=.50;
		//alert(obj.id);
		
	}
}

function setNormalThumb(obj){
	switch(true){
		case bIsMSIE:
		obj.style.filter='Alpha(Opacity=100, FinishOpacity=100,Style=1, StartX=0, StartY=0, FinishX='+obj.style.pixelWidth+',FinishY='+obj.style.pixelHeight+')';
		break;
		case bIsFF:
		obj.style.opacity=1;
	}
}


//select options

function addOption(oSelect, sText, sValue)
	{
		newOption = new Option(sValue, sText);
		if (oSelect.length == 1 && (oSelect.options[0].value == '')) {
			 oSelect.options[0] = newOption;
		} else {
		  oSelect.options[oSelect.length] = newOption;
		}
		newOption.selected = false;
	}


function optionExists(val, field)
	{
		for(var i = 0;i < field.length;i++)
		{
			if(field.options[i].value==val)
				return true;
		}
			return false;
	}

function removeOption(field) {
	if(field.options[field.selectedIndex].value != '') {
		if (field.length == 1) {
			field.options[0].selected = false;
			newOption = new Option(' ','');
			field.options[0] = newOption;
		} else {
			field.options[field.selectedIndex] = null;
		}
	} else {
            field.options[field.selectedIndex].selected = false;
        }
}

function lite(obj) { 
   if(document.all&&!window.opera) { 	
   obj.filters.blendTrans.apply(); 
   obj.filters.blendTrans.play(); 
   }
}

function fadeOut(obj) {
    obj.style.filter="blendTrans(duration=2)";
    // Make sure the filter is not playing.
    if (obj.filters.blendTrans.status != 2) {
        obj.filters.blendTrans.apply();
        obj.style.visibility="hidden";
        obj.filters.blendTrans.play();
    }
}
function fadeIn(obj) {
	
    obj.style.filter="blendTrans(duration=2)";
    // Make sure the filter is not playing.
    if (obj.filters.blendTrans.status != 2) {
        obj.filters.blendTrans.apply();
        obj.style.visibility="visible";
        obj.filters.blendTrans.play();
    }
}

function mnuover(o)
{		
	o.style.cursor='hand';
	opacity(o.id,100,50,1000)
}
		
function mnuclick(o)
{
	window.location.href=o.innerHTML+'.php';			
}
		
function mnuout(o)
{	
	opacity(o.id,50,100,1000)
}

function opacity(id, opacStart, opacEnd, millisec) { 
    //speed for each frame 
    
    var speed = Math.round(millisec / 100); 
    var timer = 0; 

    //determine the direction for the blending, if start and end are the same nothing happens 
    if(opacStart > opacEnd) { 
        for(i = opacStart; i >= opacEnd; i--) { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } else if(opacStart < opacEnd) { 
        for(i = opacStart; i <= opacEnd; i++) 
            { 
            setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed)); 
            timer++; 
        } 
    } 
} 

//change the opacity for different browsers 
function changeOpac(opacity, id) { 
    var object = document.getElementById(id).style; 
    object.filter = "alpha(opacity=" + opacity + ")"; 
} 


function showPic(oImg){
	
	var img2=new Image();
	var sFile = new String();
	sFile = oImg.src;
	sFile = sFile.replace('th_','');
	sFile = sFile.replace('.gif','.jpg');
	img2.src=sFile;
	img2.onload = function (evt){
		var iWidth  = img2.width;
		var iHeight = img2.height;
		popUp('images/showpic.php?pic='+sFile, iWidth, iHeight, false)
	}
}

function showPicString(sImg){
	
	var img2=new Image();	
	img2.src=sImg;	
	img2.onload = function (evt){
		var iWidth  = img2.width;
		var iHeight = img2.height;
		sImg = sImg.replace('images/', '');
		popUp('images/showpic.php?pic='+sImg, iWidth, iHeight, false)
	}
}


function zeroInFront(value, maxLength) {

var numLength = (value + '').length;
for (var i=numLength; i<maxLength; i++) {
value = '0' + value;}

return value;}






//#######################################   POPUP   ################################################################


