var loading = false;
var dataContainer;

function getPreview(parent,state){
	boxArr = eval("box" + parent);
	boxObj = document.getElementById("boxcontent" + parent);
	boxLoaderObj = document.getElementById("boxloader" + parent);
	loaderObj = document.getElementById("flashloader");
	linkObj = document.getElementById("lnk" + boxArr[0]);
	
	boxLoaderObj.innerHTML = loaderObj.innerHTML ;
	boxObj.style.visibility = 'hidden'
	linkObj.className = "";
	//verwissel in array zodat 1e altijd actiev is
	if(state == 1){
		boxArr.push(boxArr.shift());
	}else{
		boxArr.unshift(boxArr.pop());
	}
	linkObj = document.getElementById("lnk" + boxArr[0]);
	
	loading = true;
	setTimeout("loading = false",500);
	xmlSend("ajax_preview_item.asp?id=" + boxArr[0] + "&cid="  + getCacheKey(), previewData, 'GET', 1, '')
}

function previewData(data){
	dataContainer = data;
	setTimeout("pauzePreview()",100);	
}	

function pauzePreview(){
	if(!loading){
		boxObj.innerHTML = dataContainer;
		linkObj.className = "active";
		boxLoaderObj.innerHTML = "";
		boxObj.style.visibility = 'visible'
	}else{
		setTimeout("pauzePreview()",100);	
	}	
}


function handleError(wrd){
 
}
function getCacheKey(){
	var temp = new Date();
	return Date.parse(temp)
}	


function xmlSend(url, callback, method, rType, param){
	function xmlBindCallback(){
		
		if (xmlRequest.readyState == 4) {
			if (xmlRequest.status == 200) {
				if (xmlCallback){
					
					//check for errormessage (errormsg always start with 'ERROR') 
					if(xmlRequest.responseText.substring(0,5).toUpperCase() == 'ERROR'){
						handleError(xmlRequest.responseText);
						return false;
					};
					//no errors, proceed
					if(rType ==0)xmlCallback(xmlRequest.responseXML.documentElement);
					if(rType ==1)xmlCallback(xmlRequest.responseText, param);					
				} else {
					handleError('Geen callback functie gedefinieerd');
				}
			} else {
				handleError('Probleem met ophalen xml data:\n' + xmlRequest.status + ':\t' + xmlRequest.statusText);
			}
		}
	}
	var xmlRequest = null;
	var xmlCallback = callback;

	if (window.XMLHttpRequest) {
			xmlRequest = new XMLHttpRequest();
	} else {
		try {
			xmlRequest = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e)
				{
				try {
					xmlRequest = new ActiveXObject("Microsoft.XMLHTTP");
					} catch (E) {
					xmlRequest = false;
					}
			 }
	}
	if(xmlRequest){
		xmlRequest.onreadystatechange = xmlBindCallback;
		xmlRequest.open(method, url, true);
		postData = '';
		if(method.toUpperCase() == 'POST'){
			
			xmlRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 

			postData = param;
		}		
		xmlRequest.setRequestHeader("charset", "utf-8");
	
		xmlRequest.send(postData);
		return true;
	}
	else{
		return false;
	}
}





function gosite(val){
	if (val != '')window.open(val,'popup','');
}
function gourl(val){
	if (val != '')window.location.href = val;
}


function validate(frm){
	if(!frm.required) return true;
	var requiredFields = frm.required.value.split(/\s*,\s*/);;
	var rLen = requiredFields.length;
	if(frm.message)var message =  frm.message.value;
	if (!frm.message)message = 'De volgende velden zijn niet of niet correct ingevuld:';
	var errorFields = '';
	var firstFld = '';

	for(var i=0; i < rLen;i ++){
		var fldObj = eval('frm.' + requiredFields[i]);
		if(fldObj.length >=0){
			//radio fields (title in first radio element)
			var checked = false; 
			for(var j=0; j < fldObj.length;j ++){
				if(fldObj[j].checked)checked = true;
			}
			tmp = fldObj[0].id + 'Req';
			if(!checked){
				errorFields += '- ' + fldObj[0].title + '\n';
				if(document.getElementById(tmp))document.getElementById(tmp).className +=" error";					
			}else{
				if(document.getElementById(tmp))document.getElementById(tmp).className ="required";
			}
		}else{
			//value fields
			tmp = fldObj.id + 'Req';
			if (fldObj.value == ''){
				errorFields += '- ' + fldObj.title + '\n';
				if(document.getElementById(tmp))document.getElementById(tmp).className +=" error";					
			}else{
				if(document.getElementById(tmp))document.getElementById(tmp).className ="required";
			}
			if(firstFld =='' && fldObj.value == '')firstFld = fldObj;
			//mail fields (name must contain 'mail')
			if(fldObj.name.toLowerCase().indexOf('mail') > -1)if(fldObj.value != ''){
				if(!IsEmail(fldObj.value)){
					errorFields += '- ' + fldObj.title + ' is ongeldig\n';
					if(document.getElementById(tmp))document.getElementById(tmp).className +=" error";
				}else{
					if(document.getElementById(tmp))document.getElementById(tmp).className ="required";
				}
			}
		}	
	}
	//custom func?
	if(frm.custom){
		errorFields += eval(frm.custom.value);
	}
	if(message != '') message += '\n';
	if(errorFields != ''){
		alert(message + errorFields);
		if(firstFld != '')firstFld.focus();
		return false;
	}
	return true;
}

function IsEmail(strEmail){
	var emailReg    = /^[A-Za-z0-9](([_\.\-]?[a-zA-Z0-9]+)*)@([A-Za-z0-9]+)(([\.\-]?[a-zA-Z0-9]+)*)\.([A-Za-z]{2,})$/;
	if(!strEmail.match(emailReg)){
		return false;
	}
	return true;
}

curObj = '';
function activate(id){
	if(curObj != '')curObj.className = '';
	curObj = document.getElementById(id);
	curObj.className = 'active';
}
function deactivate(){
	if(curObj != '')curObj.className = '';
}

