jQuery(document).ready(function($) {
	/* convert to combobox only for logged in */	
	return ConvertAllToCombobox();
});

function cloneObject(obj) {
    for (i in obj) {
        this[i] = obj[i];
    }
}

function triggerEvent(e, by) {
	var src = e.srcElement ? e.srcElement : e.target;
	if (by) e.retrigger = by;
	
	while (src) {
		if (typeof(src["on"+e.type]) == 'function') {
			var fn = src["on"+e.type]
			fn(e);
			if (e.cancelBubble) return false;
		}
		
		if (src == document) break;
		src = src.parentNode;
	}
}

/*
	Select a range of text in a textfield
*/
function selectRange (txtfld, iStart, iLength) {
    if (txtfld.createTextRange) {
		var oRange = txtfld.createTextRange(); 
		oRange.moveStart("character", iStart); 
		oRange.moveEnd("character", iLength - txtfld.value.length); 
		oRange.select();
    } else if (txtfld.setSelectionRange) {
		txtfld.setSelectionRange(iStart, iLength);
    }
    txtfld.focus();
}

function addEvent(obj, evType, fn) {
	alert('You are calling addEvent (methods.js) for '+ func +' , which is deprecated. Please update your javascript code to a jQuery selector');	
	if (obj.addEventListener) {
		obj.addEventListener(evType, fn, false);
		return true;
	} else if (obj.attachEvent) {
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	} else {
		var old_fn = obj["on" + evType];
		obj["on" + evType] = function (e) {
			var res = old_fn();
			if (!res && typeof(res) != "undefined") return false;
			
			var res = fn();
			if (!res && typeof(res) != "undefined") return false;
		};
	}
}

function addLoadEvent(func, beginning) {
	alert('You are calling addLoadEvent (methods.js) for '+ func +' , which is deprecated. Please update your javascript code to a jQuery selector');	
	var oldonload = window.onload;
	window.onload = typeof(window.onload) == 'function' ? beginning ? 
		function() {func(); oldonload();} : 
		function() {oldonload(); func();} : 
		func;
}


function hidebutton_click(element, status, self, desc_on, desc_off) {	
	if (status == -1 || typeof(status) == "undefined") {
		element.style.display = (element.style.display == "none" ? "block" : "none");
	} else {
		element.style.display = (status==0 ? "none" : "block");
	}
	
	if (typeof(self) != "undefined") {
		self.className = (element.style.display == "none" ? "off" : "on");
		
		desc = (element.style.display == "none" ? desc_off : desc_on);
		if (typeof(desc) != "undefined") self.title = desc;
	}
}

function checkAll(obj)
{
	$('input[type=checkbox]').attr('checked', $(obj).attr('checked'));
}

function checkDefault(obj)
{
	$('input[type=checkbox]').attr('checked', $(obj).attr('checked'));
	$('input[type=radio]').attr('disabled', $(obj).attr('checked') == false ? true : false);
	if($(obj).attr('checked') == false) $('input[type=radio]').attr('checked', false);
}

function in_array(val, arr) {
	for (var i=0; i<arr.length; i++) {
		if (arr[i] == val) return true;
	}
	return false;
}

function displayFieldsFromRadio(inifile, triggerfield, arrayfield)
{
	
	var fieldname=inifile+'['+triggerfield+']';
	
	var resultfield = new Array();	
	
	for (var i=0; i<arrayfield.length; i++){	
		
		if (arrayfield[i].indexOf("#alias:")==-1){
			resultfield[i]=inifile+'['+arrayfield[i]+']';		
		}else{
			resultfield[i]=arrayfield[i].replace("#alias:","");
			
		}
	}
	
	var list = document.forms[0].elements;	
	for (var i=0; i<list.length; i++){	
		
			if(list[i].getAttribute('name')==fieldname)
			{				
				if(list[i].checked==true){					
					waarde = list[i].value;
				}
			}
	}
	var listshowfor = document.forms[0].elements;
	for (var i=0; i<listshowfor.length; i++){
		if (list[i].getAttribute('show_for')) {
			var showfor = list[i].getAttribute('show_for').split(",");
			fieldn = list[i].getAttribute('name');			
			if(in_array(fieldn,resultfield) && in_array(waarde, showfor)){						
			  showField(list[i]);
			}else if(in_array(fieldn,resultfield)){
				hideField(list[i]);					
			}
		}
	}
}

function fieldDisplayStatus(f)
{
	while (f && f.tagName != "TR") f = f.parentNode;
	try {
		var displayStatus =  f.style.display;
	} catch (e) {		
		// do nothing
	}
	return displayStatus;
}

function showField(f)
{
	while (f && f.tagName != "TR") f = f.parentNode;
	try {
		f.style.display = "";
	} catch (e) {		
		// do nothing
	}
}

function hideField(f)
{		
	while (f && f.tagName != "TR") f = f.parentNode;
	try {
		f.style.display = "none";
	} catch (e) {		
		// do nothing
	}
}

function setCheckListFromCombo(veld1,veld2)
{		
	var comboval = getComboValue(veld1.name);		
	var list = document.forms[0].elements;		
	
	for (var i=0; i<list.length; i++){	
		var checkname = veld2+'[]';	
		if(list[i].name == checkname){			
			if(list[i].value==comboval){
				list[i].checked = true;
			}			
		}
	}	
}


function checkEmptyField(id, name, type) {	
	
	if(type=='optgroup'){
		
		var chk = false;		
		
		try{
			//checklist
			var objects = document.getElementsByName(name+'[]');
			var objslength = objects.length;
		}catch(e){			
		}			
		//radio
		if(objects.length==0){
			var objects = document.getElementsByName(name);			
			var objslength = objects.length-1;
		}
		
		for (var i=0; i<objslength; i++){		
			//obj1 first checkbox or rafio for proper tootltip position
			var obj1 = document.getElementById(id+'__0');	
			var obj =  document.getElementById(id+'__'+i);						
			if(obj.type!='hidden'){				
				if(obj.checked==true){	   
				    chk =  true;				   
				}					
			}						
		}	
			
		return [chk,obj1];		
		
	}else if(type=='select'){		
		//combobox
		var obj = getCombo(id).DOMelem_input;		
		var f= obj;
		while (f && f.tagName != 'TR')f = f.parentNode;
		if(f.style.display=='none') {		
			
			return [true,f];			
			
		}else if (getComboValue(id)==''|| getComboValue(id)==null) return [false,obj];	
	
	}else if(document.getElementById(id)){
		//text input fields
		var obj = document.getElementById(id);		
		var f= obj;
		while (f && f.tagName != 'TR')f = f.parentNode;
		if(f.style.display=='none') {	
		
			return [true,f];			
			
		}else if ((obj.value.length==0) || (obj.value==null))  return [false,obj];	
		
	}
	return false;	
}

function setCheckListFromCombo(veld1,veld2)
{		
	var comboval = getComboValue(veld1.name);		
	var list = document.forms[0].elements;		
	
	for (var i=0; i<list.length; i++){	
		var checkname = veld2+'[]';	
		if(list[i].name == checkname){			
			if(list[i].value==comboval){
				list[i].checked = true;
			}			
		}
	}	
}	

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}


function getElementsByClassName(classname, node) {
	alert('You are calling getElementByClassName (methods.js), which is deprecated. Please update your javascript code to a jQuery selector');
	
	if(!node) node = document.getElementsByTagName("body")[0];
	var a = [];
	var re = new RegExp(classname);
	var els = node.getElementsByTagName("*");
	for(var i=0,j=els.length; i<j; i++)
		if(re.test(els[i].className))a.push(els[i]);
	
	return a;
}

/**
  * Attach progress animation for Ajax requests
  * jQueryObj is the container for the progress animation
  */
function attachProgressAnimation(jQueryObj)
{
	var anim = $('<center style="display:none"><img src="/gfx/progress.gif" border="0" /><br /><font color="#666">Laden...</font></center>');
	anim.ajaxStart(function() { $(this).show();	});	
	anim.ajaxComplete(function() { $(this).remove(); });
	
	jQueryObj.append(anim);
}


function getManual(curitem, curaction) 
{
	var containerid = 'manual_container';
	var container = $('div#'+containerid);
	
	if (container.html() != null) {
		closeManual();
		return;
	}
	
	//Container is not yet defined, create html element
	container = $("<div></div>").attr('id','manual_container');
	$('div#content_container').append(container)
	attachProgressAnimation(container);
	
	var tekst = $.get("/beheer.actions/manual", { item: ""+curitem+"", action: ""+curaction+"" }, function(data){
		container.append(data);
	});
	
	$('.right').attr('class', 'active');
}

function closeManual() {
	$('div#manual_container').hide('fast');
	$('div#manual_container').remove();
	$('.active').attr('class', 'right');
}

function advancedSearch(curitem, curtable) 
{
	var containerid = 'search_form_advanced';
	var container = $('div#'+containerid);
	
	if (container.html() != null) {
		closeSearch();
		return;
	}
	
	container = $("<div>").attr('id',containerid);
	
	$('div#content_container').append(container);

	attachProgressAnimation($('div#search_form_advanced'));

	var tekst = $.get("/beheer.actions/advanced", { item: ""+curitem+"", table: ""+curtable+""}, function(data){
		container.append(data);
	});
	
	$('div#content_container').append(container);
}

function closeSearch() {
	$('div#search_form_advanced').hide('fast');
	$('div#search_form_advanced').remove();
}

function saveButton(description) {
	var link = $("<a onclick='document.forms[0].submit();'></a>");
	link.hover (
      function () {
        $(this).css({ 
        	border:"1px",
        	borderStyle:"solid",
        	borderColor:"#666 #ccc #ccc #666",
        	backgroundImage:"url('/gfx/button_down.gif')"
        });
      },
      function () {
        $(this).css({ 
        	border:"1px",
        	borderStyle:"solid",
        	borderColor:"transparent",
        	backgroundImage:""
        });
      }
    );

	var title = (description != '' ? description : 'Wijzigingen opslaan');
	link.attr('title', title);

	var img = $("<img>");
	img.attr('src', '/icn/16x16/disk_blue.png');
	img.attr('class', 'icon');

	link.prepend(img);
	
	if(description != '') {
		var span = $('<span></span>').attr('class', 'toolbar_desc').html('&nbsp;'+description);
		img.after(span);
	}
		
	$('div#toolbar').prepend(link);
}

function checkSelectForm() {
	if($('div#search_form').html() == '<!--###***### MARKER: search_form ###***###-->') {
		$('div#search_form').remove();
		
	}
}

function showFor(){
	tmp = $('#sf_vals');
	if(tmp){
		value = tmp.attr('value');
		id = tmp.attr('el_id');

		el = $('#'+id);
		el.children('input').each(function() {
			if($(this).val() == value && $(this).attr('checked') == true){
				$("INPUT[show_for=" + value + "]").parents('tr').show();
			}else{
				$("INPUT[show_for=" + value + "]").parents('tr').hide();
			}
		;});
	}
}

function deleteInlineTable(div, table) {
	
	var identifier = $('div#'+div).attr('id');
	var number = identifier.replace('inline_table_', '');
	
	var input = $('<input type="hidden">');
	input.attr('name', table+'['+number+']'+'[delete]');
	input.attr('value', true);
	input.appendTo("#form");
	$('div#'+div).hide();
}

function addInlineTable(inlinetable, record_id) {

	var total_inline = $('input[name="total_inline"]').attr('value');
	total_inline = parseFloat(total_inline) + 1;
	$('input[name="total_inline"]').attr('value', total_inline);

	var html = $.get("/beheer.actions/subregel", { table: ""+inlinetable+"", position: ""+total_inline+"", parent_id: record_id }, function(data){
		
		$('div#inline_tables').prepend(data);
				
		var counter = 0;
		$('input','#inline_table_'+total_inline).each(function() {
			if($(this).attr('type') != 'hidden' && counter == 0) {
		 		$(this).focus();
		 		counter++;
		 	}
		 });
	}
)};

function ActieveRegel(el, actief) {
	var element = $('input#'+el.id);
	var divs = element.parents('div');
	var div = divs[0].id
	
	var th = $('div#'+div+' th');
	var td = $('div#'+div+' td');
	
	
	if(actief == false) {
		th.each(function() {
			$(this).css({backgroundColor: "#ACC9E8"});
		});
		td.each(function() {
			$(this).css({backgroundColor: "#EBF4FD"});
		});
	} else {
		th.each(function() {
			$(this).css({backgroundColor: "#EFCF39"});
		});
		td.each(function() {
			$(this).css({backgroundColor: "#FAF680"});
		});
	}
}


// Avoid copy/paste into textfield
function checkItNoPaste(obj){
   // input = $("input#"+element);
   //var content_len = obj.value.length;
    //alert(content_len);
   //  obj.setAttribute('maxlength', obj.value.length + 1); 
    //input.setAttribute('maxlength', input.value.length + 1); 
    
var count = "150";   //Example: var count = "175";
function limiter(){
var tex = obj.value;
var len = tex.length;
if(len > count){
        tex = tex.substring(0,count);
        document.myform.comment.value =tex;
        return false;
}
document.myform.limit.value = count-len;
}

    
}




