function timestamp(datum) { if (datum == null || datum == '') {datum = new Date()} var year = Fill(datum.getFullYear(),4); var month = Fill(datum.getMonth()+1,2); var day = Fill(datum.getDate(),2); var hours = Fill(datum.getHours(),2); var minutes = Fill(datum.getMinutes(),2); var seconds = Fill(datum.getSeconds(),2); var milli = Fill(datum.getMilliseconds(),3); return year+month+day+hours+minutes+seconds+milli; } function Fill(x,y) { while (String(x).length < y) { x="0"+x; } return String(x); } function inArray(elem,arr){ if( arr==null || typeof(arr.length) == 'undefined') { return false; } for(var x=0;x= 0; i-- ) { if ((count == 3 ) && (parts[0].charAt(i)!="-")) { count = 0 ; number = "." + number ; } number = parts[0].charAt(i) + number; count++; } return number + (parts.length > 1?","+parts[1]:""); } return value; } function trim( s ) { return ltrim(rtrim(s)); } function rtrim( s ) { s = String(s); for( var i=s.length-1; i >= 0 && isWhiteSpace(s.charAt(i)); i-- ); if( i < 0 ) return ""; return s.substr(0,i+1); } function ltrim( s ) { s = String(s); for( var i=0; i < s.length && isWhiteSpace(s.charAt(i)); i++ ) ; if( i==s.length ) { return ''; } return s.substr(i); } function FirstUp(sInput) { var sOutput = ""; sInput = ltrim(sInput.toLowerCase()); for (var i = 0; i < sInput.length; i++) { if (i == 0) { sOutput = sOutput + sInput.charAt(i).toUpperCase(); } else { if ((sInput.charAt(i-1) == " ") || (sInput.charAt(i-1) == "-")) { sOutput = sOutput + sInput.charAt(i).toUpperCase(); } else { sOutput = sOutput + sInput.charAt(i); } } } return sOutput; } function isWhiteSpace( c ) { return( c == ' ' || c=='\t' || c=='\n' || c=='\r' ); } function print_r_impl( item, depth, printFunctions, recursionPreventionStack ) { // begin with the variables var typename = typeof( item ); // object ? if( typename=='object' ) { // is this object alread placed on the stack for( var i=0; i < recursionPreventionStack.length; i++ ) { if( recursionPreventionStack[i] == item && item != null ) { return prefixText = " ** Preventing Recursion ** "; } } recursionPreventionStack[recursionPreventionStack.length] = item; // make the prefix var prefixText = ""; for( var i=0; i < depth; i++ ) prefixText += "\t"; // list all childs var result = prefixText + "Object\r\n"; var itemcount = 0 ; result+= prefixText + "{\r\n"; try { for( name in item ) { result += prefixText + "\t"+ name + " => " + print_r_impl( item[name], depth+1, printFunctions, recursionPreventionStack ) + "\r\n"; itemcount++; } } catch( except ) { if( item.xml ) { print_r_impl_id++; return "XMLDocument()..."+ ""; } return prefixText + "ActiveXObject{ TODO: listing activex methods and members("+item.xml+") }\r\n"; } result+= prefixText + "}\r\n"; if( itemcount == 0 ) { if( item == null ) return "NULL"; return "Object{}";// \r\n"; } return result; } // function ? if( typename=='function' && !printFunctions ) { return " function()"; } else { return "("+typename+") "+ item; } } function print_r( item, printFunctions ) { var recursionPreventionStack = new Array(); // recursion prevention stack var result = "
";
result += print_r_impl( item, 0, printFunctions, recursionPreventionStack );
result += "
"; return result; } function XML2VolledigeNaam(PersoonNode,postfix) { retval = ''; if (postfix==null) {postfix=''} if (GetNodeValue(PersoonNode,"Voorletters"+postfix) + GetNodeValue(PersoonNode,"Voorvoegsel"+postfix) + GetNodeValue(PersoonNode,"Achternaam"+postfix) != '') { if (GetNodeValue(PersoonNode,"Geslacht"+postfix)=="M") { retval+="Dhr. "; } else if (GetNodeValue(PersoonNode,"Geslacht"+postfix)=="V") { retval+="Mevr. "; } else { retval+="Dhr./Mevr. "; } if (GetNodeValue(PersoonNode,"Voorletters"+postfix)) { retval += GetNodeValue(PersoonNode,"Voorletters"+postfix)+" "; } if (GetNodeValue(PersoonNode,"Voorvoegsel"+postfix)) { retval += GetNodeValue(PersoonNode,"Voorvoegsel"+postfix)+" "; } if (GetNodeValue(PersoonNode,"Achternaam"+postfix)) { retval += GetNodeValue(PersoonNode,"Achternaam"+postfix); } } return retval; } function XML2VolledigeKindNaam(PersoonNode, reversed) { retval = ''; if( reversed ) { if (GetNodeValue(PersoonNode,"Achternaam")) { retval += GetNodeValue(PersoonNode,"Achternaam")+" "; } if (GetNodeValue(PersoonNode,"Voorvoegsel")) { retval += GetNodeValue(PersoonNode,"Voorvoegsel"); } if (GetNodeValue(PersoonNode,"Roepnaam")) { retval = trim(retval); retval += ", "; retval += GetNodeValue(PersoonNode,"Roepnaam"); } } else { if (GetNodeValue(PersoonNode,"Roepnaam")) { retval += GetNodeValue(PersoonNode,"Roepnaam")+" "; } if (GetNodeValue(PersoonNode,"Voorvoegsel")) { retval += GetNodeValue(PersoonNode,"Voorvoegsel")+" "; } if (GetNodeValue(PersoonNode,"Achternaam")) { retval += GetNodeValue(PersoonNode,"Achternaam"); } } return retval; } function intersection( begin1, eind1, begin2, eind2, exclusive ) { if(exclusive == null || exclusive == "") exclusive = false; begin1 = Number(begin1); begin2 = Number(begin2); eind1 = Number(eind1); eind2 = Number(eind2); // niet overlappen if( exclusive ) { if( eind1 <= begin2 ) return false; if( eind2 <= begin1 ) return false; } else { if( eind1 < begin2 ) return false; if( eind2 < begin1 ) return false; } // anders dit return [Math.max(begin1,begin2),Math.min(eind1,eind2) ]; } function intersectionArray( arrA, arrB, exclusive ) { // unions maken van input //arrA = unionArray(arrA); //arrB = unionArray(arrB); // kopieer arrA naar het resultaat var result = new Array(); for( var i=0; i < arrA.length; i++ ){ result[i] = arrA[i]; } // Bereken de intersectie voor elk element for( var ia=0; ia "+ intersection( result[ia][0], result[ia][1], arrB[ib][0], arrB[ib][1],exclusive ),__DebugLevel__); var tmpResult = intersection( result[ia][0], result[ia][1], arrB[ib][0], arrB[ib][1],exclusive ); if( tmpResult ) { if( !itemResult ) { itemResult = tmpResult; } else { result[result.length] = tmpResult; } } } result[ia] = itemResult; } // compress nu het resultaat var result2 = new Array(); for( var i=0; i < result.length; i++ ) { if( result[i] ) { result2[ result2.length] = result[i]; } } return result2; } function union( begin1, eind1, begin2, eind2 ) { // Overlappende periodes? begin1 = Number(begin1); begin2 = Number(begin2); eind1 = Number(eind1); eind2 = Number(eind2); if( intersection( begin1, eind1, begin2, eind2, false ) ) { return [ [Math.min(begin1,begin2), Math.max(eind1,eind2) ] ]; } // anders geef de twee afzonderlijke periodes terug return [[begin1,eind1],[begin2,eind2]]; } function unionArray( arr ) { // voor alle items var unionFound = false; do { unionFound = false; // MOET HIER STAAN!! for( var i=0; i < arr.length; i++ ) { if( arr[i] == false ) continue; // skip deleted items var rangeA = arr[i]; // voor alle items for( var j=i+1; j < arr.length; j++ ) { if( arr[j] == false ) continue; // skip deleted items var rangeB = arr[j]; // Is er een union, vervang item 'i' dan door deze union en begin opnieuw // Vervang vervolgens item [j] door false... var newItems = union( rangeA[0], rangeA[1], rangeB[0], rangeB[1] ); if( newItems.length == 1 ) { unionFound = true; arr[i] = newItems[0]; arr[j] = false; } } // for j } // for i } while( unionFound ) // bouw het resultaat (Negeer de false items) var result = new Array(); for( var i=0; i < arr.length; i++ ) { if( arr[i] ) result[result.length] = arr[i]; } return result; } function difference( begin1, eind1, begin2, eind2 ) { // 1: [ ] // 2: [XXXXX] // = [ ] [ ] begin1 = Number(begin1); begin2 = Number(begin2); eind1 = Number(eind1); eind2 = Number(eind2); if( ( begin1 < begin2 && begin2 < eind1 ) && ( begin1 < eind2 && eind2 < eind1 ) ) { return [ [begin1,begin2], [eind2,eind1] ] } // 1: [ ] // 2: [XXXXXXXXXXXXX] // =: (leeg) if( ( begin2 <= begin1 && begin1 <= eind2 ) && ( begin2 <= eind1 && eind1 <= eind2 ) ) { return []; // LEEG ! } // 1: [ ] // 2: [XXXXXX] // =: [ ] if( begin1 < begin2 && begin2 < eind1 ) { return [[begin1,begin2]]; } // 1: [ ] // 2: [XXXXXX] // =: [ ] if( begin1 < eind2 && eind2 < eind1 ) { return [[eind2,eind1]]; } // anders gewoon het inkomende return [[begin1,eind1]]; } function differenceArray( arrA, arrB ) { // kopieer eerst arrA naar het resultaat. var result = new Array(); for( var i=0; i < arrA.length; i++ ) { result[i] = arrA[i]; } // bereken vervolgens voor ELK element in de array de difference! var ia=0; while(ia < result.length ) { var itemA = result[ia]; if( itemA != false ) { for( var ib=0; ib < arrB.length; ib++ ) { // bereken de difference tussen deze twee items var itemA = result[ia]; // Opnieuw opvragen, kan veranderd zijn in deze loop var itemB = arrB[ib]; var items = difference( itemA[0], itemA[1], itemB[0], itemB[1] ); // twee resultaten? huidige vervangen en de tweede toevoegen if( items.length == 2 ) { result[ia] = items[0]; result[result.length] = items[1]; } // een resultaat? else if( items.length == 1 ) { result[ia] = items[0]; } // anders geen resultaat else if( items.length == 0 ) { result[ia] = false; ib = arrB.length; } } } ia++; } // 'verwijder' alle falses uit de array var result2 = new Array(); for( var i=0; i < result.length; i++ ) { if( result[i] ) { result2[result2.length] = result[i]; } } return result2; } function toNumber( val, defValue ) { val = String(val).replace(/\,/g,"."); if( !defValue ) defValue=0; val = parseFloat(val); if( isNaN( val ) ) return defValue; return val; } function XMLsafe(code) { if(typeof(code) == 'undefined') { return ''; } code = String(code).replace(/&/g,'&'); code = String(code).replace(//g,'>'); code = String(code).replace(/"/g,'"'); code = String(code).replace(/'/g,'''); return code; } function SQLsafe(code) { if(typeof(code) == 'undefined') { return ''; } code = String(code).replace(/&/g,'&'); code = String(code).replace(/</g,'<'); code = String(code).replace(/>/g,'>'); code = String(code).replace(/"/g,'"'); code = String(code).replace(/'/g,"'"); return code; } function GetNodeValue(ElementNode, strAttributeName, strValueIfEmpty) { if (ElementNode!=null) { return selectSingleNode("@"+strAttributeName,ElementNode)!=null?selectSingleNode("@"+strAttributeName,ElementNode).nodeValue:(strValueIfEmpty==null?"":strValueIfEmpty); } else return (strValueIfEmpty==null?"":strValueIfEmpty); } function SetNodeValue(ElementNode, strAttributeName, strValue) { if (ElementNode == null || strValue == null) return false; else { var tmpNewAttr = selectSingleNode("@"+strAttributeName,ElementNode); if (!tmpNewAttr) { ElementNode.attributes.setNamedItem(ElementNode.ownerDocument.createAttribute(strAttributeName)); tmpNewAttr = selectSingleNode("@"+strAttributeName,ElementNode); } tmpNewAttr.nodeValue=strValue; return true; } } function CopyNodeValue(SourceNode, TargetNode, strSourceAttributeName, strTargetAttributeName) { var strAttributeName = strTargetAttributeName==null?strSourceAttributeName:strTargetAttributeName; return SetNodeValue(TargetNode,strAttributeName,GetNodeValue(SourceNode, strSourceAttributeName)); } function CreateChild(TargetNode, strElementName) { return TargetNode.appendChild(TargetNode.ownerDocument.createElement(strElementName)); } function xmlPrintStr(xmlStr) { if (!xmlStr) { return false; } //Als er een node is meegegeven, vervang deze door de xml van die node. if (xmlStr && xmlStr.xml) { xmlStr = xmlStr.xml; } var retStr = ""; //retStr+="
";
	retStr+="
";

	// splitsen op <
	try{
		xmlStr = String(xmlStr);
	}
	catch (e) {
		return("Xml string, niet van het goede type. Type: "+typeof(xmlStr));
	}
	var xmlArray = xmlStr.split(/\/,'<$1$2$3>');
	}

	// aan elkaar plakken
	xmlStr = "";
	for (var c=0; c";
	result += "<"+node.nodeName+"";
	if( node.attributes ) {
		for( var a=0; a < node.attributes.length; a++ ) {
			result += " "+node.attributes[a].nodeName+"="+ "'"+XMLsafe(node.attributes[a].nodeValue)+"'";
		}
	}

	if( node.childNodes.length == 0 ) { result += "/"; }
	result += ">\r\n";
	result += "
"; // schrijf kindjes if( node.childNodes.length > 0 ) { result += "
"; for( var i=0; i < node.childNodes.length; i++ ) { result += xmlPrint( node.childNodes[i], ip, level+1 ); } result += "
"; // schrijf end tag result += "</"+node.nodeName+">
\r\n"; } if( !level ) result += ""; // close pre at level 0 return result; } function SortNodeList(Nodelist, strSortBy, strSortBy2, clientside,type1,type2, desc1, desc2) { if (desc1) { var sign1=" < "; } else { var sign1=" > "; } if (desc2) { var sign2=" < "; } else { var sign2=" > "; } if( clientside ) { var tmpDoc = Sarissa.getDomDocument(); } else { var tmpDoc = new ActiveXObject("msxml.domdocument"); } if (typeof(type1) == 'undefined') { type1 = 'string'; } if (typeof(type2) == 'undefined') { type2 = 'string'; } tmpDoc.async=false; tmpDoc.loadXML(""); var tmpRoot = selectSingleNode("//tmpdoc",tmpDoc); var tmpNode; for (var i=0; i