	//<![CDATA[

  var already_submitted = false;
  
  var error_msg = new Object();
  error_msg['invalid_nick']   = new String("Der angegeben Benutzername muss mindestens aus 4 Buchstaben bestehen und darf keine Sonderzeichen oder Leerzeichen enthalten.");
  error_msg['invalid_msisdn'] = new String("Die angegeben Handynummer hat ein falsche Format. Bitte folgendes Format verwenden z.B.: 0792222222");
  error_msg['invalid_email']  = new String("Die angegeben Email Adresse hat ein falsches Format. Bitte folgendes Format verwenden z.B.: max@muster.ch");
  error_msg['internal_error'] = new String("Internal Error. Bitte Versuchen Sie die Seite neu zu laden.");
  
function check_user_data(element) {
  
  if (element.id=="nick") {
	
		if (element.value.length > 0) {
      if (element.value.length > 3 && (!element.value.match(/^[_a-z0-9]{4,15}$/i) || element.value.match(/^\d+$/))) {
				element.className = "error";
        return false;
			} else if (element.value.match(/^[_a-z0-9]{4,15}$/i)) {
				element.className = "ok";
				hide_error("error_element_nick");
        return true;
			} else {
				element.className = "";
				return false;
			}
		} else {
			element.className = "";
			return false;
		}
	}

  if (element.id=="email") {
      element.value = element.value.replace(/\s/g,"");
			if (IsMailValid(element.value) && element.value.length < 255) {
			  element.className = "ok";
				hide_error("error_element_email");
        return true;
			} else {
			  if (element.value.length > 0 && element.value.match(/(.+)\@(.+)\.(.+)/i)|| !element.value.match(/^[a-zA-Z0-9\-\@\.]+$/i)) {
			    element.className = "error";
			    return false;
			  } else {
			    element.className = "";
			    return false;
			  }
			}
  }
  
  if (element.id=="msisdn") {
		if (element.value.length > 0) {
		  element.value = element.value.replace(/\s/g,"");
			var ok = check_msisdn(element.value,network_prefixes);
			if (ok==0) {
				element.className = "error";
				return false;
			} else if (ok==1) {
				element.className = "ok";
				hide_error("error_element_msisdn");
        return true;
			} else {
				element.className = "";
				return false;
			}
		} else {
			element.className = "";
			return false;
		}
	}
	
}

  function IsMailValid(mail) {
    	var email = mail;
	    var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	    if (filter.test(email) == false) {
	      return false;
	    } else {
	      return true;
	    }
  }

  
  function process_page(element_name) {
    if (already_submitted) return false;
    already_submitted = true;
    
    var box          = dom.byId(element_name);
		var box_val      = box.value;
    
    if (!box_val)         box_val = '';

    if (box.className=="ok") {
      var post = 'cmd=temp_pass&'+element_name+'='+escape(box_val);
			new ajax('/login/xml.fcgi', {postBody: post, onComplete: processed_page, onError: error_page});
    } else {
      already_submitted = false;
    }
	}

	function processed_page(request) {
		var tr_xml = dom.treeXML(request.responseXML.documentElement);
		if (tr_xml.Ok[0].data == "1") {
		  var return_href; 
		  if (tr_xml.Info) {
		    step_disable('1');
		    step_enable('2');
		    dom.byId("info").innerHTML = tr_xml.Info[0].data;
		  } else {
		    window.location.href = '/login/';
		  }
		} else {
		  var error_element = 'page';
		  if (tr_xml.ErrorElement) {
		    error_element = tr_xml.ErrorElement[0].data;
		  }
		  show_error("error_element_"+error_element, tr_xml.Error[0].data);
		}
		already_submitted = false;
		dom.byId("button_temp_pass_nick").style.cursor = "pointer";
		dom.byId("button_temp_pass_msisdn").style.cursor = "pointer";
		dom.byId("button_temp_pass_email").style.cursor = "pointer";
	}

  function error_page() {
    show_error("error_element_"+"page",error_msg['internal_error']);
    dom.byId("button_temp_pass_nick").style.cursor = "pointer";
    dom.byId("button_temp_pass_msisdn").style.cursor = "pointer";
    dom.byId("button_temp_pass_email").style.cursor = "pointer";
    already_submitted = false;
  }	

  
  function get_pass_for(element_name) {
    
    if (already_submitted) return false;
    
    var box   = dom.byId(element_name);
    
    if (!check_user_data(box)) {
      show_error("error_element_"+element_name,error_msg["invalid_"+element_name]);
    } else {
      hide_error("error_element_"+element_name);
    }

    process_page(element_name);
  }
  
function step_disable(step) {
	var table = dom.byId('step_'+step);
	var div_disable = dom.byId('step_disable_'+step);

	div_disable.style.width = (table.offsetWidth+1)+'px';
	div_disable.style.height = table.offsetHeight+'px';
	div_disable.style.visibility = "visible";
}

function step_enable(step) {
	var div_disable = dom.byId('step_disable_'+step);
	div_disable.style.visibility = "hidden";
}

function step_disable_all_next(step_name) {
	var start = 99;
	for (var i=0;i<steps.length;i++) {
		if (step_name == steps[i]) start = i+1;
		if (i >= start) step_disable(i);
	}
}

function step_enable_next(step_name) {
	for (var i=0;i<steps.length;i++) {
		if (step_name == steps[i]) {
			step_enable(i+1);
			return;
		}
	}
}

	//]]>
