//Globa variables
var GUEST_NUMBER = 3;
var DivToHide = new Array();
var numberOfChild = 5 ;
/*
objEvent = new Object;
objEvent.eventCities = new Array()
objEvent.eventCities[0] = new Object;
objEvent.eventCities[0].Name = "Los Angeles, CA";
objEvent.eventCities[1] = new Object;
objEvent.eventCities[1].Name = "San Francisco, CA";
objEvent.eventCities[2] = new Object;
objEvent.eventCities[2].Name = "Seattle, Wa";
objEvent.eventCities[2].SeminarName = new Array()
objEvent.eventCities[2].SeminarName[0] = "2008 Burgundy Best Buys Seminars with Bernard Sun.";
objEvent.eventCities[2].SeminarHour  = new Array();
objEvent.eventCities[2].SeminarHour[0] = new Array();
objEvent.eventCities[2].SeminarHour[0][0] = "2:30 - 3:15pm";
objEvent.eventCities[2].SeminarHour[0][1] = "4 - 4:45pm";
*/




function showParticipants() {
	day = new Date();
	id = day.getTime();
	eval("page" + id + " = window.open('participants.html', '" + id + "', 'toolbar=0,scrollbars=1,location=0,statusbar=0,menubar=0,resizable=0,width=550,height=500,left = 412,top = 134');");
}

function rotateImage()
{
	numImg = 4;
	imgArr = new Array();
	
	for (i = 0;i < numImg; i++)
		imgArr[i] = 'rotating' + (i+1) + '.jpg'
	
	var r = Math.floor(numImg*Math.random())
		
	document.getElementById("rotatingImage").src = '/maestro/ms/sopexa/burgundy-2008/images/' + imgArr[r];
}



function isPostalCode(postal) {

	  var mask = /^\d{5}$/

	  if (postal.match(mask)) {
	  	return true;
	  } else {
	  	return false;
	  }
}

function isPhoneValid(chaine){
	if(chaine.length != 12){
		return false;
	}
	if (isNaN(Number(chaine.charAt(0)))) {
	   return false;
	}
	if (isNaN(Number(chaine.charAt(1)))) {
	   return false;
	}
	if (isNaN(Number(chaine.charAt(2)))) {
	   return false;
	}
	if (chaine.charAt(3) != '-') {
	   return false;
	}
	if (isNaN(Number(chaine.charAt(4)))) {
	   return false;
	}
	if (isNaN(Number(chaine.charAt(5)))) {
	   return false;
	}
	if (isNaN(Number(chaine.charAt(6)))) {
	   return false;
	}
	if (chaine.charAt(7) != '-') {
	   return false;
	}
	for (var i=8; i < chaine.length; i++) {
		    if (isNaN(Number(chaine.charAt(i)))) {
			return false;
		}
	}
	return true;
}

function isEmailValid(courrielFourni) {
   // Format usager@domaine
   var emailPat=/^(.+)@(.+)$/
   // Caractères spéciaux
   var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
   // Caractères valides pour l'usager ou le domaine
   var validChars="\[^\\s" + specialChars + "\]"
   // Cas spécial d'un usager entre guillemets
   var quotedUser="(\"[^\"]*\")"
   // Cas spécial d'une adresse IP comme domaine ([] requis)
   var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
   // Atome : série de caractères valides
   var atom=validChars + '+'
   // Mot : atome ou usager entre guillemets
   var word="(" + atom + "|" + quotedUser + ")"
   // Structure d'un usager
   var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
   // Structure d'un domaine symbolique
   var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

   // Atomisation du courriel fourni
   var matchArray=courrielFourni.match(emailPat)
   if (matchArray==null) {
      // Échec de l'atomisation : le courriel fourni a une structure exotique
      return false
   }

   // Vérification de l'usager et du domaine
   var user=matchArray[1]
   var domain=matchArray[2]

   if (user.match(userPat)==null) {
      // Usager invalide
      return false
   }

   // Cas d'une adresse IP
   var IPArray=domain.match(ipDomainPat)
   if (IPArray!=null) {
      // C'est bien une adresse IP
        for (var i=1;i<=4;i++) {
         if (IPArray[i]>255) {
            // Adresse IP invalide
            return false
         }
      }
      return true
   }

   // Cas d'un domaine symbolique
   var domainArray=domain.match(domainPat)
   if (domainArray==null) {
      // Domaine invalide
      return false
   }

   // Analyse syntaxique du domaine
   var atomPat=new RegExp(atom,"g")
   var domArr=domain.match(atomPat)
   if (domArr[domArr.length-1].length<2) { // || domArr[domArr.length-1].length>3) {
      // Le domaine ne se termine pas par un suffixe de 2 ou + caractères
      return false
   }
   if (domArr.length<2) {
      // Il n'y a pas de nom d'hôte
      return false
   }

   // Si on s'est rendu jusqu'ici...
   return true;
}

function showGuest(){

	var box = document.getElementById('number_of_guest');

	var number = box.options[box.selectedIndex].value;

	for(i=1; i<=number; i++){

		document.getElementById("divGuest" + i).style.display = 'block';
		//alert('i:'+i);
	}

	for(j=GUEST_NUMBER; j>number; j--){

		document.getElementById("divGuest" + j).style.display = 'none';

		document.getElementById("Guest"+j+"_FirstName").value = "";
		document.getElementById("Guest"+j+"_LastName").value = "";
		document.getElementById("Guest"+j+"_Company").value = "";
		document.getElementById("Guest"+j+"_Email").value = "";
		/*for(sc = 0;sc<objEvent.eventCities.length;sc++)
		{
			document.getElementById("Guest"+j+"_CityRSVP_"+sc).checked = false;
		}*/
		//document.getElementById("Guest"+j+"_SeminarGeneral").checked = false;
		//document.getElementById("Guest"+j+"_SeminarOn").checked = false;


		//for(var i=1; i<=15;i++)
		//	if(document.getElementById("TradeCategoryG"+j+"_"+i).checked==true) document.getElementById("TradeCategoryG"+j+"_"+i).checked = false;
	}
	

}

function emailRequire()
{
	
	for(var i = 0; i <numberOfChild;i++)
	{
		if(document.getElementById("Email_"+i).value != "")
			return true;
	}
	alert("Please provide one email.");
	return false;	
}

function validateForm(formulaire){

	var valid = true;
	//var tradeCategoryChecked = false;
	var cityRSVP = false;

	/*for(var i=0; i<formulaire.TradeCategory.length;i++){
		if(formulaire.TradeCategory[i].checked==true)
			tradeCategoryChecked = true;
	}
*/
	/*for(var i=0; i<formulaire.CityRSVP.length;i++){
		if(formulaire.CityRSVP[i].checked==true)
			cityRSVP = true;
	}

	if(cityRSVP==false){
		alert("You must choose which wine expo you will attend.");
		valid = false;
	}
	*/
	
    if(formulaire.FirstName.value == ""){
		alert("You must enter your first name.");
		valid = false;
	}
	else if(formulaire.LastName.value == ""){
		alert("You must enter your last name.");
		valid = false;
	}
	else if(formulaire.Company.value == ""){
		alert("You must enter your company.");
		valid = false;
	}
	/*else if(formulaire.Title.options[formulaire.Title.selectedIndex].value == ""){
		alert("You must enter your title.");
		valid = false;
	}*/
	else if(formulaire.Address.value == ""){
		alert("You must enter your address.");
		valid = false;
	}
	/*else if(formulaire.City.value == ""){
		alert("You must enter your city.");
		valid = false;
	}*/
	else if(formulaire.State.options[formulaire.State.selectedIndex].value == ""){
		alert("You must enter your state.");
		valid = false;
	}
	else if(formulaire.ZIP.value == ""){
		alert("You must enter your zip code.");
		valid = false;
	}
	else if(formulaire.ZIP.value != "" && !isPostalCode(formulaire.ZIP.value)){
		alert("The zip code should be in the following format: 12345.");
		valid = false;
	}
	else if(formulaire.Telephone.value == ""){
		alert("You must enter your phone number.");
		valid = false;
	}
	else if(!isPhoneValid(formulaire.Telephone.value)){
		alert("The phone number should be in the following format: 123-456-7890.");
		valid = false;
	}
	else if(formulaire.Fax.value != "<none>" && !isPhoneValid(formulaire.Fax.value)){
		alert("The fax number should be in the following format: 123-456-7890.");
		valid = false;
	}
	else if(formulaire.Email.value == ""){

		alert("You must enter your email.");
		valid = false;
	}
	else if(!isEmailValid(formulaire.Email.value)){

		alert("The e-mail address is not valid. The e-mail address must appear in the following format: ab@cd.ef or ab.cd@ef.gh.");
		valid = false;
	}
	else if(document.getElementById("TradeCategory").selectedIndex=="0"){

		alert(" You must choose a trade category.");
		valid = false;
	}
	
	
	/*else {
		for(var i=1; i<=GUEST_NUMBER; i++){

			if(document.getElementById("Guest"+i+"_Email").value!="" && !isEmailValid(document.getElementById("Guest"+i+"_Email").value) && valid == true){

				alert("Guest #"+i+" : The e-mail address is not valid. The e-mail address must appear in the following format: ab@cd.ef or ab.cd@ef.gh.");
				valid = false;
			}
		}
	}*/
	
	fillSeminaire();
	
	
	var validGuest = false;
	if(valid==true) validGuest = validateGuest();
	
	//arrange le format
	if(valid==true && validGuest==true){

		for(var i=1; i<=GUEST_NUMBER; i++){
			document.getElementById("Guest"+i+"_FirstName").value = toProperCase(document.getElementById("Guest"+i+"_FirstName").value);
			document.getElementById("Guest"+i+"_LastName").value = toProperCase(document.getElementById("Guest"+i+"_LastName").value);
			document.getElementById("Guest"+i+"_Company").value = toProperCase(document.getElementById("Guest"+i+"_Company").value);
		}

		formulaire.FirstName.value = toProperCase(formulaire.FirstName.value);
		formulaire.LastName.value = toProperCase(formulaire.LastName.value);
		formulaire.Company.value = toProperCase(formulaire.Company.value);
		formulaire.Address.value = toProperCase(formulaire.Address.value);
		//formulaire.City.value = toProperCase(formulaire.City.value);
	}
	else valid = false;
	

	return valid;
}

function validateGuest(){
	
	var number_of_guest = document.getElementById('number_of_guest');
	var guestNumber = number_of_guest.options[number_of_guest.selectedIndex].value
	
	for(var i=1; i<=guestNumber; i++)
	{
		/*var GuestCityRSVPSelected = false;
		for(var j=0; j<document.frmSignup['Guest'+ i +'_CityRSVP'].length; j++){
			//alert("Guest"+ i +"_CityRSVP : " + document.frmSignup['Guest'+ i +'_CityRSVP'][j].checked)
			if(document.frmSignup['Guest'+ i +'_CityRSVP'][j].checked) GuestCityRSVPSelected = true;
		}*/
		
		if(document.getElementById("Guest"+i+"_FirstName").value == "") {
			alert("Guest " + i + " - You must enter your first name.");
			return false;
		}
		else if(document.getElementById("Guest"+i+"_LastName").value == "") {
			alert("Guest " + i + " - You must enter your last name.");
			return false;
		}
		else if(document.getElementById("Guest"+i+"_Company").value == "") {
			alert("Guest " + i + " - You must enter your company.");
			return false;
		}
		else if(document.getElementById("Guest"+i+"_Email").value == "") {
			alert("Guest " + i + " - You must enter your email.");
			return false;
		}
		else if( !isEmailValid(document.getElementById("Guest"+i+"_Email").value) ) {
			alert("Guest " + i + " - The e-mail address is not valid. The e-mail address must appear in the following format: ab@cd.ef or ab.cd@ef.gh.");
			return false;
		}
		/*else if(!GuestCityRSVPSelected) {
			alert("GuestCityRSVPSelected " + i + " - Location not selected");
			return false;
		}*/
		else if(document.getElementById("TradeCategoryG"+i).selectedIndex == 0) {
			alert("Guest " + i + " - You must choose a trade category.");
			return false;
		}
		
	}
	
	return true;
}

function toProperCase(s)
{
  return s.toLowerCase().replace(/^(.)|\s(.)|-(.)/g,
          function($1) { return $1.toUpperCase(); });
}

function showDivs(id,index)
{
	hideDivs(index);
	
	i = DivToHide.length;
	DivToHide[i] = id;
	divObj  = document.getElementById(id+'_'+ index);
	descObj = document.getElementById("SeminarQuestion" + index);
	divObj.style.display  = "block";
	descObj.style.display = "block";
}

function hideDivs(index)
{	
   if(DivToHide.length > 0)
   {
	   for(var i=0;i<DivToHide.length;i++)
	   {
		   
		   divObj  = document.getElementById(DivToHide[i]+'_'+ index);
		   if(divObj)
		  	 divObj.style.display  = "none";
	   }
	   descObj = document.getElementById("SeminarQuestion" + index);
	   descObj.style.display = "none";	
   }
}

function showSeminarByCity(chosenCity)
{
	for(var i=0;i<objEvent.eventCities.length;i++)
	{
		if(objEvent.eventCities[i].Name == chosenCity)
			if(objEvent.eventCities[i].SeminarName)
				return objEvent.eventCities[i];
			else
				return false;
	}
}

function fillInput(chosenCity,obj,showTitle)
{
	var seminar = "";
	var objSeminar = showSeminarByCity(chosenCity);
	if(!objSeminar)
		return false;
	for(var w=0;w<objSeminar.SeminarName.length;w++)
	{
		//alert("inside loop: " + w)
		if(obj.checked)
		{
			if(showTitle)
			{
				seminar += "<br />" + objSeminar.SeminarName[w] + ": ";
			}
			seminar += obj.value;
			//alert("object :" + obj + " value: " + obj.value);
		}
	}
	return seminar;
}
				
	


function fillSeminaire()
{
	var chosenCity = document.frmSignup.CityRSVP.value;
	var seminar = "";
	var seminarHours = "";
	var comma = "";
	var objSeminar = showSeminarByCity(chosenCity);
	var objSeminarGuest;
	var tempVal = "";
	
	if(objSeminar)
	{
		for(var i = 0; i < objSeminar.SeminarName.length; i++)
		{
			tempVal = ""
			//alert("first : " + i + "");
			tempVal =  fillInput(chosenCity,document.getElementById("SeminarGeneral_" + i ), true);
			
			if(tempVal)
				seminar += tempVal;
			//alert("second : " + i + "");
			tempVal = fillInput(chosenCity,document.getElementById("SeminarGeneral_" + i ), false);
			
			if(tempVal)
				seminarHours += tempVal;
				
			comma = (tempVal == false || tempVal == "")?"":" , ";
			
			tempVal = fillInput(chosenCity,document.getElementById("SeminarOn_" + i ), false);
			
			if(tempVal)
				seminar += comma + tempVal;
			
			tempVal = fillInput(chosenCity,document.getElementById("SeminarOn_" + i ), false);
			
			if(tempVal)
				seminarHours += comma + tempVal;
			//alert("Finnish loop " + i);	
		}
		//alert(seminar);
		document.getElementById("seminarDisplay").value = seminar;
		document.getElementById("SeminarRSVP").value = seminarHours;
	}

		
		
		
	fillGuestSeminar()
		
		
		
}

function fillGuestSeminar(){
	for(var i=1; i<=GUEST_NUMBER; i++){
		var chkGuestSeminar = document.getElementsByName("chkGuest" + i +"_SeminarRSVP");
		var valGuestSeminar = "";
		for(var j=0; j < chkGuestSeminar.length; j++){
			
			if(chkGuestSeminar[j].checked) {
				if(valGuestSeminar != "")	valGuestSeminar += "," + chkGuestSeminar[j].value;
				else valGuestSeminar += chkGuestSeminar[j].value;
				
			}
		}
		
		document.getElementById("Guest"+i+"_SeminarRSVP").value = valGuestSeminar;
	}
}
