window.onload = loaded;
document.onclick = click;

var ie = document.all?true:false;

function getElement(id){
	return document.getElementById(id);
}

var chistory;

function loaded(){
	
	url = new URL();
	
	url.send();
	chistory = new History();

	if(getElement('filepage')){
		new Ajax.Request('/files/cache');
		resetuploadform();
	}
		
	if($('paginate')){
		initpaginate();
		initorder();
	}
	
	if(getElement('notice')){
		new Effect.BlindDown('notice');
		window.setTimeout("new Effect.BlindUp('notice')", 5000);
	}
	
	if($('preview')){
		new Draggable('preview_container', {handle: 'preview_handle'});
		$('preview_container').style.display = 'none';
	}
}

function copy(collection, prefix, fields){
	for(i=0; i<fields.length; i++){		
		if (prefix == 'invoiceaddress') {
			if (fields[i] == "name") {
				getElement('invoiceaddress' + '_' + fields[i]).value = getElement(collection + '_' + fields[i]).value;
			} else {
				getElement('invoiceaddress' + '_' + fields[i]).value = getElement(collection + '_post_' + fields[i]).value;
			}
		} else {
			getElement(collection + '_' + prefix + '_' + fields[i]).value = getElement(collection + '_' + fields[i]).value;
		}
	}
}

function toggletick(obj, element, element2, element3){
	element = $(element);
	element2 = $(element2);
	
	if(obj.checked){
		element.style.display = 'none';
		element2.style.display = '';
	} else {
		element.style.display = '';
		element2.style.display = 'none';
	}
}

function toggleticks(obj, elements){
	for(i=0; i<elements.length; i++){	
		if(obj.value == elements[i]){
			new Effect.BlindDown(elements[i]);
		} else {
			new Effect.BlindUp(elements[i]);
		}
	}
}

function updateSelect(obj, element, url){
	// work around a stupid IE6 bug which doesn't allow setting the innerHTML
	new Ajax.Request(url+obj.value, {onComplete: function(r){addOptions(element, r.responseText);}});
}

function addOptions(select, options){
	options = options.split('|&|');
	select = getElement(select);
	
	select.innerHTML = '';
	
	for(i=0; i<options.length-1; i++){
		option = options[i].split('|+|');
	
		o = document.createElement('option')
		o.value = option[0];
		otxt = document.createTextNode(option[1]);
		o.appendChild(otxt);
		
		select.appendChild(o);		
	}
}

var searchout = false;

function quicksearch(value, item){
	getElement('search_results').style.display = 'none';
	
	if(searchout) window.clearTimeout(searchout);
	
	searchout = window.setTimeout('doquicksearch("'+value+'", "' + item + '");', 500)
}

function doquicksearch(value, item){
	if(value.length == 0) return false;
		
	getElement('search_results').innerHTML = 'Bezig met zoeken...';
	getElement('search_results').style.display = '';
	
	new Ajax.Updater('search_results', '/' + item + '/simplesearch/', {method: 'post', postBody: 'q='+value});
}

function search(value, id){
	getElement('results').style.display = 'none';
	
	if(searchout) window.clearTimeout(searchout);
	
	searchout = window.setTimeout('dosearch("' + value + '");', 500)
}

function dosearch(value){
	if(value.length == 0) return false;
		
	getElement('results').innerHTML = 'Bezig met zoeken...';
	getElement('results').style.display = '';
	
	new Ajax.Updater('results', '/bestuur/vrijwilligers/search/', {method: 'post', postBody: 'q='+value});
}

function searchkids(value, id){
	getElement('results').style.display = 'none';
	
	if(searchout) window.clearTimeout(searchout);
	
	searchout = window.setTimeout('dosearchkids("' + value + '");', 500)
}

function dosearchkids(value){
	if(value.length == 0) return false;
		
	getElement('results').innerHTML = 'Bezig met zoeken...';
	getElement('results').style.display = '';
	
	new Ajax.Updater('results', '/bestuur/deelnemers/searchchildren/', {method: 'post', postBody: 'q='+value});
}

/* ONCLICK HANDLING */
function click(e){
	target = gettarget(e);

	switch(target.tagName){
		case 'TH':
			if(target.abbr) orderlist(target);
		break;
	}
}

function gettarget(e){
	if(ie) return event.srcElement;
	else return e.target;
}

function replaceall(from,to,subject){
	while(subject.indexOf(from) != -1){
		subject = subject.replace(from,to);
	}
	
	return subject;
}

function toggleside(){
	$('sidecontrol').style.display = 'none';

	if($('sidecontrol').className == 'open'){
		new Effect.Appear('side');
		window.setTimeout("new Effect.Appear('sidecontrol'); $('sidecontrol').className = 'close';", 1000);
		new Ajax.Request('/users/setside/1');
	} else {
		new Effect.Fade('side');
		window.setTimeout("new Effect.Appear('sidecontrol'); $('sidecontrol').className = 'open';", 1000);
		new Ajax.Request('/users/setside/0');
	}
}
