function trim(st)
{
	var len = st.length
	var begin = 0, end = len - 1;
	while (st.charAt(begin) == " " && begin < len)
	{
		begin++;
	}
	while (st.charAt(end) == " " && begin < end)
	{
		end--;
	}
	return st.substring(begin, end+1);
}

function validate_email(em)
{
	em = trim(em)

	if(em.indexOf("@") == -1 || em.indexOf(".") == -1)
	{
		return false;
	}
	else
	{
		return true;
	}
}

function validate_phone(area, prefix, suffix)
{
	var a = trim(area);
	var p = trim(prefix);
	var s = trim(suffix);

    if( (a.length != 3) || (p.length != 3) || (s.length != 4) ) {
        return false;
    }

	var three_digits = /^\d{3}$/;
	var four_digits  = /^\d{4}$/;
	if( three_digits.test(a) && three_digits.test(p) && four_digits.test(s))
	{
		return true;
	}
	return false;
}

function GetRadioValue (p_form, p_radioFieldName)
{
	var answer = -99999;
 	for( var j=0; j < p_form.elements[p_radioFieldName].length; j++ )
 	{
  		if( p_form.elements[p_radioFieldName][j].checked )
  		{
			answer = p_form.elements[p_radioFieldName][j].value;
		}
	}

	return answer;
}

function SetRadioValue (p_form, p_radioFieldName, p_value)
{
 	for( var j=0; j < p_form.elements[p_radioFieldName].length; j++ )
 	{
  		if( p_form.elements[p_radioFieldName][j].value == p_value )
  		{
			p_form.elements[p_radioFieldName][j].checked = true;
			return true;
		}
	}

	return false;
}

function GetSelectValue (p_form, p_selectFieldName)
{
	return p_form.elements[p_selectFieldName].options[p_form.elements[p_selectFieldName].selectedIndex].value;
}

function is_empty(formName, radioFieldName) // check radio btn fields to see if they are all blank.
{
	noneChecked = true;
 	for( var j=0; j < formName.elements[radioFieldName].length; j++ )
 	{
  		if( formName.elements[radioFieldName][j].checked )
  		{
			noneChecked = false;
		}
	}
	if( noneChecked )
	{
		return true;
	}
	return false;
}

function check_form(p_language, checkForContest)
{
	var english;
	if (!checkForContest) {
  	var valForm = document.forms['entryForm'];
 	  var radioValue = GetRadioValue(valForm, 'artist_name');
	  var selectValue = GetSelectValue(valForm, 'other_artist_name');
  } else {
		var valForm = document.forms['registerContest'];
	}

	if (p_language == "English"){
		english = true;
	} else {
		english = false;
	}

	if (!checkForContest && is_empty(valForm, 'artist_name') )
    {
        if (english) {
        	alert('Please select an artist.');
        } else {
      		alert('Veuillez choisir un artiste.');
      	}
        return false;
	}

	if ( !checkForContest && radioValue == "additional" && selectValue == "" )
    {
        if (english) {
			alert('Please select an artist from the More Artists list.');
		} else {
			alert('Veuillez choisir un artiste de la liste Autres artistes.');
      	}
		valForm.elements['other_artist_name'].focus();
        return false;
	}

	if ( !checkForContest && !validate_email(valForm.elements['email'].value) )
    {
        if (english) {
			alert('Please enter a valid e-mail address.');
		} else {
			alert('Veuillez entrer une adresse de courriel valide.');
      	}
        valForm.elements['email'].focus();
        return false;
	} else {
		valForm.elements['email'].value = trim(valForm.elements['email'].value);
  }

	if ( trim(valForm.elements['first_name'].value) == '' )
    {
        if (english) {
			alert('Please enter your first name.');
		} else {
			alert('Veuillez entrer votre prénom.');
      	}
        valForm.elements['first_name'].focus();
        return false;
    }

	if ( trim(valForm.elements['last_name'].value) == '' )
    {
        if (english) {
			alert('Please enter your last name.');
		} else {
			alert('Veuillez entrer votre nom de famille.');
      	}
        valForm.elements['last_name'].focus();
        return false;
    }

	if ( !validate_phone(valForm.elements['area'].value,
						 valForm.elements['prefix'].value,
						 valForm.elements['suffix'].value))
    {
        if (english) {
			alert('Please enter your phone number including the area code.');
		} else {
			alert("Veuillez entrer votre numéro de téléphone, y compris l'indicatif régional.");
      	}
        valForm.elements['area'].focus();
        return false;
    }

	// Only validate their birthdate if they are in the contest.
	if ( 	GetSelectValue(valForm, 'mm') == "" ||
       		GetSelectValue(valForm, 'dd') == "" ||
       		GetSelectValue(valForm, 'yyyy') == "")
    {
        if (english) {
			alert('Please enter your birth date.');
		} else {
			alert('Veuillez entrer votre date de naissance.');
      	}
        valForm.elements['mm'].focus();
        return false;
    }

	if ( !checkForContest && valForm.elements['security_code'].value == "" )
    {
        if (english) {
			alert('Please enter the PIN number.');
		} else {
			alert('Veuillez entrer le NIP.');
      	}
		valForm.elements['security_code'].focus();
        return false;
	}

	valForm.elements['phone'].value =
		valForm.elements['area'].value + "-" +
		valForm.elements['prefix'].value + "-" +
		valForm.elements['suffix'].value;

	valForm.elements['birth_date'].value =  GetSelectValue(valForm, 'yyyy') + "/" +
					       	GetSelectValue(valForm, 'mm') + "/" +
						GetSelectValue(valForm, 'dd');

	if (!checkForContest ){

		if ( radioValue == "additional") {
			valForm.elements['answer_id'].value = selectValue;
		} else {
			valForm.elements['answer_id'].value = radioValue;
		}
  }

    return true;
}

function DisableSelect()
{
	document.forms['entryForm'].elements['other_artist_name'].disabled = true;
	document.forms['entryForm'].elements['other_artist_name'].selectedIndex = 0;
}

function EnableSelect()
{
	document.forms['entryForm'].elements['other_artist_name'].disabled = false;
	SetRadioValue(document.forms['entryForm'], 'artist_name', 'additional');
}

function popup(URL)
{
	var popup = window.open(URL, "fanChoicePopup", "menubar,scrollbars,WIDTH=640,HEIGTH=320");

	if (popup != null)
	{
		popup.focus();
	}

	return false;
}

