var OPTS = {};
var Marker = OPTS; var back;
$(document).ready(function(e)
{
$('#main-form').after('
');
$('#main-form').before('');
$('.alert-success').hide();
$('.alert-error').hide();
$.get('https://pasadena.edu/_resources/php/zendesk/get-form.php', {id: FORM_ID }, function(dat){
var data = dat.fields;
var d = {
description: '',
id: 'request[attachments][]',
title_in_portal: 'Attachments',
required_in_portal: false
};
var input = $('');
$('#main-form').prepend(createField(d, input, false, true));
for(var i=data.length-1; i>0; i--)
{
switch(data[i].type)
{
case 'date':
$('#main-form').prepend(getInput(data[i], 'date'));
break;
case 'tagger':
if(checkForBinary(data[i].custom_field_options))
$('#main-form').prepend(getRadio(data[i], 'radio'));
else
{
$('#main-form').prepend(getSelect(data[i]));
}
break;
case 'integer':
$('#main-form').prepend(getInput(data[i], 'text'));
break;
case 'description':
$('#main-form').prepend(getTextarea(data[i]));
break;
case 'text':
$('#main-form').prepend(getInput(data[i], 'text'));
break;
case 'string':
$('#main-form').prepend(getInput(data[i], 'text'));
break;
case 'checkbox':
$('#main-form').prepend(getCheckbox(data[i], 'checkbox', {T: 'Yes', F: 'No'}));
break;
case 'OnOff':
$('#main-form').prepend(getRadio(data[i], 'radio', {T: 'On', F: 'Off'}));
break;
}
}
d = {
description: '',
id: 'request[anonymous_requester_email]',
title_in_portal: 'Your email address',
required_in_portal: true
}
input = $('');
$('#main-form').prepend(createField(d, input, false, true));
$('#main-form').append('Submit');
$('#main-form').append('Loading...');
}, 'json');
});
function checkForBinary(data)
{
var types = ['yesno'];
if(data.length != 2)
return false;
var bin1 = data[0].name.toLowerCase();
var bin2 = data[1].name.toLowerCase();
return $.inArray(bin1+bin2, types) > -1 || $.inArray(bin2+bin1, types) > -1;
}
function popNewOpts(elem, back)
{
var check = back.split('.');
if(check.length == 1)
{
var o = $('');
}
else
{
var o = $('');
$(o).on('click', function(){goBack(elem)});
}
$(elem).empty();
$(elem).append(o);
addOpts(elem, back);
}
function goBack(elem)
{
var b = elem[0].options[elem[0].selectedIndex].dataset.back.split('.');
b.pop();
Marker = OPTS[b[0]];
var back = b.join('.');
for(var i=1; i 0 ){
values = Marker;
bool = true;
for(var i=0; i'+values[i].name+'';
$(elem).append(option);
}
}
else if($.isPlainObject(Marker))
{
values = Object.keys(Marker);
for(var i=0; i'+values[i]+'');
if(Marker[values[i]])
option.attr('class', 'nested-opts');
$(elem).append(option);
}
}
else if (typeof Marker == 'string')
{
var option = '';
$(elem).append(option);
elem[0].size;
return
}
elem[0].size = values.length+1;
//Marker = OPTS;
}
function getInput(data, type)
{
var input = $('');
$(input).attr('pattern', data.regexp_for_validation);
return createField(data, input);
}
function getTextarea(data)
{
var input = $('');
return createField(data, input);
}
function getRadio(data, type)
{
var container = $('');
var label = getLabel(data.id);
var terms = data.custom_field_options;
label.html(data.title_in_portal);
var trueContainer = $('');
var trueLabel = $('');
var trueInput = $('');
trueInput.attr('type', type);
trueInput.attr('name', 'custom_fields['+data.id+']');
trueInput.attr('id', data.id);
trueLabel.append(trueInput);
trueInput.val(terms[0].value);
trueLabel.append(' '+terms[0].name+' ');
trueContainer.append(trueLabel);
//var falseContainer = $('');
var falseLabel = $('');
var falseInput = $('');
falseInput.attr('type', type);
falseInput.attr('name', 'custom_fields['+data.id+']');
falseLabel.append(falseInput);
falseLabel.append(' '+terms[1].name+' ')
falseInput.val(terms[1].value);
trueContainer.append(falseLabel);
var description = $('');
description.append(data.description);
if(data.required_in_portal)
{
falseInput.attr('required', 'required');
trueInput.attr('required', 'required');
label.append(' *');
}
container.append(label);
container.append(trueContainer);
container.append(description);
return container;
}
function getCheckbox(data, type, terms)
{
var input = $('');
return createField(data, input, true);
}
function getSelect(data, type)
{
parseOptions(data.id,data.custom_field_options);
var input = $('