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 SelectRadioBoxI (boxName, valueI)
{
   var elemts = document.entryForm.elements[boxName];
   for (ii = 0; ii < elemts.length; ii++)
   {
       if (elemts[ii].value == valueI)
       {
          elemts[ii].selected = true;
          break;
       }
   }
}  

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;
        //checkForContest = false;
	if (!checkForContest) {
  	var valForm = document.forms['entryForm'];
 	  //var radioValue = GetRadioValue(valForm, 'artist_name');
          var radioValue = valForm.artist_name.value;
	  var selectValue = GetSelectValue(valForm, 'other_artist_name');
  } else {
		var valForm = document.forms['entryForm'];
	}
	if (p_language == "English"){
		english = true;
	} else {
		english = false;
	}
	if (!checkForContest && selectValue == "" && valForm.artist_name.value == null )
    {
        if (english) {
        	alert('Please select an artist');
        } else {
      		alert('Veuillez choisir un artiste');
      	}
        return false;
	}

	if ( !checkForContest && (radioValue == "additional" || radioValue == "") && selectValue == "" )
    {
        if (english) {
			alert('Please select an artist');
		} else {
			alert('Veuillez choisir un artiste');
      	}
		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 valeur pour : Courriel');
      	}
        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 une valeur pour : 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 une valeur pour : Nom de famille');
      	}
        valForm.elements['last_name'].focus();
        return false;
    }



   if ( checkForContest && trim(valForm.elements['city'].value) == '' )
    {
        if (english) {
                        alert('Please enter your city');
                } else {
                        alert('Veuillez entrer une valeur pour : Ville');
        }
        valForm.elements['city'].focus();
        return false;
    }


 if ( checkForContest && trim(valForm.elements['add1'].value) == '' )
    {
        if (english) {
                        alert('Please enter your address');
                } else {
                        alert('Veuillez entrer une valeur pour : Adresse');
        }
        valForm.elements['add1'].focus();
        return false;
    }
if ( checkForContest && GetSelectValue(valForm, 'Pro') == "" )
    {
        if (english) {
                        alert('Please enter your Province');
                } else {
                        alert('Veuillez entrer une valeur pour : Province');
        }
        valForm.elements['add1'].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;
    }
    if (checkForContest)
    {
       valForm.elements['postal'].value = valForm.elements['pos1'].value + valForm.elements['pos2'].value;
       if (!isPostCode(valForm.elements['postal'].value)) 
       {
           if (english) 
          {
alert("Please enter a valid postal code");
         } 
          else
          {
          alert("Veuillez entrer une valeur pour : Code Postal");
          }
         return false;
       }
    }


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

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

	valForm.elements['birth_date'].value =  GetSelectValueB(valForm, 'yyyy') + "/" +
					       	GetSelectValueB(valForm, 'mm') + "/" +
						GetSelectValueB(valForm, 'dd');
var valB = valForm.elements['birth_date'].value;
        if (!checkForContest && valB.length != 10)
        {
            valForm.elements['birth_date'].value = "1900/01/01";
        }

	if (!checkForContest ){
		if ( selectValue != "") {
			valForm.elements['answer_id'].value = selectValue;
		} else {
			valForm.elements['answer_id'].value = radioValue;
		}
  }
//if (!checkForContest)
//{
//document.getElementById("capcha").value = document.getElementById("capcha").value.toUpperCase();
//}
 //   if (!checkForContest && signupUser() == false)
  //  {
   //    alert("Please enter correct text in box");
   //    return false;
   // }
    if (!checkForContest) 
    {
        //valForm.IDO.value = getIDO(valForm.elements['email'].value);
        var valNum = valForm.elements['security_code'].value;
        if (valNum.length != 5)
        {
             if (english) 
             {
             alert("Please enter 5 digits for the security code");
             }
             else
             {
             alert("Veuillez entrer une valeur pour: Numéro de sécurité");
             }
             return false;
       }
    }
    if (checkForContest)
    {
         if (!validate_email(valForm.elements['emailNew'].value))
         {

         if (english)  
          {
                        alert('Please enter a valid e-mail address');
                } else {
                        alert('Veuillez entrer une adresse de courriel valide');
        }
        valForm.elements['emailNew'].focus();
        return false;
        }

    }
    return true;
}

function isPostCode(entry){ // checks Canadian codes only
strlen=entry.length; if (strlen!==6){return false;}
entry=entry.toUpperCase();  // in case of lowercase
// Check for legal characters in string - note index starts at zero
if('ABCEGHJKLMNPRSTVXY'.indexOf(entry.charAt(0))<0) {return false;}
if('0123456789'.indexOf(entry.charAt(1))<0) {return false;}
if('ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(entry.charAt(2))<0) {return false;}
if('0123456789'.indexOf(entry.charAt(3))<0) {return false;}
if('ABCDEFGHJKLMNPQRSTUVWXYZ'.indexOf(entry.charAt(4))<0) {return false;}
if('0123456789'.indexOf(entry.charAt(5))<0) {return false;}
return true;}
 
function getIDO(valC)
{
   var IDOV = 0;
   var newVal = valC;
   for (i = 0; i < newVal.length; i++)
   {
      IDOV = newVal.charCodeAt(i) + 3 + IDOV;
   }
   return IDOV;
} 
 
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;
}

function getFlashMovieObject(movieName)
{
  if (window.document[movieName]) 
  {
      return window.document[movieName];
  }
  if (navigator.appName.indexOf("Microsoft Internet")==-1)
  {
    if (document.embeds && document.embeds[movieName])
      return document.embeds[movieName]; 
  }
  else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
  {
    return document.getElementById(movieName);
  }
}

function isNumberKey(evt)
      {
         var charCode = (evt.which) ? evt.which : event.keyCode
         if (charCode > 31 && (charCode < 48 || charCode > 57))
            return false;

         return true;
      }

