// ---------------------------------------------------------------------
// JAVASCRIPT	: PON 
// REVISION		: v1.2 - 05 mrt 2006
//				: JS specifiek voor PON !!
// ---------------------------------------------------------------------

Array.prototype.zoek = function (element) {
	for (var keys in this) {
		if (this[keys] == element) {return keys; break;}}
	return -1;}

var DB_array = new Array ({cookieVersion:"", lastVoteDate:"", issue1:"", issue2:"", issue3:"", issue4:"", issue5:"", issue6:"", issue7:"", issue8:"", issue9:"", issue10:""});
var cookieNo = "1";
var cookieName = "ponissues";

// ---- Macromedia Dreamweaver functions -------------------------------
function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.0
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && document.getElementById) x=document.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' bevat geen goed e-mail adres.\n';
      } else if (test!='R') {
        if (isNaN(val)) errors+='- '+nm+' moet een getal bevatten.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (val<min || max<val) errors+='- '+nm+' moet een nummer zijn tussen '+min+' en '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is verplicht.\n'; }
  } if (errors) alert('De volgende problemen zijn geconstateerd:\n'+errors);
  document.MM_returnValue = (errors == '');
}

function MM_showHideLayers() { //v6.0
  var i,p,v,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) if ((obj=MM_findObj(args[i]))!=null) { v=args[i+2];
    if (obj.style) { obj=obj.style; v=(v=='show')?'visible':(v=='hide')?'hidden':v; }
    obj.visibility=v; }
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}
// ---- KGUI functions -------------------------------------------------
function kgui_stripspaces (vStr) { // v1.0
	var s=0, e=vStr.length-1;
	while (	vStr.charAt(s)==" " ) {s++}
	while (	vStr.charAt(e)==" " ) {e--}
	return vStr.slice(s,++e);
}

var volgNr=0;	// For continuation of VOLGNR's
function kgui_cleanTRdata(vTableID,vOptions,vAction) { // v1.2 :: kgui_cleanTRdata(vTableID,"VOLGNR|DATUMCHECK=071231|ODDEVEN","STYLE=error|DELETE|VOLGNRCONTINUE");
	var flg_oddEven=false,flg_checkDate=false,flg_checkDate2=false,flg_volgnr=false,flg_deleteTR=false,flg_disableCurrTR=false,flg_volgnrContinue=false;
	var myTable = MM_findObj(vTableID);
	var myRowLst = myTable.getElementsByTagName("tr");
	var myNrRows = myRowLst.length;
	var myCellLst, myNrCells=0, trTitle="", trDate="";
	var odd=true;
	var s,e,args,vDate="";
	var argsA,vStyle="";
	
	if ( vOptions==undefined ) alert("KGUI : Parameter verwacht");
	else {
		args = vOptions.split("|");
		argsA = vAction.split("|");
		flg_volgnr=args.zoek("VOLGNR")<0?false:true;
		flg_oddEven=args.zoek("ODDEVEN")<0?false:true;
		flg_deleteTR=argsA.zoek("DELETE")<0?false:true;
		flg_volgnrContinue=argsA.zoek("VOLGNRCONTINUE")<0?false:true;
		if (!flg_volgnrContinue) {volgNr=0;}

		for (var i=0,t=0;i<args.length;i++) {// Check options for DATUMCHECK=
			t=args[i].indexOf("DATUMCHECK");
			if (t>=0){flg_checkDate=true;vDate=args[i].substr(11);break;}}

		for (var i=0,t=0;i<argsA.length;i++) {	// Check options for STYLE=
			t=argsA[i].indexOf("STYLE");
			if (t>=0){vStyle=argsA[i].substr(6);break;}}

		for( var i=0; i<myNrRows; i++) {	// Repeat for every <TR> in <TABLE>
			trTitle = myRowLst[i].title;
			if ( flg_checkDate ) {	// Perform <TR TITLE="[date] check
				s=trTitle.indexOf("[");
				e=trTitle.indexOf("]");
				// alert("s"+s+"e"+e+" - "+trTitle.slice((s+1),(e-1)))
				if ((s==-1)&&(e==-1)) flg_checkDate2 = false; // Title found but no '[DATE]' info
				else { flg_checkDate2 = true;
					trDate = trTitle.slice((s+1),e);
					myRowLst[i].title = trTitle.substr(e+1); }} // EndElseIf Perform <TR TITLE="[date] check
		
			myCellLst = myRowLst[i].getElementsByTagName("td");
			myNrCells = myCellLst.length;

			if ( myNrCells>0 ) {	// Er zijn <TD> aanwezig in deze <TR>
				if ( Number(trDate)<Number(vDate) && flg_checkDate2 ) flg_disableCurrTR=true;
				else flg_disableCurrTR=false;
				for( var j=0; j<myNrCells; j++) {	// Repeat for every <TD> in <TR>
					myCellLst[j].innerHTML = myCellLst[j].innerHTML.replace(/&lt;DATUM&gt;/,kgui_convertJJMMDD(trDate));
					if (flg_volgnr && myCellLst[j].innerHTML.indexOf("&lt;VOLGNR&gt;")>=0 && !flg_disableCurrTR) {
						myCellLst[j].innerHTML = myCellLst[j].innerHTML.replace(/&lt;VOLGNR&gt;/,++volgNr);
					}
				} //EndForeach <TD> in <TR>

				if ( flg_disableCurrTR ) {	// Bepaal de actie voor deze <TR> die buiten de datum valt
					if (flg_deleteTR) {myRowLst[i].className="nodisplay";
					} else { // Andere opties dan DELETE
						if (vStyle!="") myRowLst[i].className=vStyle;
					}
				}
			} //EndIf Er zijn <TD> aanwezig in deze <TR>
			if (!flg_disableCurrTR&&flg_oddEven&&!myRowLst[i].id=="") {
				odd?myRowLst[i].className="odd":myRowLst[i].className="even";
				odd=!odd;
			}
		} // EndForeach ROWS in TABLE
	} // EndIf PARAMETERS VERWACHT
}

var trc=new Array ();
function kgui_numberID () { // 1.0
	var args=kgui_numberID.arguments,ro,nro;
	
	for(var a=0; a<args.length; a++){
		ro=MM_findObj(args[a]).getElementsByTagName("tr");
		nro=ro.length;

		for(var i=0,newID="",tagFound; i<nro; i++) {
			tagFound=-1;
			newID = ro[i].id;
			if (newID!="") {
				newID = newID.substring(0,newID.indexOf("#"));
				for( var j=0; j<trc.length; j++ ) if (trc[j].id==newID) {tagFound=j;break;}
				if (tagFound<0) {tagFound=(trc.length);trc.push({id:newID,count:1})}
				else trc[tagFound].count++
				ro[i].id = newID + trc[tagFound].count;
			}}}}

function kgui_readCookie() {
	var cookieData = XMreadCookie(cookieName);
	var items_array;

	if (cookieData=="") { // Cookie bestaat niet, RESET database
		kgui_writeCookie();
	} else {
		items_array = cookieData.split("|");
		for (var i=0; i<items_array.length; i++ ) {
			var data_array = items_array[i].split("=");
			// alert ( items_array[i] +" SPLIT: "+ data_array[0] +" = "+ data_array[1] ) ; 
			switch ( data_array[0] ) {
				case "lastVoteDate" :		DB_array[0].lastVoteDate = data_array[1]; break;
				case "cookieVersion" :		DB_array[0].cookieVersion = data_array[1]; break;
				case "issue1" :				DB_array[0].issue1 = data_array[1]; break;
				case "issue2" :				DB_array[0].issue2 = data_array[1]; break;
				case "issue3" :				DB_array[0].issue3 = data_array[1]; break;
				case "issue4" :				DB_array[0].issue4 = data_array[1]; break;
				case "issue5" :				DB_array[0].issue5 = data_array[1]; break;
				case "issue6" :				DB_array[0].issue6 = data_array[1]; break;
				case "issue7" :				DB_array[0].issue7 = data_array[1]; break;
				case "issue8" :				DB_array[0].issue8 = data_array[1]; break;
				case "issue9" :				DB_array[0].issue9 = data_array[1]; break;
				case "issue10" :			DB_array[0].issue10 = data_array[1]; break;
				
				default:
					alert ( "WARNING 101 : onbekende parameter in COOKIE '"+data_array[0]+"'");
			}}}}

function kgui_writeCookie() {
	var cookieData="";
	
	cookieData = "cookieVersion="+cookieNo+"|lastVoteDate=" +DB_array[0].lastVoteDate+"|issue1=" +DB_array[0].issue1+"|issue2=" +DB_array[0].issue2+"|issue3=" +DB_array[0].issue3+"|issue4=" +DB_array[0].issue4+"|issue5=" +DB_array[0].issue5+"|issue6=" +DB_array[0].issue6+"|issue7=" +DB_array[0].issue7+"|issue8=" +DB_array[0].issue8+"|issue9=" +DB_array[0].issue9+"|issue10=" +DB_array[0].issue10;
	XMwriteCookie(cookieName,cookieData,365);
}

function XMwriteCookie(n,i,t){ // v1.0
	var ep="";if (t){d = new Date();d.setTime(d.getTime()+(t*86400000));
	ep = "; expires="+d.toGMTString();}document.cookie = n+"="+i+ep+"; path=/";
}

function XMreadCookie(n){ // v1.0
	eq = n+"=";ca = document.cookie.split(';');for(var i=0;i<ca.length;i++) {
	c=ca[i];while (c.charAt(0)==' ') c = c.substring(1,c.length);
	if (c.indexOf(eq) == 0) return c.substring(eq.length,c.length);}return '';
}

function kgui_highLiteTR(vThis,vTag) { // v1.1
	var obj = vThis;
	if (vTag=="") vTag="TR";
	while (obj.tagName!=vTag) obj=obj.parentNode;
	if (obj.className=="hl") obj.className = "";
	else obj.className = "hl";
} // kgui_highLiteTR()

function fieldHighlite (vThis) { vThis.className = "highlite" ;}

function fieldBlur () {
	for ( i in fieldLst ) MM_findObj(fieldLst[i]).className = "" ;}

var oldStyle ; // Bewaren oude style <TR> / <TD> / Object
function htr ( vId, vState, vClass ) {
	if(!vClass) vClass="htrs" ;
	if ( vState ) {
		 oldStyle = MM_findObj(vId,window.document).className ;
		 MM_findObj(vId,window.document).className = vClass ;
	} else if (oldStyle != null) MM_findObj(vId,window.document).className = oldStyle ;
}

// ---- AJAX functions --------------------------------------------------
function kgui_createRequest () { // V1.0
	try {
  		AJAXrequest = new XMLHttpRequest();
	} catch (trymicrosoft) {
  		try {
    		AJAXrequest = new ActiveXObject("Msxml2.XMLHTTP");
  		} catch (othermicrosoft) {
    		try {
      			AJAXrequest = new ActiveXObject("Microsoft.XMLHTTP");
    		} catch (failed) {
      			AJAXrequest = false;
    		}}}

	if (!AJAXrequest)
  		alert("Jouw browser ondersteunt geen XMLHttpRequest (AJAX).");
	return AJAXrequest;
}