var arrow_up_on = '';
var arrow_up_off = '';
var arrow_down_on = '';
var arrow_down_off = '';

function showArrows(object) {
	var tableChilds = null;
	var itemIdArray = Array();
	var itemId = '';
	var arrowObj = null;
	
	tableChilds = object.parentNode.childNodes;
	
	itemIdArray = object.id.split('_');
	itemId = itemIdArray[0] + '_' + itemIdArray[1];
	
	for(i = 0;i < tableChilds.length;i++) {
		if(tableChilds[i].id.substr(0, itemId.length) == itemId) {
			arrowObj = document.getElementById(tableChilds[i].id + '_arrow_up');
			if(arrowObj != null)
				arrowObj.src = arrow_up_on;
			arrowObj = document.getElementById(tableChilds[i].id + '_arrow_down');
			if(arrowObj != null)
				arrowObj.src = arrow_down_on;
		}
	}
}

function hideArrows(object) {
	var tableChilds = null;
	var itemIdArray = Array();
	var itemId = '';
	var arrowObj = null;
	
	tableChilds = object.parentNode.childNodes;
	
	itemIdArray = object.id.split('_');
	itemId = itemIdArray[0] + '_' + itemIdArray[1];
	
	for(i = 0;i < tableChilds.length;i++) {
		if(tableChilds[i].id.substr(0, itemId.length) == itemId) {
			arrowObj = document.getElementById(tableChilds[i].id + '_arrow_up');
			if(arrowObj != null)
				arrowObj.src = arrow_up_off;
			arrowObj = document.getElementById(tableChilds[i].id + '_arrow_down');
			if(arrowObj != null)
				arrowObj.src = arrow_down_off;
		}
	}
}

function preLoadArrows() {
	var preLoadArrow = null;
	
	preLoad = new Image();
	preLoad.src = arrow_up_on;
	
	preLoad = new Image();
	preLoad.src = arrow_up_off;
	
	preLoad = new Image();
	preLoad.src = arrow_down_on;
	
	preLoad = new Image();
	preLoad.src = arrow_down_off;
}

/********************************************
* submit script
*/

function submitForm(chk_field_ids) {
	var txtField = null;
	
	if(checkValues(chk_field_ids)) {
		/*
		for(i = 0;i < WYSIWYGEditors.length;i++) {
			txtField = document.getElementById(WYSIWYGEditors[i][0]);
			txtField.value = WYSIWYGEditors[i][1].getHTMLBody();
		}
		*/
		
		return true;
	} else {
		return false;
	}
}

/********************************************
* Validation script
*/

function checkValues(field_ids) {
	var object = null;
	
	for(i = 0;i < field_ids.length;i++) {
		if(field_ids[i][2] == 'WYSIWYGField') {
			if(!eval(field_ids[i][0] + '_editor').getHTMLBody().length) {
				alert('\'' + field_ids[i][1] + '\' is een verplichte waarde');
				return false;
			}
		} else {
			object = document.getElementById(field_ids[i][0]);
			
			if(!object.value) {
				alert('\'' + field_ids[i][1] + '\' is een verplichte waarde');
				object.focus();
				object.select();
				return false;
			}
		}
	}
	
	return true;
}

/********************************************
* CheckBox
*/

function setClicked(object) {
	var object_sender_id = '';
	var object_sender = null;
	
	object_sender_id = object.id;
	object_sender_id = object_sender_id.substr(0, object_sender_id.length - 6);
	
	object_sender = document.getElementById(object_sender_id);
	
	if(object.checked)
		object_sender.value = '1';
	else
		object_sender.value = '0';
}

/********************************************
* MoveField
*/

function toRight(from, to, send_to) {
	values = '';
	
	moveSelectedOptions(from, to, true);
	
	for(i = 0;i < to.options.length;i++)
		values += to.options[i].value + ',';
	
	values = values.substr(0, values.length - 1);
	
	send_to.value = values;
}

function toLeft(from, to, send_to) {
	values = '';
	
	moveSelectedOptions(to, from, true);
	
	for(i = 0;i < to.options.length;i++)
		values += to.options[i].value + ',';
	
	values = values.substr(0, values.length - 1);
	
	send_to.value = values;
}

function selectUnselectMatchingOptions(obj,regex,which,only) {
	if(window.RegExp) {
		if(which == "select") {
			var selected1=true;
			var selected2=false;
		} else if(which == "unselect") {
			var selected1=false;
			var selected2=true;
		} else {
			return;
		}
		
		var re = new RegExp(regex);
		for(var i=0; i<obj.options.length; i++) {
			if(re.test(obj.options[i].text)) {
				obj.options[i].selected = selected1;
			} else {
				if(only == true) {
					obj.options[i].selected = selected2;
				}
			}
		}
	}
}
        
function unSelectMatchingOptions(obj,regex) {
	selectUnselectMatchingOptions(obj,regex,"unselect",false);
}

function sortSelect(obj) {
	var o = new Array();
	if(obj.options==null) {
		return;
	}
	
	for(var i=0; i<obj.options.length; i++) {
		o[o.length] = new Option( obj.options[i].text, obj.options[i].value, obj.options[i].defaultSelected, obj.options[i].selected);
	}
	
	if(o.length==0) {
		return;
	}
	
	o = o.sort( 
		function(a,b) { 
			if((a.text+"") <(b.text+"")) {
				return -1;
			}
			
			if((a.text+"") >(b.text+"")) {
				return 1;
			}
			
			return 0;
		} 
	);

	for(var i=0; i<o.length; i++) {
		obj.options[i] = new Option(o[i].text, o[i].value, o[i].defaultSelected, o[i].selected);
	}
}
        
function selectAllOptions(obj) {
	for(var i=0; i<obj.options.length; i++) {
		obj.options[i].selected = true;
	}
}

function moveSelectedOptions(from,to) {
// Unselect matching options, if required
	if(arguments.length>3) {
		var regex = arguments[3];
		
		if(regex != "") {
				unSelectMatchingOptions(from,regex);
		}
	}
		
	// Move them over
	for(var i=0; i<from.options.length; i++) {
		var o = from.options[i];
		if(o.selected) {
			to.options[to.options.length] = new Option( o.text, o.value, false, false);
		}
	}
	
	// Delete them from original
	for(var i=(from.options.length-1); i>=0; i--) {
		var o = from.options[i];
		if(o.selected) {
			from.options[i] = null;
		}
	}
	
	if((arguments.length<3) ||(arguments[2]==true)) {
		sortSelect(from);
		sortSelect(to);
	}
	
	from.selectedIndex = -1;
	to.selectedIndex = -1;
}

function setChoosenOwner(fieldId, ownerId, ownerName)
{
	document.getElementById(fieldId).value = ownerId;
	document.getElementById(fieldId + '_name').value = ownerName;
}

function setChoosenEmployee(fieldId, employeeId, employeeName)
{
	document.getElementById(fieldId).value = employeeId;
	document.getElementById(fieldId + '_name').value = employeeName;
}

function setChoosenProblem(fieldId, problemId, problemNumber)
{
	document.getElementById(fieldId).value = problemId;
	document.getElementById(fieldId + '_problemNumber').value = problemNumber;
}

function editListFieldCopyOptions(from, to)
{
	for(var i=(to.options.length-1); i>=0; i--)
	{
		to.options[i] = null;
	}
	
	for(i = 0;i < from.options.length;i++)
	{
		var o = from.options[i];
		to.options[to.options.length] = new Option(o.value, o.text, true, true);
	}
	
	sortSelect(to);
}

function editListFieldAddOption(fieldId)
{
	var select = document.getElementById(fieldId + '_select');
	var item = prompt('Naam van de nieuwe optie:', '');

	while(item.length <= 0 && item != null)
	{
		alert('Dit is een verplichte waarde');
		
		item = prompt('Naam van de nieuwe optie:', item);
	}
	
	if(item != null)
	{
		select.options[select.options.length] = new Option(item, item);
		sortSelect(select);
		
		editListFieldCopyOptions(select, document.getElementById(fieldId));
	}
}

function editListFieldEditOption(fieldId)
{
	var select = document.getElementById(fieldId + '_select');
	var item = '';
	
	if(select.selectedIndex >= 0)
	{
		item = select.options[select.selectedIndex].value;
		
		item = prompt('Nieuwe naam van deze optie:', item);
			
		while(item.length <= 0 && item != null)
		{
			alert('Dit is een verplichte waarde');
			
			item = prompt('Nieuwe naam van deze optie:', item);
		}
	
		if(item != null)
		{
			select.options[select.selectedIndex].value = item;
			select.options[select.selectedIndex].text = item;
			sortSelect(select);
			
			editListFieldCopyOptions(select, document.getElementById(fieldId));
		}
	}
}

function editListFieldDeleteOption(fieldId)
{
	var select = document.getElementById(fieldId + '_select');
	
	if(select.selectedIndex >= 0)
	{
		if(confirm('Weet u zeker dat u deze optie(s) wilt verwijderen?'))
		{
			for(var i=(select.options.length-1); i>=0; i--)
			{
				var o = select.options[i];
				
				if(o.selected)
				{
					select.options[i] = null;
				}
			}
			
			sortSelect(select);
			
			editListFieldCopyOptions(select, document.getElementById(fieldId));
		}
	}
}

function insertField(tr_field_id)
{
	tr_field = document.getElementById(tr_field_id);
	field = tr_field.cloneNode(true);
	
	tr_field.parentNode.insertBefore(field, tr_field.nextSibling);
}

function showPhoto(theURL,imgWidth,imgHeight,alt) {
    var border = 50;
    var img = Image;
    var features;
    var w;
    var h;
    winWidth = (imgWidth<100) ? 100 : imgWidth+border;
    winHeight = (imgHeight<100) ? 100 : imgHeight+border;
    if (imgWidth+border > screen.width) {
        winWidth = screen.width-10;
        w = (screen.width - winWidth)/2;
        features = "scrollbars=yes";      
    } else {
        w = (screen.width - (imgWidth+border))/2;
    }
    if (imgHeight+border > screen.height) {
        winHeight = screen.height-60;
        h = 0;
        features = "scrollbars=yes";      
    } else {
        h = (screen.height - (imgHeight+border))/2 - 20;
    }
    winName = 'image';
    features = features+',status=no,menubar=no,location=no,toolbar=no,width='+winWidth+',height='+winHeight+',top='+h+',left='+w;
    popup = window.open('',winName,features);
    popup.document.open();
    popup.document.write('<html><head><title>Large photo</title>');
    popup.document.write('</head><body oncontextmenu="return false;"><center>');
    popup.document.write('<a href="#" onclick="window.close();return false;"><img src="' + theURL + '" style="border:0px;"  alt="' + alt + '" title="' + alt + '" /></a>');
    popup.document.write('</center></body></html>');
    popup.document.close();
    popup.focus();
}

var tabs = Array();

function showTab(groupId, tabId)
{
	var group = document.getElementById(groupId);
	var divs = group.getElementsByTagName('div');
	
	for(i = 0;i < divs.length;i++)
	{
		if(divs[i].id == 'tab_' + tabId)
		{
			divs[i].className = 'current';
		}
		else
		{
			divs[i].className = '';
		}
	}
	
	for(i = 0;i < tabs.length;i++)
	{
		var tab = document.getElementById('link_' + tabs[i]);
		
		if(tabs[i] == tabId)
		{
			tab.className = 'current';
		}
		else
		{
			tab.className = '';
		}
	}
}
