function _disp(actobj, kundenrid, bedrid){
	var value = (actobj != null)?actobj.value : "ingenting";
	var id = value.replace(/\D/g, "");
	var kundenr = (kundenrid == null)?"divkundenr_"+id:kundenrid;
	var bedr = (bedrid == null)?"divbedr_"+id:bedrid;
	if( value.indexOf("bp") != -1 ){
		_setDisplay($(kundenr), "block");
		_setDisplay($(bedr), "none");
	} else if( value.indexOf("bk") != -1 ){
		_setDisplay($(kundenr), "none");
		_setDisplay($(bedr), "block");
	} else {
		_setDisplay($(kundenr), "none");
		_setDisplay($(bedr), "none");				
	}
	if( ( _infodiv = $("sevudivinfo")) != null ){
		$("sevudivinfo").style.display = "block";
	} 
	var _conf = $("_conflict");
	if( _conf != null ){
		_conf.value = "0";
	}
}

function _setDisplay( obj, display){
	if( obj != null ){
		obj.style.display = display;
	}
}

function _singleSmit(){
	var go = false;
	var obj = document.getElementsByName("kuid");
	if( obj != null ){
		for( var i=0;i<obj.length;i++ ){
			if( obj[i].checked == true ){
				go = true;
				if( obj[i].value.indexOf("bp") != -1 ){
					k = $("kundenr").value;
					if( k.length == 0 ){
						alert("Du må angi kundenr først.");
						return false;
					}
					if( k.length < 6 ){
						alert("Kundenummeret er for kort.");
						return false;
					}
					/*
					if( customerCodeExists(k) !== true ){
						alert("Kundenummeret eksisterer ikke.");
						return false;
					}
					*/
				}
			}
		}				
	}

	if( go === false ){
		alert("Du må velge noe å melde deg på først.");
		return false;
	}
	return true;
}

function _smit(){
	var go = false;
	for( var c=0;c<ids.length;c++){
		var obj = document.getElementsByName("kuid_"+ids[c]);
		if( obj != null ){
			for( var i=0;i<obj.length;i++ ){
				if( obj[i].checked == true ){
					go = true;
					if( obj[i].value.indexOf("bp") != -1 ){
						k = $("kundenr_"+ids[c]).value;
						if( k.length == 0 ){
							alert("Du må angi kundenr først.");
							return false;
						}
						if( k.length < 6 ){
							alert("Kundenummeret er for kort.");
							return false;
						}
					}
				}
			}				
		}
	}

	if( go === false ){
		alert("Du må velge noe å melde deg på først.");
		return false;
	}
	return true;
}

var _result = "";
var _sentRequests = new Array();
var _awaitSubmit = false;
var _chkConflict = function( result ){
	if( !_smit() ){
		return false;
	}
	if( _userid == "" || $("_conflict").value != "0" ){
		return true;
	}
	if( result == null ){
		var _tmp = $_tag("input");
		for( var i=0;i<_tmp.length;i++ ){
			var _reg = new RegExp("^kuid_\\d+$","g");
			var _name = _reg.test(_tmp[i].name);
			var _reg2 = new RegExp("^(\\d+)(bk|bp)?$","g");
			var _value = _reg2.exec(_tmp[i].value);
			if( _tmp[i].type == "radio" && _tmp[i].checked == true && _name == true && _value != null ){
				var kid = _value[1];;
				var stype = "";
				var uid = new Array();
				if( typeof _value[2] != "undefined" ){
					stype = _value[2];
				}
				if( stype == "bk" ){
					var u = 0;
					for( var t=0;t<_tmp.length;t++ ){
						_reg = new RegExp("_k"+kid+"\\\|(\\d+)\\\|\\w","g");
						_value = _reg.exec(_tmp[t].name);
						if( _tmp[t].type == "checkbox" && _tmp[t].checked == true && _value != null ){
							uid[u++] = _value[1];
						}
					}
				} else {
					if( uid.length == 0 ){
						uid[0] = _userid;
					}
				}
				var ajax = new Ajax();
				url = "/neted/modules/sevu/xmlfeed.php";
				params = "?func=conf&kid="+kid+"&type="+stype+"&uid="+uid.join();
				_sentRequests.push(kid);
				ajax.doGet(url+params,function(result){
					_sentRequests.pop();
					var root = result.documentElement;
					if( root != null ){
						if( root.tagName == 'data' ){
							_awaitSubmit = true;
							var cs = root.childNodes;
							var _id = null;
							var _html = "";
							var _text = "";
						 	for( var i = 0; i < cs.length; i++ ){
						 		value = cs[i].firstChild.data;
						 		if( cs[i].tagName == "kid" ){
						 			_id = value;
						 		} else if( cs[i].tagName == "html" ){
						 			_html = value;
						 		} else if( cs[i].tagName == "text" ){
						 			_text = value;
						 		}
						 	}
						 	var _div = $("sevuConflict_"+_id);
						 	_div.style.display = "block";
						 	_div.innerHTML = _html;
						 	$("smit").value = _text;
						 	$("_conflict").value = _id;
							return false;
						} else if( root.tagName == 'no_conflict') {
							if( _sentRequests.length == 0 && _awaitSubmit == false ){
								_sendForm();
							}
						}
					} else {
						_sendForm();
					}				
				},"xml");
			}
		}
		return false;
	}
}

var _chkConflictSingleRegistration = function( userid ,kid ){
	if( !_singleSmit() ){
		return false;
	}
	if( $("_conflict").value != "0" ){
		return true;
	}
	var _tmp = $_name("kuid");
	for( var i=0;i<_tmp.length;i++ ){
		if( _tmp[i].type != "radio" ){
			alert("Ikke korrekt type. Avbryte...");
			return false;
		}
		if( _tmp[i].checked === false ){
			continue;
		}
		var uid = new Array();
		var stype = _tmp[i].value;
		var _extra = $("_numextra");
		switch( stype ){
			case "p":
			case "bp":
					uid.push(userid);
				break;
			case "bk":
				var _input = $_tag("input");
				for( var t=0;t<_input.length;t++ ){
					if( _input[t].type != "checkbox" || _input[t].checked !== true ){
						continue;
					}
					_value = _input[t].name.match(/^_k\|(\d+)\|\w{6}$/);
					if( _value != null ){
						uid.push(_value[1]);
					}
				}
				if( uid.length == 0 && (_extra == null || (_extra != null && _extra.value.length == 0)) ){
					alert("Ingen personer valgt.");
					return false;
				}
				break;
			default:
					alert("Finner ikke påmeldingsvalg. Avbryter...");
					return false;
				break;
		}
		
		var ajax = new Ajax();
		url = "/neted/modules/sevu/xmlfeed.php";
		params = "?func=confsingle&kid="+kid+"&type="+stype+"&uid="+uid.join();
		ajax.doGet(url+params,function(response){
			try{
				eval("var _obj = "+response);
				if( _obj.loggedin !== true || _obj.conflict === false ) {
					_sendForm();
					return true;
				}
				
			 	var _div = $("sevuConflict");
			 	_div.style.display = "block";
			 	_div.innerHTML = _obj.html;
			 	$("smit").value = _obj.smitTxt;
			 	$("_conflict").value = kid;
				return false;
			} catch(e){
				
			}
		}, "text");
		}
		return false;
}

var _chkConflictSingleRegistrationIST = function( userid ,kid ){

	if( $("_conflict").value != "0" ){
		return true;
	}
	var _tmp = $("kuid");
	var uid = new Array();
	var stype = _tmp.value;
	var _extra = $("_numextra");
	switch( stype ){
		case "bk":
			var _input = $_tag("input");
			for( var t=0;t<_input.length;t++ ){
				_value = _input[t].name.match(/^_k\|(-1|\d+)(?:\|\w{6})?$/);
				if( _value == null || (_input[t].type != "hidden" && _input[t].type != "checkbox") || (_input[t].type == "checkbox" && _input[t].checked !== true) ){
					continue;
				}
				uid.push(_value[1]);
			}
			if( uid.length == 0 && (_extra == null || (_extra != null && _extra.value.length == 0)) ){
				alert("Ingen personer valgt.");
				return false;
			}
			break;
		default:
				alert("Finner ikke påmeldingsvalg. Avbryter...");
				return false;
			break;
	}

	var ajax = new Ajax();
	url = "/neted/modules/sevu/xmlfeed.php";
	params = "?func=confsingle&kid="+kid+"&type="+stype+"&uid="+uid.join();
	ajax.doGet(url+params,function(response){
		try{
			eval("var _obj = "+response);
			if( _obj.loggedin !== true || _obj.conflict === false ) {
				_sendForm();
				return true;
			}
			
		 	var _div = $("sevuConflict");
		 	_div.style.display = "block";
		 	_div.innerHTML = _obj.html;
		 	$("smit").value = _obj.smitTxt;
		 	$("_conflict").value = kid;
			return false;
		} catch(e){
			
		}
	}, "text");
	
	return false;
}


function customerCodeExists( code ){
	var ajax = new Ajax();
	url = "/neted/modules/sevu/xmlfeed.php";
	params = "?func=custCode&code="+code;
	ajax.doGet(url+params,function(response){
		try{
			eval("var _obj = "+response);
			if( typeof _obj.exists != "boolean") {
				alert("Klarte ikke å validere kundenummeret. Kontakt leverandør.");
			}
			return _obj.exists;
		} catch(e){
		}
	}, "text");
}

function _init(name){
	for( var c=0;c<ids.length;c++){
		var rundefault = true;
		name = name == null ? "kuid_"+ids[c]: name;
		obj = $(name);
		if( obj != null ){
			for( var i=0;i<obj.length;i++ ){
				if( obj[i].checked == true ){
					_disp(obj[i]);
					rundefault = false;
				}
			}
			if( rundefault ){
				_disp(obj[0]);				
			}
		}
	}
}

function _sendForm(){
	$("pameldingForm").submit();
}

//Get the parentnode ID for the given child ID
function getParentId(childId) {
  var parts = childId.split("_");
  var parent = new Array();
  var cRadio = (parts[parts.length-2] == "radio") ? true : false;
  var radioOffset = cRadio ? 3 : 2;
  parent[0] = "";
  parent[1] = "";
  for (var i in parts) {
    if (parts[i] != "radio" && i < (parts.length-1)) {
      parent[0] = parent[0] + parts[i] + "_"; //Parentname if parent is checkbox
      if (i == (parts.length-radioOffset)) {
        parent[1] = parent[1] + "radio_";
      }
      parent[1] = parent[1] + parts[i] + "_"; //Parentname if parent is radio
    }
  }
  parent[0] = parent[0].substring(0,parent[0].length-1);
  parent[1] = parent[1].substring(0,parent[1].length-1);
  var pNode = document.getElementById(parent[1]);
  if (pNode == null) {
    var pNode = document.getElementById(parent[0]);
  }
  if (pNode != null) {
    return pNode.id;
  }
  return null;
}

//Enable or disable inputnodes depending on status of parent node 
function checkChildNodes(nodeId) {
  var parts = nodeId.split("_");
  var prefix = parts[0] + "_" + parts[1];
  var inputs = document.getElementsByTagName("input");
  for (var i=0; i<inputs.length; i++) {
    if ((inputs[i].type == "checkbox" || inputs[i].type == "radio") && inputs[i].id.substr(0, prefix.length) == prefix) {
      var pId = getParentId(inputs[i].id);
      if (pId != null) {
        var pNode = document.getElementById(pId);
        if (pNode.checked == false || pNode.disabled == true) {
          inputs[i].disabled = true;
        } else {
          inputs[i].disabled = false;
        }
      }
    }
  }
}

function _registerSignOff( id, phrase, uid ){
  if( id == '' || typeof id == "undefined"){
	  alert("Mangler id. Avbryter...");
	  return false;
  }
  if( confirm("Er du sikker?") ){
	  var _params = "kid="+id+"&passphrase="+phrase+"&uid="+uid;
	  var _ajax = new Ajax();
	  var _getparams = window.location.search;
	  _ajax.doPost("/neted/modules/sevu/xmlfeed.php"+_getparams+"&func=regsignoff", function(response){
			try{
				eval("var _obj = "+response);
				if( _obj.loggedin == false ){
					alert(_obj.loggedinMsg);
					return;
				}
				if( _obj.phraseMatch == false ){
					alert(_obj.phraseMsg);
					return;
				}
				if( _obj.status != 1 ){
					alert(_obj.statusMsg);
					return;
				}
				if( _obj.success == false ){
					alert(_obj.error);
					return;
				}
				alert(_obj.successMsg);
				window.location.href = _obj.href.replace(/&amp;/g, "&");
			} catch(err){
			}	  
	  }, "text", _params);	  
  }
}

function _addExtraPerson(parent){
	var _num = $("_numextra");
	var ajax = new Ajax();
	var url = "/neted/modules/sevu/xmlfeed.php?func=addExtraPerson&num="+_num.value+"&parent="+parent;
	ajax.doGet(url, function( response ){
		try{
			eval("var _obj = "+response);
			var _parent = $(_obj.parent);
			var _node = document.createElement("div");
			_node.setAttribute("id", "sevuregistrationExtraPerson_"+_obj.num);
			_node.innerHTML = _obj.layout;
			_parent.appendChild(_node);
			var _num = $("_numextra");
			_num.value = _obj.exNum;
		} catch(err){
			alert(err);
		}
	}, "text");
}

function _removeExtraPerson(parent, elem, num){
	$(parent).removeChild($(elem));
	var _num = $("_numextra");
	var _tmp = _num.value.split(",");
	for( var i=0;i<_tmp.length;i++){
		if( num == _tmp[i])
			_tmp.splice(i,1);
			
	}
	_num.value = _tmp.join();
}

function _loadMunicipalities( field ){
	var ajax = new Ajax();
	var id = $(field).value;
	var url = "/neted/modules/sevu/xmlfeed.php?func=getMunicipality&code="+id;
	ajax.doGet(url, function(response){
		try{
			eval("var _obj = "+response);
			if( _obj.missingid != null){
				alert(_obj.missingid);
				return false;
			}
			var _mun = $('municipality');
			_mun.options.length = 0;
			for( var i in _obj.values){
				_mun.options[_mun.length] = new Option(_obj.values[i], i);
			}
		} catch(err){
		}
	}, "text");
	_loadCustomers(id, true);
}

function _loadCustomers( id, county ){
	var ajax = new Ajax();
	var url = "/neted/modules/sevu/xmlfeed.php?func=getCustomers&code="+id+"&type="+county+"&kid="+$("county").value;
	ajax.doGet(url, function(response){
		try{
			eval("var _obj = "+response);
			if( _obj.missingid != null){
				alert(_obj.missingid);
				return false;
			}
			var _client = $('clients');
			_client.options.length = 0;
			for( var i in _obj.values){
				if( _obj.values[i].length > 0){
					_client.options[_client.length] = new Option(_obj.values[i], i);
				}
			}
			_loadAdresses(_client.value);
		} catch(err){
		}
	}, "text");
}

function _loadAdresses(id){
	var ajax = new Ajax();
    var url = "/neted/modules/sevu/xmlfeed.php?func=getInvoiceAddress&ID=" + id;
    ajax.doGet(url, function(response){
			$("sevuinvoicedetails").innerHTML = response;
  }, "text");  
}

