/*
 -------------------------------------------
 ------------ ucag provisioning ------------
 --------------- javascripts ---------------
 ------ (c) Unified Communications AG ------
 --------- info (at) ucag (dot) ch ---------
 -------------------------------------------
*/

// helper functions for fields values check
function checkServerName(name)
{
	if (name == '') {
		return true;
	}

	var re;
	re = /^[_a-zA-Z0-9\.\-]{7,64}$/;
	
	return re.test(name);
}

function checkName(name)
{
	if (name == '') {
		return true;
	}

	var re;
	re = /^[_a-zA-Z0-9\.\-]{0,64}$/;
	
	return re.test(name);
}

function checkPhoneNumber(phonenumber)
{
	if (phonenumber == '') {
		return true;
	}

	var re;
	re = /^(00){0,1}[1-9]([0-9]){1,20}$/;
	
	return re.test(phonenumber);
}
// -----------------------------------------------------


// TSP form check
// -----------------------------------------------------
function checkForm()
{
	var sipProxyOK;
	var phoneNumberOK;
	var userNameOK;
	var authIdOK;
	var i;
	var count;
	
	count = document.getElementById('basicSettings').linesCount.value;

	if (count > 0) {

		for (i = 1; i <= count; i++) {
			tspNameOK = 'tspName' + i;
			sipProxyOK = 'sipProxy' + i;
			phoneNumberOK = 'phoneNumber' + i;
			userNameOK = 'userName' + i;
			authIdOK = 'authId' + i;

			if (document.getElementById(tspNameOK).value != null && document.getElementById(tspNameOK).value != '0') {

				if (!checkServerName(document.getElementById(sipProxyOK).value)) {
					alert('Invalid characters in server address at ' + i + '. line!');
					return false;
				}
				if (!checkPhoneNumber(document.getElementById(phoneNumberOK).value)) {
					alert('Invalid Phone number at ' + i + '. line!');
					return false;
				}
				if (!checkName(document.getElementById(userNameOK).value)) {
					alert('Invalid characters in User name at ' + i + '. line!');
					return false;
				}
				if (!checkName(document.getElementById(authIdOK).value)) {
					alert('Invalid characters in Auth. user name at ' + i + '. line!');
					return false;
				}
			}
		}
	}

	document.getElementById('generateXML').value = '1';
	
	return true;
}
// -----------------------------------------------------


// form fields magic - disabling / enabling
// -----------------------------------------------------
function checkAuthID(num)
{
	var name;
	var tspNameOK = 'tspName' + num;
	var userNameOK = 'userName' + num;
	var authIdOK = 'authId' + num;
	var sipProxyOK = 'sipProxy' + num;
	var dialPlanPBXOK = 'dialPlanPBX' + num;
	
	name = document.getElementById(tspNameOK).value;
	if (name != '0') {
		if (document.getElementById(name).value & 1) {
			document.getElementById(userNameOK).value = '';
			document.getElementById(userNameOK).disabled = 'disabled';
		} else {
			document.getElementById(userNameOK).disabled = '';
		}
		if (document.getElementById(name).value & 2) {
			document.getElementById(authIdOK).value = '';
			document.getElementById(authIdOK).disabled = 'disabled';
		} else {
			document.getElementById(authIdOK).disabled = '';
		}
	} else {
		document.getElementById(userNameOK).disabled = '';
		document.getElementById(authIdOK).disabled = '';
	}

	if (!(document.getElementById(name).value & 4)) {
		document.getElementById(sipProxyOK).value = '';
		document.getElementById(sipProxyOK).disabled = 'disabled';
	} else {
		document.getElementById(sipProxyOK).disabled = '';
	}
	if (document.getElementById(name).value & 8) {
		document.getElementById(dialPlanPBXOK).checked = 'checked';
	} else {
		document.getElementById(dialPlanPBXOK).checked = '';
	}

	return true;
}
// -----------------------------------------------------

