/*****************************************************
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');
	var selectbox = document.getElementsByTagName('select');
	var textbox = document.getElementsByTagName('textarea');
	var checkbox = document.getElementsByTagName('checkbox');
	var radio = document.getElementsByTagName('radio');
	
	if(inputs){
		for(i=0;i<inputs.length;i++){
			inputs[i].disabled = type;
		}
	}
	
	if(selectbox){
		for(i=0;i<selectbox.length;i++){
			selectbox[i].disabled = type;
		}
	}
	
	if(textbox){
		for(i=0;i<textbox.length;i++){
			textbox[i].disabled = type;
		}
	}
	
	if(checkbox){
		for(i=0;i<checkbox.length;i++){
			checkbox[i].disabled = type;
		}
	}
	
	if(radio){
		for(i=0;i<radio.length;i++){
			radio[i].disabled = type;
		}
	}
}

function setFieldFocus(form,sField){
	var theForm = document.forms[form][sField].focus();
}

function getSelectData(form,id){
	box = document.forms[form][id];
	alert(box.options[box.selectedIndex].value);	
}
/******************************************************
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 a:\n\n";
	var temp = "";
	ElementArr = sFields.split("|");
	for(i=0; i<ElementArr.length; i++){
		if(!document.getElementById(ElementArr[i]).value){
			ErrorMsg += ElementArr[i].replace(/([A-Z])/g," $1") + "\n";  //if a capital letter is found, seperate words with a space
			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 checkFiles(names){
	var valid = true;
	var fields = names.split(",");

	for(i=0;i<fields.length;i++){
		fieldVal = MM_findObj(fields[i]).value;
		if(fieldVal.length > 0){
			if(!checkReg("I",fieldVal.toLowerCase())){
				valid = false;	
				break;
			}
		}
	}
	
	if(!valid){
		alert("Files must be either JPG or GIF");	
		return false;
	}else{
		return true;	
	}
}

function checkReg(type,val){
	switch(type){
		case "T":
			var reg = /^([a-zA-Z0-9 \']*)$/;
			break;
		case "N":
			var reg = /^([0-9.]*)$/;
			break;
		case "D":
			var reg = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/;
			break;
		case "I":
			var reg = /(\.jpg|\.gif)$/;
			break;
	}
	
	return reg.test(val);
}

function checkRadioBlock(blockName){
	var obj = MM_findObj(blockName);
	for(i=0;i<obj.length;i++){
		if(obj[i].checked){
			return true;
		}
	}
	
	return false;
}

/*****************************************************
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;
}

/*****************************************************
Function: custom
******************************************************/
function addManagedToWatcher(){
	var managedBy = MM_findObj("compUsersDD");
	var watchers = document.getElementsByName("watcher");
	var watcherList = "";
	
	if(watchers){
		for(i=0;i<watchers.length;i++){
			if(watchers[i].value == managedBy.value){
				watchers[i].checked = true;
			}
		}
	}
}

function checkAddUser(){
	var firstName = MM_findObj("FirstName");
	var lastName = MM_findObj("LastName");
	var email = MM_findObj("Email");
	var email2 = MM_findObj("Email2");
	var pass = MM_findObj("Password");
	var pass2 = MM_findObj("Password2");
	
	if(!firstName.value || !lastName.value || !email.value || !email2.value || !pass.value || !pass2.value){
		alert("You must fill in All fields");
		return false;
	}else{
		if(email.value != email2.value){
			alert("Your email addresses do not match");
			return false;
		}else if(pass.value != pass2.value){
			alert("Your email passwords do not match");
			return false;
		}else{
			return true;	
		}
	}
}

function showOther(){
	var wineGrape = MM_findObj("WineGrape").value;
	var wineOther = MM_findObj("WineGrapeOther");

	if( (wineGrape == 3) || (wineGrape == 10) ){
		wineOther.style.display = "block";	
	}else{
		wineOther.style.display = "none";	
	}
}