var demoFirstname  = ["Steven","Michael","Robert","Richard","Scott","Michelle","Angela","Sarah","Janet","Barbara"];
var demoMiddlename = ["A","J","M","P","S","R","D","B","C","K"];
var demoLastname   = ["Smith","Fitzgerald","Burke","Frasier","Maloney","Dawson","Gomez","Garcia","Warner","Hawkins"];
var demoMaidenName = ["Gregory","Winters","Porter","Jones"];
//var demoEmail      = ["Smith@entango.com","Fitzgerald@entango.com","Burke@entango.com","Frasier@entango.com","Maloney@entango.com","Dawson@entango.com","Gomez@entango.com","Garcia@entango.com","Warner@entango.com","Hawkins@entango.com"];
var demoAddress1   = ["2112 Guadalupe St.","9346 W Parkhill Dr","1204 Grantwood Drive","14109 Stonebrook Court","334 W. 84th St.","189 Constitution Hill","2020 Franklin St.","7716 Kingfisher Cres.","B?uminghausstr. 67","Doornstraat 126"];
var demoAddress2   = ["","","","Carrollwood Village","Apt. 8-A","","Apt. 4","","",""];
var demoCity       = ["Austin","Bethesda","Fredericksburg","Tampa","New York","Princeton","San Francisco","Orleans","Essen","Den Haag"];
var demoState      = ["TX","MD","VA","FL","NY","NJ","CA","ON","  ","  "];
var demoZip        = ["78705","20814","22407","33624","10024","08540","94109","K1E 2L2","45326","NL-2584"];
var demoCountry    = ["US","US","US","US","US","US","US","CA","DE","NL"];
var demoPhone      = ["(512) 555-1970","(301) 555-2764","(540) 555-7150","(813) 555-4353","(212) 555-1826","(609) 555-4561","(415) 555-0708","(613) 555-3662","0042 555 5554617","(+38) 55 5555481"];
var demoAmount     = ["50.00","150.00","15.00","500.00","100.00","75.00","25.00","10.00","115.00","125.00"];
var demoCctype     = ["VISA","MasterCard","Discover","American Express","JCB","Diners Club"];
var demoCcnum      = ["4111 1111 1111 1111","5555 5555 5555 4444","6011 1111 1111 1117","3782 8224 6310 005","3566 1111 1111 1113","3800 000000 0006"];

var demoUS = 7;
var demoCA = 1;
var demoIntl = 2;

var paymentMethod = "paymentMethod_CreditCard";

function rndm(displayPage){
	if(getTransactForm() !== null){
		preFillPersonalInfo();
		preFillBillingInfo(getTransactForm());
	}
	else if(getBillingForm() !== null){
		preFillBillingInfo(getBillingForm());
	}
}

function getTransactForm(){
	if((document.transact === undefined) || (document.transact === null)){return null;}
	return document.transact;
}

function getBillingForm(){
	if((document.billing === undefined) || (document.billing === null)){return null;}
	return document.billing;
}

function preFillPersonalInfo(){
	var transFirstName = demoFirstname[getRandomIndex(demoFirstname.length)];
	setTransactItemValue("transFirstName",transFirstName);
	setTransactItemValue("transMiddleName",demoMiddlename[getRandomIndex(demoMiddlename.length)]);
	setTransactItemValue("transLastName",demoLastname[getRandomIndex(demoLastname.length)]);

	//if(getRandomIndex(2) === 0){setTransactItemValue("transMaidenName","");}
	//else{
		//if((transFirstName === "Michelle") || (transFirstName === "Angela") || (transFirstName === "Sarah") || (transFirstName === "Janet") || (transFirstName === "Barbara")){
			//setTransactItemValue("transMaidenName",demoMaidenName[getRandomIndex(demoMaidenName.length)]);
		//}
	//}
	var paymentMethodRadios = document.getElementsByName("paymentMethod");
	if(paymentMethodRadios.length > 1){
		var paymentMethodIndex = getRandomIndex(paymentMethodRadios.length);
		for(var i=0;i<paymentMethodRadios.length;i++){paymentMethodRadios[i].checked = false;}
		paymentMethodRadios[paymentMethodIndex].checked = true;
		if(paymentMethodRadios[paymentMethodIndex].value == "paymentMethod_Check"){paymentMethod = "paymentMethod_Check";}
	}
	else{
		if(transCheck == "true"){paymentMethod = "paymentMethod_Check";}
	}

	var addressIndex = 0;
	if(paymentMethod == "paymentMethod_CreditCard"){addressIndex = getRandomIndex(demoAddress1.length);}
	else{addressIndex = getRandomIndex(demoUS);}
	setTransactItemValue("transAddress1",demoAddress1[addressIndex]);
	setTransactItemValue("transAddress2",demoAddress2[addressIndex]);
	setTransactItemValue("transCity",demoCity[addressIndex]);
	setTransactItemValue("transState",demoState[addressIndex]);
	setTransactItemValue("transZip",demoZip[addressIndex]);
	setTransactItemValue("transCountry",demoCountry[addressIndex]);
	var fillPhone = getRandomIndex(2);
	//if(getRandomIndex(2) === 0){setTransactItemValue("transPhone","");}
	//else{setTransactItemValue("transPhone",demoPhone[addressIndex]);}
	setTransactItemValue("transPhone",demoPhone[addressIndex]);

	//setTransactItemValue("transEmail","<Please enter your email address>");
	if(getRandomIndex(2) === 0){setTransactCheckbox("transPrivacyFlag",false);}
	else{setTransactCheckbox("transPrivacyFlag",true);}

	setRandomSelectOption(getTransactForm(),"transRelationship",1);

	setTransactItemValue("transAmount",demoAmount[getRandomIndex(demoAmount.length)]);

	setRandomSelectOption(getTransactForm(),"transProgramName",1);

	setRandomSelectOption(getTransactForm(),"transFrequency");

//var featureTributeChosen = getRandomIndex(2);
	//if(featureTributeChosen === 0){setTransactCheckbox("featureTributeChosen",false);}
	//else{setTransactCheckbox("featureTributeChosen",true);}
}

function preFillBillingInfo(form){
	preFillCcBillingInfo(form);
	preFillCheckBillingInfo(form);
}

function preFillCcBillingInfo(form){
	if(getFirstNamedFormElement(form,"transCcType") !== null){
		var ccIndex = getRandomIndex(demoCctype.length);
		setFormItemValue(form,"transCcType",demoCctype[ccIndex]);
		setFormItemValue(form,"transCcCrypt",demoCcnum[ccIndex]);
	
		var transCcExpYear = getFirstNamedFormElement(form,"transCcExpYear");
		if((transCcExpYear !== null) && (transCcExpYear.length > 1)){
			var currentDate = new Date();
			var currentYear = currentDate.getFullYear();
			setRandomSelectOption(form,"transCcExpYear",1);
			var transCcExpMon = getFirstNamedFormElement(form,"transCcExpMon");
			if((transCcExpMon !== null) && (transCcExpMon.length > 1)){
				var currentMonth = currentDate.getMonth() + 1;
				var expYear = 2000 + parseInt(transCcExpYear.options[transCcExpYear.selectedIndex].value,10);
				if(expYear != currentYear){currentMonth = 1;}
				setRandomSelectOption(form,"transCcExpMon",currentMonth);
			}
		}
	}
}

function preFillCheckBillingInfo(form){
	if(getFirstNamedFormElement(form,"transBankAccountType") !== null){
		//var transPhone = getFirstNamedFormElement(form,"transPhone");
		//if(transPhone !== null){
			//if((transPhone.value === null) || (transPhone.value === undefined) || (transPhone.value === "")){
				//var transLastName = getFirstNamedFormElement(form,"transLastName");
				//var addressIndex = -1;
				//if(transLastName !== null){
					//for(addressIndex = 0;addressIndex<demoLastname.length;addressIndex++){if(demoLastname[addressIndex] == transLastName.value){break;}}
				//}
				//if((addressIndex >= 0) && (addressIndex < demoLastname.length)){setTransactItemValue("transPhone",demoPhone[addressIndex]);}
				//else{setTransactItemValue("transPhone",getRandomIndex(demoPhone.length));}
			//}
		//}
		setRandomSelectOption(form,"transBankAccountType",1);
		setFormItemValue(form,"transCheckCrypt","1234567");
		setFormItemValue(form,"transBankRoutingNumber","121000358");
	}
}

function setTransactItemValue(itemName,value){
	setFormItemValue(getTransactForm(),itemName,value);
}

function setFormItemValue(form,itemName,value){
	var item = getFirstNamedFormElement(form,itemName);
	if(item !== null){
		if(value === undefined){value = null;}
		item.value = value;
	}
}

function setTransactCheckbox(itemName,checked){
	setCheckbox(getTransactForm(),itemName,checked);
}

function setCheckbox(form,itemName,checked){
	var item = getFirstNamedFormElement(form,itemName);
	if(item !== null){
		if(typeof checked != "boolean"){checked = false;}
		item.checked = checked;
	}
}

function getFirstNamedFormElement(form,name){
	if((form !== undefined) && (form !== null) && (typeof name == "string")){
		var itemArray = document.getElementsByName(name);
		if(itemArray.length > 0){
			for(var i=0;i<itemArray.length;i++){
				var item = itemArray[i];
				if(item.form == form){return item;}
			}
		}
	}
	return null;
}

function getRandomIndex(itemCount){
	if(itemCount <= 0){return 0;}
	var rndNum = itemCount * Math.random();
	if(rndNum == itemCount){rndNum = rndNum - 0.1;}
	return Math.round(rndNum - 0.5);
}

function setRandomSelectOption(form,itemName,start,end){
	var item = getFirstNamedFormElement(form,itemName);
	if((item !== null) && (item.length > 0)){
		var startIndex = 0;
		var endIndex = item.length - 1;
		if((start !== null) && (start !== undefined) && (typeof start == "number") && (start < item.length)){startIndex = start;}
		if((end !== null) && (end !== undefined) && (typeof end == "number") && (end < item.length) && (end >= start)){endIndex = end;}
		for(var i=0;i<item.length;i++){item.options[i].selected = false;}
		item.options[getRandomIndex(1 + endIndex - startIndex) + startIndex].selected = true;
	}
}

