//////////////////////////////////////////////////////////////////////////////////////////////

function validRequired(formField, fieldLabel, errLabel)

{

  var result = true;

  if (document.getElementById(formField).value.length == 0 || Trim(document.getElementById(formField).value) == "" ) 

  {

    //alert('Please enter a value for the "' + fieldLabel + '" field.');

//	document.getElementById(errLabel).innerHTML = " &nbsp;<img src=images/error.png border=0 />" + " '" + fieldLabel + "' is missing" ;
	document.getElementById(errLabel).innerHTML = " &nbsp;<label style=\"color:#FF0000\">'" + fieldLabel + "' is missing.</label> " ;
//	document.getElementById(errLabel).innerHTML = " &nbsp;'" + fieldLabel + "' is missing" ;

	document.getElementById(formField).style.borderColor = '';

	document.getElementById(formField).value = '';

	document.getElementById(formField).focus();

    result = false;

  }

   else if (result == true)

  {

//	document.getElementById(errLabel).innerHTML = " &nbsp;<img src=images/entryok.png border=0 />" ;
	document.getElementById(errLabel).innerHTML = "" ;

	document.getElementById(formField).style.borderColor = '';

  }

  return result;

}

//////////////////////////////////////////////////////////////////////////////////////////////

function validRequiredSelect(formField, fieldLabel, errLabel)

{

  var result = true;		

  if (document.getElementById(formField).value == "none")

  {

//	document.getElementById(errLabel).innerHTML = " &nbsp;<img src=" + imgEntryCheck + "entrymsgnotice.gif border=0 />" + " Please select a value for the '" + fieldLabel + "' field.";
	document.getElementById(errLabel).innerHTML = " &nbsp;<label style='color:#FF0000'>Please select a value for the '" + fieldLabel + "' field.</label>";

    document.getElementById(formField).focus();

    result = false;

  }



 if (result == true)

  {

//	document.getElementById(errLabel).innerHTML = " &nbsp;<img src=" + imgEntryCheck + "/entryok.png border=0 />" ;
	document.getElementById(errLabel).innerHTML = "" ;

//	document.getElementById(formField).style.borderColor = '#336699';

  }

  

  return result;

}



//////////////////////////////////////////////////////////////////////////////////////////////

function validEmail(formField, fieldLabel, errLabel)

{



  var result = true;

  if (! validRequired(formField, fieldLabel, errLabel)) 

     result = false;



  if (result && (! isEmailAddress(document.getElementById(formField).value)))

  {

//    document.getElementById(errLabel).innerHTML = " &nbsp;<img src=" + imgEntryCheck + "entrymsgnotice.gif border=0 />" + " Please enter a valid e-mail address e.g. yourname@yourdomain.com" ;
	document.getElementById(errLabel).innerHTML = " <label style=\"color:#FF0000\">Please enter a valid e-mail address e.g. yourname@yourdomain.com</label>" ;

	document.getElementById(formField).style.borderColor = '';

	document.getElementById(formField).focus();

    result = false;

  }

  return result;

}



function isEmailAddress(email) //utility function :: validEMail

{

  var addressPattern = /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/;

  return addressPattern.test (email);



}

//////////////////////////////////////////////////////////////////////////////

function validPasswords (formField1, formField2, errLabel)

{

	if (document.getElementById(formField1).value.length < 6)

	   {

//		document.getElementById(errLabel).innerHTML = "&nbsp;<img src=" + imgEntryCheck + "entrymsgnotice.gif border=0 />" + " Minimum password length must be <b>6</b> characters." ;
		document.getElementById(errLabel).innerHTML = " <label style=\"color:#FF0000\">Minimum password length must be <b>6</b> characters.</label>" ;

		document.getElementById(formField1).style.borderColor = '#CC0000';

		document.getElementById(formField1).focus();

		return false;

	   }



	if (document.getElementById(formField1).value !== document.getElementById(formField2).value)

	   {

		document.getElementById(errLabel).innerHTML = "<label style=\"color:#FF0000\"> Password and confirm password does not match.</label>" ;

		document.getElementById(formField1).style.borderColor = '#CC0000';

		document.getElementById(formField1).focus();

		return false;

	   }





return true;

}

//////////////////////////////////////////////////////////////////////////////

function validCheckBox(formField, fieldLabel, errLabel)

{



var result = true;

  if (document.getElementById(formField).checked == 0)

  {

	document.getElementById(errLabel).innerHTML = fieldLabel;

    document.getElementById(formField).focus();

    result = false;

  }
  else
  {
	document.getElementById(errLabel).innerHTML = "";
  }

  return result;

}



/////////////////////////////////////////////////////////////////////////////////

////////////////////////Trim String in Javascript/////////////////////

// Removes leading whitespaces

function LTrim( value ) 

	{

	var re = /\s*((\S+\s*)*)/;

	return value.replace(re, "$1");

	}

// Removes ending whitespaces

function RTrim( value ) 

	{

	var re = /((\s*\S+)*)\s*/;

	return value.replace(re, "$1");

	}

// Removes leading and ending whitespaces

function Trim( value ) 

	{

	return LTrim(RTrim(value));

	}

///////////////////////////////////////////////////////////////////////////////////

function SelectComboValue(cmbID, cmbVal)

	{
	var combo = document.getElementById(cmbID);

		for (var i=0; i <= combo.length; i++)

		{

			 if (combo[i].value == cmbVal)

			 	{ combo.selectedIndex = i;	 break;	 }

		}

	}

/////////////////////////////////////////////////////////////////////////////////

function validNumber(formField, fieldLabel, errLabel)

{

  var result = true;



  if (! validRequired(formField, fieldLabel, errLabel)) result = false;

  

   if (result == true)

   {

     var num = parseInt(document.getElementById(formField).value);

     if (isNaN(num))

     {

//		document.getElementById(errLabel).innerHTML = "&nbsp;<img src=" + imgEntryCheck + "entrymsgnotice.gif border=0 />" +  "Enter a valid interger value for the '" + fieldLabel + "' field.";
		document.getElementById(errLabel).innerHTML = " Please enter valid Number." ;
		
			document.getElementById(formField).style.borderColor = '';	

		document.getElementById(formField).focus();

		result = false;		        

    }

  }   

  return result;

}

//////////////////////////////////////////////////////////////////////////////////////////////	

function validDate(formField, fieldLabel, required)

{

  var result = true;



  if (required && !validRequired(formField, fieldLabel))

    result = false;

  

   if (result)

   {

     var elems = formField.value.split("/");

     

     result = (elems.length == 2); // should be three components

     

     if (result)

     {

       //var day = parseInt(elems[0]);

        var month = parseInt(elems[0]);

       var year = parseInt(elems[1]);

      result = !isNaN(month) && (month > 0) && (month < 13) &&

               !isNaN(year) && (elems[1].length == 4);

     }

     

      if (!result)



     {

       alert('Please enter a date in the format MM/YYYY for the "' + fieldLabel +'" field.');

       formField.focus();    

    }

  } 

  

  return result;

}

//////////////////////////////////////////////////////////////////////////////////////////////

function validCharacters(formField, fieldLabel)

	{

	  var iChars = "*|,\":<>[]{}`\';()&$#%";

	  for (var i = 0; i < formField.length; i++) 

		{

			if (iChars.indexOf(formField.charAt(i)) != -1)

			   {

				alert ("'" + fieldLabel + "' contains illegal characters!");

				formField.focus();

			    return false;

			   }

		}

	  return true;

	}

//////////////////////////////////////////////////////////////////////////////////////////////

// Start: Password Strength Meter

function passwordStrength(password)

{

	

var desc = new Array(); // Strength Description

	desc[0] = "Very Weak";

	desc[1] = "Weak";

	desc[2] = "Better";

	desc[3] = "Medium";

	desc[4] = "Strong";

	desc[5] = "Strongest";

	var score = 0;



	//if password bigger than 6 give 1 point

	if (password.length > 2) score++;



	//if password has both lower and uppercase characters give 1 point	

	if ( ( password.match(/[a-z]/) ) && ( password.match(/[A-Z]/) ) ) score++;



	//if password has at least one number give 1 point

	if (password.match(/\d+/)) score++;



	//if password has at least one special caracther give 1 point

	if ( password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/) )	score++;



	//if password bigger than 12 give another 1 point

	if (password.length > 10) score++;



	 document.getElementById("StrengthDescription").innerHTML = desc[score];

	 document.getElementById("StrengthBar").className = "strength" + score;

    

	if (password.length == 0) { score=0; document.getElementById("StrengthDescription").innerHTML = ''; }	 

}

// End: Password Strength Meter

////////////////////////////////////////////////////////////////////////////////////////////////////

function validTime(formField, fieldLabel, required) 

{



	if (required && !validRequired(formField, fieldLabel))

		return false;

	

	// Checks if time is in HH:MM:SS AM/PM format.

	// The seconds and AM/PM are optional.

	var timeStr = formField.value

	var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm))?$/;



	var matchArray = timeStr.match(timePat);



	if (matchArray == null)

	{

		alert('"' + fieldLabel + '" is not in a valid format.');

		formField.focus();

		return false;

	}

	hour = matchArray[1];

	minute = matchArray[2];

	second = matchArray[4];

	ampm = matchArray[6];



	if(second == "")

	{ 

		second = null; 

	}

	if(ampm == "")

	{

		ampm = null

	}



	if(hour < 0  || hour > 23)

	{

		alert(" Hour must be between 1 and 12. (or 0 and 23 for military time) ");

		formField.focus();

		return false;

	}

	if(hour <= 12 && ampm == null)

	{

		if (confirm(' Please indicate which time format you are using for "' + fieldLabel + '". \n OK = Standard Time \n CANCEL = Military Time'))

		{

			alert("You must specify AM or PM.");

			formField.focus();

			return false;

		}

	}

	if  (hour > 12 && ampm != null)

	{

		alert(" You can't specify AM or PM for military time. ");

		formField.focus();

		return false;

	}

	if(minute < 0 || minute > 59)

	{

		alert ("Minute must be between 0 and 59.");

		formField.focus();

		return false;

	}

	if(second != null && (second < 0 || second > 59))

	{

		alert ("Second must be between 0 and 59.");

		formField.focus();

		return false;

	}

	return true;

}

//////////////////////////////////////////////////////////////////////////////////////////////

//PLACE THIS FUNCTION IN EACH PAGE ACCORDING TO FORM REQUIREMENT.

//////////////////////////////////////////////////////////////////////////////////////////////

/*

function validateForm(theForm)

{

  

  if (!validRequired(theForm.username,"User Name"))

    return false;



  if (!validEmail(theForm.email,"Email Address",true))

    return false;



  if (!validDate(theForm.birthdate,"Birth Date",true))

    return false;

 

  if (!IsValidTime(theForm.time))

    return false;

    	  

  return true;

}

*/

//////////////////////////////////////////////////////////////////////////////////////////////

function temp()

{

	alert("Hello World!")

}

//////////////////////////////////////////////////////////

function cardvalid(cardNumber,cardType)

{

  var isValid = false;

  var ccCheckRegExp = /[^\d ]/;

  isValid = !ccCheckRegExp.test(cardNumber);



//alert(cardNumber);

//alert(cardType);



  if (isValid)

  {

    var cardNumbersOnly = cardNumber.replace(/ /g,"");

    var cardNumberLength = cardNumbersOnly.length;

    var lengthIsValid = false;

    var prefixIsValid = false;

    var prefixRegExp;



    switch(cardType)

    {

      case "Master Card":

        lengthIsValid = (cardNumberLength == 16);

        prefixRegExp = /^5[1-5]/;

        break;



      case "Visa Card":

        lengthIsValid = (cardNumberLength == 16 || cardNumberLength == 13);

        prefixRegExp = /^4/;

        break;



      case "american Express":

        lengthIsValid = (cardNumberLength == 15);

        prefixRegExp = /^3(4|7)/;

        break;

		

	  case "Discover":

        lengthIsValid = (cardNumberLength == 16);

        prefixRegExp = /^6011/;

        break;	



      default:

        prefixRegExp = /^$/;

        alert("Card type not found");

    }



    prefixIsValid = prefixRegExp.test(cardNumbersOnly);

    isValid = prefixIsValid && lengthIsValid;

  }



  if (isValid)

  {

    var numberProduct;

    var numberProductDigitIndex;

    var checkSumTotal = 0;



    for (digitCounter = cardNumberLength - 1; 

      digitCounter >= 0; 

      digitCounter--)

    {

      checkSumTotal += parseInt (cardNumbersOnly.charAt(digitCounter));

      digitCounter--;

      numberProduct = String((cardNumbersOnly.charAt(digitCounter) * 2));

      for (var productDigitCounter = 0;

        productDigitCounter < numberProduct.length; 

        productDigitCounter++)

      {

        checkSumTotal += 

          parseInt(numberProduct.charAt(productDigitCounter));

      }

    }



    isValid = (checkSumTotal % 10 == 0);

  }



  return isValid;

   //alert("your credit card number is not valid");

  //alert(isValid); 

}

//////////////////////////////////////////////////////////

//////////////////////////////////////////////////////////

function pageSelector(Btn)										//start of function 'page selector' 

{

	if (Btn.id == "cancel")										//if condition compares either id is cancel or not 

		{

		a=confirm("Do you want to close the Wizard ?")

		if(a==true)

			window.close()										//will close the window										 

		}

	if (Btn.id == "next")										//if condition compares either id is next or not										

		{	

			ad=ad+1

			

			switch(ad)

			{

				

				case 1:

				{

					Ctable1.style.visibility = 'Hidden'

					Ctable2.style.visibility = 'visible'

					Customer.back.disabled = false

					break

				}

				case 2:

				{

					Ctable2.style.visibility = 'Hidden'

					Ctable3.style.visibility = 'visible'

					break

				}

				case 3:

				{

					Ctable3.style.visibility = 'Hidden'

					Ctable4.style.visibility = 'visible'

					break

				}

				case 4:

				{

					Ctable4.style.visibility = 'Hidden'

					Ctable5.style.visibility = 'visible'

					break

				}

				case 5:

				{

					Ctable5.style.visibility = 'Hidden'

					Ctable6.style.visibility = 'visible'

					break

				}

				case 6:

				{

					Ctable6.style.visibility = 'Hidden'

					Ctable7.style.visibility = 'visible'

					break

				}

				case 7:

				{

					Ctable7.style.visibility = 'Hidden'

					Ctable8.style.visibility = 'visible'

					Customer.next.disabled = true

					Customer.finish.disabled = false

					break

				}

				default:

					alert("Default")

			}

		}

	if (Btn.id == "back")										//if condition compares either id is back or not

		{

			ad=ad-1

			switch(ad)

			{

				case 0:

				{

					Ctable2.style.visibility = 'Hidden'

					Ctable1.style.visibility = 'visible'

					Customer.back.disabled = true

					break

				}

				

				case 1:

				{

					Ctable3.style.visibility = 'Hidden'

					Ctable2.style.visibility = 'visible'

					break

				}

				case 2:

				{

					Ctable4.style.visibility = 'Hidden'

					Ctable3.style.visibility = 'visible'

					break

				}

				case 3:

				{

					Ctable5.style.visibility = 'Hidden'

					Ctable4.style.visibility = 'visible'

					break

				}case 4:

				{

					Ctable6.style.visibility = 'Hidden'

					Ctable5.style.visibility = 'visible'

					break

				}case 5:

				{

					Ctable7.style.visibility = 'Hidden'

					Ctable6.style.visibility = 'visible'

					break

				}

				case 6:

				{

					Ctable8.style.visibility = 'Hidden'

					Ctable7.style.visibility = 'visible'

					Customer.next.disabled = false

					

					Customer.finish.disabled = true

					break

				}

				default:

					alert("Default")

			}

		}

	if (Btn.id == "finish")										//if condition compares either id is finish or not

		{

			window.Customer.action = ""						//specifies name of the page where control will shift

			window.Customer.submit()							//will shifts the control to the specified page

		}

		

}









