
var gsom=gsom||{};gsomMYSQLReservedWords=["ADD","ALL","ALTER","ANALYZE","AND","AS","ASC","ASENSITIVE","BEFORE","BETWEEN","BIGINT","BINARY","BLOB","BOTH","BY","CALL","CASCADE","CASE","CHANGE","CHAR","CHARACTER","CHECK","COLLATE","COLUMN","CONDITION","CONSTRAINT","CONTINUE","CONVERT","CREATE","CROSS","CURRENT_DATE","CURRENT_TIME","CURRENT_TIMESTAMP","CURRENT_USER","CURSOR","DATABASE","DATABASES","DAY_HOUR","DAY_MICROSECOND","DAY_MINUTE","DAY_SECOND","DEC","DECIMAL","DECLARE","DEFAULT","DELAYED","DELETE","DESC","DESCRIBE","DETERMINISTIC","DISTINCT","DISTINCTROW","DIV","DOUBLE","DROP","DUAL","EACH","ELSE","ELSEIF","ENCLOSED","ESCAPED","EXISTS","EXIT","EXPLAIN","FALSE","FETCH","FLOAT","FLOAT4","FLOAT8","FOR","FORCE","FOREIGN","FROM","FULLTEXT","GRANT","GROUP","HAVING","HIGH_PRIORITY","HOUR_MICROSECOND","HOUR_MINUTE","HOUR_SECOND","IF","IGNORE","IN","INDEX","INFILE","INNER","INOUT","INSENSITIVE","INSERT","INT","INT1","INT2","INT3","INT4","INT8","INTEGER","INTERVAL","INTO","IS","ITERATE","JOIN","KEY","KEYS","KILL","LEADING","LEAVE","LEFT","LIKE","LIMIT","LINES","LOAD","LOCALTIME","LOCALTIMESTAMP","LOCK","LONG","LONGBLOB","LONGTEXT","LOOP","LOW_PRIORITY","MATCH","MEDIUMBLOB","MEDIUMINT","MEDIUMTEXT","MIDDLEINT","MINUTE_MICROSECOND","MINUTE_SECOND","MOD","MODIFIES","NATURAL","NOT","NO_WRITE_TO_BINLOG","NULL","NUMERIC","ON","OPTIMIZE","OPTION","OPTIONALLY","OR","ORDER","OUT","OUTER","OUTFILE","PRECISION","PRIMARY","PROCEDURE","PURGE","READ","READS","REAL","REFERENCES","REGEXP","RELEASE","RENAME","REPEAT","REPLACE","REQUIRE","RESTRICT","RETURN","REVOKE","RIGHT","RLIKE","SCHEMA","SCHEMAS","SECOND_MICROSECOND","SELECT","SENSITIVE","SEPARATOR","SET","SHOW","SMALLINT","SONAME","SPATIAL","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","SQL_BIG_RESULT","SQL_CALC_FOUND_ROWS","SQL_SMALL_RESULT","SSL","STARTING","STRAIGHT_JOIN","TABLE","TERMINATED","THEN","TINYBLOB","TINYINT","TINYTEXT","TO","TRAILING","TRIGGER","TRUE","UNDO","UNION","UNIQUE","UNLOCK","UNSIGNED","UPDATE","USAGE","USE","USING","UTC_DATE","UTC_TIME","UTC_TIMESTAMP","VALUES","VARBINARY","VARCHAR","VARCHARACTER","VARYING","WHEN","WHERE","WHILE","WITH","WRITE","XOR","YEAR_MONTH","ZEROFILL","ASENSITIVE","CALL","CONDITION","CONNECTION","CONTINUE","CURSOR","DECLARE","DETERMINISTIC","EACH","ELSEIF","EXIT","FETCH","GOTO","INOUT","INSENSITIVE","ITERATE","LABEL","LEAVE","LOOP","MODIFIES","OUT","READS","RELEASE","REPEAT","RETURN","SCHEMA","SCHEMAS","SENSITIVE","SPECIFIC","SQL","SQLEXCEPTION","SQLSTATE","SQLWARNING","TRIGGER","UNDO","UPGRADE","WHILE"];function stripSymbols(str){return str.replace(/[\s]+/g,'_').replace(/[^A-Za-z0-9\_]+/g,'');}
function gsomBuildForm(args)
{args=args||{};var arr=args.arr||[],place=args.place||'gsom-fields-list',makeDivs=args.makeDivs||false,itemNodeName=makeDivs?'div':'li';if(glock.isDef(arr))
{for(var i=0;i<arr.length;i++)
{MakeFormFieldListItem({ul:place,label:arr[i].label,type:arr[i].type,value:arr[i].value,name:arr[i].name,checked:arr[i].checked,itemType:itemNodeName});}
var SerializeForm=window.SerializeForm||glock.emptyFunction;SerializeForm();}
var form=glock.x(place);if(form.nodeName.toLowerCase()!='form'){form=form.up('form');}
if(form){glock.event.observe(form,'submit',function(e){var el,i,sfi,m,rbtns={},dostop=false;for(i=0;i<form.elements.length;i++){el=form.elements[i];if(!el.type)continue;switch(el.type.toLowerCase()){case'radio':if((typeof rbtns[el.name]=='undefined')||(rbtns[el.name].checked===false)){rbtns[el.name]={el:el,checked:el.checked};}
break;case'text':case'textarea':if(glock.xS(el.value).trim()==''){sfi=glock.x(el).up('div.gsom_sfi');if(sfi){m=sfi.down('.gsom-required-msg');if(m){m.show();dostop=true;m=false;}}}
break;}}
for(var btn in rbtns){if(rbtns.hasOwnProperty(btn)){if(!rbtns[btn].checked){sfi=glock.x(rbtns[btn].el).up('div.gsom_sfi');if(sfi){m=sfi.down('.gsom-required-msg');if(m){m.show();m=false;dostop=true;}}}}}
if(dostop){e.stop();}});}}
function MakeFormFieldListItem(args)
{args=args||{};var ul=args.ul||'',oldItem=args.oldItem||false,type=args.type||'text',label=args.label||'',fname=args.name||'',fvalue=args.value||'',checked=args.checked||false,itemType=args.itemType||'li',list=glock.x(ul),oName='',oItm,oldItemNode;if(oldItem){oldItemNode=glock.x(oldItem);if(oldItemNode){oItm=oldItemNode.down('span.gsom-oldname');if(oItm){oName=oItm.innerHTML;}else{oItm=oldItemNode.down('input');if(oItm){oName=oItm.name;}}}}
var isStopWord=function(str){str=str.toUpperCase();for(var i=0;i<gsomMYSQLReservedWords.length;i++){if(gsomMYSQLReservedWords[i]==str){return true;}}
return false;}
var FieldExist=function(fieldName){if(list){var fl=glock.x(list).select('input');for(var i=0;i<fl.length;i++)
{if(fl[i].name==fieldName)
return true;}}
return false;}
if(fname==''){var ctr=0;do
{fname=stripSymbols(label);if(ctr>0){fname+=String(ctr);}
ctr++;}while(FieldExist(fname)||isStopWord(fname));}
var lItem,tel,tdiv,inp;var d=new Date(),lrid='sfi_'+d.getTime(),labelClass='',cbRbClass='';var gsomAdminMenu=window.gsomAdminMenu||false;if(gsomAdminMenu){cbRbClass='gsom-optin-radiogroup-admin';}else{cbRbClass='gsom-optin-radiogroup';}
if((type=='text')&&(itemType=='div'))
labelClass='gsom-optin-div-label'
else
labelClass='gsom-optin-label';function inpChange(e){el=this;sfi=glock.x(el).up('div.gsom_sfi');if(sfi){m=sfi.down('.gsom-required-msg');if(m){m.hide();}}}
switch(type)
{case'text':var wrapper;lItem=glock.builder.node(itemType,{id:lrid,className:'gsom_sfi'});if(gsomAdminMenu)
{wrapper=glock.builder.node('div',{className:'gsom-list-item-wrapper'});lItem.appendChild(wrapper);if(fname!='gsom_email_field')
{lItem.appendChild(glock.builder.node('div',{style:'float:left; overflow: hidden;'},[makeLButton({imgsrc:gsomPluginPath+'img/delete.png',onclick:glock.xF(deleteFormItem).bindAsEventListener(lItem)}),makeLButton({imgsrc:gsomPluginPath+'img/pencil.png',onclick:glock.xF(function(){var oid=glock.x(this).id;FormAddEditTextField({oldItem:oid});}).bindAsEventListener(lItem)})]));}else{lItem.appendChild(glock.builder.node('div',{style:'float:left; overflow: hidden;'},[makeLButton({imgsrc:gsomPluginPath+'img/pencil.png',onclick:glock.xF(function(){var oid=glock.x(this).id;FormEditEmailLabel({fieldId:oid});}).bindAsEventListener(lItem)})]));}}
else
wrapper=lItem;wrapper.appendChild(glock.builder.node('label',{className:labelClass},label));wrapper.appendChild(inp=glock.builder.node('input',{type:'text',name:fname,value:fvalue}));glock.event.observe(inp,'change',glock.xF(inpChange).bindAsEventListener(inp));wrapper.appendChild(glock.builder.node('span',{className:'gsom-required-msg',style:'display:none;'},'Required'));break;case'checkbox':var cparams;var wrapper;if(checked)
cparams={type:'checkbox',checked:'checked',name:fname,value:'1'};else
cparams={type:'checkbox',name:fname,value:'1'};lItem=glock.builder.node(itemType,{id:lrid,className:'gsom_sfi'});if(gsomAdminMenu)
{wrapper=glock.builder.node('div',{className:'gsom-list-item-wrapper'});lItem.appendChild(wrapper);lItem.appendChild(glock.builder.node('div',{style:'float:left'},[makeLButton({imgsrc:gsomPluginPath+'img/delete.png',onclick:glock.xF(deleteFormItem).bindAsEventListener(lItem)}),makeLButton({imgsrc:gsomPluginPath+'img/pencil.png',onclick:glock.xF(function(){var oid=glock.x(this).id;FormAddEditCheckboxField({oldItem:oid});}).bindAsEventListener(lItem)})]));}
else
wrapper=lItem;wrapper.appendChild(glock.builder.node('div',{className:cbRbClass},[inp=glock.builder.node('input',cparams),glock.builder.node('label',{className:labelClass},label)]));glock.event.observe(inp,'change',glock.xF(inpChange).bindAsEventListener(inp));wrapper.appendChild(glock.builder.node('span',{style:'display:none',className:'gsom-required-msg cbox'},'Required'));break;case'radio':var wrapper;lItem=glock.builder.node(itemType,{id:lrid,className:'gsom_sfi'});if(gsomAdminMenu)
{wrapper=glock.builder.node('div',{className:'gsom-list-item-wrapper'});lItem.appendChild(wrapper);lItem.appendChild(glock.builder.node('div',{style:'float:left'},[makeLButton({imgsrc:gsomPluginPath+'img/delete.png',onclick:glock.xF(deleteFormItem).bindAsEventListener(lItem)}),makeLButton({imgsrc:gsomPluginPath+'img/pencil.png',onclick:glock.xF(function(){var oid=glock.x(this).id;FormAddEditRadioGroupField({oldItem:oid});}).bindAsEventListener(lItem)})]));}
else
wrapper=lItem;wrapper.appendChild(glock.builder.node('label',{className:'gsom-optin-label radio'},label));wrapper.appendChild(glock.builder.node('span',{style:'display:none;',className:'gsom-required-msg radio'},'Required'));for(var i=0;i<fvalue.length;i++)
{tdiv=glock.builder.node('div',{className:cbRbClass});wrapper.appendChild(tdiv);tel=glock.builder.node('input',{type:'radio',name:fname,value:stripSymbols(fvalue[i].label)});if(fvalue[i].checked)
tel.checked=true;tdiv.appendChild(tel);glock.event.observe(tel,'change',glock.xF(inpChange).bindAsEventListener(tel));tel=glock.builder.node('label',{className:labelClass},fvalue[i].label);tdiv.appendChild(tel);}
break;case'button':case'submit':if(gsomAdminMenu)
{lItem=glock.builder.node(itemType,{id:lrid});wrapper=glock.builder.node('div',{className:'gsom-list-item-wrapper'});lItem.appendChild(wrapper);lItem.appendChild(glock.builder.node('div',{style:'float:left'},[makeLButton({imgsrc:gsomPluginPath+'img/pencil.png',onclick:glock.xF(function(){var oid=glock.x(this).id;FormEditSubscribeButton({oldItem:oid});}).bindAsEventListener(lItem)})]));wrapper.appendChild(glock.builder.node('div',{className:cbRbClass},[glock.builder.node('input',{type:'button',name:fname,value:fvalue})]));}
else
{var btn;lItem=glock.builder.node(itemType,{id:lrid},[glock.builder.node('div',{className:cbRbClass},[btn=glock.builder.node('input',{type:type,name:fname,value:fvalue})])]);}
break;}
if(oName){wrapper.appendChild(glock.builder.node('span',{className:'gsom-oldname'},oName));}
glock.event.observe(lItem,'mouseup',function(){var SerializeForm=SerializeForm||glock.emptyFunction;SerializeForm();});if(list){if(oldItem){var oi=glock.x(oldItem);if(oi)
list.insertBefore(lItem,oi);glock.element.remove(oi);}
else
list.appendChild(lItem);return true;}
return false;}