/*
 IF YOU CHANGE THIS FILE, UPDATE THE VERSION SUFFIX (_1_0) AND THE REFERENCE
*/

var keepOpenId = '';

function koSwitchKeepOpen(id) {
	if (keepOpenId != '')
		bb_hide(keepOpenId);
	if (keepOpenId == id)
		keepOpenId = '';
	else {
		keepOpenId = id;
		bb_show(id);
	}
}

function koShow(id) {
	if (keepOpenId == '')
		bb_show(id);
}

function koHide(id) {
	if (keepOpenId != id)
		bb_hide(id);
}

function koForceHide(id) {
	if (keepOpenId == id)
		keepOpenId = '';
	bb_hide(id);
}

function bb_show(id) {
	var elem = document.getElementById(id);
	if (!elem) {
		alert('no such item: ' + id);
		return;
	}
	elem.style.display = 'block';
}

function bb_hide(id, ignore) {
	var elem = document.getElementById(id);
	if (elem)
		elem.style.display = 'none';
	else if (!ignore)
		alert('no such item: ' + id);
}

function hideShow(id){
	var elem = document.getElementById(id);
	if (!elem) {
		alert('no such item: ' + id);
		return;
	}
	if (elem.style.display == "")
		elem.style.display = "none";
	else
		elem.style.display = "";
}

function selectAll(name) {
	var allCheckBoxes = document.getElementsByName(name);
	for(var i=0; i < allCheckBoxes.length; i++)
		allCheckBoxes[i].checked = true; 
}

function deselectAll(name) {
	var allCheckBoxes = document.getElementsByName(name);
	for(var i=0; i < allCheckBoxes.length; i++)
		allCheckBoxes[i].checked = false;
}

function invertSelection(name) {
	var allCheckBoxes = document.getElementsByName(name);
	for(var i=0; i < allCheckBoxes.length; i++)
		allCheckBoxes[i].checked = !allCheckBoxes[i].checked;
}

function addParam(url, param) {
	if (url.indexOf('?') >= 0)
		return url+'&'+param;
	return url+'?'+param;
}

function open_popup(url, title) {
	return open_popup(url, title, 400, 400);
}
function open_popup(url, title, width, height) {
	if (!width) width = 400;
	if (!height) height = 400;
	window.open(url,name,'status=no,toolbar=no,location=yes,menubar=no,width='+width+',height='+height+',resizable=yes,scrollbars=yes');
	return false;
}  

function bbbf_init_calendar(field) {
	field = $(field);
	var fieldId = field.id;
	var buttonId = fieldId+"DateTrigger";
	field.insert( { after: "<button id='"+buttonId+"'>...</button>" } );
	Calendar.setup( { inputField: fieldId, button: buttonId, ifFormat: "%Y-%m-%d" } );
}

var bbbf_updatingFields = new Object();
var bbbf_updatedFields = new Object();
var bbbf_providerNames = new Object();

function bbbf_init_updatedField(updatedFieldId, providerName, updatingFieldIds) {
	var updatedField = $(updatedFieldId);
	if (!updatedField)
		alert(updatedFieldId + ' not found');
	if (updatedField.nodeName.toUpperCase() == 'SELECT') {
		bbbf_providerNames[updatedField.id] = providerName;
		for(var i = 0; i < updatingFieldIds.length; i++)
			bbbf_registerUpdate(updatingFieldIds[i], updatedField);
	} else if (updatedField.nodeName.toUpperCase() != 'SPAN')
		alert('unknown update type for '+updatedFieldId+': '+updatedField.nodeName);
}

function bbbf_registerUpdate(updatingFieldId, updatedField) {
	if (updatingFieldId == '') return;
	updatingField = $(updatingFieldId);

	if (!bbbf_updatedFields[updatingField.id]) {
		updatingField.observe('change', bbbf_fieldChanged);
		bbbf_updatedFields[updatingField.id] = new Array();
	}
	bbbf_updatedFields[updatingField.id].push(updatedField.id);
	
	if (!bbbf_updatingFields[updatedField.id])
		bbbf_updatingFields[updatedField.id] = new Array();
	bbbf_updatingFields[updatedField.id].push(updatingField.id);
}

function bbbf_fieldChanged(event) {
	bbbf_updating(event.element());
}

function bbbf_updating(updatingField) {
	if (bbbf_updatedFields[updatingField.id]) {
		var updatedFields = bbbf_updatedFields[updatingField.id];
		for(var i = 0; i < updatedFields.length; i++) {
			var updatedFieldId = updatedFields[i];
			var theUpdatedField = getSelectElementByIfOrName(updatedFieldId);
			bbbf_update(theUpdatedField);
		}
	}
}

function bbbf_update(updatedField) {
	var updatingFields = bbbf_updatingFields[updatedField.id];
	var elementId = updatedField.id;
	elementId = elementId.substring(0, (elementId.length - 3));
	var parameters = { 
		value: updatedField.value ? updatedField.value : '',
		type: updatedField.nodeName.toLowerCase(), 
		elementId: elementId, 
		valueProvider: bbbf_providerNames[updatedField.id]
	};
	parameters.type = updatedField.nodeName.toLowerCase();
	if (updatedField.multiple)
		parameters.type = 'multipleselect';
	for(var i = 0; i < updatingFields.length; i++) {
		paramvalues = $F(updatingFields[i]) ? $F(updatingFields[i]) : [];
		if (typeof paramvalues == 'string')
			parameters['param[0]'] = paramvalues;
		else
			for (var index = 0; index < paramvalues.length; ++index)
				parameters['param['+index+']'] = paramvalues[index];
	}
	new Ajax.Updater(updatedField.id+'Span', '/WorldWW/ajax/valuesList.do?modus=ajax',  { parameters: parameters });
}

function bbbf_maxLength(field, maxLength, counterId) {
	if (field.value.length > maxLength)
		field.value = field.value.substring(0, maxLength);
	if (counterId) {
		var counter = document.getElementById(counterId);
		counter.innerHTML = maxLength - field.value.length;
	}
}

function preview(src, targ) {
	targ.innerHTML = src.value;
}





// === FROM: www.js ===
function changeTab(fieldId) {
	// eerst alles weer uitzetten
	$('tab_category').style.backgroundImage='url(/images2/browsetab_bycategory.gif)';
	$('tab_region').style.backgroundImage='url(/images2/browsetab_byregion.gif)';
	$('tab_company').style.backgroundImage='url(/images2/browsetab_bycompany.gif)';
	$('panel_category').hide();
	$('panel_region').hide();
	$('panel_company').hide();
	switch(fieldId){
		case 'category':
			$('tab_category').style.backgroundImage='url(/images2/browsetab_bycategory_on.gif)';
			$('panel_category').show();// en de juiste panel showen
			break    
		case 'region':
			$('tab_region').style.backgroundImage='url(/images2/browsetab_byregion_on.gif)';
			$('panel_region').show();// en de juiste panel showen
			break
		case 'company':
			$('tab_company').style.backgroundImage='url(/images2/browsetab_bycompany_on.gif)';
			$('panel_company').show();// en de juiste panel showen
			break
	}	
}
// === /FROM: www.js ===
function gotoSendPassword(url){
	var emailInputs = document.getElementsByName('email');
	var emailValue;
	for(var i=0; i < emailInputs.length; i++) {
		var value = emailInputs[i].value;
		if(value && value != '')
			emailValue = value;
	}
	var fullUrl = url;
	if(emailValue)
		fullUrl = url+'?email='+emailValue;
	document.location.href=fullUrl;
}

function openExternalPageFullScreen(url){
	parent.parent.refreshParent = false;
	GB_hide();
	setTimeout('GB_showFullScreen(\'\',\''+url+'\')', 500);
}
var refreshParent = true;
var t1;
function redirect(url) {
	parent.parent.t1 = parent.parent.setTimeout('openExternalPageFullScreen(\''+url+'\')', 5100);
}
function refreshParentLocation() {
	if(parent.parent.refreshParent) {
		parent.parent.location = parent.parent.location; 
	}
}

function haltRedirect(){
	refreshParentLocation();
	parent.parent.clearTimeout(parent.parent.t1);
}

function getSelectElementByIfOrName(fieldId){
	var field = document.getElementById(fieldId);
	if(field.id != fieldId) {
		alert('Your browser is broken! Get a real one!!\ndocument.getElementById(\''+fieldId+'\') = '+field+'\ndocument.getElementById(\''+fieldId+'\').id = '+field.id);
		var elements = document.getElementsByName(fieldId);
		for(var i = 0; i < elements.length; i++) {
			var tempElement = elements[i];
			if(tempElement.id == fieldId && tempElement.nodeName.toUpperCase() == 'SELECT'){
				field = tempElement;
			}
		}
	}
	return field;
}