/**
 * xmlrpc.js
 *
 * XML RPC Functions for Player UCC
 *
 * @author     Christian Lorenz <info@lorenz-media.com>
 * @package    JavaScript
 * @subpackage RPC
 */

/**
 * Register rpc for jpSpan
 */
var xmlRPC;

//-Starting with jpSpan Functions
/**
 * Hide language box
 *
 * Calls PHP xmlRPC::getLanguage();
 *
 * @param  int from
 * @param  int to
 * @access public
 * @return null
 */
function hideLanguage(from, to) {
	var a = new xmlrpc(rpcCH);
	a.timeout = 3000;
	a.clientErrorFunc = function(E) {
//		if (E.code != 1003) {
//			alert(E);
//		}
	}
	a.hidelanguage(from, to);
}

/**
 * Do Check Login Valid
 *
 * Calls PHP xmlRPC::loginnameValid();
 *
 * @access public
 * @return null
 */
function doCheckLoginname() {
	var loginname = document.getElementById("userLogin").value;

	if (!loginname) {
		return false;
	}

	if (loginname.length < 3) {
		var outputTd = document.getElementById("outputLogin");
		outputTd.innerHTML = "Der Nickname ist zu kurz";
		return false;
	}

	var a = new xmlrpc(rpcCH);
	a.timeout = 3000;
	a.clientErrorFunc = function(E) {
//		if (E.code != 1003) {
//			alert(E);
//		}
	}
	a.loginnamevalid(loginname);
}
/**
 * Do Check Email Valid
 *
 * Calls PHP xmlRPC::emailValid();
 *
 * @access public
 * @return null
 */
function doCheckEmail() {
	var email = document.getElementById("userEmail").value;

	if (!email) {
		return false;
	}

	var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (!filter.test(email)) {
		document.getElementById("emailInvalidCharacters").className = "visible";
		document.getElementById("emailAlreadyExists").className = "hidden";
		document.getElementById("emailIsValid").className = "hidden";
		return false;
	} else {
		document.getElementById("emailInvalidCharacters").className = "hidden";
		document.getElementById("emailAlreadyExists").className = "hidden";
		document.getElementById("emailIsValid").className = "hidden";
	}

	var a = new xmlrpc(rpcCH);
	a.timeout = 3000;
	a.clientErrorFunc = function(E) {
//		if (E.code != 1003) {
//			alert(E);
//		}
	}
	a.emailvalid(email);
}

/**
 * Get Glossary Hint
 *
 * Calls PHP xmlRPC::getglossary();
 *
 * @access public
 * @return null
 */
function getGlossary(glossary_id) {
	var a = new xmlrpc(rpcCH);
	a.timeout = 3000;
	a.clientErrorFunc = function(E) {
		if (E.code != 1003) {
//			alert(E);
		}
	}
	a.getglossary(glossary_id);
}

/**
 * Completion Handler
 */
var rpcCH = {
	hidelanguage : function(result) {
		if (result == 0) {
			document.getElementById('languagebox').style.display = "none";
		} else {
			window.location.href = "/language/" + result + "/";
		}
	},
	loginnamevalid : function(result) {
		switch (result) {
		case 0:
			loginnamevalid = true;
			document.getElementById("nicknameInvalidCharacters").className = "hidden";
			document.getElementById("nicknameAlreadyExists").className = "hidden";
			document.getElementById("nicknameIsValid").className = "visible";
			break;

		case 1:
			loginnamevalid = false;
			document.getElementById("nicknameInvalidCharacters").className = "visible";
			document.getElementById("nicknameAlreadyExists").className = "hidden";
			document.getElementById("nicknameIsValid").className = "hidden";
			break;

		case 2:
			loginnamevalid = false;
			document.getElementById("nicknameInvalidCharacters").className = "hidden";
			document.getElementById("nicknameAlreadyExists").className = "visible";
			document.getElementById("nicknameIsValid").className = "hidden";
			break;
		}
		checkForm();
	},
	emailvalid : function(valid) {
		var outputTd = document.getElementById("outputEmail");

		if (valid) {
			emailvalid = true;
			document.getElementById("emailAlreadyExists").className = "hidden";
			document.getElementById("emailIsValid").className = "visible";
		} else {
			emailvalid = false;
			document.getElementById("emailAlreadyExists").className = "visible";
			document.getElementById("emailIsValid").className = "hidden";
		}
		checkForm();
	},
	getglossary : function(result) {
		if (myG) {
			myG.showResult(result);
		}
	}
}