
function doSetCaretPosition (oField, iCaretPos) {

	// IE Support
	if (document.selection) {
		
		// Set focus on the element
		oField.blur();
		oField.focus();
		
		// Create empty selection range
		var oSel = document.selection.createRange ();
				
		// Move selection start and end to 0 position
		oSel.moveStart ('character', -oField.length);
		
		// Move selection start and end to desired position
		oSel.moveStart ('character', iCaretPos);
		oSel.moveEnd ('character', 1);
		oSel.select ();

	// Firefox support
	}else if (oField.selectionStart || oField.selectionStart == '0') {
		oField.selectionStart = iCaretPos;
		oField.selectionEnd = iCaretPos+1;
		oField.focus ();
	}
}

var reg_is_disabled=false;
function checkKey(){
	//document.getElementById("reg_button").disabled=true;
	if(reg_is_disabled==true)	
		return false;

	reg_is_disabled=true;
	

	if(document.getElementById("license_key").value==""){
		document.getElementById("key_error").innerHTML="Var god fyll i licensnyckeln.";
		document.getElementById("key_error").style.display='block';
		document.getElementById("license_key").focus();
		//document.getElementById("reg_button").disabled=false;
		reg_is_disabled=false;
		return false;
	}

	var tmp = document.getElementById("license_key").value.replace(/ /gi,"");
	tmp = tmp.replace(/-/gi,"");
	
	if(tmp.length!=28){
		document.getElementById("key_error").innerHTML="Licensnyckeln inneh&aring;ller fel antal tecken.";
		document.getElementById("key_error").style.display='block';
		document.getElementById("license_key").focus();
		//document.getElementById("reg_button").disabled=false;
		reg_is_disabled=false;
		return false;		
	}

	key=document.getElementById("license_key").value;
	var badChars = new Array('O','I','l')
	var badCharsTxt = new Array(
					'Stora o (O) f&ouml;rekommer ej i nyckeln.',
					'Stora i (I) f&ouml;rekommer ej i nyckeln.',
					'Lilla L (l) f&ouml;rekommer ej i nyckeln.'
					);
	
	var index=-1;
	for(var i=0;i<badChars.length;i++){
		index = key.indexOf(badChars[i]);
		if(index !=-1){
			document.getElementById("key_error").style.border='solid #ff0000 1px';
			doSetCaretPosition (document.getElementById("license_key"), index)
			document.getElementById("key_error").innerHTML="Den licensnyckel du angivit inneh&aring;ller ogiltiga tecken.<br>" + badCharsTxt[i];
			document.getElementById("key_error").style.display='block';
			//document.getElementById("reg_button").disabled=false;
			reg_is_disabled=false;
			return false;
		}
	}
	
	if(document.getElementById("firstname").value==""){
		document.getElementById("firstname_error").innerHTML="Var god fyll i ditt f&ouml;rnamn";
		document.getElementById("firstname_error").style.display='block';
		document.getElementById("firstname").focus();
		//document.getElementById("reg_button").disabled=false;
		reg_is_disabled=false;
		return false;
	}

	if(document.getElementById("lastname").value==""){
		document.getElementById("lastname_error").innerHTML="Var god fyll i ditt efternamn";
		document.getElementById("lastname_error").style.display='block';
		document.getElementById("lastname").focus();
		//document.getElementById("reg_button").disabled=false;
		reg_is_disabled=false;
		return false;
	}

	if(document.getElementById("email1").value != document.getElementById("email2").value){
		document.getElementById("email_error").innerHTML="F&auml;lten 'E-postadress' och 'Bekr&auml;fta e-postadress' st&auml;mmer ej &ouml;verens";
		document.getElementById("email_error").style.display='block';		
		if(document.getElementById("email2").value=="")
			document.getElementById("email2").focus();
		if(document.getElementById("email1").value=="")
			document.getElementById("email1").focus();
		//document.getElementById("reg_button").disabled=false;
		reg_is_disabled=false;
		return false;
	}

	if(document.getElementById("email1").value=="" || document.getElementById("email2").value==""){
		document.getElementById("email_error").innerHTML="Var god fyll i din e-postadress";
		document.getElementById("email_error").style.display='block';
		if(document.getElementById("email2").value=="")
			document.getElementById("email2").focus();
		if(document.getElementById("email1").value=="")
			document.getElementById("email1").focus();
		//document.getElementById("reg_button").disabled=false;
		reg_is_disabled=false;
		return false;
	}
	
	if(document.getElementById("pwd1").value != document.getElementById("pwd2").value){
		document.getElementById("pwd_error").innerHTML="F&auml;lten 'L&ouml;senord' och 'Bekr&auml;fta l&ouml;senord' st&auml;mmer ej &ouml;verens";
		document.getElementById("pwd_error").style.display='block';		
		if(document.getElementById("pwd2").value=="")
			document.getElementById("pwd2").focus();
		if(document.getElementById("pwd1").value=="")
			document.getElementById("pwd1").focus();
		//document.getElementById("reg_button").disabled=false;
		reg_is_disabled=false;
		return false;
	}

	if(document.getElementById("pwd1").value=="" || document.getElementById("pwd2").value==""){
		document.getElementById("pwd_error").innerHTML="Var god fyll i &ouml;nskat l&ouml;senord";
		document.getElementById("pwd_error").style.display='block';
		if(document.getElementById("pwd2").value=="")
			document.getElementById("pwd2").focus();
		if(document.getElementById("pwd1").value=="")
			document.getElementById("pwd1").focus();
		//document.getElementById("reg_button").disabled=false;
		reg_is_disabled=false;
		return false;
	}


	var key=document.getElementById("license_key").value;
	var firstname=document.getElementById("firstname").value;
	var lastname=document.getElementById("lastname").value;
	var email1=document.getElementById("email1").value;
	var email2=document.getElementById("email2").value;
	var pwd1=document.getElementById("pwd1").value;
	var pwd2=document.getElementById("pwd2").value;

	AjaxRequest.post({
		'url':'/llb_generic/reg_new_user.php'
		,'key':key
		,'firstname':firstname
		,'lastname':lastname
		,'email1':email1
		,'email2':email2
		,'pwd1':pwd1
		,'pwd2':pwd2
		,'onSuccess':function(req){
			response = req.responseText;

			if(response.indexOf("|")!=-1){
				var aRes = response.split("|");
				var res=aRes[0];
				if(res == "ALL_OK"){
					var uid=aRes[1];
					var urh=aRes[2];
					document.location='http://llb.libendo.com/llb/index_reg_completed.php?d=1&reg=1&uid='+uid+'&urh='+urh+'&from='+top.location.host;
				}else if(res=="PICK_FROM_PKG"){
					var uid=aRes[1];
					var key=aRes[2];
					document.location='http://llb.libendo.com/llb/pick_from_pkg.php?key='+key+'&llbuid='+uid;
				}else{
					showKeyError(response);
				}
			}else{
				showKeyError(response);
			}
		}
		,'onError':function(req){
			alert('Error!\nStatusText='+req.statusText+'\nContents='+req.responseText);
		}
	});
}


function showKeyError(msg){
	if(msg=='EMAIL_FOUND'){
		response="Den e-postadress du angivit finns redan kopplad till ett konto. Ange det l&ouml;senord som &auml;r kopplat till kontot n&auml;r du ska registrera din licensnyckel.";
	}else if(msg=='DB_ERROR'){
		response="Tillf&auml;lligt fel, var god f&ouml;rs&ouml;k igen lite senare.";
	}else if(msg=='DB_ERROR_UNABLE_TO_CREATE_USER'){
		response="Ov&auml;ntat fel, kunde inte skapa studiekonto. Var god f&ouml;rs&ouml;k igen lite senare.";
	}else if(msg=='UID_ERROR'){
		response="Ov&auml;ntat fel, kunde inte skapa studiekonto. Var god f&ouml;rs&ouml;k igen lite senare.";
	}else if(msg=='PRODUCT_ERROR'){
		response="Ett ov&auml;ntat fel intr&auml;ffade. Var god kontakta support@libendo.se och skicka med din licensnyckel.";
	}else if(msg=='USED_KEY'){
		response="Den licensnyckel du har angivit &auml;r f&ouml;rbrukad.";
	}else if(msg=='INVALID_KEY'){
		response="Felaktig licensnyckel. Var god kontrollera att du skrivit r&auml;tt.";
	}else if(msg=='INVALID_KEY_LEN'){
		response="Felaktig licensnyckel. Var god kontrollera att du skrivit r&auml;tt.";
	}else if(msg=='INVALID_KEY_UNKNOWN'){
		response="Felaktig licensnyckel. Var god kontrollera att du skrivit r&auml;tt.";
	}else if(msg=='CG_ERROR'){
		response="Felaktig licensnyckel. Var god kontrollera att du skrivit r&auml;tt.";
	}else if(msg=='INVALID_EMAIL'){
		response="Den e-postadress du har angivit &auml;r inte giltig.";
	}else{
		response="Ov&auml;ntat fel<br>Var kod kontata libendo support: support@libendo.se<br>ErrCode: "+msg;
	}

	document.getElementById("key_error").innerHTML=response;
	document.getElementById("key_error").style.display='block';
	//document.getElementById("reg_button").disabled=false;
	reg_is_disabled=false;
}



