/* (c) 1999-2005 Publinet bvba 
   Contain diverse CMS functions
*/

function FillComboWith (base, element, defaultval) {
/* **********************
Name: FillComboWith
Params: base; string, comma delimited ","
        element; form object
		defaultval; string	
*/
	var Arr;
	Arr = new Array;
	Arr = base.split("%");
	element.options.length=0;
	element.length=Arr.length-1;
	for (var i=0 ; i < Arr.length ; i++ ) {
		element[i] = new Option(Arr[i], Arr[i],false,false);
	}
	if (defaultval == "") {
		element.value="Onbepaald";
	} else {
		element.value=defaultval;
	}
}

function FillComboExWith (base, element, defaultval) {
/* **********************
Name: FillComboWith
Params: base; string, comma delimited ","
        element; form object
		defaultval; string	
*/
	var Arr;
	Arr = new Array;
	Arr = base.split("%");
	element.options.length=0;
	element.length=Arr.length/2;
	for (var i=0 ; i < Arr.length ; i=i+2) {
		if (Arr[i] != "") {
			element[i/2] = new Option(Arr[i], Arr[i+1],false,false);
		}
	}
	if (defaultval == "") {
		element.value="Onbepaald";
	} else {
		element.value=defaultval;
	}
}

function setfield(fieldname,waarde) {
/* **********************
Name: setfield
Params: fieldname: form field object
        waarde: value
Rem:	Check box value must be 'On'
        Radio buttons value must be 'Ja' 'Neen' 'Neutraal'
*/
	if (waarde == "") {return;}
	if (waarde == "0") {return;}
	var Cfield = new Object;
	Cfield = fieldname
	//alert(Cfield.type);
	if (Cfield.type == "text" || Cfield.type=="hidden") {
		Cfield.value = waarde;	
		return;
	}
	if (Cfield.type == "select-one") {
		for (var i = 0; i < Cfield.length; i++) {
			if (Cfield.options[i].value == waarde) {
				Cfield.options[i].selected = true;
				return;
			}
		}
	}
	if (Cfield.type == "select-multiple") {
	var waardes = waarde.split(", ");
		for (var i = 0; i <Cfield.length; i++) {
			for (var j=0; j < waardes.length; j++) {
				if (Cfield.options[i].value == waardes[j]) {
					Cfield.options[i].selected = true;
					break;
				}
			}
		}
		return;
	}
	if (Cfield.type == "checkbox") {
		if (waarde =="On") {
			Cfield.checked = true;
			return;
		}
	}
	// case else => radio button
	if (waarde == 0) {waarde = "Ja"}
	if (waarde == 1) {waarde = "Neen"}
	if (waarde == 0) {waarde = "Neutraal"}
	for (var i = 0; i < Cfield.length; i++) {
		if (Cfield[i].value == waarde) {
			Cfield[i].selected = true;
			return;
		}
	}
}

function IsNumber(inputVal) {
// internal use
	oneDecimal = false;
	inputStr = inputVal.toString();
	for (var i = 0; i < inputStr.length; i++) {
		var oneChar = inputStr.charAt(i);
		if (i == 0 && oneChar == "-") {
			continue;
		}
		if (oneChar == "." && !oneDecimal) {
			oneDecimal = true;
			continue;
		}
		if (oneChar < "0" || oneChar > "9") {
			return false;
		}
	}
	return true;
}

function validate(formname,elements) {
/* **********************
Name: validate
Params: formname; form object
        elements; comma delimted list of number-fields
*/

	var NumericList;
	var ArrNumeric;
	NumericList = elements;
	ArrNumeric = NumericList.split(",");
	for (var i = 0; i < ArrNumeric.length; i++) {
		var t = formname.fields(ArrNumeric[i]).value;
		if (!IsNumber(t)) {
			alert("Gelieve in het veld " + ArrNumeric[i] + " een getal in te vullen.");
			formname.fields(ArrNumeric[i]).focus();
			return false;
			break;
		}
	}
	return true;
}

function getCombo (cboN) {
/* **********************
Name: getCombo
Params: cboN: combo object
*/
	var t;
	t = cboN.options[cboN.selectedIndex].value;
	if ( t == "") {
		t = cboN.options[cboN.selectedIndex].text;
	}
	return t;
}

/*****/

var resetStatusUpdate = false;

function initStatusUpdate () { //takes care of initializing all the status update div's and so

	var divs = document.getElementsByTagName("span");
	var statusList = '';
	for (var i = 0; i < divs.length; i++) {
 	   if (divs[i].id.indexOf('ROWSTAT') >= 0) {
	   	statusList = statusList + divs[i].id + ',';
	 	}
	}
	if (statusList != '') {
		setTimeout('UpdateStatus("' + statusList + '")', 1000);
	}
}

function getHTTPObject() {
  var xmlhttp;
  /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/
  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }
  return xmlhttp;
}

function UpdateStatus(statusList) {
  	var sL;
	var details;
	if (resetStatusUpdate) {
		resetStatusUpdate = false;
		initStatusUpdate();
	} else {
		xmlhttp.open("GET", "/dynpage/admin/rowstat.asp?p=" + statusList + '&cb=' + Math.random(),true); //Beware of brower caching
		xmlhttp.onreadystatechange = handleHttpResponse ;
		xmlhttp.send(null);
		setTimeout('UpdateStatus("' + statusList + '")', 5000);
	}
}

function handleHttpResponse() {
  //alert('e' + xmlhttp.readyState );
  if (xmlhttp.readyState == 4) {
  	var c = xmlhttp.responseText;
	//alert(c);
 	var a = c.split("|");
	for (var i = 0; i < a.length; i=i+3) {
		if (a[i] != '') {
			try {
				var b = document.getElementById(a[i]);
				b.innerHTML = a[i+1];
				b.numStat = a[i+2];
			} catch(e) {
				// niks
			}
		}
	}
  }
}

function initEditKeepAlive (pageid, rnum) {
	setTimeout('EditKeepAlive(' + pageid + ',' + rnum +')', 5000);
}

function EditKeepAlive (pageid, rnum) {
	var myHttp = getHTTPObject(); //local
	myHttp.open("GET", "/dynpage/admin/dynpagesprocess.asp?action=keepalivedit&pageid=" + pageid + "&rnum=" + rnum, true);
	myHttp.send(null);
	setTimeout('EditKeepAlive(' + pageid + ',' + rnum +')', 5000);
}

// Used by statusupdate in DynPages
var xmlhttp = getHTTPObject(); // We create the HTTP Object

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function AddDL(i, link) {
	if (link != "0" && link != "" && link != "undefined") {
		var Arr;
		Arr = new Array;
		Arr = link.split("#");
		var subjec = aa["myP"+i];
		var localeditor = tinyMCE.getInstanceById('P' + i);
		localeditor.execCommand("mceInsertContent", '', ' <a href="'+Arr[0]+'">'+Arr[1]+'</a> ');
	}
}
	
function init() {
	Arr = new Array;
	Arr = initList.split(",");
	var c;
	//alert('Init started:' + initList);
	myjslog(0, 'Init started:' + initList);
	for (var i=0; i < Arr.length ; i++) {
		//if (Arr[i] != 'startMenu()') {
			//alert(Arr[i]);
			var d = new Date();
			c = d.getSeconds() + ":" + d.getMilliseconds() + Arr[i] + '<br>';
			eval(Arr[i].replace(/;/g, ","));
		//}
	}
}

function myjslog(c, b) {
	//alert(b);
	try{
		var a = document.getElementById('logwindow');
		var d = new Date();
		a.innerHTML = a.innerHTML + c + '';
		a.innerHTML = a.innerHTML + d.getSeconds() + ":" + d.getMilliseconds() + b + '<br>';
	} catch(e) {}
}

function resizeevent() {
	Arr = new Array;
	Arr = resizeList.split(",");
	for (var i=0; i < Arr.length ; i++) {
		eval(Arr[i]);
	}
}

function isNull(a) {
    return typeof a == 'object' && !a;
}

function editme (pageid, rnum, eurl) {
	var a = "ROWSTAT_" + pageid + "_" + rnum;
	var b = document.getElementById(a);

	if ( isNull(b)) {
		document.location.href = eurl;
		return;
	}
	//if (b.numStat == '0') {
		document.location.href = eurl;
	//} else {
	//	alert("Deze gegevens worden momenteel door een andere gebruiker aangepast.");
	//}
}

function isdefined( variable) {
	return (typeof(window[variable]) == "undefined")? false: true;
} 
