/*****************************************************
Function: copy data from one element to the other
		copy data from one select to another
		set text to an element
		enable/disable form element
******************************************************/

function copyData(from,to){
	var tempFrom = document.getElementById(from);
	var tempTo = document.getElementById(to);

	tempTo.value = tempFrom.value;
}

function copyDataSelect(form,from,to){
	document.forms[form][to].options.selectedIndex = document.forms[form][from].selectedIndex;
}

function setFormElementData(element,text){
	document.getElementById(element).value = text;
}

function enableDisableFormElement(form,element,type){ // type: true = disable ; false = enable
	var theForm = document.forms[form];
	var theElement = theForm[element];
	
	if(type){
		theElement.disabled = true;
	}else{
		theElement.disabled = false;
	}
}

function enableDisableForm(type){ // type: true = disable ; false = enable
	var inputs = document.getElementsByTagName('input');
	
	if(inputs){
		for(i=0;i<inputs.length;i++){
			if(inputs[i].id.toUpperCase() != "OK"){
				inputs[i].disabled = type;
			}
		}
	}
}
/******************************************************
Function: check fields to make sure there is 
		something in it!  If fieldlist containts
		email, check to make sure the email address
		is valid!
******************************************************/
function CheckEmail(sEmail){
	str = document.getElementById(sEmail).value;
	var Errors = false;
	var Emailerrors = false;
	var at="@";
	var dot=".";
	var lat=str.indexOf(at);
	var lstr=str.length;
	var ldot=str.indexOf(dot);
	if(str == ""){
		Emailerrors = true;	
	}
	if (str.indexOf(at)==-1){
	  Emailerrors = true;
	}

	if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
	   Emailerrors = true;
	}

	if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
		Emailerrors = true;
	}

	 if (str.indexOf(at,(lat+1))!=-1){
		Emailerrors = true;
	 }

	 if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
		Emailerrors = true;
	 }

	 if (str.indexOf(dot,(lat+2))==-1){
		Emailerrors = true;
	 }
	
	 if (str.indexOf(" ")!=-1){
		Emailerrors = true;
	 }
	 if(Emailerrors){
		alert("Sorry, your email address is invalid!");
		return false;
	 }else{
		return true;	 
	 }
}
function CheckFields(sFields){
	var errors = false;
	var ErrorMsg = "Please enter your:\n\n";
	var temp = 0;
	ElementArr = sFields.split("|");
	for(i=0; i<ElementArr.length; i++){
		if(!document.getElementById(ElementArr[i]).value){
			ErrorMsg += ElementArr[i] + "\n";
			errors = true;
		}
	}
	if(errors == true){
		alert(ErrorMsg)
		return false;
	}else{
		if(sFields.indexOf("Email") != -1){
			var validEmail = CheckEmail("Email");
			if(!validEmail){
				return false;	
			}else{
				return true;	
			}
		}else{	
			return true;
		}
	}
}

/*****************************************************
Function: for mulitple selects, set the whole box as
		selected
******************************************************/
function selectAllSB(selectBox){
	var sb = document.getElementById(selectBox);
	
	for(i=0;i<sb.lenth;i++){
		sb[i].setAttribute('selected','selected');
	}	
}

/*****************************************************
Function: credit card validation
******************************************************/
function validateCC(ccType,ccNumber){
	var cardNumber = ccNumber;
	var isValid = false;
	var ccCheckRegExp = /[^\d ]/;
	isValid = !ccCheckRegExp.test(cardNumber);
	
	if (isValid)
	{
	var cardNumbersOnly = cardNumber.replace(/ /g,"");
	var cardNumberLength = cardNumbersOnly.length;
	var lengthIsValid = false;
	var prefixIsValid = false;
	var prefixRegExp;

	switch(ccType)
	{
	case "1": //ammex
	   lengthIsValid = (cardNumberLength == 15);
	   prefixRegExp = /^3(4|7)/;
	   break;
	
	case "3": //mastercard
	   lengthIsValid = (cardNumberLength == 16);
	   prefixRegExp = /^5[1-5]/;
	   break;
	
	 case "4": //visa
	   lengthIsValid = (cardNumberLength == 16 || cardNumberLength == 13);
	   prefixRegExp = /^4/;
	   break;
	
	 
	}
	
	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;
}