function setform()
{
	var temp ='';
	var first = true;
	
	for (i=0;i<reqfields.length;i++)
	{
		if(reqfields[i] != '')
		{
			if(first == true)
			{
				temp += reqfields[i];
				first = false;
			} else {
				temp += ',' + reqfields[i];				
			}
		}
	}
	
	document.formcreate.frmfullform.value += mailfields.replace(/@/gi,'(at)');

	if(temp != '')
	{
		document.formcreate.frmfullform.value += '\n<input type ="hidden" name ="required_fields" value = "' + temp + '">';
	}
	
	var temp ='';
	
	for (i=0;i<formfields.length;i++)
	{
		if(formfields[i] != '')
		{
			temp += formfields[i];
		}
	}
	
	document.formcreate.frmfullform.value += temp;
	
	var temp ='';
	
	for (i=0;i<formfieldnames.length;i++)
	{
		if(i == formfieldnames.length -1)
		{
			temp += formfieldnames[i];				
		} else {
			temp += formfieldnames[i] + '|*|';				
		}
	}

	document.formcreate.frmallfields.value = temp;
	
	document.formcreate.frmfiletext.value = filetext;
	document.formcreate.frmautoresponse.value = autoresponse;
	document.formcreate.frmspamfilter.value = spamfilter;
	
	document.formcreate.submit();	
}

function deletefield(fieldid)
{
	formfields.splice(fieldid,1);
	reqfields.splice(fieldid,1);
	formfieldnames.splice(fieldid,1);
	refreshdata();
}

function moveup (fieldid)
{
	if(fieldid > 0)
	{
		var reqtempid1 = reqfields[fieldid];
		var reqtempid2 = reqfields[fieldid - 1];
		reqfields[fieldid] = reqtempid2;
		reqfields[fieldid - 1] = reqtempid1;
		
		var tempid1 = formfields[fieldid];
		var tempid2 = formfields[fieldid - 1];
		formfields[fieldid] = tempid2;
		formfields[fieldid - 1] = tempid1;
		refreshdata();
	}
}

function movedown (fieldid)
{
	if(fieldid < formfields.length -1)
	{
		var reqtempid1 = reqfields[fieldid];
		var reqtempid2 = reqfields[fieldid + 1];
		reqfields[fieldid] = reqtempid2;
		reqfields[fieldid + 1] = reqtempid1;
		
		var tempid1 = formfields[fieldid];
		var tempid2 = formfields[fieldid + 1];
		formfields[fieldid] = tempid2;
		formfields[fieldid + 1] = tempid1;
		refreshdata();
	}
}

function editfilelabel()
{
	var newlabel = prompt('Please fill in the new text for the file-upload field',filetext);
	if(newlabel)
	{
		filetext = newlabel;
		refreshdata();
	}
}

function editautoresponselabel()
{
	var newlabel = prompt('Please fill in the new text for the autoresponse field',autoresponse);
	if(newlabel)
	{
		autoresponse = newlabel;
		refreshdata();
	}
}

function editspamfilterlabel()
{
	var newlabel = prompt('Please fill in the new text for the spamfilter field',spamfilter);
	if(newlabel)
	{
		spamfilter = newlabel;
		refreshdata();
	}
}


function refreshdata()
{
	
	document.getElementById('formlayout').innerHTML = '';
	var temp ='';
	
	for (i=0;i<formfields.length;i++)
	{
		if(formfields[i] != '')
		{
			temp += formfields[i].substr(0,(formfields[i].length -5)) + '<td valign = "top"><img src="http://www.mail-maniac.com/img/formbuilder/fbdel.gif" border = "0" title ="Click to delete this field" onclick = "var delconf = confirm(\'Are you sure you want to delete this field?\'); if (delconf) {deletefield(' + i + ');}"><br><img src="http://www.mail-maniac.com/img/formbuilder/fbup.gif" border = "0" title ="Click to move this field up" onclick = "moveup(' + i + ');"><br><img src="http://www.mail-maniac.com/img/formbuilder/fbdown.gif" border = "0" title ="Click to move this field down" onclick = "movedown(' + i + ');"></td></tr>';
		}
	}

	if (filetext != '')
	{
		htmlfiletext = '<tr>\n\t<td><strong>' + filetext + '</strong></td>\n\t<td><input type="file" name="filename"></td>\n<td valign = "top"><img src="http://www.mail-maniac.com/img/formbuilder/fbedit.gif" border = "0" title ="Click to edit this field" onclick = "editfilelabel();"></td></tr>';
	} else {
		htmlfiletext = '';
	}
	
	if(autoresponse != '')
	{
		htmlautoresponse = '<tr>\n\t<td><strong>' + autoresponse + '</strong></td>\n\t<td><input type = "text" name = "autoresponse" size ="40"></td>\n<td valign = "top"><img src="http://www.mail-maniac.com/img/formbuilder/fbedit.gif" border = "0" title ="Click to edit this field" onclick = "editautoresponselabel();"></td></tr>';
	} else {
		htmlautoresponse = '';	
	}

	if(spamfilter != '') {
		htmlspamfilter ='<tr><td><strong>' + spamfilter + '</strong></td><td><b>4273</b> <input id ="randnumconf" type ="text" name = "randnumconf" maxlength = "4" size = "3" /></td>\n<td valign = "top"><img src="http://www.mail-maniac.com/img/formbuilder/fbedit.gif" border = "0" title ="Click to edit this field" onclick = "editspamfilterlabel();"></td></tr>';
	} else {
		htmlspamfilter = '';
	}

	document.getElementById('formlayout').innerHTML = '<h1><i>Form preview</i></h1><table border= "0" cellspacing="5" cellpadding="5">' + htmlautoresponse + temp + htmlfiletext + htmlspamfilter + '</table>';

}

function addtextfield(fieldname,question,required)
{

	if (fieldname =='')
	{
		warn('Please enter a name for the field');
		exit;
	}
	
	if (question =='')
	{
		warn('Please enter a question');
		exit;
	}
	
	formfields[formfields.length] = '\n\n<tr>\n\t<td><strong>' + question + '</strong></td>\n\t<td><input type = "text" name = "' + strfilter(fieldname) + '" size ="40"></td>\n</tr>';
	if(required == true) { reqfields[reqfields.length] = strfilter(fieldname); } else { reqfields[reqfields.length] = ''; }
	refreshdata();
	document.frmtext.txtname.value = '';
	document.frmtext.txtlabel.value ='';
	document.frmtext.chkrequired.checked = false;
	formfieldnames[formfieldnames.length] = strfilter(fieldname);
}

function addtextarea(fieldname,question,required)
{
	
	if (fieldname =='')
	{
		warn('Please enter a name for the field');
		exit;
	}
	
	if (question =='')
	{
		warn('Please enter a question');
		exit;
	}
		
	formfields[formfields.length] = '\n\n<tr>\n\t<td valign = "top"><strong>' + question + '</strong></td>\n\t<td><textarea name = "' + strfilter(fieldname) + '" rows ="6" cols ="40"></textarea></td>\n</tr>';
	if(required == true) { reqfields[reqfields.length] = strfilter(fieldname); } else { reqfields[reqfields.length] = ''; }
	refreshdata();
	document.frmtextarea.txtname.value = '';
	document.frmtextarea.txtlabel.value = '';
	document.frmtextarea.chkrequired.checked = false;
	formfieldnames[formfieldnames.length] = strfilter(fieldname);
}

function addcheckbox(fieldname,question,checked,required)
{
	
	if (fieldname =='')
	{
		warn('Please enter a name for the field');
		exit;
	}
	
	if (question =='')
	{
		warn('Please enter a question');
		exit;
	}
	
	if (checked == true)
	{
		formfields[formfields.length] = '\n\n<tr>\n\t<td></td>\n\t<td><input type ="checkbox" name = "' + strfilter(fieldname) + '" value = "[Checked]" checked> ' + question + '</td>\n</tr>';
	} else {
		formfields[formfields.length] = '\n\n<tr>\n\t<td></td>\n\t<td><input type ="checkbox" name = "' + strfilter(fieldname) + '" value = "[Checked]"> ' + question + '</td>\n</tr>';				
	}
	
	if(required == true) { reqfields[reqfields.length] = strfilter(fieldname); } else { reqfields[reqfields.length] = ''; }
	refreshdata();
	document.frmcheckbox.txtname.value ='';
	document.frmcheckbox.txtlabel.value = '';
	document.frmcheckbox.chkchecked.checked = false;
	document.frmcheckbox.chkrequired.checked = false;
	formfieldnames[formfieldnames.length] = strfilter(fieldname);
}

function addoptionbox(fieldname,question,option,required)
{
	
	if (fieldname =='')
	{
		warn('Please enter a name for the field');
		exit;
	}
	
	if (question =='')
	{
		warn('Please enter a question');
		exit;
	}
	
	if (option =='')
	{
		warn('Please fill in the optionbox items (one per line)');
		exit;
	}
	
	var temp = '\n\n<tr>\n\t<td valign="top"><strong>' + question + '</strong></td>\n\t<td>';
	
	var form_options = option.split("\n");
	for (i=0;i<form_options.length;i++)
	{
		if (i==0)
		{
			temp += '\n\t\t<input type = "radio" name = "' + strfilter(fieldname) + '" value = "' + strfilter(form_options[i]) + '" checked> ' + form_options[i] + '<br>';
		} else {
			temp += '\n\t\t<input type = "radio" name = "' + strfilter(fieldname) + '" value = "' + strfilter(form_options[i]) + '"> ' + form_options[i] + '<br>';
		}
	}
	
	temp += '\n\t</td>\n</tr>';
	
	if(required == true) { reqfields[reqfields.length] = strfilter(fieldname); } else { reqfields[reqfields.length] = ''; }
	formfields[formfields.length] = temp;
	refreshdata();
	document.frmoption.txtname.value = '';
	document.frmoption.txtlabel.value = '';
	document.frmoption.txtoptions.value = '';
	document.frmoption.chkrequired.checked = false;
	formfieldnames[formfieldnames.length] = strfilter(fieldname);
}

function addselectbox(fieldname,question,listbox,required)
{
	
	if (fieldname =='')
	{
		warn('Please enter a name for the field');
		exit;
	}
	
	if (question =='')
	{
		warn('Please enter a question');
		exit;
	}
	
	if (listbox =='')
	{
		warn('Please fill in the list items (one per line)');
		exit;
	}
	
	var temp = '\n\n<tr>\n\t<td><strong>' + question + '</strong></td>\n\t<td>\n\t\t<select name = "' + strfilter(fieldname) + '">';
	
	var form_listbox = listbox.split("\n");
	for (i=0;i<form_listbox.length;i++)
	{
		temp += '\n\t\t\t<option value = "' + strfilter(form_listbox[i]) + '">' + form_listbox[i] + '</option>';
	}
	
	formfields[formfields.length] = temp + '\n\t\t</select>\n\t</td>\n</tr>';
	if(required == true) { reqfields[reqfields.length] = strfilter(fieldname); } else { reqfields[reqfields.length] = ''; }
	refreshdata();
	document.frmlistbox.txtname.value = '';
	document.frmlistbox.txtlabel.value = '';
	document.frmlistbox.txtoptions.value = '';
	document.frmlistbox.chkrequired.checked = false;
	formfieldnames[formfieldnames.length] = strfilter(fieldname);
}

function showlayer(fblayer)
{

	killwarn();

	document.getElementById("fb_text").style.display = "none";
	document.getElementById("fb_textarea").style.display = "none";
	document.getElementById("fb_checkbox").style.display = "none";
	document.getElementById("fb_optionbox").style.display = "none";
	document.getElementById("fb_listbox").style.display = "none";

	switch (fblayer)
	{
		case 'fb_text':
			document.getElementById("fb_text").style.display = "block";
			break;
		case 'fb_textarea':
			document.getElementById("fb_textarea").style.display = "block";
			break;
		case 'fb_checkbox':
			document.getElementById("fb_checkbox").style.display = "block";
			break;
		case 'fb_optionbox':
			document.getElementById("fb_optionbox").style.display = "block";
			break;
		case 'fb_listbox':
			document.getElementById("fb_listbox").style.display = "block";
			break;
	}
}

function strfilter(filter)
{
	var temp = filter.replace(/'/g, "");
	temp = temp.replace(/"/g, "");
	temp = temp.replace(/</g, "");
	temp = temp.replace(/>/g, "");
	temp = temp.replace(/ /g, "_");
	temp = temp.replace(/>/g, "");
	temp = temp.replace(/;/g, "");
	return temp;
}

function warn(message)
{
	document.location = '#errbar';
	document.getElementById('errorbar').innerHTML = '<b>' + message + '</b>';
	document.getElementById('errorbar').style.visibility= "visible";
	
	setTimeout("document.getElementById('errorbar').style.visibility= 'hidden';",400);
	setTimeout("document.getElementById('errorbar').style.visibility= 'visible';",800);
	
	setTimeout("document.getElementById('errorbar').style.visibility= 'hidden';",1200);
	setTimeout("document.getElementById('errorbar').style.visibility= 'visible';",1600);
	
}

function killwarn()
{
	document.getElementById('errorbar').style.visibility= "hidden";
}

function checkform()
{
	
	if(document.startform.txtemail.value == '' || document.startform.txtemail.value =='your@emailaddress.com' || document.startform.txtemail.value.indexOf('@') == -1 || document.startform.txtemail.value.indexOf('.') == -1)
	{
		warn('Please fill in your emailaddress');
		return false;
	}
	
	if(document.startform.txtsubject.value =='' || document.startform.txtsubject.value == 'Subject here')
	{
		warn('Please fill in the subject of the form submission email');
		return false;
	}
	
	if(document.startform.txtsender.value =='' || document.startform.txtsender.value == 'Senders name')
	{
		warn('Please fill in the name of the sender');
		return false;
	}

	if(document.startform.txtredirect.value =='' || document.startform.txtredirect.value =='http://www.your-website-url-here.com/')
	{
		warn('Please fill in the redirect url (http://www.yoursite.com/thankyou.html)');
		return false;
	}
	
	return true;
}
