// JavaScript Document
function createFormParameters(formParameters,formName)
{
	var formVariables = formParameters.getData();
	var insertionPoint = document.getElementById(formName);
	var firstVariable = 0;
	var toAddress = formVariables[firstVariable]["toAddress"];
	var myToAddress = document.createElement("INPUT");
		myToAddress.setAttribute("type","hidden");
		myToAddress.setAttribute("value",toAddress);
		myToAddress.setAttribute("name","__sendto");
		insertionPoint.appendChild(myToAddress);
	var subjectLine = formVariables[firstVariable]["subjectLine"];
	var mySubjectLine = document.createElement("INPUT");
		mySubjectLine.setAttribute("type","hidden");
		mySubjectLine.setAttribute("value",subjectLine);
		mySubjectLine.setAttribute("name","__subject");
		insertionPoint.appendChild(mySubjectLine);
	var successURL = formVariables[firstVariable]["successURL"];
	var mySuccessURL = document.createElement("INPUT");
		mySuccessURL.setAttribute("type","hidden");
		mySuccessURL.setAttribute("value",successURL);
		mySuccessURL.setAttribute("name","__thankyou");
		insertionPoint.appendChild(mySuccessURL);
}
function createSubmitButton(formParameters,formName)
{
	var formVariables = formParameters.getData();
	var insertionPoint = document.getElementById(formName);
	var firstVariable = 0;
	var termsNeeded = formVariables[firstVariable]["termsNeeded"];
	var submitButtonText = formVariables[firstVariable]["submitButtonText"];
	var mySubmitCenterDiv = document.createElement("DIV");
		mySubmitCenterDiv.setAttribute("align","center");
	insertionPoint.appendChild(mySubmitCenterDiv);
	if (termsNeeded=="Yes" || termsNeeded=="yes" || termsNeeded=="y")
	{
		var termsText = formVariables[firstVariable]["termsText"];
		var termsMessage = formVariables[firstVariable]["termsMessage"];
		var myTerms = document.createElement("textarea");
		myTerms.setAttribute("id","formTerms");
		myTerms.innerHTML = termsText;
		mySubmitCenterDiv.appendChild(myTerms);
		var myTermsMessage = document.createElement("p");
		var myTermsCheckBox = document.createElement('input');
		myTermsCheckBox.type = "checkbox";
		myTermsCheckBox.id = "formCheckbox";
		myTermsCheckBox.defaultChecked = false;
		myTermsMessage.innerHTML = termsMessage+"*: ";
		myTermsMessage.appendChild(myTermsCheckBox);
		myTermsCheckBoxValidation = document.createElement("script");
				var valScr = 'var formCheckbox = new LiveValidation(\'formCheckbox\', { validMessage: \'\', wait: 0});';
				valScr += 'formCheckbox.add(Validate.Acceptance);';
				myTermsCheckBoxValidation.text = valScr;
		mySubmitCenterDiv.appendChild(myTermsMessage);
		myTermsMessage.appendChild(myTermsCheckBoxValidation);
	}
	var mySubmitButton = document.createElement("INPUT");
		mySubmitButton.setAttribute("type","submit");
		mySubmitButton.setAttribute("id","submitButton");
		mySubmitButton.setAttribute("name","submitButton");
		mySubmitButton.setAttribute("value",submitButtonText);
	mySubmitCenterDiv.appendChild(mySubmitButton);
}
function createForm(XMLDataSetName, placementID)
{
	var insertionPoint = document.getElementById(placementID);
	//All form fields are added here
	var myTable = document.createElement("TABLE");
	myTable.setAttribute("id",placementID+"Table");
	myTable.setAttribute("border","0");
	myTable.setAttribute("cellspacing","0");
	myTable.setAttribute("cellpadding","3");
	var myTableBody = document.createElement("TBODY");
	insertionPoint.appendChild(myTable);
	myTable.appendChild(myTableBody);
	var allData = XMLDataSetName.getData();
	var length = XMLDataSetName.getData(true).length;
	var looplength = length-1;
	//alert(looplength);
	for (i=0;i<=looplength;i++)
	{
		var myTR= document.createElement("TR");
		myTR.setAttribute("id","row_"+i);
		myTableBody.appendChild(myTR);
		var type = allData[i]["type"];
		//alert(type);
		var name = allData[i]["name"];
		var title = allData[i]["title"];
		var valType = allData[i]["valType"];
		var value = allData[i]["value"];
		var fieldHeight = allData[i]["height"];
		var longDescription = allData[i]["longDescription"];
		createField(type,name,title,valType,value,fieldHeight,myTR,longDescription,myTableBody,placementID);
	}
	
}
function createField(type,name,title,valType,value,fieldHeight,myTR,longDescription,myTableBody,placementID){
	if (type=="textField")
	{
		var  myTD1= document.createElement("td");
		myTD1.setAttribute("class","leftColumn");
		myTD1.setAttribute("className","leftColumn");
		myTD1.setAttribute("valign","bottom");
		myTD1.setAttribute("id",name+"id");
		myTD1.innerHTML = title+": ";
		myTR.appendChild(myTD1);
		var myTD2 = document.createElement("td");
		myTD2.setAttribute("class","rightColumn");
		myTD2.setAttribute("className","rightColumn");
		myField = document.createElement("INPUT");
		myField.setAttribute("type","text");
		myField.setAttribute("name",name);
		myField.setAttribute("id",name);
		if (value!=undefined)
			{
				myField.setAttribute("value",value);
			}
		myTD2.appendChild(myField);
		myTR.appendChild(myTD2);
		validate(name,valType,myTD2,value,type);
	}
	else if(type=="hiddenField")
	{
		var myHiddenField = document.createElement("INPUT");
		myHiddenField.setAttribute("type","hidden");
		myHiddenField.setAttribute("name",name);
		myHiddenField.setAttribute("id",name);
		if (value!=undefined){
		myHiddenField.setAttribute("value",value);}
		myTR.appendChild(myHiddenField);
	}
	else if(type=="textArea")
	{
		var  myTD1= document.createElement("td");
		myTD1.setAttribute("class","leftColumn");
		myTD1.setAttribute("className","leftColumn");
		myTD1.setAttribute("id",name+"id");
		myTD1.innerHTML = title+": ";
		myTR.appendChild(myTD1);
		var myTD2 = document.createElement("td");
		myTD2.setAttribute("class","rightColumn");
		myTD2.setAttribute("className","rightColumn");
		var myTextArea = document.createElement("textarea");
		myTextArea.setAttribute("name",name);
		myTextArea.setAttribute("id",name);
		if (value!=undefined){
			myTextArea.innerHTML=value;}
		myTextArea.setAttribute("rows",fieldHeight);
		myTD2.appendChild(myTextArea);
		myTR.appendChild(myTD2);
		validate(name,valType,myTD2,value,type);
	}
	else if(type=="checkBox")
	{
		var  myTD1= document.createElement("td");
		myTD1.setAttribute("class","leftColumn");
		myTD1.setAttribute("className","leftColumn");
		myTD1.setAttribute("id",name+"id");
		myTD1.innerHTML = title+": ";
		myTR.appendChild(myTD1);
		var myTD2 = document.createElement("td");
		myTD2.setAttribute("class","rightColumn");
		myTD2.setAttribute("className","rightColumn");
		var myCheckBox = document.createElement('input');
		myCheckBox.type = "checkbox";
		myCheckBox.id = name;
		myCheckBox.name = name;
		myCheckBox.defaultChecked = false;
		if (value!=undefined){
		myCheckBox.setAttribute("value",value);}
		myTD2.appendChild(myCheckBox);
		myTR.appendChild(myTD2);
		validate(name,valType,myTD2,value,type);
	}
	else if(type=="radioButton")
	{
		var  myTD1= document.createElement("td");
		myTD1.setAttribute("class","leftColumn");
		myTD1.setAttribute("className","leftColumn");
		myTD1.setAttribute("id",name+"id");
		myTD1.innerHTML = title+": ";
		myTR.appendChild(myTD1);
		var myTD2 = document.createElement("td");
		myTD2.setAttribute("class","rightColumn");
		myTD2.setAttribute("className","rightColumn");
	   	// Try the IE way; this fails on standards-compliant browsers
	   	try {
			var myRadioButton = document.createElement('<input name="'+name+'">');
	   		} 
		catch (e) {
		  // Non-IE browser; use canonical method to create named element
			var myRadioButton = document.createElement('input');
			myRadioButton.setAttribute("name",name);
			//return myRadioButton;
			}
		myRadioButton.id = value;
		myRadioButton.type = "radio";
		if (value!=undefined){
		myRadioButton.setAttribute("value",value);}
		myTD2.appendChild(myRadioButton);
		myTR.appendChild(myTD2);
		validate(name,valType,myTD2,value,type);
	}
	else if(type=="dropDownMenu")
	{
		var  myTD1= document.createElement("td");
		myTD1.setAttribute("class","leftColumn");
		myTD1.setAttribute("className","leftColumn");
		myTD1.setAttribute("id",name+"id");
		myTD1.innerHTML = title+": ";
		myTR.appendChild(myTD1);
		var myTD2 = document.createElement("td");
		myTD2.setAttribute("class","rightColumn");
		myTD2.setAttribute("className","rightColumn");
		var myDropDown = document.createElement('select');
		myDropDown.id = name;
		myDropDown.name = name;
		var myArr = value.split(',');  
		for (var j=0; j<myArr.length; j+=1) {  
			var myValue = document.createElement("option");
			theText=document.createTextNode(myArr[j]);
			myValue.setAttribute("value",myArr[j]);
			myValue.appendChild(theText);
			myDropDown.appendChild(myValue);
		}  
		myTD2.appendChild(myDropDown);
		myTR.appendChild(myTD2);
		validate(name,valType,myTD2,value,myArr,type);
	}
	else if (type=="date")
	{
		var  myTD1= document.createElement("td");
		myTD1.setAttribute("class","leftColumn");
		myTD1.setAttribute("className","leftColumn");
		myTD1.setAttribute("id",name+"id");
		myTD1.innerHTML = title+": ";
		myTR.appendChild(myTD1);
		var myTD2 = document.createElement("td");
		myTD2.setAttribute("class","rightColumn");
		myTD2.setAttribute("className","rightColumn");
		myField = document.createElement("INPUT");
		myField.setAttribute("type","text");
		myField.setAttribute("id",name);
		myField.setAttribute("name",name);
		myTD2.appendChild(myField);
		myCalendarIcon = document.createElement("A");
		myCalendarIcon.setAttribute("href","#");
		myCalendarIcon.setAttribute("id",name+"1_toggler");
		myTD2.appendChild(myCalendarIcon);
		myCalendarImageIcon = document.createElement("IMG");
		myCalendarImageIcon.setAttribute("src","/javascript_includes/forms/images/icon_calendar.gif");
		myCalendarImageIcon.setAttribute("alt","Open Calendar");
		myCalendarImageIcon.setAttribute("border","0");
		myCalendarIcon.appendChild(myCalendarImageIcon);
		myDivForCalendar = document.createElement("DIV");
		myDivForCalendar.setAttribute("id","calendar"+name);
		myTD2.appendChild(myDivForCalendar);
		myCalendarScript = document.createElement("script");
		var calScr = 'var calendarFunc'+name+' = new Calendar(\'calendar'+name+'\',\''+name+'1_toggler\',{inputField:\''+name+'\',idPrefix:\''+name+'\'});';
		//output needs to be var calender1 = new Calendar("calendar1", "cal1_toggler", {inputField:'date1', idPrefix:'cal1'});
		myCalendarScript.text = calScr;
		myTR.appendChild(myTD2);
		validate(name,valType,myTD2,value,type);
		myTD2.appendChild(myCalendarScript);
	}
	if (longDescription!=undefined && longDescription!="")
	{
		var myDescriptionTR= document.createElement("TR");
		myDescriptionTR.setAttribute("id",name+"Description");
		myDescriptionTR.setAttribute("class",placementID+"DescriptionTR");
		var myDescriptionTD= document.createElement("TD");
		myDescriptionTD.setAttribute("colSpan","2");
		myDescriptionTD.setAttribute("valign","top");
		myDescriptionTD.innerHTML = longDescription;
		myDescriptionTR.appendChild(myDescriptionTD);
		myTableBody.appendChild(myDescriptionTR);
	}
}
function validate(name,valType,myTD2,value,myArr,type){
	if (valType != ""){
		var valArr = valType.split(',');
		var scr = 'var '+name+' = new LiveValidation(\''+name+'\', { validMessage: \'\', wait: 0});'
		for (var k=0; k<valArr.length; k+=1) {
			if (valArr[k].indexOf("required") != -1)
			{
				myVal = document.createElement("script");
				scr += name+'.add(Validate.Presence);';
				myVal.text = scr;
			}
			else if(valArr[k].indexOf("notDefault") != -1)
			{
				if (type == "dropDownMenu"){
				myVal = document.createElement("script");
				//alert(myArr[0]);
				scr += name+'.add(Validate.Exclusion, {within: [\''+myArr[0]+'\']});';
				myVal.text = scr;
				}
				else{
				myVal = document.createElement("script");
				scr += name+'.add(Validate.Exclusion, {within: [\''+value+'\']});';
				myVal.text = scr;
				}
		
			}
			else if(valArr[k].indexOf("acceptance") != -1)
			{
				myVal = document.createElement("script");
				scr += name+'.add(Validate.Acceptance);';
				myVal.text = scr;
			}
			else if(valArr[k].indexOf("email") != -1)
			{
				myVal = document.createElement("script");
				scr += name+'.add(Validate.Email);';
				myVal.text = scr;
			}
		}
		myTD2.appendChild(myVal);
	}
}