/**
 * wsClearField()
 *
 * Limpa a legenda de um campo input ou textarea.
 *
 * @param  objeto campo
 * @param  legenda padrão
 * @return vazio
 */
function wsClearField(a_field, a_value)
{
	if (a_field.value == a_value)
	{
		a_field.value = '';
	}
}

/**
 * wsRestoreField()
 *
 * Restaura a legenda padrão de um campo input ou textarea.
 *
 * @param  objeto campo
 * @param  legenda padrão
 * @return vazio
 */
function wsRestoreField(a_field, a_value)
{
	if (a_field.value == '')
	{
		a_field.value = a_value;
	}
}

/**
 * wsOutboundLink()
 *
 * Cria um link para site externo numa nova ou na mesma janela.
 *
 * @param  string link
 * @param  mixed nome da janela de destino
 * @return link
 */
function wsOutboundLink(link, target)
{
	if (target == false)
	{
		window.location.href = link;
	}
	else
	{
		window.open(link, target);
	}
}


/**
 * wsValidateCpf()
 *
 * Verifica e valida um CPF.
 *
 * @param  int a_cpf
 * @return boolean
 */
function wsValidateCpf(a_cpf)
{
	var v_cpf = a_cpf.replace(/[^0-9]/g, '');

	if (!/^[\d]{11}$/.test(v_cpf))
	{
		return false;
	}
	if (/^0{11}|1{11}|2{11}|3{11}|4{11}|5{11}|6{11}|7{11}|8{11}|9{11}$/.test(v_cpf))
	{
		return false;
	}
	var v_sequence	  = new Array();
	var v_rest, v_sum = new Number;
	var v_multiplier  = 11;

	for (var i = 0; i < 11; i++)
	{
		v_sequence[i] = v_cpf.charAt(i);

		if (i < 9)
		{
			v_sum += (v_sequence[i] * --v_multiplier);
		}
	}
	if ((v_rest = v_sum % 11) < 2)
	{
		v_sequence[9] = 0;
	}
	else
	{
		v_sequence[9] = 11 - v_rest;
	}
	v_sum		 = 0;
	v_multiplier = 11;

	for (var y = 0; y < 10; y++)
	{
		v_sum += (v_sequence[y] * v_multiplier--);
	}
	if ((v_rest = v_sum % 11) < 2)
	{
		v_sequence[10] = 0;
	}
	else
	{
		v_sequence[10] = 11 - v_rest;
	}
	if ((v_cpf.charAt(9) != v_sequence[9]) || (v_cpf.charAt(10) != v_sequence[10]))
	{
		return false;
	}
	return true;
}