// JavaScript Document

if(spck) {
}else{
	var spck={};
}

spck.LTrim = function(value) {
	var re = /^\s*/;
	return value.replace(re, "");
}
spck.RTrim = function(value) {
	var re = /\s*$/;
	return value.replace(re, "");
}
spck.trim = function(value) {
	var re = /\s*$/;
	return spck.LTrim(spck.RTrim(value));
}

spck.validateStoreSelection = function(storeAppointmentForm) {
	if (storeAppointmentForm.store.selectedIndex == 0 || storeAppointmentForm.store.value == "") 
	{
		storeAppointmentForm.store.focus();
		return false;
	}
	return true;	
}

function containsAlphabets(checkString) {
	var tempString="";
	var regExp = /^[A-Za-z]$/;
	if(checkString != null && checkString != "")
	{
	  for(var i = 0; i < checkString.length; i++)
	  { 
		if (!checkString.charAt(i).match(regExp))
		{
		  return false;
		}
	  }
	}
	else
	{
	  return false;
	}
	return true;
}

function IsNumeric(sText)
{
   var ValidChars = "0123456789";
   var IsNumber=true;
   var Char; 
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
		 Char = sText.charAt(i); 
			if (ValidChars.indexOf(Char) == -1) 
			  {
				  IsNumber = false;
			  }
      }

   return IsNumber;   
}

function checkLength(sText)
{
	if (sText.length > '30')
	{
		return false;
	}
	return true;
}

function checkAppointmentDate(month, day)
{
	var m_names = new Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
	var selectedMonth = 0;
	for (var i=0; i < m_names.length; i++)
	{
		if (m_names[i] == month)
		{
			selectedMonth = i;
			break;
		}
	}

	var today = new Date();
	var storeApptDate = new Date();
	if (selectedMonth < today.getMonth())
	{
		storeApptDate.setFullYear(today.getFullYear() + 1, selectedMonth, day);
	} 
	else 
	{
		storeApptDate.setFullYear(today.getFullYear(), selectedMonth, day); 
	}
	var nextDate = new Date();
	nextDate.setDate(nextDate.getDate()+1);
	if (storeApptDate <= today || storeApptDate <= nextDate)
	{
		return false;
	}

	return true;
}

spck.validateRequestForm = function(requestForm) {
	var Temp     = requestForm.email;
	var AtSym    = Temp.value.indexOf('@');
	var Period   = Temp.value.lastIndexOf('.');
	var Space    = Temp.value.indexOf(' ');
	var Length   = Temp.value.length - 1;

	if(requestForm.skialpine.checked == false && requestForm.snowboard.checked == false)
	{
		$('errorMsg').innerHTML = "Please select at least one item under \"Shopping For.\"";
		$('errorMsg').style.display = 'block';
		requestForm.skialpine.focus();
		return false;
	} else if ((requestForm.month && requestForm.month.type == "select-one" && requestForm.month.selectedIndex == 0) || (requestForm.day && requestForm.day.type == "select-one" && requestForm.day.selectedIndex == 0) || (requestForm.time && requestForm.time.type == "select-one" && requestForm.time.selectedIndex == 0))
	{
		
		$('errorMsg').innerHTML = "Appointment Date & Time is required.";
		$('errorMsg').style.display = 'block';
		requestForm.month.focus();
		return false;
	} else if (!checkAppointmentDate(requestForm.month.value, requestForm.day.value))
	{
	
		$('errorMsg').innerHTML = "We\'re sorry, appointments must be requested a minimum of 3 days in advance. Please choose a later date.";
		$('errorMsg').style.display = 'block';
		requestForm.month.focus();
		return false;
	} else if (requestForm.contact_method && requestForm.contact_method.type == "select-one" && requestForm.contact_method.selectedIndex == 0)
	{
		
		$('errorMsg').innerHTML = "Preferred contact method is required.";
		$('errorMsg').style.display = 'block';
		requestForm.contact_method.focus();
		return false;		
	} else if (spck.trim(requestForm.first_name.value) == "")
	{
		
		$('errorMsg').innerHTML = "First Name is required.";
		$('errorMsg').style.display = 'block';
		requestForm.first_name.focus();
		return false;
	} else if (!containsAlphabets(requestForm.first_name.value))
	{
		
		$('errorMsg').innerHTML = "Your first name is invalid. Numeric and Special characters are not allowed. Please re-enter your first name.";
		$('errorMsg').style.display = 'block';
		requestForm.first_name.focus();
		return false;
	} else if (!checkLength(requestForm.first_name.value))
	{
		
		$('errorMsg').innerHTML = "First name must have 30 or fewer characters.";
		$('errorMsg').style.display = 'block';
		requestForm.first_name.focus();
		return false;
	} else if (spck.trim(requestForm.Last_name.value) == "") 
	{
		
		$('errorMsg').innerHTML = "Last Name is required.";
		$('errorMsg').style.display = 'block';
		requestForm.Last_name.focus();
		return false;
	} else if (!containsAlphabets(requestForm.Last_name.value))
	{
	
		$('errorMsg').innerHTML = "Your last name is invalid. Numeric and Special characters are not allowed. Please re-enter your last name.";
		$('errorMsg').style.display = 'block';
		requestForm.Last_name.focus();
		return false;
	} else if (!checkLength(requestForm.Last_name.value))
	{
	
		$('errorMsg').innerHTML = "Last name must have 30 or fewer characters.";
		$('errorMsg').style.display = 'block';
		requestForm.Last_name.focus();
		return false;
	} else if (spck.trim(requestForm.email.value) == "") 
	{
		if (requestForm.contact_method.selectedIndex == 4 ) 
		{
			
			$('errorMsg').innerHTML = "The contact method selected has no corresponding contact information.";
			$('errorMsg').style.display = 'block';
		} else 
		{
			
			$('errorMsg').innerHTML = "Email is required.";
			$('errorMsg').style.display = 'block';
		}
		requestForm.email.focus();
		return false;
	} else if (!checkLength(requestForm.email.value))
	{
		$('errorMsg').innerHTML = "Email must have 30 or fewer characters.";
		$('errorMsg').style.display = 'block';
		requestForm.email.focus();
		return false;
	} else if ((AtSym < 1) || (Period <= AtSym+1) || (Period == Length ) || (Space  != -1)) 
	{
		
		$('errorMsg').innerHTML = "This is not a valid email format. Please use the following format:<br>a@b.ca.";
		$('errorMsg').style.display = 'block';
		requestForm.email.focus();
		return false;
	} else if((spck.trim(requestForm.email.value)) != (spck.trim(requestForm.confirm_email.value)))
	{
		
		$('errorMsg').innerHTML = "Your Email must match the Confirm Email.";
		$('errorMsg').style.display = 'block';
		requestForm.confirm_email.focus();
		return false;
	} else if (requestForm.contact_method.selectedIndex == 1 && !requestForm.cell_area_code.value && !requestForm.cell_prefix.value && !requestForm.cell_suffix.value) 
	{
		
		$('errorMsg').innerHTML = "The contact method selected has no corresponding contact information.";
		$('errorMsg').style.display = 'block';
		requestForm.cell_area_code.focus();
		return false;				
	} else if (requestForm.contact_method.selectedIndex == 2  && !requestForm.work_area_code.value && !requestForm.work_prefix.value && !requestForm.work_suffix.value)	
	{
	
		$('errorMsg').innerHTML = "The contact method selected has no corresponding contact information.";
		$('errorMsg').style.display = 'block';
		requestForm.work_area_code.focus();
		return false;	
		
	} else if (requestForm.contact_method.selectedIndex == 3 && !requestForm.home_area_code.value && !requestForm.home_prefix.value && !requestForm.home_suffix.value) 
	{
	
		$('errorMsg').innerHTML = "The contact method selected has no corresponding contact information.";
		$('errorMsg').style.display = 'block';
		requestForm.home_area_code.focus();
		return false;	
		
	} else if ((requestForm.cell_area_code.value || requestForm.cell_prefix.value || requestForm.cell_suffix.value)&&(spck.trim(requestForm.cell_area_code.value).length != '3' || spck.trim(requestForm.cell_prefix.value).length != '3' || spck.trim(requestForm.cell_suffix.value).length != '4' || !IsNumeric(spck.trim(requestForm.cell_area_code.value)) || !IsNumeric(spck.trim(requestForm.cell_prefix.value)) || !IsNumeric(spck.trim(requestForm.cell_suffix.value)))) {
		
		$('errorMsg').innerHTML = "Your Cell number is invalid. Please use the following format:<br>(111)111-1111";
		$('errorMsg').style.display = 'block';
		requestForm.cell_area_code.focus();
		return false;
		
	}
	else if (requestForm.work_ext.value && !IsNumeric(spck.trim(requestForm.work_ext.value)))
	{
		
		$('errorMsg').innerHTML = "Your Work Number Extension is invalid. Numeric characters only.Please re-enter your Work Number Extension.";
		$('errorMsg').style.display = 'block';
		requestForm.work_ext.focus();
		return false;
	}		
	else if (requestForm.work_ext.value && !checkLength(requestForm.work_ext.value))
	{
		
		$('errorMsg').innerHTML = "Work Phone Extension must have 30 or fewer characters.";
		$('errorMsg').style.display = 'block';
		requestForm.work_ext.focus();
		return false;
	}
	else if ((requestForm.work_area_code.value || requestForm.work_prefix.value || requestForm.work_suffix.value || requestForm.work_ext.value) && (spck.trim(requestForm.work_area_code.value).length != '3' || spck.trim(requestForm.work_prefix.value).length != '3' || spck.trim(requestForm.work_suffix.value).length != '4' || !IsNumeric(spck.trim(requestForm.work_area_code.value)) || !IsNumeric(spck.trim(requestForm.work_prefix.value)) || !IsNumeric(spck.trim(requestForm.work_suffix.value)))) {
		
		$('errorMsg').innerHTML = "Your Work number is invalid. Please use the following format:<br>(111)111-1111";
		$('errorMsg').style.display = 'block';
		requestForm.work_area_code.focus();
		return false;		
	}
	else if ((requestForm.home_area_code.value || requestForm.home_prefix.value || requestForm.home_suffix.value) && (spck.trim(requestForm.home_area_code.value).length != '3' || spck.trim(requestForm.home_prefix.value).length != '3' || spck.trim(requestForm.home_suffix.value).length != '4' || !IsNumeric(spck.trim(requestForm.home_area_code.value)) || !IsNumeric(spck.trim(requestForm.home_prefix.value)) || !IsNumeric(spck.trim(requestForm.home_suffix.value)))) {
		
		$('errorMsg').innerHTML = "Your Home number is invalid. Please use the following format:<br>(111)111-1111";
		$('errorMsg').style.display = 'block';
		requestForm.home_area_code.focus();
		return false;
	} else if (!requestForm.cell_area_code.value && !requestForm.work_area_code.value && !requestForm.home_area_code.value)
	{
		
		$('errorMsg').innerHTML = "Phone number is required.";
		$('errorMsg').style.display = 'block';
		requestForm.cell_area_code.focus();
		return false;
	}

	return true;
		
}
